@ng-nest/ui 17.0.11 → 18.0.0
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/README.md +1 -1
- package/affix/affix.component.d.ts +0 -2
- package/affix/affix.property.d.ts +12 -7
- package/alert/alert.component.d.ts +12 -11
- package/alert/alert.property.d.ts +36 -35
- package/anchor/anchor.component.d.ts +15 -18
- package/anchor/anchor.property.d.ts +17 -8
- package/api/api.component.d.ts +2 -7
- package/auto-complete/auto-complete-portal.component.d.ts +20 -25
- package/auto-complete/auto-complete.component.d.ts +17 -34
- package/auto-complete/auto-complete.property.d.ts +282 -20
- package/avatar/avatar.component.d.ts +29 -19
- package/avatar/avatar.property.d.ts +78 -12
- package/back-top/back-top.component.d.ts +12 -17
- package/back-top/back-top.property.d.ts +12 -8
- package/badge/badge.component.d.ts +9 -16
- package/badge/badge.property.d.ts +95 -13
- package/base-form/base-form.component.d.ts +53 -26
- package/base-form/base-form.module.d.ts +1 -2
- package/base-form/base-form.property.d.ts +173 -45
- package/button/button.component.d.ts +16 -14
- package/button/button.property.d.ts +242 -100
- package/button/buttons.component.d.ts +8 -10
- package/calendar/calendar.component.d.ts +41 -27
- package/calendar/calendar.property.d.ts +69 -10
- package/card/card.component.d.ts +4 -6
- package/card/card.property.d.ts +50 -9
- package/carousel/carousel-panel.component.d.ts +15 -14
- package/carousel/carousel.component.d.ts +18 -19
- package/carousel/carousel.property.d.ts +168 -28
- package/cascade/cascade-portal.component.d.ts +28 -28
- package/cascade/cascade.component.d.ts +24 -30
- package/cascade/cascade.property.d.ts +292 -20
- package/checkbox/checkbox.component.d.ts +17 -17
- package/checkbox/checkbox.property.d.ts +274 -35
- package/collapse/collapse-panel.component.d.ts +5 -2
- package/collapse/collapse.component.d.ts +3 -7
- package/collapse/collapse.property.d.ts +113 -20
- package/color/color.component.d.ts +4 -9
- package/color/color.property.d.ts +36 -8
- package/color-picker/color-picker-portal.component.d.ts +40 -52
- package/color-picker/color-picker.component.d.ts +19 -28
- package/color-picker/color-picker.property.d.ts +260 -10
- package/comment/comment-reply.component.d.ts +1 -8
- package/comment/comment.component.d.ts +4 -14
- package/comment/comment.property.d.ts +21 -15
- package/container/aside.component.d.ts +3 -8
- package/container/container.component.d.ts +5 -9
- package/container/container.property.d.ts +33 -19
- package/container/footer.component.d.ts +2 -5
- package/container/header.component.d.ts +2 -5
- package/container/main.component.d.ts +2 -7
- package/core/animation/badge.d.ts +8 -0
- package/core/animation/connect.d.ts +8 -1
- package/core/animation/consts.d.ts +4 -0
- package/core/animation/drop.d.ts +4 -0
- package/core/animation/fade.d.ts +4 -0
- package/core/animation/move.d.ts +4 -0
- package/core/animation/opacity.d.ts +4 -0
- package/core/animation/slide.d.ts +4 -1
- package/core/config/config.d.ts +174 -108
- package/core/config/config.service.d.ts +5 -5
- package/core/config/index.d.ts +1 -0
- package/core/functions/chunk.d.ts +12 -1
- package/core/functions/clone-deep.d.ts +16 -0
- package/core/functions/convert.d.ts +77 -4
- package/core/functions/csspx.d.ts +5 -0
- package/core/functions/date.d.ts +59 -3
- package/core/functions/drop.d.ts +13 -1
- package/core/functions/flex.d.ts +4 -0
- package/core/functions/group-by.d.ts +5 -1
- package/core/functions/guid.d.ts +2 -1
- package/core/functions/has-in.d.ts +4 -0
- package/core/functions/order-by.d.ts +5 -1
- package/core/functions/parent-path.d.ts +8 -0
- package/core/functions/property.d.ts +12 -6
- package/core/functions/public-api.d.ts +1 -0
- package/core/functions/remove.d.ts +5 -1
- package/core/functions/resize.d.ts +13 -1
- package/core/interfaces/data.type.d.ts +172 -3
- package/core/interfaces/identify.type.d.ts +60 -0
- package/core/interfaces/layout.type.d.ts +88 -37
- package/core/interfaces/result-list.type.d.ts +91 -3
- package/core/services/http.service.d.ts +0 -22
- package/core/services/repository.service.d.ts +1 -1
- package/core/services/reuse-strategy.service.d.ts +0 -22
- package/core/services/storage.service.d.ts +0 -21
- package/core/theme/theme.d.ts +45 -1
- package/core/theme/theme.service.d.ts +46 -11
- package/core/util/animation.d.ts +1 -1
- package/core/util/camel-to-kebab.d.ts +13 -0
- package/core/util/check.d.ts +10 -2
- package/core/util/computed-style.d.ts +8 -0
- package/core/util/host.d.ts +3 -2
- package/core/util/html.d.ts +3 -2
- package/core/util/kebab-to-camel.d.ts +13 -0
- package/core/util/log.d.ts +10 -2
- package/core/util/option.d.ts +3 -4
- package/core/util/public-api.d.ts +2 -0
- package/crumb/crumb.component.d.ts +1 -10
- package/crumb/crumb.property.d.ts +12 -8
- package/date-picker/date-picker-portal.component.d.ts +80 -33
- package/date-picker/date-picker.component.d.ts +74 -32
- package/date-picker/date-picker.property.d.ts +662 -214
- package/date-picker/date-range-portal.component.d.ts +102 -49
- package/date-picker/date-range.component.d.ts +87 -43
- package/date-picker/picker-date.component.d.ts +63 -17
- package/date-picker/picker-month.component.d.ts +59 -13
- package/date-picker/picker-quarter.component.d.ts +61 -15
- package/date-picker/picker-year.component.d.ts +8 -11
- package/description/description-item.component.d.ts +1 -1
- package/description/description.component.d.ts +6 -10
- package/description/description.property.d.ts +135 -16
- package/dialog/dialog-portal.component.d.ts +4 -4
- package/dialog/dialog-portal.directives.d.ts +1 -1
- package/dialog/dialog.component.d.ts +30 -23
- package/dialog/dialog.property.d.ts +77 -134
- package/doc/doc.component.d.ts +2 -5
- package/drag/drag.directive.d.ts +1 -1
- package/drag/drag.property.d.ts +4 -5
- package/drawer/drawer-container.component.d.ts +1 -1
- package/drawer/drawer-portal.component.d.ts +1 -1
- package/drawer/drawer.component.d.ts +15 -14
- package/drawer/drawer.property.d.ts +26 -18
- package/dropdown/dropdown-portal.component.d.ts +36 -45
- package/dropdown/dropdown.component.d.ts +17 -21
- package/dropdown/dropdown.property.d.ts +24 -21
- package/empty/empty.component.d.ts +0 -7
- package/empty/empty.property.d.ts +27 -4
- package/esm2022/affix/affix.component.mjs +6 -11
- package/esm2022/affix/affix.module.mjs +4 -4
- package/esm2022/affix/affix.property.mjs +22 -20
- package/esm2022/alert/alert.component.mjs +39 -44
- package/esm2022/alert/alert.module.mjs +4 -4
- package/esm2022/alert/alert.property.mjs +102 -107
- package/esm2022/anchor/anchor-inner.component.mjs +3 -3
- package/esm2022/anchor/anchor.component.mjs +73 -95
- package/esm2022/anchor/anchor.module.mjs +4 -4
- package/esm2022/anchor/anchor.property.mjs +45 -35
- package/esm2022/api/api.component.mjs +11 -14
- package/esm2022/api/api.module.mjs +4 -4
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +36 -47
- package/esm2022/auto-complete/auto-complete.component.mjs +122 -162
- package/esm2022/auto-complete/auto-complete.module.mjs +4 -4
- package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
- package/esm2022/avatar/avatar-group.component.mjs +3 -3
- package/esm2022/avatar/avatar.component.mjs +75 -81
- package/esm2022/avatar/avatar.module.mjs +4 -4
- package/esm2022/avatar/avatar.property.mjs +116 -45
- package/esm2022/back-top/back-top.component.mjs +57 -73
- package/esm2022/back-top/back-top.module.mjs +4 -4
- package/esm2022/back-top/back-top.property.mjs +37 -29
- package/esm2022/badge/badge.component.mjs +51 -59
- package/esm2022/badge/badge.module.mjs +4 -4
- package/esm2022/badge/badge.property.mjs +111 -38
- package/esm2022/base-form/base-form.component.mjs +89 -81
- package/esm2022/base-form/base-form.module.mjs +7 -8
- package/esm2022/base-form/base-form.property.mjs +200 -89
- package/esm2022/button/button.component.mjs +50 -59
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/button/button.property.mjs +293 -98
- package/esm2022/button/buttons.component.mjs +35 -21
- package/esm2022/calendar/calendar.component.mjs +56 -84
- package/esm2022/calendar/calendar.module.mjs +4 -4
- package/esm2022/calendar/calendar.property.mjs +78 -24
- package/esm2022/card/card.component.mjs +10 -14
- package/esm2022/card/card.module.mjs +4 -4
- package/esm2022/card/card.property.mjs +57 -22
- package/esm2022/carousel/carousel-panel.component.mjs +98 -76
- package/esm2022/carousel/carousel.component.mjs +55 -65
- package/esm2022/carousel/carousel.module.mjs +4 -4
- package/esm2022/carousel/carousel.property.mjs +215 -85
- package/esm2022/cascade/cascade-portal.component.mjs +77 -69
- package/esm2022/cascade/cascade.component.mjs +107 -135
- package/esm2022/cascade/cascade.module.mjs +4 -4
- package/esm2022/cascade/cascade.property.mjs +137 -48
- package/esm2022/checkbox/checkbox.component.mjs +68 -83
- package/esm2022/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/checkbox/checkbox.property.mjs +136 -73
- package/esm2022/collapse/collapse-panel.component.mjs +31 -21
- package/esm2022/collapse/collapse.component.mjs +16 -21
- package/esm2022/collapse/collapse.module.mjs +4 -4
- package/esm2022/collapse/collapse.property.mjs +156 -66
- package/esm2022/color/color.component.mjs +25 -26
- package/esm2022/color/color.module.mjs +4 -4
- package/esm2022/color/color.property.mjs +47 -27
- package/esm2022/color-picker/color-picker-portal.component.mjs +120 -130
- package/esm2022/color-picker/color-picker.component.mjs +76 -117
- package/esm2022/color-picker/color-picker.module.mjs +4 -4
- package/esm2022/color-picker/color-picker.property.mjs +123 -27
- package/esm2022/comment/comment-reply.component.mjs +9 -24
- package/esm2022/comment/comment.component.mjs +11 -40
- package/esm2022/comment/comment.module.mjs +4 -4
- package/esm2022/comment/comment.property.mjs +27 -50
- package/esm2022/container/aside.component.mjs +12 -15
- package/esm2022/container/container.component.mjs +21 -24
- package/esm2022/container/container.module.mjs +4 -4
- package/esm2022/container/container.property.mjs +55 -51
- package/esm2022/container/footer.component.mjs +14 -16
- package/esm2022/container/header.component.mjs +14 -16
- package/esm2022/container/main.component.mjs +10 -13
- package/esm2022/core/animation/badge.mjs +17 -3
- package/esm2022/core/animation/connect.mjs +17 -99
- package/esm2022/core/animation/consts.mjs +5 -1
- package/esm2022/core/animation/drop.mjs +5 -1
- package/esm2022/core/animation/fade.mjs +13 -3
- package/esm2022/core/animation/move.mjs +5 -1
- package/esm2022/core/animation/opacity.mjs +5 -1
- package/esm2022/core/animation/slide.mjs +5 -23
- package/esm2022/core/config/config.mjs +1 -1
- package/esm2022/core/config/config.service.mjs +11 -59
- package/esm2022/core/config/index.mjs +2 -0
- package/esm2022/core/functions/chunk.mjs +12 -1
- package/esm2022/core/functions/clone-deep.mjs +17 -1
- package/esm2022/core/functions/convert.mjs +110 -13
- package/esm2022/core/functions/csspx.mjs +17 -0
- package/esm2022/core/functions/date.mjs +80 -4
- package/esm2022/core/functions/drop.mjs +13 -1
- package/esm2022/core/functions/flex.mjs +5 -1
- package/esm2022/core/functions/group-by.mjs +5 -1
- package/esm2022/core/functions/guid.mjs +3 -2
- package/esm2022/core/functions/has-in.mjs +5 -1
- package/esm2022/core/functions/order-by.mjs +5 -1
- package/esm2022/core/functions/parent-path.mjs +9 -1
- package/esm2022/core/functions/property.mjs +16 -8
- package/esm2022/core/functions/public-api.mjs +2 -1
- package/esm2022/core/functions/remove.mjs +5 -1
- package/esm2022/core/functions/resize.mjs +7 -5
- package/esm2022/core/interfaces/data.type.mjs +97 -8
- package/esm2022/core/interfaces/identify.type.mjs +5 -2
- package/esm2022/core/interfaces/layout.type.mjs +1 -1
- package/esm2022/core/interfaces/result-list.type.mjs +1 -1
- package/esm2022/core/services/http.service.mjs +4 -33
- package/esm2022/core/services/preloading-strategy.service.mjs +4 -6
- package/esm2022/core/services/repository.service.mjs +1 -1
- package/esm2022/core/services/reuse-strategy.service.mjs +1 -26
- package/esm2022/core/services/storage.service.mjs +4 -26
- package/esm2022/core/theme/theme.mjs +55 -11
- package/esm2022/core/theme/theme.service.mjs +92 -20
- package/esm2022/core/util/animation.mjs +2 -23
- package/esm2022/core/util/camel-to-kebab.mjs +16 -0
- package/esm2022/core/util/check.mjs +11 -3
- package/esm2022/core/util/computed-style.mjs +9 -1
- package/esm2022/core/util/host.mjs +4 -3
- package/esm2022/core/util/html.mjs +5 -4
- package/esm2022/core/util/kebab-to-camel.mjs +16 -0
- package/esm2022/core/util/log.mjs +11 -3
- package/esm2022/core/util/option.mjs +4 -5
- package/esm2022/core/util/public-api.mjs +3 -1
- package/esm2022/crumb/crumb.component.mjs +6 -29
- package/esm2022/crumb/crumb.module.mjs +4 -4
- package/esm2022/crumb/crumb.property.mjs +21 -26
- package/esm2022/date-picker/date-picker-portal.component.mjs +86 -102
- package/esm2022/date-picker/date-picker.component.mjs +157 -191
- package/esm2022/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/date-picker/date-picker.property.mjs +440 -462
- package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
- package/esm2022/date-picker/date-range-portal.component.mjs +172 -186
- package/esm2022/date-picker/date-range.component.mjs +224 -266
- package/esm2022/date-picker/picker-date.component.mjs +150 -150
- package/esm2022/date-picker/picker-month.component.mjs +115 -118
- package/esm2022/date-picker/picker-quarter.component.mjs +120 -119
- package/esm2022/date-picker/picker-year.component.mjs +121 -108
- package/esm2022/description/description-item.component.mjs +12 -11
- package/esm2022/description/description.component.mjs +33 -48
- package/esm2022/description/description.module.mjs +4 -4
- package/esm2022/description/description.property.mjs +175 -52
- package/esm2022/dialog/dialog-container.component.mjs +3 -3
- package/esm2022/dialog/dialog-portal.component.mjs +14 -20
- package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
- package/esm2022/dialog/dialog-ref.mjs +1 -1
- package/esm2022/dialog/dialog.component.mjs +117 -131
- package/esm2022/dialog/dialog.module.mjs +4 -4
- package/esm2022/dialog/dialog.property.mjs +149 -139
- package/esm2022/dialog/dialog.service.mjs +7 -7
- package/esm2022/doc/doc.component.mjs +11 -12
- package/esm2022/doc/doc.module.mjs +4 -4
- package/esm2022/drag/drag.directive.mjs +8 -21
- package/esm2022/drag/drag.module.mjs +4 -4
- package/esm2022/drag/drag.property.mjs +10 -16
- package/esm2022/drawer/drawer-container.component.mjs +9 -9
- package/esm2022/drawer/drawer-portal.component.mjs +11 -13
- package/esm2022/drawer/drawer-portal.directives.mjs +9 -9
- package/esm2022/drawer/drawer.component.mjs +40 -59
- package/esm2022/drawer/drawer.module.mjs +4 -4
- package/esm2022/drawer/drawer.property.mjs +47 -54
- package/esm2022/drawer/drawer.service.mjs +6 -6
- package/esm2022/dropdown/dropdown-portal.component.mjs +90 -91
- package/esm2022/dropdown/dropdown.component.mjs +75 -91
- package/esm2022/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/dropdown/dropdown.property.mjs +62 -59
- package/esm2022/empty/empty.component.mjs +6 -26
- package/esm2022/empty/empty.module.mjs +4 -4
- package/esm2022/empty/empty.property.mjs +41 -20
- package/esm2022/examples/examples.component.mjs +11 -12
- package/esm2022/examples/examples.module.mjs +4 -4
- package/esm2022/find/find.component.mjs +188 -232
- package/esm2022/find/find.module.mjs +4 -4
- package/esm2022/find/find.property.mjs +234 -193
- package/esm2022/form/control.component.mjs +138 -116
- package/esm2022/form/form.component.mjs +28 -36
- package/esm2022/form/form.module.mjs +4 -4
- package/esm2022/form/form.property.mjs +57 -55
- package/esm2022/highlight/highlight.component.mjs +54 -59
- package/esm2022/highlight/highlight.module.mjs +4 -4
- package/esm2022/highlight/highlight.property.mjs +25 -21
- package/esm2022/highlight/highlight.service.mjs +17 -0
- package/esm2022/highlight/public-api.mjs +2 -1
- package/esm2022/i18n/i18n.directive.mjs +17 -31
- package/esm2022/i18n/i18n.module.mjs +4 -4
- package/esm2022/i18n/i18n.pipe.mjs +4 -4
- package/esm2022/i18n/i18n.property.mjs +2 -2
- package/esm2022/i18n/i18n.service.mjs +4 -4
- package/esm2022/i18n/languages/ar_EG.mjs +122 -77
- package/esm2022/i18n/languages/bg_BG.mjs +135 -87
- package/esm2022/i18n/languages/ca_ES.mjs +130 -82
- package/esm2022/i18n/languages/cs_CZ.mjs +127 -79
- package/esm2022/i18n/languages/da_DK.mjs +129 -81
- package/esm2022/i18n/languages/de_DE.mjs +125 -77
- package/esm2022/i18n/languages/el_GR.mjs +132 -84
- package/esm2022/i18n/languages/en_GB.mjs +5 -2
- package/esm2022/i18n/languages/en_US.mjs +5 -2
- package/esm2022/i18n/languages/es_ES.mjs +131 -83
- package/esm2022/i18n/languages/et_EE.mjs +130 -82
- package/esm2022/i18n/languages/fa_IR.mjs +109 -61
- package/esm2022/i18n/languages/fi_FI.mjs +134 -86
- package/esm2022/i18n/languages/fr_BE.mjs +128 -80
- package/esm2022/i18n/languages/fr_FR.mjs +127 -79
- package/esm2022/i18n/languages/he_IL.mjs +119 -74
- package/esm2022/i18n/languages/hi_IN.mjs +104 -56
- package/esm2022/i18n/languages/hr_HR.mjs +133 -85
- package/esm2022/i18n/languages/hu_HU.mjs +132 -84
- package/esm2022/i18n/languages/hy_AM.mjs +133 -85
- package/esm2022/i18n/languages/id_ID.mjs +119 -71
- package/esm2022/i18n/languages/is_IS.mjs +125 -77
- package/esm2022/i18n/languages/it_IT.mjs +127 -79
- package/esm2022/i18n/languages/ja_JP.mjs +95 -47
- package/esm2022/i18n/languages/ka_GE.mjs +106 -58
- package/esm2022/i18n/languages/kn_IN.mjs +110 -62
- package/esm2022/i18n/languages/ko_KR.mjs +126 -70
- package/esm2022/i18n/languages/ku_IQ.mjs +117 -85
- package/esm2022/i18n/languages/lv_LV.mjs +128 -72
- package/esm2022/i18n/languages/mn_MN.mjs +138 -82
- package/esm2022/i18n/languages/ms_MY.mjs +124 -68
- package/esm2022/i18n/languages/nb_NO.mjs +133 -77
- package/esm2022/i18n/languages/ne_NP.mjs +117 -61
- package/esm2022/i18n/languages/nl_BE.mjs +134 -78
- package/esm2022/i18n/languages/nl_NL.mjs +134 -78
- package/esm2022/i18n/languages/pl_PL.mjs +132 -76
- package/esm2022/i18n/languages/pt_BR.mjs +133 -77
- package/esm2022/i18n/languages/pt_PT.mjs +133 -77
- package/esm2022/i18n/languages/ro_RO.mjs +130 -74
- package/esm2022/i18n/languages/ru_RU.mjs +131 -75
- package/esm2022/i18n/languages/sk_SK.mjs +130 -83
- package/esm2022/i18n/languages/sl_SI.mjs +121 -73
- package/esm2022/i18n/languages/sr_RS.mjs +138 -90
- package/esm2022/i18n/languages/sv_SE.mjs +132 -84
- package/esm2022/i18n/languages/ta_IN.mjs +117 -61
- package/esm2022/i18n/languages/th_TH.mjs +99 -43
- package/esm2022/i18n/languages/tr_TR.mjs +126 -70
- package/esm2022/i18n/languages/uk_UA.mjs +124 -68
- package/esm2022/i18n/languages/vi_VN.mjs +133 -77
- package/esm2022/i18n/languages/zh_CN.mjs +5 -2
- package/esm2022/i18n/languages/zh_TW.mjs +5 -2
- package/esm2022/icon/icon.component.mjs +46 -77
- package/esm2022/icon/icon.module.mjs +4 -4
- package/esm2022/icon/icon.property.mjs +52 -30
- package/esm2022/icon/icon.service.mjs +15 -14
- package/esm2022/image/image-group.component.mjs +15 -15
- package/esm2022/image/image-preview.component.mjs +47 -46
- package/esm2022/image/image.component.mjs +34 -53
- package/esm2022/image/image.module.mjs +4 -4
- package/esm2022/image/image.property.mjs +152 -38
- package/esm2022/index.mjs +1 -3
- package/esm2022/inner/inner.component.mjs +15 -20
- package/esm2022/inner/inner.module.mjs +4 -4
- package/esm2022/inner/inner.property.mjs +17 -15
- package/esm2022/input/input-group.component.mjs +5 -7
- package/esm2022/input/input.component.mjs +130 -143
- package/esm2022/input/input.module.mjs +4 -4
- package/esm2022/input/input.property.mjs +205 -143
- package/esm2022/input-number/input-number.component.mjs +68 -86
- package/esm2022/input-number/input-number.module.mjs +4 -4
- package/esm2022/input-number/input-number.property.mjs +130 -60
- package/esm2022/keyword/keyword.directive.mjs +46 -54
- package/esm2022/keyword/keyword.module.mjs +4 -4
- package/esm2022/keyword/keyword.property.mjs +32 -28
- package/esm2022/layout/col.component.mjs +48 -51
- package/esm2022/layout/layout.module.mjs +4 -4
- package/esm2022/layout/layout.property.mjs +71 -63
- package/esm2022/layout/row.component.mjs +36 -27
- package/esm2022/link/link.component.mjs +18 -45
- package/esm2022/link/link.module.mjs +4 -4
- package/esm2022/link/link.property.mjs +101 -41
- package/esm2022/list/list-drop-group.directive.mjs +9 -18
- package/esm2022/list/list-option.component.mjs +16 -33
- package/esm2022/list/list.component.mjs +160 -164
- package/esm2022/list/list.module.mjs +4 -4
- package/esm2022/list/list.property.mjs +195 -188
- package/esm2022/loading/loading.component.mjs +44 -45
- package/esm2022/loading/loading.module.mjs +4 -4
- package/esm2022/loading/loading.property.mjs +50 -52
- package/esm2022/menu/menu-node.component.mjs +21 -21
- package/esm2022/menu/menu.component.mjs +57 -76
- package/esm2022/menu/menu.module.mjs +4 -4
- package/esm2022/menu/menu.property.mjs +56 -73
- package/esm2022/message/message.component.mjs +8 -8
- package/esm2022/message/message.module.mjs +4 -4
- package/esm2022/message/message.property.mjs +1 -1
- package/esm2022/message/message.service.mjs +7 -7
- package/esm2022/message-box/message-box.component.mjs +5 -5
- package/esm2022/message-box/message-box.module.mjs +4 -4
- package/esm2022/message-box/message-box.service.mjs +6 -6
- package/esm2022/notification/notification.component.mjs +8 -8
- package/esm2022/notification/notification.module.mjs +4 -4
- package/esm2022/notification/notification.property.mjs +1 -1
- package/esm2022/notification/notification.service.mjs +8 -8
- package/esm2022/outlet/outlet.directive.mjs +12 -14
- package/esm2022/outlet/outlet.module.mjs +4 -4
- package/esm2022/outlet/outlet.property.mjs +2 -2
- package/esm2022/page-header/page-header.component.mjs +12 -28
- package/esm2022/page-header/page-header.module.mjs +4 -4
- package/esm2022/page-header/page-header.property.mjs +31 -27
- package/esm2022/pagination/pagination.component.mjs +74 -100
- package/esm2022/pagination/pagination.module.mjs +4 -4
- package/esm2022/pagination/pagination.property.mjs +99 -136
- package/esm2022/pattern/pattern.component.mjs +12 -13
- package/esm2022/pattern/pattern.module.mjs +4 -4
- package/esm2022/pattern/pattern.property.mjs +2 -2
- package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
- package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
- package/esm2022/popconfirm/popconfirm.property.mjs +76 -62
- package/esm2022/popover/popover-portal.component.mjs +24 -75
- package/esm2022/popover/popover.directive.mjs +70 -86
- package/esm2022/popover/popover.module.mjs +4 -4
- package/esm2022/popover/popover.property.mjs +71 -58
- package/esm2022/portal/portal.module.mjs +4 -4
- package/esm2022/portal/portal.property.mjs +1 -1
- package/esm2022/portal/portal.service.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +173 -167
- package/esm2022/progress/progress.module.mjs +4 -4
- package/esm2022/progress/progress.property.mjs +67 -71
- package/esm2022/radio/radio.component.mjs +45 -61
- package/esm2022/radio/radio.module.mjs +4 -4
- package/esm2022/radio/radio.property.mjs +139 -66
- package/esm2022/rate/rate.component.mjs +61 -79
- package/esm2022/rate/rate.module.mjs +4 -4
- package/esm2022/rate/rate.property.mjs +121 -29
- package/esm2022/resizable/resizable.directive.mjs +30 -45
- package/esm2022/resizable/resizable.module.mjs +4 -4
- package/esm2022/resizable/resizable.property.mjs +16 -46
- package/esm2022/result/result.component.mjs +13 -17
- package/esm2022/result/result.module.mjs +4 -4
- package/esm2022/result/result.property.mjs +25 -17
- package/esm2022/ripple/ripple.directive.mjs +38 -27
- package/esm2022/ripple/ripple.module.mjs +4 -4
- package/esm2022/ripple/ripple.property.mjs +27 -20
- package/esm2022/select/select-portal.component.mjs +52 -67
- package/esm2022/select/select.component.mjs +301 -289
- package/esm2022/select/select.module.mjs +4 -4
- package/esm2022/select/select.property.mjs +195 -102
- package/esm2022/skeleton/skeleton.component.mjs +12 -23
- package/esm2022/skeleton/skeleton.module.mjs +4 -4
- package/esm2022/skeleton/skeleton.property.mjs +31 -28
- package/esm2022/slider/slider.component.mjs +103 -149
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/slider/slider.property.mjs +60 -79
- package/esm2022/slider-select/slider-select.component.mjs +201 -220
- package/esm2022/slider-select/slider-select.module.mjs +4 -4
- package/esm2022/slider-select/slider-select.property.mjs +143 -70
- package/esm2022/statistic/countdown.component.mjs +13 -16
- package/esm2022/statistic/statistic.component.mjs +23 -21
- package/esm2022/statistic/statistic.module.mjs +4 -4
- package/esm2022/statistic/statistic.property.mjs +68 -34
- package/esm2022/steps/steps.component.mjs +33 -63
- package/esm2022/steps/steps.module.mjs +4 -4
- package/esm2022/steps/steps.property.mjs +28 -39
- package/esm2022/switch/switch.component.mjs +22 -37
- package/esm2022/switch/switch.module.mjs +4 -4
- package/esm2022/switch/switch.property.mjs +122 -32
- package/esm2022/table/table-body.component.mjs +134 -139
- package/esm2022/table/table-foot.component.mjs +15 -18
- package/esm2022/table/table-head.component.mjs +60 -91
- package/esm2022/table/table.component.mjs +192 -222
- package/esm2022/table/table.module.mjs +4 -4
- package/esm2022/table/table.property.mjs +396 -341
- package/esm2022/tabs/tab-content.component.mjs +13 -16
- package/esm2022/tabs/tab-link.directive.mjs +6 -6
- package/esm2022/tabs/tab.component.mjs +9 -17
- package/esm2022/tabs/tabs.component.mjs +83 -135
- package/esm2022/tabs/tabs.module.mjs +4 -4
- package/esm2022/tabs/tabs.property.mjs +80 -91
- package/esm2022/tag/tag.component.mjs +19 -33
- package/esm2022/tag/tag.module.mjs +4 -4
- package/esm2022/tag/tag.property.mjs +44 -68
- package/esm2022/text-retract/text-retract.component.mjs +29 -46
- package/esm2022/text-retract/text-retract.module.mjs +4 -4
- package/esm2022/text-retract/text-retract.property.mjs +22 -18
- package/esm2022/textarea/textarea.component.mjs +49 -79
- package/esm2022/textarea/textarea.module.mjs +4 -4
- package/esm2022/textarea/textarea.property.mjs +124 -47
- package/esm2022/theme/theme.component.mjs +86 -81
- package/esm2022/theme/theme.module.mjs +4 -4
- package/esm2022/theme/theme.property.mjs +35 -46
- package/esm2022/time-ago/time-ago.module.mjs +4 -4
- package/esm2022/time-ago/time-ago.pipe.mjs +12 -11
- package/esm2022/time-ago/time-ago.property.mjs +2 -2
- package/esm2022/time-picker/time-picker-frame.component.mjs +173 -188
- package/esm2022/time-picker/time-picker-portal.component.mjs +35 -42
- package/esm2022/time-picker/time-picker.component.mjs +139 -170
- package/esm2022/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/time-picker/time-picker.property.mjs +158 -70
- package/esm2022/time-range/time-range.module.mjs +4 -4
- package/esm2022/time-range/time-range.pipe.mjs +10 -10
- package/esm2022/time-range/time-range.property.mjs +2 -2
- package/esm2022/timeline/timeline.component.mjs +14 -38
- package/esm2022/timeline/timeline.module.mjs +4 -4
- package/esm2022/timeline/timeline.property.mjs +30 -30
- package/esm2022/tooltip/tooltip-portal.component.mjs +51 -65
- package/esm2022/tooltip/tooltip.directive.mjs +65 -62
- package/esm2022/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/tooltip/tooltip.property.mjs +53 -47
- package/esm2022/transfer/transfer.component.mjs +225 -184
- package/esm2022/transfer/transfer.module.mjs +4 -4
- package/esm2022/transfer/transfer.property.mjs +84 -76
- package/esm2022/tree/tree-node.component.mjs +142 -132
- package/esm2022/tree/tree.component.mjs +236 -232
- package/esm2022/tree/tree.module.mjs +4 -4
- package/esm2022/tree/tree.property.mjs +228 -226
- package/esm2022/tree/tree.service.mjs +4 -4
- package/esm2022/tree-file/tree-file.component.mjs +34 -43
- package/esm2022/tree-file/tree-file.module.mjs +4 -4
- package/esm2022/tree-file/tree-file.property.mjs +45 -56
- package/esm2022/tree-select/tree-select-portal.component.mjs +45 -78
- package/esm2022/tree-select/tree-select.component.mjs +283 -296
- package/esm2022/tree-select/tree-select.module.mjs +4 -4
- package/esm2022/tree-select/tree-select.property.mjs +203 -125
- package/esm2022/typography/typography.component.mjs +13 -10
- package/esm2022/typography/typography.module.mjs +4 -4
- package/esm2022/typography/typography.property.mjs +12 -11
- package/esm2022/upload/upload-portal.component.mjs +54 -57
- package/esm2022/upload/upload.component.mjs +79 -98
- package/esm2022/upload/upload.module.mjs +4 -4
- package/esm2022/upload/upload.property.mjs +73 -68
- package/examples/examples.component.d.ts +2 -5
- package/fesm2022/ng-nest-ui-affix.mjs +30 -32
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +142 -152
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +121 -133
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +14 -17
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +296 -260
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +195 -130
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +95 -103
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +161 -96
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +286 -166
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +376 -175
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +134 -108
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +67 -36
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +365 -223
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +318 -249
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +203 -155
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +202 -106
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +316 -270
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +73 -54
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +44 -108
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +119 -123
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +985 -664
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +28 -55
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +1552 -1671
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +218 -109
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +307 -316
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +14 -15
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +20 -39
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +116 -145
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +223 -238
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +49 -46
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +14 -15
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +422 -425
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +218 -203
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +93 -81
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +5892 -3516
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +112 -120
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +244 -147
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +33 -35
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +198 -146
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +340 -292
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +78 -82
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +151 -140
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +119 -86
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +376 -400
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +94 -97
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +131 -167
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +17 -17
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +18 -18
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +16 -18
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +44 -55
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +173 -236
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +16 -17
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +110 -107
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +163 -215
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +240 -238
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +184 -127
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +182 -108
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +46 -91
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +38 -34
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +66 -48
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +547 -459
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +44 -52
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +344 -290
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +163 -228
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +102 -68
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +61 -102
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +145 -69
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +784 -800
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +185 -259
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +63 -101
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +52 -64
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +173 -126
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +123 -129
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +16 -15
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +498 -463
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +14 -14
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +44 -68
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +168 -170
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +311 -262
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +80 -99
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +527 -495
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +601 -587
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +26 -22
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +204 -220
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2022/ng-nest-ui.mjs +0 -2
- package/fesm2022/ng-nest-ui.mjs.map +1 -1
- package/find/find.component.d.ts +30 -34
- package/find/find.property.d.ts +321 -108
- package/form/control.component.d.ts +37 -18
- package/form/form.component.d.ts +8 -10
- package/form/form.property.d.ts +111 -27
- package/highlight/highlight.component.d.ts +10 -17
- package/highlight/highlight.property.d.ts +40 -11
- package/highlight/highlight.service.d.ts +8 -0
- package/highlight/public-api.d.ts +1 -0
- package/i18n/i18n.directive.d.ts +6 -9
- package/i18n/i18n.property.d.ts +6 -2
- package/i18n/i18n.service.d.ts +2 -2
- package/i18n/languages/ar_EG.d.ts +56 -0
- package/i18n/languages/bg_BG.d.ts +56 -0
- package/i18n/languages/ca_ES.d.ts +56 -0
- package/i18n/languages/cs_CZ.d.ts +56 -0
- package/i18n/languages/da_DK.d.ts +56 -0
- package/i18n/languages/de_DE.d.ts +56 -0
- package/i18n/languages/el_GR.d.ts +56 -0
- package/i18n/languages/en_GB.d.ts +3 -0
- package/i18n/languages/en_US.d.ts +3 -0
- package/i18n/languages/es_ES.d.ts +56 -0
- package/i18n/languages/et_EE.d.ts +56 -0
- package/i18n/languages/fa_IR.d.ts +56 -0
- package/i18n/languages/fi_FI.d.ts +56 -0
- package/i18n/languages/fr_BE.d.ts +60 -4
- package/i18n/languages/fr_FR.d.ts +56 -0
- package/i18n/languages/he_IL.d.ts +56 -0
- package/i18n/languages/hi_IN.d.ts +56 -0
- package/i18n/languages/hr_HR.d.ts +56 -0
- package/i18n/languages/hu_HU.d.ts +56 -0
- package/i18n/languages/hy_AM.d.ts +56 -0
- package/i18n/languages/id_ID.d.ts +56 -0
- package/i18n/languages/is_IS.d.ts +56 -0
- package/i18n/languages/it_IT.d.ts +56 -0
- package/i18n/languages/ja_JP.d.ts +56 -0
- package/i18n/languages/ka_GE.d.ts +56 -0
- package/i18n/languages/kn_IN.d.ts +56 -0
- package/i18n/languages/ko_KR.d.ts +56 -0
- package/i18n/languages/ku_IQ.d.ts +32 -0
- package/i18n/languages/lv_LV.d.ts +56 -0
- package/i18n/languages/mn_MN.d.ts +56 -0
- package/i18n/languages/ms_MY.d.ts +56 -0
- package/i18n/languages/nb_NO.d.ts +56 -0
- package/i18n/languages/ne_NP.d.ts +56 -0
- package/i18n/languages/nl_BE.d.ts +56 -0
- package/i18n/languages/nl_NL.d.ts +56 -0
- package/i18n/languages/pl_PL.d.ts +56 -0
- package/i18n/languages/pt_BR.d.ts +56 -0
- package/i18n/languages/pt_PT.d.ts +56 -0
- package/i18n/languages/ro_RO.d.ts +56 -0
- package/i18n/languages/ru_RU.d.ts +56 -0
- package/i18n/languages/sk_SK.d.ts +56 -1
- package/i18n/languages/sl_SI.d.ts +56 -0
- package/i18n/languages/sr_RS.d.ts +56 -0
- package/i18n/languages/sv_SE.d.ts +56 -0
- package/i18n/languages/ta_IN.d.ts +56 -0
- package/i18n/languages/th_TH.d.ts +56 -0
- package/i18n/languages/tr_TR.d.ts +56 -0
- package/i18n/languages/uk_UA.d.ts +56 -0
- package/i18n/languages/vi_VN.d.ts +56 -0
- package/i18n/languages/zh_CN.d.ts +3 -0
- package/i18n/languages/zh_TW.d.ts +3 -0
- package/icon/icon.component.d.ts +8 -14
- package/icon/icon.property.d.ts +31 -13
- package/icon/icon.service.d.ts +1 -1
- package/image/image-group.component.d.ts +1 -3
- package/image/image-preview.component.d.ts +11 -13
- package/image/image.component.d.ts +10 -11
- package/image/image.property.d.ts +117 -16
- package/index.d.ts +0 -2
- package/inner/inner.component.d.ts +3 -10
- package/inner/inner.property.d.ts +8 -4
- package/input/input-group.component.d.ts +0 -2
- package/input/input.component.d.ts +32 -30
- package/input/input.property.d.ts +347 -65
- package/input-number/input-number.component.d.ts +14 -19
- package/input-number/input-number.property.d.ts +292 -26
- package/keyword/keyword.directive.d.ts +4 -12
- package/keyword/keyword.property.d.ts +11 -7
- package/layout/col.component.d.ts +8 -11
- package/layout/layout.property.d.ts +25 -18
- package/layout/row.component.d.ts +7 -8
- package/link/link.component.d.ts +7 -13
- package/link/link.property.d.ts +64 -11
- package/list/list-drop-group.directive.d.ts +3 -5
- package/list/list-option.component.d.ts +7 -9
- package/list/list.component.d.ts +35 -30
- package/list/list.property.d.ts +126 -61
- package/loading/loading.component.d.ts +12 -12
- package/loading/loading.property.d.ts +20 -11
- package/menu/menu-node.component.d.ts +11 -8
- package/menu/menu.component.d.ts +18 -19
- package/menu/menu.property.d.ts +23 -28
- package/message/message.property.d.ts +1 -1
- package/notification/notification.property.d.ts +1 -1
- package/outlet/outlet.directive.d.ts +4 -4
- package/outlet/outlet.property.d.ts +1 -1
- package/package.json +78 -84
- package/page-header/page-header.component.d.ts +4 -8
- package/page-header/page-header.property.d.ts +11 -8
- package/pagination/pagination.component.d.ts +15 -22
- package/pagination/pagination.property.d.ts +34 -66
- package/pattern/pattern.component.d.ts +2 -5
- package/pattern/pattern.property.d.ts +1 -1
- package/popconfirm/popconfirm.component.d.ts +12 -14
- package/popconfirm/popconfirm.property.d.ts +32 -19
- package/popover/popover-portal.component.d.ts +16 -33
- package/popover/popover.directive.d.ts +6 -12
- package/popover/popover.property.d.ts +31 -22
- package/portal/portal.property.d.ts +2 -2
- package/portal/portal.service.d.ts +2 -2
- package/progress/progress.component.d.ts +25 -30
- package/progress/progress.property.d.ts +29 -20
- package/radio/radio.component.d.ts +14 -15
- package/radio/radio.property.d.ts +271 -31
- package/rate/rate.component.d.ts +14 -17
- package/rate/rate.property.d.ts +259 -12
- package/resizable/resizable.directive.d.ts +5 -5
- package/resizable/resizable.property.d.ts +14 -14
- package/result/result.component.d.ts +5 -7
- package/result/result.property.d.ts +11 -7
- package/ripple/ripple.directive.d.ts +5 -4
- package/ripple/ripple.property.d.ts +14 -5
- package/select/select-portal.component.d.ts +39 -43
- package/select/select.component.d.ts +53 -56
- package/select/select.property.d.ts +317 -37
- package/skeleton/skeleton.component.d.ts +4 -8
- package/skeleton/skeleton.property.d.ts +17 -8
- package/slider/slider.component.d.ts +34 -31
- package/slider/slider.property.d.ts +26 -22
- package/slider-select/slider-select.component.d.ts +38 -38
- package/slider-select/slider-select.property.d.ts +302 -28
- package/statistic/countdown.component.d.ts +2 -5
- package/statistic/statistic.component.d.ts +3 -8
- package/statistic/statistic.property.d.ts +44 -13
- package/steps/steps.component.d.ts +6 -16
- package/steps/steps.property.d.ts +15 -10
- package/style/core/index.css +0 -38
- package/style/core/index.css.map +1 -1
- package/style/core/var.scss +0 -4
- package/style/mixins/compatibility.scss +0 -1
- package/style/mixins/form.scss +8 -2
- package/style/params/index.scss +0 -1
- package/style/params/primary.scss +7 -28
- package/switch/switch.component.d.ts +9 -10
- package/switch/switch.property.d.ts +265 -16
- package/table/table-body.component.d.ts +21 -20
- package/table/table-foot.component.d.ts +7 -5
- package/table/table-head.component.d.ts +17 -19
- package/table/table.component.d.ts +62 -50
- package/table/table.property.d.ts +180 -178
- package/tabs/tab-content.component.d.ts +6 -8
- package/tabs/tab.component.d.ts +3 -5
- package/tabs/tabs.component.d.ts +17 -24
- package/tabs/tabs.property.d.ts +28 -24
- package/tag/tag.component.d.ts +7 -8
- package/tag/tag.property.d.ts +19 -21
- package/text-retract/text-retract.component.d.ts +4 -14
- package/text-retract/text-retract.property.d.ts +9 -5
- package/textarea/textarea.component.d.ts +17 -20
- package/textarea/textarea.property.d.ts +266 -30
- package/theme/theme.component.d.ts +24 -13
- package/theme/theme.property.d.ts +67 -16
- package/time-ago/time-ago.pipe.d.ts +7 -3
- package/time-ago/time-ago.property.d.ts +1 -1
- package/time-picker/time-picker-frame.component.d.ts +52 -39
- package/time-picker/time-picker-portal.component.d.ts +29 -29
- package/time-picker/time-picker.component.d.ts +29 -30
- package/time-picker/time-picker.property.d.ts +314 -23
- package/time-range/time-range.property.d.ts +1 -1
- package/timeline/timeline.component.d.ts +5 -13
- package/timeline/timeline.property.d.ts +12 -8
- package/tooltip/tooltip-portal.component.d.ts +23 -29
- package/tooltip/tooltip.directive.d.ts +10 -9
- package/tooltip/tooltip.property.d.ts +18 -14
- package/transfer/transfer.component.d.ts +23 -20
- package/transfer/transfer.property.d.ts +81 -25
- package/tree/tree-node.component.d.ts +21 -21
- package/tree/tree.component.d.ts +29 -28
- package/tree/tree.property.d.ts +129 -79
- package/tree-file/tree-file.component.d.ts +7 -9
- package/tree-file/tree-file.property.d.ts +40 -16
- package/tree-select/tree-select-portal.component.d.ts +38 -49
- package/tree-select/tree-select.component.d.ts +50 -53
- package/tree-select/tree-select.property.d.ts +328 -39
- package/typography/typography.component.d.ts +1 -1
- package/typography/typography.property.d.ts +3 -3
- package/upload/upload-portal.component.d.ts +14 -14
- package/upload/upload.component.d.ts +18 -17
- package/upload/upload.property.d.ts +73 -24
- package/border/border.component.d.ts +0 -11
- package/border/border.module.d.ts +0 -7
- package/border/border.property.d.ts +0 -6
- package/border/index.d.ts +0 -5
- package/border/public-api.d.ts +0 -3
- package/esm2022/border/border.component.mjs +0 -21
- package/esm2022/border/border.module.mjs +0 -16
- package/esm2022/border/border.property.mjs +0 -7
- package/esm2022/border/ng-nest-ui-border.mjs +0 -5
- package/esm2022/border/public-api.mjs +0 -4
- package/fesm2022/ng-nest-ui-border.mjs +0 -47
- package/fesm2022/ng-nest-ui-border.mjs.map +0 -1
- package/style/params/colors.scss +0 -38
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { XPaginationProperty } from '@ng-nest/ui/pagination';
|
|
1
|
+
import { XProperty, XPropertyFunction, XToCssPixelValue, XToBoolean, XToNumber, XToDataConvert } from '@ng-nest/ui/core';
|
|
2
|
+
import { Component, input, model, output } from '@angular/core';
|
|
3
|
+
import { XPaginationSizeData } from '@ng-nest/ui/pagination';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
/**
|
|
7
6
|
* Table
|
|
@@ -9,321 +8,394 @@ import * as i0 from "@angular/core";
|
|
|
9
8
|
* @decorator component
|
|
10
9
|
*/
|
|
11
10
|
export const XTablePrefix = 'x-table';
|
|
12
|
-
const
|
|
11
|
+
const X_TABLE_CONFIG_NAME = 'table';
|
|
13
12
|
/**
|
|
14
13
|
* Table Property
|
|
15
14
|
*/
|
|
16
|
-
export class XTableProperty extends
|
|
15
|
+
export class XTableProperty extends XPropertyFunction(X_TABLE_CONFIG_NAME) {
|
|
17
16
|
constructor() {
|
|
18
17
|
super(...arguments);
|
|
19
18
|
/**
|
|
20
19
|
* @zh_CN 行数据
|
|
21
20
|
* @en_US Row data
|
|
22
21
|
*/
|
|
23
|
-
this.data = [];
|
|
22
|
+
this.data = input([], { transform: XToDataConvert });
|
|
24
23
|
/**
|
|
25
24
|
* @zh_CN 列集合
|
|
26
25
|
* @en_US Column set
|
|
27
26
|
*/
|
|
28
|
-
this.columns = [];
|
|
27
|
+
this.columns = input([]);
|
|
29
28
|
/**
|
|
30
|
-
* @zh_CN
|
|
31
|
-
* @en_US
|
|
29
|
+
* @zh_CN 表头和行高,单位 px
|
|
30
|
+
* @en_US Header and row height, unit px
|
|
32
31
|
*/
|
|
33
|
-
this.
|
|
32
|
+
this.rowHeight = input(this.config?.rowHeight ?? 42, { transform: XToNumber });
|
|
33
|
+
/**
|
|
34
|
+
* @zh_CN 是否启用加载 loading
|
|
35
|
+
* @en_US Whether to enable loading
|
|
36
|
+
*/
|
|
37
|
+
this.loading = input(this.config?.loading ?? false, { transform: XToBoolean });
|
|
38
|
+
/**
|
|
39
|
+
* @zh_CN 是否展示列边框
|
|
40
|
+
* @en_US Whether to show column borders
|
|
41
|
+
*/
|
|
42
|
+
this.bordered = input(this.config?.bordered ?? false, { transform: XToBoolean });
|
|
43
|
+
/**
|
|
44
|
+
* @zh_CN 是否显示列头
|
|
45
|
+
* @en_US Whether to display the column headers
|
|
46
|
+
*/
|
|
47
|
+
this.showHeader = input(this.config?.showHeader ?? true, { transform: XToBoolean });
|
|
48
|
+
/**
|
|
49
|
+
* @zh_CN 列头显示位置
|
|
50
|
+
* @en_US Whether to display the column headers
|
|
51
|
+
*/
|
|
52
|
+
this.headerPosition = input(this.config?.headerPosition ?? 'top');
|
|
53
|
+
/**
|
|
54
|
+
* @zh_CN 当前选中行数据
|
|
55
|
+
* @en_US Currently selected row data
|
|
56
|
+
*/
|
|
57
|
+
this.activatedRow = model();
|
|
34
58
|
/**
|
|
35
59
|
* @zh_CN 列头自定义模板,通过 key-value 的方式指定每列的模版
|
|
36
60
|
* @en_US Column header custom template
|
|
37
61
|
*/
|
|
38
|
-
this.headColumnTpl = {};
|
|
62
|
+
this.headColumnTpl = input({});
|
|
63
|
+
/**
|
|
64
|
+
* @zh_CN 列头单元格自定义模板,优先级低于列头自定义模板
|
|
65
|
+
* @en_US Column header custom template
|
|
66
|
+
*/
|
|
67
|
+
this.headThTpl = input();
|
|
39
68
|
/**
|
|
40
69
|
* @zh_CN 列内容自定义模板,通过 key-value 的方式指定每列的模版
|
|
41
70
|
* @en_US Column content custom template
|
|
42
71
|
*/
|
|
43
|
-
this.bodyColumnTpl = {};
|
|
72
|
+
this.bodyColumnTpl = input({});
|
|
73
|
+
/**
|
|
74
|
+
* @zh_CN 单元格的自定义模板,优先级低于列内容自定义模板
|
|
75
|
+
* @en_US Custom template of cells
|
|
76
|
+
*/
|
|
77
|
+
this.bodyTdTpl = input();
|
|
78
|
+
/**
|
|
79
|
+
* @zh_CN 行条件样式
|
|
80
|
+
* @en_US Row condition class
|
|
81
|
+
*/
|
|
82
|
+
this.rowClass = input();
|
|
83
|
+
/**
|
|
84
|
+
* @zh_CN 列头搜索自定义模板
|
|
85
|
+
* @en_US Line head search custom template
|
|
86
|
+
*/
|
|
87
|
+
this.headSearchTpl = input();
|
|
44
88
|
/**
|
|
45
89
|
* @zh_CN 排序点击的事件
|
|
46
90
|
* @en_US Sort click events
|
|
47
91
|
*/
|
|
48
|
-
this.sortChange =
|
|
92
|
+
this.sortChange = output();
|
|
49
93
|
/**
|
|
50
94
|
* @zh_CN 列头 checkbox 事件
|
|
51
95
|
* @en_US head checkbox event
|
|
52
96
|
*/
|
|
53
|
-
this.headCheckboxChange =
|
|
97
|
+
this.headCheckboxChange = output();
|
|
54
98
|
/**
|
|
55
99
|
* @zh_CN body checkbox 事件
|
|
56
100
|
* @en_US head checkbox event
|
|
57
101
|
*/
|
|
58
|
-
this.bodyCheckboxChange =
|
|
102
|
+
this.bodyCheckboxChange = output();
|
|
103
|
+
/**
|
|
104
|
+
* @zh_CN 允许行点击选中当前行
|
|
105
|
+
* @en_US Allow row click to select
|
|
106
|
+
*/
|
|
107
|
+
this.allowSelectRow = input(this.config?.allowSelectRow ?? true, { transform: XToBoolean });
|
|
108
|
+
/**
|
|
109
|
+
* @zh_CN 允许行点击选中 checkbox
|
|
110
|
+
* @en_US Allow lines to click checkbox
|
|
111
|
+
*/
|
|
112
|
+
this.allowCheckRow = input(this.config?.allowCheckRow ?? true, { transform: XToBoolean });
|
|
113
|
+
/**
|
|
114
|
+
* @zh_CN 开启虚拟滚动
|
|
115
|
+
* @en_US Turn on virtual scrolling
|
|
116
|
+
*/
|
|
117
|
+
this.virtualScroll = input(this.config?.virtualScroll ?? false, { transform: XToBoolean });
|
|
118
|
+
/**
|
|
119
|
+
* @zh_CN body 数据高度
|
|
120
|
+
* @en_US body data height
|
|
121
|
+
*/
|
|
122
|
+
this.bodyHeight = input(undefined, { transform: XToNumber });
|
|
123
|
+
/**
|
|
124
|
+
* @zh_CN itemSize,对应 cdk scroll 中的参数
|
|
125
|
+
* @en_US itemSize,corresponding to the parameters in cdk scroll
|
|
126
|
+
*/
|
|
127
|
+
this.itemSize = input(this.config?.itemSize ?? 42, { transform: XToNumber });
|
|
59
128
|
/**
|
|
60
129
|
* @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数
|
|
61
130
|
* @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll
|
|
62
131
|
*/
|
|
63
|
-
this.minBufferPx = 100;
|
|
132
|
+
this.minBufferPx = input(100, { transform: XToNumber });
|
|
64
133
|
/**
|
|
65
134
|
* @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数
|
|
66
135
|
* @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll
|
|
67
136
|
*/
|
|
68
|
-
this.maxBufferPx = 200;
|
|
137
|
+
this.maxBufferPx = input(200, { transform: XToNumber });
|
|
138
|
+
/**
|
|
139
|
+
* @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值
|
|
140
|
+
* @en_US Adaptive height, table height is equal to the screen height minus the value set here
|
|
141
|
+
*/
|
|
142
|
+
this.adaptionHeight = input(undefined, { transform: XToNumber });
|
|
69
143
|
/**
|
|
70
144
|
* @zh_CN 文档高度百分比,弹窗百分比高度用到
|
|
71
145
|
* @en_US Document height percentage, used by pop-up window percentage height
|
|
72
146
|
*/
|
|
73
|
-
this.docPercent = 1;
|
|
147
|
+
this.docPercent = input(1, { transform: XToNumber });
|
|
74
148
|
/**
|
|
75
149
|
* @zh_CN checkbox 列初始选中的数据,列中激活 checkbox
|
|
76
150
|
* @en_US Checkbox column initially selected data, checkbox is activated in column
|
|
77
151
|
*/
|
|
78
|
-
this.checkedRow = {};
|
|
152
|
+
this.checkedRow = input({});
|
|
79
153
|
/**
|
|
80
154
|
* @zh_CN 如果 data 是函数类型,可以通过此参数控制请求,常用于弹框中的表格,弹出后再请求
|
|
81
155
|
* @en_US If data is a function type, you can use this parameter to control the request, which is often used in the form in the pop-up box, and then request it after it pops up
|
|
82
156
|
*/
|
|
83
|
-
this.manual = true;
|
|
157
|
+
this.manual = model(true);
|
|
84
158
|
/**
|
|
85
|
-
* @zh_CN
|
|
86
|
-
* @en_US
|
|
159
|
+
* @zh_CN 滚动区域高宽
|
|
160
|
+
* @en_US Height and width of rolling area
|
|
87
161
|
*/
|
|
88
|
-
this.
|
|
162
|
+
this.scroll = input();
|
|
163
|
+
/**
|
|
164
|
+
* @zh_CN 表格页头
|
|
165
|
+
* @en_US Table header
|
|
166
|
+
*/
|
|
167
|
+
this.header = input();
|
|
168
|
+
/**
|
|
169
|
+
* @zh_CN 表格页尾
|
|
170
|
+
* @en_US Table footer
|
|
171
|
+
*/
|
|
172
|
+
this.footer = input();
|
|
173
|
+
/**
|
|
174
|
+
* @zh_CN 单元格配置
|
|
175
|
+
* @en_US Cell config
|
|
176
|
+
*/
|
|
177
|
+
this.cellConfig = input();
|
|
178
|
+
/**
|
|
179
|
+
* @zh_CN 尺寸
|
|
180
|
+
* @en_US Size
|
|
181
|
+
*/
|
|
182
|
+
this.rowSize = input(this.config?.rowSize ?? 'medium');
|
|
89
183
|
/**
|
|
90
184
|
* @zh_CN 分页器位置
|
|
91
185
|
* @en_US Pagination position
|
|
92
186
|
*/
|
|
93
|
-
this.paginationPosition = 'bottom-left';
|
|
187
|
+
this.paginationPosition = input('bottom-left');
|
|
188
|
+
/**
|
|
189
|
+
* @zh_CN 隐藏表格外边框
|
|
190
|
+
* @en_US Hidden table wrap border
|
|
191
|
+
*/
|
|
192
|
+
this.hiddenWrapBorder = input(this.config?.hiddenWrapBorder ?? false, {
|
|
193
|
+
transform: XToBoolean
|
|
194
|
+
});
|
|
195
|
+
/**
|
|
196
|
+
* @zh_CN 隐藏分页器按钮边框
|
|
197
|
+
* @en_US Hidden pagination button border
|
|
198
|
+
*/
|
|
199
|
+
this.hiddenPaginationBorder = input(this.config?.hiddenPaginationBorder ?? false, {
|
|
200
|
+
transform: XToBoolean
|
|
201
|
+
});
|
|
202
|
+
/**
|
|
203
|
+
* @zh_CN 显示分页器
|
|
204
|
+
* @en_US Pagination position
|
|
205
|
+
*/
|
|
206
|
+
this.showPagination = input(this.config?.showPagination ?? true, {
|
|
207
|
+
transform: XToBoolean
|
|
208
|
+
});
|
|
209
|
+
/**
|
|
210
|
+
* @zh_CN 树形表格
|
|
211
|
+
* @en_US Tree table
|
|
212
|
+
*/
|
|
213
|
+
this.treeTable = input(this.config?.treeTable ?? true, {
|
|
214
|
+
transform: XToBoolean
|
|
215
|
+
});
|
|
216
|
+
/**
|
|
217
|
+
* @zh_CN 树形表格展开所有节点
|
|
218
|
+
* @en_US Tree table
|
|
219
|
+
*/
|
|
220
|
+
this.expandedAll = input(this.config?.expandedAll ?? false, {
|
|
221
|
+
transform: XToBoolean
|
|
222
|
+
});
|
|
223
|
+
/**
|
|
224
|
+
* @zh_CN 默认展开的层级,-1 不展开
|
|
225
|
+
* @en_US Default expanded level
|
|
226
|
+
*/
|
|
227
|
+
this.expandedLevel = input(this.config?.expandedLevel ?? -1, {
|
|
228
|
+
transform: XToNumber
|
|
229
|
+
});
|
|
94
230
|
/**
|
|
95
231
|
* @zh_CN 展开的节点
|
|
96
232
|
* @en_US Expanded node
|
|
97
233
|
*/
|
|
98
|
-
this.expanded = [];
|
|
234
|
+
this.expanded = input([]);
|
|
235
|
+
/**
|
|
236
|
+
* @zh_CN 自定义展开内容
|
|
237
|
+
* @en_US Customized expansion content
|
|
238
|
+
*/
|
|
239
|
+
this.expandTpl = input();
|
|
240
|
+
/**
|
|
241
|
+
* @zh_CN 显示数据为空的提示
|
|
242
|
+
* @en_US Display a prompt with empty data
|
|
243
|
+
*/
|
|
244
|
+
this.showEmpty = input(this.config?.showEmpty ?? true, {
|
|
245
|
+
transform: XToBoolean
|
|
246
|
+
});
|
|
247
|
+
/**
|
|
248
|
+
* @zh_CN 数据为空的提示图片地址或自定义模板
|
|
249
|
+
* @en_US Picture address or custom template
|
|
250
|
+
*/
|
|
251
|
+
this.emptyImg = input(this.config?.emptyImg ?? undefined);
|
|
252
|
+
/**
|
|
253
|
+
* @zh_CN 数据为空的提示内容或自定义模板
|
|
254
|
+
* @en_US Content or custom template
|
|
255
|
+
*/
|
|
256
|
+
this.emptyContent = input(this.config?.emptyContent ?? undefined);
|
|
257
|
+
/**
|
|
258
|
+
* @zh_CN 当前页码
|
|
259
|
+
* @en_US Current page number
|
|
260
|
+
*/
|
|
261
|
+
this.index = model(this.config?.index ?? 1);
|
|
262
|
+
/**
|
|
263
|
+
* @zh_CN 每页显示条数
|
|
264
|
+
* @en_US Number of items displayed per page
|
|
265
|
+
*/
|
|
266
|
+
this.size = model(this.config?.size ?? 10);
|
|
267
|
+
/**
|
|
268
|
+
* @zh_CN 总数
|
|
269
|
+
* @en_US Total
|
|
270
|
+
*/
|
|
271
|
+
this.total = model(0);
|
|
272
|
+
/**
|
|
273
|
+
* @zh_CN 查询条件
|
|
274
|
+
* @en_US Query conditions
|
|
275
|
+
*/
|
|
276
|
+
this.query = model({});
|
|
277
|
+
/**
|
|
278
|
+
* @zh_CN 最多显示的分页数量
|
|
279
|
+
* @en_US The largest number of pages display
|
|
280
|
+
*/
|
|
281
|
+
this.pageLinkSize = input(this.config?.pageLinkSize ?? 5, { transform: XToNumber });
|
|
282
|
+
/**
|
|
283
|
+
* @zh_CN 显示首尾页跳转
|
|
284
|
+
* @en_US Display the first and last page
|
|
285
|
+
*/
|
|
286
|
+
this.showEllipsis = input(this.config?.showEllipsis ?? true, { transform: XToBoolean });
|
|
287
|
+
/**
|
|
288
|
+
* @zh_CN 显示总条数
|
|
289
|
+
* @en_US Display the total
|
|
290
|
+
*/
|
|
291
|
+
this.showTotal = input(this.config?.showTotal ?? true, { transform: XToBoolean });
|
|
292
|
+
/**
|
|
293
|
+
* @zh_CN 按钮间距
|
|
294
|
+
* @en_US Button spacing
|
|
295
|
+
*/
|
|
296
|
+
this.space = input(this.config?.space ?? '0.25rem', { transform: XToCssPixelValue });
|
|
297
|
+
/**
|
|
298
|
+
* @zh_CN 添加背景色
|
|
299
|
+
* @en_US Show background
|
|
300
|
+
*/
|
|
301
|
+
this.showBackground = input(this.config?.showBackground ?? false, { transform: XToBoolean });
|
|
302
|
+
/**
|
|
303
|
+
* @zh_CN 显示分页条数
|
|
304
|
+
* @en_US Show size
|
|
305
|
+
*/
|
|
306
|
+
this.showSize = input(this.config?.showSize ?? false, { transform: XToBoolean });
|
|
307
|
+
/**
|
|
308
|
+
* @zh_CN 分页条数选择框的宽度
|
|
309
|
+
* @en_US size with select
|
|
310
|
+
*/
|
|
311
|
+
this.sizeWidth = input(this.config?.sizeWidth ?? '6.875rem', { transform: XToCssPixelValue });
|
|
312
|
+
/**
|
|
313
|
+
* @zh_CN 显示输入分页条数(不能跟下拉选项同时使用)
|
|
314
|
+
* @en_US Display the number of input page breaks (cannot exist with the drop-down options of page breaks)
|
|
315
|
+
*/
|
|
316
|
+
this.showInputSize = input(this.config?.showInputSize ?? false, { transform: XToBoolean });
|
|
317
|
+
/**
|
|
318
|
+
* @zh_CN 分页条数输入框的宽度
|
|
319
|
+
* @en_US size with input
|
|
320
|
+
*/
|
|
321
|
+
this.inputSizeWidth = input(this.config?.sizeWidth ?? '3.125rem', {
|
|
322
|
+
transform: XToCssPixelValue
|
|
323
|
+
});
|
|
324
|
+
/**
|
|
325
|
+
* @zh_CN 分页选择的数据项
|
|
326
|
+
* @en_US Paging choose items of data
|
|
327
|
+
*/
|
|
328
|
+
this.sizeData = input(this.config?.sizeData ?? XPaginationSizeData);
|
|
329
|
+
/**
|
|
330
|
+
* @zh_CN 禁用整个分页
|
|
331
|
+
* @en_US disabled
|
|
332
|
+
*/
|
|
333
|
+
this.disabled = input(false, { transform: XToBoolean });
|
|
334
|
+
/**
|
|
335
|
+
* @zh_CN 显示跳转输入框
|
|
336
|
+
* @en_US Show size
|
|
337
|
+
*/
|
|
338
|
+
this.showJump = input(false, { transform: XToBoolean });
|
|
339
|
+
/**
|
|
340
|
+
* @zh_CN 跳转页的宽度
|
|
341
|
+
* @en_US size with
|
|
342
|
+
*/
|
|
343
|
+
this.jumpWidth = input(this.config?.jumpWidth ?? '3.125rem', { transform: XToCssPixelValue });
|
|
344
|
+
/**
|
|
345
|
+
* @zh_CN 总数自定义模板
|
|
346
|
+
* @en_US Total template
|
|
347
|
+
*/
|
|
348
|
+
this.totalTpl = input();
|
|
349
|
+
/**
|
|
350
|
+
* @zh_CN 简单分页
|
|
351
|
+
* @en_US Simple
|
|
352
|
+
*/
|
|
353
|
+
this.simple = input(this.config?.simple ?? false, { transform: XToBoolean });
|
|
354
|
+
/**
|
|
355
|
+
* @zh_CN 简单分页输入框宽度
|
|
356
|
+
* @en_US Simple index with
|
|
357
|
+
*/
|
|
358
|
+
this.simpleIndexWidth = input(this.config?.simpleIndexWidth ?? '8.125rem', {
|
|
359
|
+
transform: XToCssPixelValue
|
|
360
|
+
});
|
|
99
361
|
/**
|
|
100
362
|
* @zh_CN 列头拖动开始事件,返回拖动的列
|
|
101
363
|
* @en_US Column Header Drag End Event
|
|
102
364
|
*/
|
|
103
|
-
this.columnDragStarted =
|
|
365
|
+
this.columnDragStarted = output();
|
|
104
366
|
/**
|
|
105
367
|
* @zh_CN 列头拖动结束事件,返回拖动的列
|
|
106
368
|
* @en_US The column header is dragging, and the event is triggered when the order is changed
|
|
107
369
|
*/
|
|
108
|
-
this.columnDragEnded =
|
|
370
|
+
this.columnDragEnded = output();
|
|
109
371
|
/**
|
|
110
372
|
* @zh_CN 当用户把一个条目投放进该容器时就会触发,拖动放开的事件,返回拖动排序后的列数据
|
|
111
373
|
* @en_US The column header is dragging, and the event is triggered when the order is changed
|
|
112
374
|
*/
|
|
113
|
-
this.columnDropListDropped =
|
|
375
|
+
this.columnDropListDropped = output();
|
|
114
376
|
/**
|
|
115
377
|
* @zh_CN 开始拖动列宽的事件
|
|
116
378
|
* @en_US Event to started drag column width
|
|
117
379
|
*/
|
|
118
|
-
this.columnDragWidthStarted =
|
|
380
|
+
this.columnDragWidthStarted = output();
|
|
119
381
|
/**
|
|
120
382
|
* @zh_CN 正在拖动列宽时的事件
|
|
121
383
|
* @en_US Event to moved drag column width
|
|
122
384
|
*/
|
|
123
|
-
this.columnDragWidthMoved =
|
|
385
|
+
this.columnDragWidthMoved = output();
|
|
124
386
|
/**
|
|
125
387
|
* @zh_CN 结束拖动列宽的事件
|
|
126
388
|
* @en_US Event to ended drag column width
|
|
127
389
|
*/
|
|
128
|
-
this.columnDragWidthEnded =
|
|
390
|
+
this.columnDragWidthEnded = output();
|
|
129
391
|
}
|
|
130
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
131
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
392
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
393
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTableProperty, selector: "x-table-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, headerPosition: { classPropertyName: "headerPosition", publicName: "headerPosition", isSignal: true, isRequired: false, transformFunction: null }, activatedRow: { classPropertyName: "activatedRow", publicName: "activatedRow", isSignal: true, isRequired: false, transformFunction: null }, headColumnTpl: { classPropertyName: "headColumnTpl", publicName: "headColumnTpl", isSignal: true, isRequired: false, transformFunction: null }, headThTpl: { classPropertyName: "headThTpl", publicName: "headThTpl", isSignal: true, isRequired: false, transformFunction: null }, bodyColumnTpl: { classPropertyName: "bodyColumnTpl", publicName: "bodyColumnTpl", isSignal: true, isRequired: false, transformFunction: null }, bodyTdTpl: { classPropertyName: "bodyTdTpl", publicName: "bodyTdTpl", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, headSearchTpl: { classPropertyName: "headSearchTpl", publicName: "headSearchTpl", isSignal: true, isRequired: false, transformFunction: null }, allowSelectRow: { classPropertyName: "allowSelectRow", publicName: "allowSelectRow", isSignal: true, isRequired: false, transformFunction: null }, allowCheckRow: { classPropertyName: "allowCheckRow", publicName: "allowCheckRow", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, bodyHeight: { classPropertyName: "bodyHeight", publicName: "bodyHeight", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, adaptionHeight: { classPropertyName: "adaptionHeight", publicName: "adaptionHeight", isSignal: true, isRequired: false, transformFunction: null }, docPercent: { classPropertyName: "docPercent", publicName: "docPercent", isSignal: true, isRequired: false, transformFunction: null }, checkedRow: { classPropertyName: "checkedRow", publicName: "checkedRow", isSignal: true, isRequired: false, transformFunction: null }, manual: { classPropertyName: "manual", publicName: "manual", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, rowSize: { classPropertyName: "rowSize", publicName: "rowSize", isSignal: true, isRequired: false, transformFunction: null }, paginationPosition: { classPropertyName: "paginationPosition", publicName: "paginationPosition", isSignal: true, isRequired: false, transformFunction: null }, hiddenWrapBorder: { classPropertyName: "hiddenWrapBorder", publicName: "hiddenWrapBorder", isSignal: true, isRequired: false, transformFunction: null }, hiddenPaginationBorder: { classPropertyName: "hiddenPaginationBorder", publicName: "hiddenPaginationBorder", isSignal: true, isRequired: false, transformFunction: null }, showPagination: { classPropertyName: "showPagination", publicName: "showPagination", isSignal: true, isRequired: false, transformFunction: null }, treeTable: { classPropertyName: "treeTable", publicName: "treeTable", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandedLevel: { classPropertyName: "expandedLevel", publicName: "expandedLevel", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, expandTpl: { classPropertyName: "expandTpl", publicName: "expandTpl", isSignal: true, isRequired: false, transformFunction: null }, showEmpty: { classPropertyName: "showEmpty", publicName: "showEmpty", isSignal: true, isRequired: false, transformFunction: null }, emptyImg: { classPropertyName: "emptyImg", publicName: "emptyImg", isSignal: true, isRequired: false, transformFunction: null }, emptyContent: { classPropertyName: "emptyContent", publicName: "emptyContent", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, pageLinkSize: { classPropertyName: "pageLinkSize", publicName: "pageLinkSize", isSignal: true, isRequired: false, transformFunction: null }, showEllipsis: { classPropertyName: "showEllipsis", publicName: "showEllipsis", isSignal: true, isRequired: false, transformFunction: null }, showTotal: { classPropertyName: "showTotal", publicName: "showTotal", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, showBackground: { classPropertyName: "showBackground", publicName: "showBackground", isSignal: true, isRequired: false, transformFunction: null }, showSize: { classPropertyName: "showSize", publicName: "showSize", isSignal: true, isRequired: false, transformFunction: null }, sizeWidth: { classPropertyName: "sizeWidth", publicName: "sizeWidth", isSignal: true, isRequired: false, transformFunction: null }, showInputSize: { classPropertyName: "showInputSize", publicName: "showInputSize", isSignal: true, isRequired: false, transformFunction: null }, inputSizeWidth: { classPropertyName: "inputSizeWidth", publicName: "inputSizeWidth", isSignal: true, isRequired: false, transformFunction: null }, sizeData: { classPropertyName: "sizeData", publicName: "sizeData", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showJump: { classPropertyName: "showJump", publicName: "showJump", isSignal: true, isRequired: false, transformFunction: null }, jumpWidth: { classPropertyName: "jumpWidth", publicName: "jumpWidth", isSignal: true, isRequired: false, transformFunction: null }, totalTpl: { classPropertyName: "totalTpl", publicName: "totalTpl", isSignal: true, isRequired: false, transformFunction: null }, simple: { classPropertyName: "simple", publicName: "simple", isSignal: true, isRequired: false, transformFunction: null }, simpleIndexWidth: { classPropertyName: "simpleIndexWidth", publicName: "simpleIndexWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedRow: "activatedRowChange", sortChange: "sortChange", headCheckboxChange: "headCheckboxChange", bodyCheckboxChange: "bodyCheckboxChange", manual: "manualChange", index: "indexChange", size: "sizeChange", total: "totalChange", query: "queryChange", columnDragStarted: "columnDragStarted", columnDragEnded: "columnDragEnded", columnDropListDropped: "columnDropListDropped", columnDragWidthStarted: "columnDragWidthStarted", columnDragWidthMoved: "columnDragWidthMoved", columnDragWidthEnded: "columnDragWidthEnded" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
132
394
|
}
|
|
133
|
-
|
|
134
|
-
XWithConfig(X_CONFIG_NAME, 42),
|
|
135
|
-
XInputNumber()
|
|
136
|
-
], XTableProperty.prototype, "rowHeight", void 0);
|
|
137
|
-
__decorate([
|
|
138
|
-
XWithConfig(X_CONFIG_NAME, false),
|
|
139
|
-
XInputBoolean()
|
|
140
|
-
], XTableProperty.prototype, "loading", void 0);
|
|
141
|
-
__decorate([
|
|
142
|
-
XWithConfig(X_CONFIG_NAME, false),
|
|
143
|
-
XInputBoolean()
|
|
144
|
-
], XTableProperty.prototype, "bordered", void 0);
|
|
145
|
-
__decorate([
|
|
146
|
-
XWithConfig(X_CONFIG_NAME, true),
|
|
147
|
-
XInputBoolean()
|
|
148
|
-
], XTableProperty.prototype, "showHeader", void 0);
|
|
149
|
-
__decorate([
|
|
150
|
-
XWithConfig(X_CONFIG_NAME, 'top')
|
|
151
|
-
], XTableProperty.prototype, "headerPosition", void 0);
|
|
152
|
-
__decorate([
|
|
153
|
-
XWithConfig(X_CONFIG_NAME, true),
|
|
154
|
-
XInputBoolean()
|
|
155
|
-
], XTableProperty.prototype, "allowSelectRow", void 0);
|
|
156
|
-
__decorate([
|
|
157
|
-
XWithConfig(X_CONFIG_NAME, true),
|
|
158
|
-
XInputBoolean()
|
|
159
|
-
], XTableProperty.prototype, "allowCheckRow", void 0);
|
|
160
|
-
__decorate([
|
|
161
|
-
XWithConfig(X_CONFIG_NAME),
|
|
162
|
-
XInputBoolean()
|
|
163
|
-
], XTableProperty.prototype, "virtualScroll", void 0);
|
|
164
|
-
__decorate([
|
|
165
|
-
XInputNumber()
|
|
166
|
-
], XTableProperty.prototype, "bodyHeight", void 0);
|
|
167
|
-
__decorate([
|
|
168
|
-
XWithConfig(X_CONFIG_NAME, 42),
|
|
169
|
-
XInputNumber()
|
|
170
|
-
], XTableProperty.prototype, "itemSize", void 0);
|
|
171
|
-
__decorate([
|
|
172
|
-
XInputNumber()
|
|
173
|
-
], XTableProperty.prototype, "adaptionHeight", void 0);
|
|
174
|
-
__decorate([
|
|
175
|
-
XInputNumber()
|
|
176
|
-
], XTableProperty.prototype, "docPercent", void 0);
|
|
177
|
-
__decorate([
|
|
178
|
-
XInputBoolean()
|
|
179
|
-
], XTableProperty.prototype, "manual", void 0);
|
|
180
|
-
__decorate([
|
|
181
|
-
XWithConfig(X_CONFIG_NAME, 'medium')
|
|
182
|
-
], XTableProperty.prototype, "rowSize", void 0);
|
|
183
|
-
__decorate([
|
|
184
|
-
XWithConfig(X_CONFIG_NAME, false),
|
|
185
|
-
XInputBoolean()
|
|
186
|
-
], XTableProperty.prototype, "hiddenWrapBorder", void 0);
|
|
187
|
-
__decorate([
|
|
188
|
-
XWithConfig(X_CONFIG_NAME, false),
|
|
189
|
-
XInputBoolean()
|
|
190
|
-
], XTableProperty.prototype, "hiddenPaginationBorder", void 0);
|
|
191
|
-
__decorate([
|
|
192
|
-
XWithConfig(X_CONFIG_NAME, true),
|
|
193
|
-
XInputBoolean()
|
|
194
|
-
], XTableProperty.prototype, "showPagination", void 0);
|
|
195
|
-
__decorate([
|
|
196
|
-
XWithConfig(X_CONFIG_NAME, false),
|
|
197
|
-
XInputBoolean()
|
|
198
|
-
], XTableProperty.prototype, "treeTable", void 0);
|
|
199
|
-
__decorate([
|
|
200
|
-
XWithConfig(X_CONFIG_NAME, false),
|
|
201
|
-
XInputBoolean()
|
|
202
|
-
], XTableProperty.prototype, "expandedAll", void 0);
|
|
203
|
-
__decorate([
|
|
204
|
-
XWithConfig(X_CONFIG_NAME, -1),
|
|
205
|
-
XInputNumber()
|
|
206
|
-
], XTableProperty.prototype, "expandedLevel", void 0);
|
|
207
|
-
__decorate([
|
|
208
|
-
XWithConfig(X_CONFIG_NAME, true),
|
|
209
|
-
XInputBoolean()
|
|
210
|
-
], XTableProperty.prototype, "showEmpty", void 0);
|
|
211
|
-
__decorate([
|
|
212
|
-
XWithConfig(X_CONFIG_NAME)
|
|
213
|
-
], XTableProperty.prototype, "emptyImg", void 0);
|
|
214
|
-
__decorate([
|
|
215
|
-
XWithConfig(X_CONFIG_NAME)
|
|
216
|
-
], XTableProperty.prototype, "emptyContent", void 0);
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: XTableProperty, decorators: [{
|
|
395
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableProperty, decorators: [{
|
|
218
396
|
type: Component,
|
|
219
397
|
args: [{ selector: `${XTablePrefix}-property`, template: '' }]
|
|
220
|
-
}]
|
|
221
|
-
type: Input
|
|
222
|
-
}], columns: [{
|
|
223
|
-
type: Input
|
|
224
|
-
}], rowHeight: [{
|
|
225
|
-
type: Input
|
|
226
|
-
}], loading: [{
|
|
227
|
-
type: Input
|
|
228
|
-
}], bordered: [{
|
|
229
|
-
type: Input
|
|
230
|
-
}], showHeader: [{
|
|
231
|
-
type: Input
|
|
232
|
-
}], headerPosition: [{
|
|
233
|
-
type: Input
|
|
234
|
-
}], activatedRow: [{
|
|
235
|
-
type: Input
|
|
236
|
-
}], activatedRowChange: [{
|
|
237
|
-
type: Output
|
|
238
|
-
}], headColumnTpl: [{
|
|
239
|
-
type: Input
|
|
240
|
-
}], headThTpl: [{
|
|
241
|
-
type: Input
|
|
242
|
-
}], bodyColumnTpl: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], bodyTdTpl: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], rowClass: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], headSearchTpl: [{
|
|
249
|
-
type: Input
|
|
250
|
-
}], sortChange: [{
|
|
251
|
-
type: Output
|
|
252
|
-
}], headCheckboxChange: [{
|
|
253
|
-
type: Output
|
|
254
|
-
}], bodyCheckboxChange: [{
|
|
255
|
-
type: Output
|
|
256
|
-
}], allowSelectRow: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], allowCheckRow: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}], virtualScroll: [{
|
|
261
|
-
type: Input
|
|
262
|
-
}], bodyHeight: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], itemSize: [{
|
|
265
|
-
type: Input
|
|
266
|
-
}], minBufferPx: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}], maxBufferPx: [{
|
|
269
|
-
type: Input
|
|
270
|
-
}], adaptionHeight: [{
|
|
271
|
-
type: Input
|
|
272
|
-
}], docPercent: [{
|
|
273
|
-
type: Input
|
|
274
|
-
}], checkedRow: [{
|
|
275
|
-
type: Input
|
|
276
|
-
}], manual: [{
|
|
277
|
-
type: Input
|
|
278
|
-
}], scroll: [{
|
|
279
|
-
type: Input
|
|
280
|
-
}], header: [{
|
|
281
|
-
type: Input
|
|
282
|
-
}], footer: [{
|
|
283
|
-
type: Input
|
|
284
|
-
}], manualChange: [{
|
|
285
|
-
type: Output
|
|
286
|
-
}], cellConfig: [{
|
|
287
|
-
type: Input
|
|
288
|
-
}], rowSize: [{
|
|
289
|
-
type: Input
|
|
290
|
-
}], paginationPosition: [{
|
|
291
|
-
type: Input
|
|
292
|
-
}], hiddenWrapBorder: [{
|
|
293
|
-
type: Input
|
|
294
|
-
}], hiddenPaginationBorder: [{
|
|
295
|
-
type: Input
|
|
296
|
-
}], showPagination: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}], treeTable: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], expandedAll: [{
|
|
301
|
-
type: Input
|
|
302
|
-
}], expandedLevel: [{
|
|
303
|
-
type: Input
|
|
304
|
-
}], expanded: [{
|
|
305
|
-
type: Input
|
|
306
|
-
}], expandTpl: [{
|
|
307
|
-
type: Input
|
|
308
|
-
}], showEmpty: [{
|
|
309
|
-
type: Input
|
|
310
|
-
}], emptyImg: [{
|
|
311
|
-
type: Input
|
|
312
|
-
}], emptyContent: [{
|
|
313
|
-
type: Input
|
|
314
|
-
}], columnDragStarted: [{
|
|
315
|
-
type: Output
|
|
316
|
-
}], columnDragEnded: [{
|
|
317
|
-
type: Output
|
|
318
|
-
}], columnDropListDropped: [{
|
|
319
|
-
type: Output
|
|
320
|
-
}], columnDragWidthStarted: [{
|
|
321
|
-
type: Output
|
|
322
|
-
}], columnDragWidthMoved: [{
|
|
323
|
-
type: Output
|
|
324
|
-
}], columnDragWidthEnded: [{
|
|
325
|
-
type: Output
|
|
326
|
-
}] } });
|
|
398
|
+
}] });
|
|
327
399
|
/**
|
|
328
400
|
* Table Head
|
|
329
401
|
* @selector x-table-head
|
|
@@ -340,42 +412,45 @@ export class XTableHeadProperty extends XProperty {
|
|
|
340
412
|
* @zh_CN 列集合
|
|
341
413
|
* @en_US Column set
|
|
342
414
|
*/
|
|
343
|
-
this.columns = [];
|
|
415
|
+
this.columns = input([]);
|
|
344
416
|
/**
|
|
345
417
|
* @zh_CN 高度,单位 px
|
|
346
418
|
* @en_US Height in px
|
|
347
419
|
*/
|
|
348
|
-
this.rowHeight = 42;
|
|
420
|
+
this.rowHeight = input(42, { transform: XToNumber });
|
|
349
421
|
/**
|
|
350
422
|
* @zh_CN 自定义模板
|
|
351
423
|
* @en_US Custom template
|
|
352
424
|
*/
|
|
353
|
-
this.columnTpl = {};
|
|
425
|
+
this.columnTpl = input({});
|
|
426
|
+
/**
|
|
427
|
+
* @zh_CN 竖向滚动条宽度
|
|
428
|
+
* @en_US Vertical scroll bar width
|
|
429
|
+
*/
|
|
430
|
+
this.scrollYWidth = input(null, { transform: XToNumber });
|
|
431
|
+
/**
|
|
432
|
+
* @zh_CN 横向滚动条宽度
|
|
433
|
+
* @en_US Horizontal scroll bar width
|
|
434
|
+
*/
|
|
435
|
+
this.scrollXWidth = input(null, { transform: XToNumber });
|
|
436
|
+
/**
|
|
437
|
+
* @zh_CN 单元格配置
|
|
438
|
+
* @en_US Cell merge rules
|
|
439
|
+
*/
|
|
440
|
+
this.cellConfig = input();
|
|
441
|
+
/**
|
|
442
|
+
* @zh_CN 显示的位置
|
|
443
|
+
* @en_US Display position
|
|
444
|
+
*/
|
|
445
|
+
this.position = input();
|
|
354
446
|
}
|
|
355
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
356
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
447
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableHeadProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
448
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTableHeadProperty, selector: "x-table-head-property", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, columnTpl: { classPropertyName: "columnTpl", publicName: "columnTpl", isSignal: true, isRequired: false, transformFunction: null }, scrollYWidth: { classPropertyName: "scrollYWidth", publicName: "scrollYWidth", isSignal: true, isRequired: false, transformFunction: null }, scrollXWidth: { classPropertyName: "scrollXWidth", publicName: "scrollXWidth", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
357
449
|
}
|
|
358
|
-
|
|
359
|
-
XInputNumber()
|
|
360
|
-
], XTableHeadProperty.prototype, "rowHeight", void 0);
|
|
361
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: XTableHeadProperty, decorators: [{
|
|
450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableHeadProperty, decorators: [{
|
|
362
451
|
type: Component,
|
|
363
452
|
args: [{ selector: `${XTableHeadPrefix}-property`, template: '' }]
|
|
364
|
-
}]
|
|
365
|
-
type: Input
|
|
366
|
-
}], rowHeight: [{
|
|
367
|
-
type: Input
|
|
368
|
-
}], columnTpl: [{
|
|
369
|
-
type: Input
|
|
370
|
-
}], scrollYWidth: [{
|
|
371
|
-
type: Input
|
|
372
|
-
}], scrollXWidth: [{
|
|
373
|
-
type: Input
|
|
374
|
-
}], cellConfig: [{
|
|
375
|
-
type: Input
|
|
376
|
-
}], position: [{
|
|
377
|
-
type: Input
|
|
378
|
-
}] } });
|
|
453
|
+
}] });
|
|
379
454
|
/**
|
|
380
455
|
* Table Body
|
|
381
456
|
* @selector x-table-body
|
|
@@ -392,134 +467,105 @@ export class XTableBodyProperty extends XProperty {
|
|
|
392
467
|
* @zh_CN 行数据
|
|
393
468
|
* @en_US Row data
|
|
394
469
|
*/
|
|
395
|
-
this.data = [];
|
|
470
|
+
this.data = input([]);
|
|
396
471
|
/**
|
|
397
472
|
* @zh_CN 列集合
|
|
398
473
|
* @en_US Column set
|
|
399
474
|
*/
|
|
400
|
-
this.columns = [];
|
|
475
|
+
this.columns = input([]);
|
|
401
476
|
/**
|
|
402
477
|
* @zh_CN 自定义模板
|
|
403
478
|
* @en_US Custom template
|
|
404
479
|
*/
|
|
405
|
-
this.columnTpl = {};
|
|
480
|
+
this.columnTpl = input({});
|
|
406
481
|
/**
|
|
407
|
-
* @zh_CN
|
|
408
|
-
* @en_US
|
|
482
|
+
* @zh_CN 当前选中行数据
|
|
483
|
+
* @en_US Currently selected row data
|
|
409
484
|
*/
|
|
410
|
-
this.
|
|
485
|
+
this.activatedRow = model();
|
|
411
486
|
/**
|
|
412
487
|
* @zh_CN 高度,单位 px。设置为 0 表示行高自适应内容高度。
|
|
413
488
|
* @en_US Height in px. set to 0 means that the row height is adaptive to the content height
|
|
414
489
|
*/
|
|
415
|
-
this.rowHeight = 42;
|
|
490
|
+
this.rowHeight = input(42, { transform: XToNumber });
|
|
491
|
+
/**
|
|
492
|
+
* @zh_CN body 数据高度
|
|
493
|
+
* @en_US body data height
|
|
494
|
+
*/
|
|
495
|
+
this.bodyHeight = input(null, { transform: XToNumber });
|
|
416
496
|
/**
|
|
417
497
|
* @zh_CN 允许行点击选中
|
|
418
498
|
* @en_US Allow row click to select
|
|
419
499
|
*/
|
|
420
|
-
this.allowSelectRow = true;
|
|
500
|
+
this.allowSelectRow = input(true, { transform: XToBoolean });
|
|
421
501
|
/**
|
|
422
502
|
* @zh_CN 开启虚拟滚动
|
|
423
503
|
* @en_US Turn on virtual scrolling
|
|
424
504
|
*/
|
|
425
|
-
this.virtualScroll = false;
|
|
505
|
+
this.virtualScroll = input(false, { transform: XToBoolean });
|
|
426
506
|
/**
|
|
427
507
|
* @zh_CN itemSize,对应 cdk scroll 中的参数
|
|
428
508
|
* @en_US itemSize,corresponding to the parameters in cdk scroll
|
|
429
509
|
*/
|
|
430
|
-
this.itemSize = 42;
|
|
510
|
+
this.itemSize = input(42, { transform: XToNumber });
|
|
431
511
|
/**
|
|
432
512
|
* @zh_CN 超出可视窗口缓冲区的最小值,对应 cdk scroll 中的参数
|
|
433
513
|
* @en_US Exceed the minimum value of the visible window buffer, corresponding to the parameters in cdk scroll
|
|
434
514
|
*/
|
|
435
|
-
this.minBufferPx = 100;
|
|
515
|
+
this.minBufferPx = input(100, { transform: XToNumber });
|
|
436
516
|
/**
|
|
437
517
|
* @zh_CN 渲染新数据缓冲区的像素,对应 cdk scroll 中的参数
|
|
438
518
|
* @en_US Render the pixels of the new data buffer, corresponding to the parameters in cdk scroll
|
|
439
519
|
*/
|
|
440
|
-
this.maxBufferPx = 200;
|
|
520
|
+
this.maxBufferPx = input(200, { transform: XToNumber });
|
|
521
|
+
/**
|
|
522
|
+
* @zh_CN 自适应高度,table 高度等于屏幕高度减掉此处设置的数值
|
|
523
|
+
* @en_US Adaptive height, table height is equal to the screen height minus the value set here
|
|
524
|
+
*/
|
|
525
|
+
this.adaptionHeight = input(null, { transform: XToNumber });
|
|
441
526
|
/**
|
|
442
527
|
* @zh_CN 文档高度百分比,弹窗百分比高度用到
|
|
443
528
|
* @en_US Document height percentage, used by pop-up window percentage height
|
|
444
529
|
*/
|
|
445
|
-
this.docPercent = 1;
|
|
530
|
+
this.docPercent = input(1, { transform: XToNumber });
|
|
531
|
+
/**
|
|
532
|
+
* @zh_CN 滚动区域高宽
|
|
533
|
+
* @en_US Height and width of rolling area
|
|
534
|
+
*/
|
|
535
|
+
this.scroll = input();
|
|
536
|
+
/**
|
|
537
|
+
* @zh_CN 单元格配置规则
|
|
538
|
+
* @en_US Cell config rules
|
|
539
|
+
*/
|
|
540
|
+
this.cellConfig = input();
|
|
541
|
+
/**
|
|
542
|
+
* @zh_CN 行条件样式
|
|
543
|
+
* @en_US Row condition class
|
|
544
|
+
*/
|
|
545
|
+
this.rowClass = input();
|
|
446
546
|
/**
|
|
447
547
|
* @zh_CN 树形表格下的层级
|
|
448
548
|
* @en_US The level under the tree table
|
|
449
549
|
*/
|
|
450
|
-
this.level = 0;
|
|
550
|
+
this.level = input(0, { transform: XToNumber });
|
|
551
|
+
/**
|
|
552
|
+
* @zh_CN 树形表格展开所有节点
|
|
553
|
+
* @en_US Tree table
|
|
554
|
+
*/
|
|
555
|
+
this.expandedAll = input(false, { transform: XToBoolean });
|
|
556
|
+
/**
|
|
557
|
+
* @zh_CN 自定义展开内容
|
|
558
|
+
* @en_US Customized expansion content
|
|
559
|
+
*/
|
|
560
|
+
this.expandTpl = input();
|
|
451
561
|
}
|
|
452
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
453
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
562
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableBodyProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
563
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTableBodyProperty, selector: "x-table-body-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, columnTpl: { classPropertyName: "columnTpl", publicName: "columnTpl", isSignal: true, isRequired: false, transformFunction: null }, activatedRow: { classPropertyName: "activatedRow", publicName: "activatedRow", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, bodyHeight: { classPropertyName: "bodyHeight", publicName: "bodyHeight", isSignal: true, isRequired: false, transformFunction: null }, allowSelectRow: { classPropertyName: "allowSelectRow", publicName: "allowSelectRow", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, itemSize: { classPropertyName: "itemSize", publicName: "itemSize", isSignal: true, isRequired: false, transformFunction: null }, minBufferPx: { classPropertyName: "minBufferPx", publicName: "minBufferPx", isSignal: true, isRequired: false, transformFunction: null }, maxBufferPx: { classPropertyName: "maxBufferPx", publicName: "maxBufferPx", isSignal: true, isRequired: false, transformFunction: null }, adaptionHeight: { classPropertyName: "adaptionHeight", publicName: "adaptionHeight", isSignal: true, isRequired: false, transformFunction: null }, docPercent: { classPropertyName: "docPercent", publicName: "docPercent", isSignal: true, isRequired: false, transformFunction: null }, scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null }, cellConfig: { classPropertyName: "cellConfig", publicName: "cellConfig", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, expandedAll: { classPropertyName: "expandedAll", publicName: "expandedAll", isSignal: true, isRequired: false, transformFunction: null }, expandTpl: { classPropertyName: "expandTpl", publicName: "expandTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedRow: "activatedRowChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
454
564
|
}
|
|
455
|
-
|
|
456
|
-
XInputNumber()
|
|
457
|
-
], XTableBodyProperty.prototype, "rowHeight", void 0);
|
|
458
|
-
__decorate([
|
|
459
|
-
XInputNumber()
|
|
460
|
-
], XTableBodyProperty.prototype, "bodyHeight", void 0);
|
|
461
|
-
__decorate([
|
|
462
|
-
XInputBoolean()
|
|
463
|
-
], XTableBodyProperty.prototype, "allowSelectRow", void 0);
|
|
464
|
-
__decorate([
|
|
465
|
-
XInputBoolean()
|
|
466
|
-
], XTableBodyProperty.prototype, "virtualScroll", void 0);
|
|
467
|
-
__decorate([
|
|
468
|
-
XInputNumber()
|
|
469
|
-
], XTableBodyProperty.prototype, "itemSize", void 0);
|
|
470
|
-
__decorate([
|
|
471
|
-
XInputNumber()
|
|
472
|
-
], XTableBodyProperty.prototype, "adaptionHeight", void 0);
|
|
473
|
-
__decorate([
|
|
474
|
-
XInputNumber()
|
|
475
|
-
], XTableBodyProperty.prototype, "docPercent", void 0);
|
|
476
|
-
__decorate([
|
|
477
|
-
XInputBoolean()
|
|
478
|
-
], XTableBodyProperty.prototype, "expandedAll", void 0);
|
|
479
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: XTableBodyProperty, decorators: [{
|
|
565
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableBodyProperty, decorators: [{
|
|
480
566
|
type: Component,
|
|
481
567
|
args: [{ selector: `${XTableBodyPrefix}-property`, template: '' }]
|
|
482
|
-
}]
|
|
483
|
-
type: Input
|
|
484
|
-
}], columns: [{
|
|
485
|
-
type: Input
|
|
486
|
-
}], columnTpl: [{
|
|
487
|
-
type: Input
|
|
488
|
-
}], activatedRow: [{
|
|
489
|
-
type: Input
|
|
490
|
-
}], activatedRowChange: [{
|
|
491
|
-
type: Output
|
|
492
|
-
}], rowHeight: [{
|
|
493
|
-
type: Input
|
|
494
|
-
}], bodyHeight: [{
|
|
495
|
-
type: Input
|
|
496
|
-
}], allowSelectRow: [{
|
|
497
|
-
type: Input
|
|
498
|
-
}], virtualScroll: [{
|
|
499
|
-
type: Input
|
|
500
|
-
}], itemSize: [{
|
|
501
|
-
type: Input
|
|
502
|
-
}], minBufferPx: [{
|
|
503
|
-
type: Input
|
|
504
|
-
}], maxBufferPx: [{
|
|
505
|
-
type: Input
|
|
506
|
-
}], adaptionHeight: [{
|
|
507
|
-
type: Input
|
|
508
|
-
}], docPercent: [{
|
|
509
|
-
type: Input
|
|
510
|
-
}], scroll: [{
|
|
511
|
-
type: Input
|
|
512
|
-
}], cellConfig: [{
|
|
513
|
-
type: Input
|
|
514
|
-
}], rowClass: [{
|
|
515
|
-
type: Input
|
|
516
|
-
}], level: [{
|
|
517
|
-
type: Input
|
|
518
|
-
}], expandedAll: [{
|
|
519
|
-
type: Input
|
|
520
|
-
}], expandTpl: [{
|
|
521
|
-
type: Input
|
|
522
|
-
}] } });
|
|
568
|
+
}] });
|
|
523
569
|
/**
|
|
524
570
|
* Table Foot
|
|
525
571
|
* @selector x-table-foot
|
|
@@ -530,15 +576,24 @@ export const XTableFootPrefix = 'x-table-foot';
|
|
|
530
576
|
* Table Foot Property
|
|
531
577
|
*/
|
|
532
578
|
export class XTableFootProperty extends XProperty {
|
|
533
|
-
|
|
534
|
-
|
|
579
|
+
constructor() {
|
|
580
|
+
super(...arguments);
|
|
581
|
+
/**
|
|
582
|
+
* @zh_CN 表格页尾
|
|
583
|
+
* @en_US Table footer
|
|
584
|
+
*/
|
|
585
|
+
this.footer = input();
|
|
586
|
+
/**
|
|
587
|
+
* @zh_CN 表头和行高,单位 px
|
|
588
|
+
* @en_US Header and row height, unit px
|
|
589
|
+
*/
|
|
590
|
+
this.rowHeight = input(null, { transform: XToNumber });
|
|
591
|
+
}
|
|
592
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableFootProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
593
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XTableFootProperty, selector: "x-table-foot-property", inputs: { footer: { classPropertyName: "footer", publicName: "footer", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
535
594
|
}
|
|
536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableFootProperty, decorators: [{
|
|
537
596
|
type: Component,
|
|
538
597
|
args: [{ selector: `${XTableFootPrefix}-property`, template: '' }]
|
|
539
|
-
}]
|
|
540
|
-
type: Input
|
|
541
|
-
}], rowHeight: [{
|
|
542
|
-
type: Input
|
|
543
|
-
}] } });
|
|
544
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBRVosYUFBYSxFQUdiLFdBQVcsRUFNWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLHdCQUF3QixDQUFDOztBQUVoRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQUN0QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUFtQjtJQUR2RDs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUNyQzs7O1dBR0c7UUFDTSxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQStCdEM7OztXQUdHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM3RDs7O1dBR0c7UUFDTSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFNNUM7OztXQUdHO1FBQ00sa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBZ0I1Qzs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUN0RTs7O1dBR0c7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBMEI3RDs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUNuQzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFX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QkFNMUQsTUFBTTtzQkFBZCxLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhQcm9wZXJ0eSxcclxuICBYTnVtYmVyLFxyXG4gIFhJbnB1dE51bWJlcixcclxuICBYU29ydCxcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhCb29sZWFuLFxyXG4gIFhEYXRhLFxyXG4gIFhXaXRoQ29uZmlnLFxyXG4gIFhUZXh0QWxpZ24sXHJcbiAgWFNpemUsXHJcbiAgWFBhcmVudElkZW50aXR5UHJvcGVydHksXHJcbiAgWElkZW50aXR5UHJvcGVydHksXHJcbiAgWFRlbXBsYXRlXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvblByb3BlcnR5LCBYUGFnaW5hdGlvbk9wdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BhZ2luYXRpb24nO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlXHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlUHJlZml4ID0gJ3gtdGFibGUnO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ3RhYmxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVQcm9wZXJ0eSBleHRlbmRzIFhQYWdpbmF0aW9uUHJvcGVydHkgaW1wbGVtZW50cyBYVGFibGVPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmlbDmja5cclxuICAgKiBAZW5fVVMgUm93IGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRhOiBYRGF0YTxYVGFibGVSb3c+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uczogWFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5aS05ZKM6KGM6auY77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlYWRlciBhbmQgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxudW1iZXI+KFhfQ09ORklHX05BTUUsIDQyKSBAWElucHV0TnVtYmVyKCkgcm93SGVpZ2h0ITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKblkK/nlKjliqDovb0gbG9hZGluZ1xyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGVuYWJsZSBsb2FkaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBsb2FkaW5nITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWxleekuuWIl+i+ueahhlxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIHNob3cgY29sdW1uIGJvcmRlcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuWIl+WktFxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNvbHVtbiBoZWFkZXJzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXIhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05pi+56S65L2N572uXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgY29sdW1uIGhlYWRlcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFRhYmxlSGVhZGVyUG9zaXRpb24+KFhfQ09ORklHX05BTUUsICd0b3AnKSBoZWFkZXJQb3NpdGlvbiE6IFhUYWJsZUhlYWRlclBvc2l0aW9uO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlbDmja5cclxuICAgKiBAZW5fVVMgQ3VycmVudGx5IHNlbGVjdGVkIHJvdyBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aXZhdGVkUm93PzogWFRhYmxlUm93O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlLnlj5hcclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3cgY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmF0ZWRSb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUYWJsZVJvdz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS06Ieq5a6a5LmJ5qih5p2/77yM6YCa6L+HIGtleS12YWx1ZSDnmoTmlrnlvI/mjIflrprmr4/liJfnmoTmqKHniYhcclxuICAgKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkQ29sdW1uVHBsOiBYVGFibGVUZW1wbGF0ZSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLTljZXlhYPmoLzoh6rlrprkuYnmqKHmnb/vvIzkvJjlhYjnuqfkvY7kuo7liJflpLToh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkVGhUcGw/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WGheWuueiHquWumuS5ieaooeadv++8jOmAmui/hyBrZXktdmFsdWUg55qE5pa55byP5oyH5a6a5q+P5YiX55qE5qih54mIXHJcbiAgICogQGVuX1VTIENvbHVtbiBjb250ZW50IGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGJvZHlDb2x1bW5UcGw6IFhUYWJsZVRlbXBsYXRlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOeahOiHquWumuS5ieaooeadv++8jOS8mOWFiOe6p+S9juS6juWIl+WGheWuueiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGUgb2YgY2VsbHNcclxuICAgKi9cclxuICBASW5wdXQoKSBib2R5VGRUcGw/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOadoeS7tuagt+W8j1xyXG4gICAqIEBlbl9VUyBSb3cgY29uZGl0aW9uIGNsYXNzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcm93Q2xhc3M/OiAocm93OiBYVGFibGVSb3csIGluZGV4OiBudW1iZXIpID0+IHsgW2NsYXNzTmFtZTogc3RyaW5nXTogYm9vbGVhbiB9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLTmkJzntKLoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgTGluZSBoZWFkIHNlYXJjaCBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkU2VhcmNoVHBsPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjpLluo/ngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU29ydCBjbGljayBldmVudHNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFNvcnRbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS0IGNoZWNrYm94IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBoZWFkIGNoZWNrYm94IGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGhlYWRDaGVja2JveENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlSGVhZENoZWNrYm94PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IGNoZWNrYm94IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBoZWFkIGNoZWNrYm94IGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGJvZHlDaGVja2JveENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhYHorrjooYzngrnlh7vpgInkuK3lvZPliY3ooYxcclxuICAgKiBAZW5fVVMgQWxsb3cgcm93IGNsaWNrIHRvIHNlbGVjdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBhbGxvd1NlbGVjdFJvdyE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhYHorrjooYzngrnlh7vpgInkuK0gY2hlY2tib3hcclxuICAgKiBAZW5fVVMgQWxsb3cgbGluZXMgdG8gY2xpY2sgY2hlY2tib3hcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgYWxsb3dDaGVja1JvdyE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVHVybiBvbiB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSB2aXJ0dWFsU2Nyb2xsITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgYm9keUhlaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaXRlbVNpemXvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgaXRlbVNpemXvvIxjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCA0MikgQFhJbnB1dE51bWJlcigpIGl0ZW1TaXplITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1pbkJ1ZmZlclB4OiBudW1iZXIgPSAxMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4suafk+aWsOaVsOaNrue8k+WGsuWMuueahOWDj+e0oO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBSZW5kZXIgdGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhCdWZmZXJQeDogbnVtYmVyID0gMjAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgQWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGFkYXB0aW9uSGVpZ2h0PzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5qGj6auY5bqm55m+5YiG5q+U77yM5by556qX55m+5YiG5q+U6auY5bqm55So5YiwXHJcbiAgICogQGVuX1VTIERvY3VtZW50IGhlaWdodCBwZXJjZW50YWdlLCB1c2VkIGJ5IHBvcC11cCB3aW5kb3cgcGVyY2VudGFnZSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgZG9jUGVyY2VudDogWE51bWJlciA9IDE7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOWIl+WIneWni+mAieS4reeahOaVsOaNru+8jOWIl+S4rea/gOa0uyBjaGVja2JveFxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBjb2x1bW4gaW5pdGlhbGx5IHNlbGVjdGVkIGRhdGEsIGNoZWNrYm94IGlzIGFjdGl2YXRlZCBpbiBjb2x1bW5cclxuICAgKi9cclxuICBASW5wdXQoKSBjaGVja2VkUm93OiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpoLmnpwgZGF0YSDmmK/lh73mlbDnsbvlnovvvIzlj6/ku6XpgJrov4fmraTlj4LmlbDmjqfliLbor7fmsYLvvIzluLjnlKjkuo7lvLnmoYbkuK3nmoTooajmoLzvvIzlvLnlh7rlkI7lho3or7fmsYJcclxuICAgKiBAZW5fVVMgSWYgZGF0YSBpcyBhIGZ1bmN0aW9uIHR5cGUsIHlvdSBjYW4gdXNlIHRoaXMgcGFyYW1ldGVyIHRvIGNvbnRyb2wgdGhlIHJlcXVlc3QsIHdoaWNoIGlzIG9mdGVuIHVzZWQgaW4gdGhlIGZvcm0gaW4gdGhlIHBvcC11cCBib3gsIGFuZCB0aGVuIHJlcXVlc3QgaXQgYWZ0ZXIgaXQgcG9wcyB1cFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbWFudWFsOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa7muWKqOWMuuWfn+mrmOWuvVxyXG4gICAqIEBlbl9VUyBIZWlnaHQgYW5kIHdpZHRoIG9mIHJvbGxpbmcgYXJlYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNjcm9sbD86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG15aS0XHJcbiAgICogQGVuX1VTIFRhYmxlIGhlYWRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhlYWRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG15bC+XHJcbiAgICogQGVuX1VTIFRhYmxlIGZvb3RlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+C5pWw5o6n5Yi26K+35rGC5pS55Y+Y5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhcmFtZXRlciBjb250cm9sIHJlcXVlc3QgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1hbnVhbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgY29uZmlnXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2VsbENvbmZpZz86IFhUYWJsZUNlbGxDb25maWc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19OQU1FLCAnbWVkaXVtJykgcm93U2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXlmajkvY3nva5cclxuICAgKiBAZW5fVVMgUGFnaW5hdGlvbiBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25Qb3NpdGlvbjogWFBhZ2luYXRpb25Qb3NpdGlvbiA9ICdib3R0b20tbGVmdCc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmakOiXj+ihqOagvOWklui+ueahhlxyXG4gICAqIEBlbl9VUyBIaWRkZW4gdGFibGUgd3JhcCBib3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIGhpZGRlbldyYXBCb3JkZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6ZqQ6JeP5YiG6aG15Zmo5oyJ6ZKu6L655qGGXHJcbiAgICogQGVuX1VTIEhpZGRlbiBwYWdpbmF0aW9uIGJ1dHRvbiBib3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIGhpZGRlblBhZ2luYXRpb25Cb3JkZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiG6aG15ZmoXHJcbiAgICogQGVuX1VTIFBhZ2luYXRpb24gcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgc2hvd1BhZ2luYXRpb24/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC8XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHRyZWVUYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgZXhwYW5kZWRBbGw/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6buY6K6k5bGV5byA55qE5bGC57qn77yMLTEg5LiN5bGV5byAXHJcbiAgICogQGVuX1VTIERlZmF1bHQgZXhwYW5kZWQgbGV2ZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgLTEpIEBYSW5wdXROdW1iZXIoKSBleHBhbmRlZExldmVsITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV5byA55qE6IqC54K5XHJcbiAgICogQGVuX1VTIEV4cGFuZGVkIG5vZGVcclxuICAgKi9cclxuICBASW5wdXQoKSBleHBhbmRlZDogYW55W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGV5byA5YaF5a65XHJcbiAgICogQGVuX1VTIEN1c3RvbWl6ZWQgZXhwYW5zaW9uIGNvbnRlbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBleHBhbmRUcGw/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaVsOaNruS4uuepuueahOaPkOekulxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IGEgcHJvbXB0IHdpdGggZW1wdHkgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBzaG93RW1wdHk/OiBYQm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruS4uuepuueahOaPkOekuuWbvueJh+WcsOWdgOaIluiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBQaWN0dXJlIGFkZHJlc3Mgb3IgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhUZW1wbGF0ZT4oWF9DT05GSUdfTkFNRSkgZW1wdHlJbWc/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruS4uuepuueahOaPkOekuuWGheWuueaIluiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDb250ZW50IG9yIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYVGVtcGxhdGU+KFhfQ09ORklHX05BTUUpIGVtcHR5Q29udGVudD86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05ouW5Yqo5byA5aeL5LqL5Lu277yM6L+U5Zue5ouW5Yqo55qE5YiXXHJcbiAgICogQGVuX1VTIENvbHVtbiBIZWFkZXIgRHJhZyBFbmQgRXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY29sdW1uRHJhZ1N0YXJ0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFhUYWJsZUNvbHVtbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05ouW5Yqo57uT5p2f5LqL5Lu277yM6L+U5Zue5ouW5Yqo55qE5YiXXHJcbiAgICogQGVuX1VTIFRoZSBjb2x1bW4gaGVhZGVyIGlzIGRyYWdnaW5nLCBhbmQgdGhlIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBvcmRlciBpcyBjaGFuZ2VkXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGNvbHVtbkRyYWdFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlQ29sdW1uPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPnlKjmiLfmiorkuIDkuKrmnaHnm67mipXmlL7ov5vor6Xlrrnlmajml7blsLHkvJrop6blj5HvvIzmi5bliqjmlL7lvIDnmoTkuovku7bvvIzov5Tlm57mi5bliqjmjpLluo/lkI7nmoTliJfmlbDmja5cclxuICAgKiBAZW5fVVMgVGhlIGNvbHVtbiBoZWFkZXIgaXMgZHJhZ2dpbmcsIGFuZCB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIG9yZGVyIGlzIGNoYW5nZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY29sdW1uRHJvcExpc3REcm9wcGVkID0gbmV3IEV2ZW50RW1pdHRlcjxYVGFibGVDb2x1bW5bXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5aeL5ouW5Yqo5YiX5a6955qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIHN0YXJ0ZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBAT3V0cHV0KCkgY29sdW1uRHJhZ1dpZHRoU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlRHJhZ1dpZHRoRXZlbnQ+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOaLluWKqOWIl+WuveaXtueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBtb3ZlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5EcmFnV2lkdGhNb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlRHJhZ1dpZHRoRXZlbnQ+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOe7k+adn+aLluWKqOWIl+WuveeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBlbmRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5EcmFnV2lkdGhFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlRHJhZ1dpZHRoRXZlbnQ+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVPcHRpb24gZXh0ZW5kcyBYUGFnaW5hdGlvbk9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gICAqL1xyXG4gIGRhdGE/OiBYRGF0YTxYVGFibGVSb3c+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIGNvbHVtbnM/OiBYVGFibGVDb2x1bW5bXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5aS05ZKM6KGM6auY77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlYWRlciBhbmQgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIHJvd0hlaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5ZCv55So5Yqg6L29IGxvYWRpbmdcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBlbmFibGUgbG9hZGluZ1xyXG4gICAqL1xyXG4gIGxvYWRpbmc/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIGFjdGl2YXRlZFJvdz86IFhUYWJsZVJvdztcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS06Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIENvbHVtbiBoZWFkZXIgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgaGVhZENvbHVtblRwbD86IFhUYWJsZVRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflhoXlrrnoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGNvbnRlbnQgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgYm9keUNvbHVtblRwbD86IFhUYWJsZVRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIHJvd0NsYXNzPzogKHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFR1cm4gb24gdmlydHVhbCBzY3JvbGxpbmdcclxuICAgKi9cclxuICB2aXJ0dWFsU2Nyb2xsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICBib2R5SGVpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIG1pbkJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgbWF4QnVmZmVyUHg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBBZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICBhZGFwdGlvbkhlaWdodD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBEb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBieSBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgZG9jUGVyY2VudD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIGNvbmZpZ1xyXG4gICAqL1xyXG4gIGNlbGxDb25maWc/OiBYVGFibGVDZWxsQ29uZmlnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHJvd1NpemU/OiBYU2l6ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmlbDmja5cclxuICogQGVuX1VTIERhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlUm93IGV4dGVuZHMgWFBhcmVudElkZW50aXR5UHJvcGVydHk8WFRhYmxlUm93PiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gFxyXG4gICAqIEBlbl9VUyBVbmZvbGRcclxuICAgKi9cclxuICBleHBhbmRlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+WPguaVsFxyXG4gKiBAZW5fVVMgQ29sdW1uIHBhcmFtZXRlclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDb2x1bW4gZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOexu+Wei1xyXG4gICAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gICAqL1xyXG4gIHR5cGU/OiBYQ29sdW1uVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5a695bqmXHJcbiAgICogQGVuX1VTIEZsZXggbGF5b3V0IHdpZHRoXHJcbiAgICovXHJcbiAgZmxleD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5p+l6K+i5a2X5q61XHJcbiAgICogQGVuX1VTIFF1ZXJ5IGZpZWxkXHJcbiAgICovXHJcbiAgc2VhcmNoPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP5a2X5q61XHJcbiAgICogQGVuX1VTIFNvcnQgZmllbGRcclxuICAgKi9cclxuICBzb3J0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75bem6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSBsZWZ0XHJcbiAgICovXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75Y+z6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSByaWdodFxyXG4gICAqL1xyXG4gIHJpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmk43kvZzmjInpkq5cclxuICAgKiBAZW5fVVMgT3BlcmF0aW9uIGJ1dHRvblxyXG4gICAqL1xyXG4gIGFjdGlvbj86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIHR5cGUg5Li6IGNoZWNrYm94IOaXtue7keWumuihjOeCueWHu+mAieS4reS6i+S7tlxyXG4gICAqIEBlbl9VUyBCaW5kIHJvdyBjbGljayBzZWxlY3Rpb24gZXZlbnQgd2hlbiB0eXBlIGlzIGNoZWNrYm94XHJcbiAgICovXHJcbiAgcm93Q2hlY2tlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIHR5cGUg5Li6IGV4cGFuZCDml7bnu5HlrprooYzngrnlh7vlsZXlvIDkuovku7ZcclxuICAgKiBAZW5fVVMgQmluZCByb3cgY2xpY2sgc2VsZWN0aW9uIGV2ZW50IHdoZW4gdHlwZSBpcyBleHBhbmRcclxuICAgKi9cclxuICByb3dFeHBhbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmloflrZflr7npvZDmlrnlvI9cclxuICAgKiBAZW5fVVMgVGV4dCBhbGlnbm1lbnRcclxuICAgKi9cclxuICB0ZXh0QWxpZ24/OiBYVGV4dEFsaWduO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqjliJflrr3vvIzpnIDopoHorr7nva7liJfnmoTliJ3lp4vlrr3luqYgd2lkdGhcclxuICAgKiBAZW5fVVMgRHJhZyB0aGUgY29sdW1uIHdpZHRoLCB5b3UgbmVlZCB0byBzZXQgdGhlIGluaXRpYWwgd2lkdGggb2YgdGhlIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOaLluWKqOWIl+WuvVxyXG4gICAqIEBlbl9VUyBEcmFnZ2luZyB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdnaW5nV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vmi5bliqjliJflrr3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gc3RhcnRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aFN0YXJ0ZWQ/OiAoZXZlbnQ6IFhUYWJsZURyYWdXaWR0aEV2ZW50KSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjmi5bliqjliJflrr3ml7bnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gbW92ZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGhNb3ZlZD86IChldmVudDogWFRhYmxlRHJhZ1dpZHRoRXZlbnQpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOe7k+adn+aLluWKqOWIl+WuveeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBlbmRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aEVuZGVkPzogKGV2ZW50OiBYVGFibGVEcmFnV2lkdGhFdmVudCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiXXHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtblxyXG4gICAqL1xyXG4gIGRyYWdDb2x1bW4/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjmi5bliqjliJdcclxuICAgKiBAZW5fVVMgRHJhZ2dpbmcgY29sdW1uXHJcbiAgICovXHJcbiAgZHJhZ2dpbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpLTpg6jmmL7npLogY2hlY2tib3hcclxuICAgKiBAZW5fVVMgSGVhZCBzaG93cyBjaGVja2JveFxyXG4gICAqL1xyXG4gIGhlYWRDaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aS06YOo5pi+56S6IGV4cGFuZFxyXG4gICAqIEBlbl9VUyBIZWFkIHNob3dzIGV4cGFuZFxyXG4gICAqL1xyXG4gIGhlYWRFeHBhbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflpLTlrr3luqbmi5bliqjkuovku7ZcclxuICogQGVuX1VTIENvbHVtbiBoZWFkZXIgd2lkdGggZHJhZyBldmVudFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVEcmFnV2lkdGhFdmVudCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOeahOWIl1xyXG4gICAqIEBlbl9VUyBEcmFnZ2VkIGNvbHVtblxyXG4gICAqL1xyXG4gIGNvbHVtbjogWFRhYmxlQ29sdW1uO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfkvY3nva7vvIzmraPlnKjmi5bliqjnmoTml7blgJnmjIflgY/np7vkvY3nva5cclxuICAgKiBAZW5fVVMgVGhlIGNvbHVtbiBwb3NpdGlvbiByZWZlcnMgdG8gdGhlIG9mZnNldCBwb3NpdGlvbiB3aGVuIGRyYWdnaW5nXHJcbiAgICovXHJcbiAgcG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflpLQgY2hlY2tib3gg5LqL5Lu25pWw5o2uXHJcbiAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIGNoZWNrYm94IGV2ZW50IGRhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlSGVhZENoZWNrYm94IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgcm93czogWFRhYmxlUm93W107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBkYXRhXHJcbiAgICovXHJcbiAgY2hlY2tib3g6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBib29sZWFuIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAqIEBlbl9VUyBDZWxsIGNvbmZpZ1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDZWxsQ29uZmlnIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENvbHVtbiBjZWxsIGNvbmZpZ1xyXG4gICAqL1xyXG4gIHRoZWFkPzogWFRhYmxlQ2VsbENvbmZpZ1J1bGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBSb3cgY29uZmlnXHJcbiAgICovXHJcbiAgdGJvZHk/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzphY3nva7op4TliJlcclxuICogQGVuX1VTIENlbGwgY29uZmlnIHJ1bGVzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGxDb25maWdSdWxlIHtcclxuICAvKipcclxuICAgKiBAemhfQ04gZ3JpZCDluIPlsYDkuIvlrprkuYnliJflrr3luqZcclxuICAgKiBAZW5fVVMgRGVmaW5lIGNvbHVtbiB3aWR0aCB1bmRlciBncmlkIGxheW91dFxyXG4gICAqL1xyXG4gIGdyaWRUZW1wbGF0ZUNvbHVtbnM/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIG1lcmdlIHJ1bGVzXHJcbiAgICovXHJcbiAgY2VsbHM/OiBYVGFibGVDZWxsW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Y2V5YWD5qC85ZCI5bm26YWN572uXHJcbiAqIEBlbl9VUyBDZWxsIG1lcmdlIHJ1bGVzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGwge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkvb/nlKggZ3JpZCDluIPlsYDmnaXlkIjlubbljZXlhYPmoLxcclxuICAgKiBAZW5fVVMgVXNlIGdyaWQgbGF5b3V0IHRvIG1lcmdlIGNlbGxzXHJcbiAgICovXHJcbiAgZ3JpZEFyZWE/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWQjeensFxyXG4gICAqIEBlbl9VUyBOYW1lXHJcbiAgICovXHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWuveW6plxyXG4gICAqIEBlbl9VUyBXaWR0aFxyXG4gICAqL1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm7rlrprliJfvvIzot53nprvlt6bovrnnmoTot53nprtcclxuICAgKiBAZW5fVVMgRml4ZWQgY29sdW1uLCBkaXN0YW5jZSBmcm9tIGxlZnRcclxuICAgKi9cclxuICBsZWZ0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm7rlrprliJfvvIzot53nprvlj7PovrnnmoTot53nprtcclxuICAgKiBAZW5fVVMgRml4ZWQgY29sdW1uLCBkaXN0YW5jZSBmcm9tIHJpZ2h0XHJcbiAgICovXHJcbiAgcmlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWvueW6lOWIl+eahCBpZFxyXG4gICAqIEBlbl9VUyBUaGUgaWQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uXHJcbiAgICovXHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWIl+WuvVxyXG4gICAqIEBlbl9VUyBEcmFnIHRoZSBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJfnsbvlnotcclxuICogQGVuX1VTIENvbHVtbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYQ29sdW1uVHlwZSA9ICdsYWJlbCcgfCAnaW5kZXgnIHwgJ2NoZWNrYm94JyB8ICdleHBhbmQnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflpLTmmL7npLrkvY3nva5cclxuICogQGVuX1VTIExpbmUgaGVhZCBkaXNwbGF5IHBvc2l0aW9uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVGFibGVIZWFkZXJQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCAndG9wLWJvdHRvbSc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIhumhteWZqOS9jee9rlxyXG4gKiBAZW5fVVMgUGFnaW5nIHBvc2l0aW9uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYUGFnaW5hdGlvblBvc2l0aW9uID1cclxuICB8ICd0b3AtbGVmdCdcclxuICB8ICd0b3AtY2VudGVyJ1xyXG4gIHwgJ3RvcC1yaWdodCdcclxuICB8ICdib3R0b20tbGVmdCdcclxuICB8ICdib3R0b20tY2VudGVyJ1xyXG4gIHwgJ2JvdHRvbS1yaWdodCc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaooeadv1xyXG4gKiBAZW5fVVMgVGVtcGxhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhUYWJsZVRlbXBsYXRlID0geyBbcHJvcGVydHk6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfTtcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBIZWFkXHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlLWhlYWRcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVIZWFkUHJlZml4ID0gJ3gtdGFibGUtaGVhZCc7XHJcblxyXG4vKipcclxuICogVGFibGUgSGVhZCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVIZWFkUHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlSGVhZFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6ZuG5ZCIXHJcbiAgICogQGVuX1VTIENvbHVtbiBzZXRcclxuICAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5zOiBYVGFibGVDb2x1bW5bXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqbvvIzljZXkvY0gcHhcclxuICAgKiBAZW5fVVMgSGVpZ2h0IGluIHB4XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIHJvd0hlaWdodDogWE51bWJlciA9IDQyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uVHBsOiBYVGFibGVUZW1wbGF0ZSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnq5blkJHmu5rliqjmnaHlrr3luqZcclxuICAgKiBAZW5fVVMgVmVydGljYWwgc2Nyb2xsIGJhciB3aWR0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNjcm9sbFlXaWR0aD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qiq5ZCR5rua5Yqo5p2h5a695bqmXHJcbiAgICogQGVuX1VTIEhvcml6b250YWwgc2Nyb2xsIGJhciB3aWR0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNjcm9sbFhXaWR0aD86IG51bWJlciB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIG1lcmdlIHJ1bGVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2VsbENvbmZpZz86IFhUYWJsZUNlbGxDb25maWdSdWxlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTkvY3nva5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogVGFibGUgQm9keVxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZS1ib2R5XHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlQm9keVByZWZpeCA9ICd4LXRhYmxlLWJvZHknO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEJvZHkgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WFRhYmxlQm9keVByZWZpeH0tcHJvcGVydHlgLCB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUJvZHlQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRhdGE6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uczogWFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIEN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtblRwbDogWFRhYmxlVGVtcGxhdGUgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGl2YXRlZFJvdz86IFhUYWJsZVJvdztcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pS55Y+YXHJcbiAgICogQGVuX1VTIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcm93IGNoYW5nZXNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgYWN0aXZhdGVkUm93Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYVGFibGVSb3c+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6pu+8jOWNleS9jSBweOOAguiuvue9ruS4uiAwIOihqOekuuihjOmrmOiHqumAguW6lOWGheWuuemrmOW6puOAglxyXG4gICAqIEBlbl9VUyBIZWlnaHQgaW4gcHguIHNldCB0byAwIG1lYW5zIHRoYXQgdGhlIHJvdyBoZWlnaHQgaXMgYWRhcHRpdmUgdG8gdGhlIGNvbnRlbnQgaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIHJvd0hlaWdodDogWE51bWJlciA9IDQyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IOaVsOaNrumrmOW6plxyXG4gICAqIEBlbl9VUyBib2R5IGRhdGEgaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGJvZHlIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFgeiuuOihjOeCueWHu+mAieS4rVxyXG4gICAqIEBlbl9VUyBBbGxvdyByb3cgY2xpY2sgdG8gc2VsZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBhbGxvd1NlbGVjdFJvdzogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVHVybiBvbiB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgdmlydHVhbFNjcm9sbDogWEJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBAemhfQ04gaXRlbVNpemXvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgaXRlbVNpemXvvIxjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgaXRlbVNpemU6IG51bWJlciA9IDQyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1pbkJ1ZmZlclB4OiBudW1iZXIgPSAxMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4suafk+aWsOaVsOaNrue8k+WGsuWMuueahOWDj+e0oO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBSZW5kZXIgdGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhCdWZmZXJQeDogbnVtYmVyID0gMjAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgQWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGFkYXB0aW9uSGVpZ2h0PzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5qGj6auY5bqm55m+5YiG5q+U77yM5by556qX55m+5YiG5q+U6auY5bqm55So5YiwXHJcbiAgICogQGVuX1VTIERvY3VtZW50IGhlaWdodCBwZXJjZW50YWdlLCB1c2VkIGJ5IHBvcC11cCB3aW5kb3cgcGVyY2VudGFnZSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgZG9jUGVyY2VudDogWE51bWJlciA9IDE7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa7muWKqOWMuuWfn+mrmOWuvVxyXG4gICAqIEBlbl9VUyBIZWlnaHQgYW5kIHdpZHRoIG9mIHJvbGxpbmcgYXJlYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNjcm9sbD86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572u6KeE5YiZXHJcbiAgICogQGVuX1VTIENlbGwgY29uZmlnIHJ1bGVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2VsbENvbmZpZz86IFhUYWJsZUNlbGxDb25maWdSdWxlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJvd0NsYXNzPzogKHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC85LiL55qE5bGC57qnXHJcbiAgICogQGVuX1VTIFRoZSBsZXZlbCB1bmRlciB0aGUgdHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxldmVsOiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgZXhwYW5kZWRBbGw/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGV5byA5YaF5a65XHJcbiAgICogQGVuX1VTIEN1c3RvbWl6ZWQgZXhwYW5zaW9uIGNvbnRlbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBleHBhbmRUcGw/OiBYVGVtcGxhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBGb290XHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlLWZvb3RcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVGb290UHJlZml4ID0gJ3gtdGFibGUtZm9vdCc7XHJcblxyXG4vKipcclxuICogVGFibGUgRm9vdCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVGb290UHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlRm9vdFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG15bC+XHJcbiAgICogQGVuX1VTIFRhYmxlIGZvb3RlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5aS05ZKM6KGM6auY77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlYWRlciBhbmQgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJvd0hlaWdodCE6IG51bWJlcjtcclxufVxyXG4iXX0=
|
|
598
|
+
}] });
|
|
599
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLFNBQVMsRUFDVCxjQUFjLEVBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFlLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWdCN0Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUM7QUFDdEMsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUM7QUFFcEM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDO0lBRDFFOztRQUVFOzs7V0FHRztRQUNNLFNBQUksR0FBRyxLQUFLLENBQXFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzdGOzs7V0FHRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQzdDOzs7V0FHRztRQUNNLGNBQVMsR0FBRyxLQUFLLENBQWtCLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHOzs7V0FHRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQW9CLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHOzs7V0FHRztRQUNN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VyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhQcm9wZXJ0eSxcclxuICBYUHJvcGVydHlGdW5jdGlvbixcclxuICBYVG9Dc3NQaXhlbFZhbHVlLFxyXG4gIFhUb0Jvb2xlYW4sXHJcbiAgWFRvTnVtYmVyLFxyXG4gIFhUb0RhdGFDb252ZXJ0XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uU2l6ZURhdGEgfSBmcm9tICdAbmctbmVzdC91aS9wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgWFNlbGVjdE5vZGUgfSBmcm9tICdAbmctbmVzdC91aS9zZWxlY3QnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgWE51bWJlcixcclxuICBYU29ydCxcclxuICBYQm9vbGVhbixcclxuICBYRGF0YSxcclxuICBYVGV4dEFsaWduLFxyXG4gIFhTaXplLFxyXG4gIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYUXVlcnksXHJcbiAgWERhdGFBcnJheVxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlXHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlUHJlZml4ID0gJ3gtdGFibGUnO1xyXG5jb25zdCBYX1RBQkxFX0NPTkZJR19OQU1FID0gJ3RhYmxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eUZ1bmN0aW9uKFhfVEFCTEVfQ09ORklHX05BTUUpIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZGF0YSA9IGlucHV0PFhEYXRhPFhUYWJsZVJvdz4sIFhEYXRhPFhUYWJsZVJvdz4+KFtdLCB7IHRyYW5zZm9ybTogWFRvRGF0YUNvbnZlcnQgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1ucyA9IGlucHV0PFhUYWJsZUNvbHVtbltdPihbXSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOWktOWSjOihjOmrmO+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWFkZXIgYW5kIHJvdyBoZWlnaHQsIHVuaXQgcHhcclxuICAgKi9cclxuICByZWFkb25seSByb3dIZWlnaHQgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5yb3dIZWlnaHQgPz8gNDIsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWQr+eUqOWKoOi9vSBsb2FkaW5nXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZW5hYmxlIGxvYWRpbmdcclxuICAgKi9cclxuICByZWFkb25seSBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5sb2FkaW5nID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5bGV56S65YiX6L655qGGXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gc2hvdyBjb2x1bW4gYm9yZGVyc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvcmRlcmVkID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5ib3JkZXJlZCA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuWIl+WktFxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNvbHVtbiBoZWFkZXJzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0hlYWRlciA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0hlYWRlciA/PyB0cnVlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05pi+56S65L2N572uXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgY29sdW1uIGhlYWRlcnNcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkZXJQb3NpdGlvbiA9IGlucHV0PFhUYWJsZUhlYWRlclBvc2l0aW9uPih0aGlzLmNvbmZpZz8uaGVhZGVyUG9zaXRpb24gPz8gJ3RvcCcpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlbDmja5cclxuICAgKiBAZW5fVVMgQ3VycmVudGx5IHNlbGVjdGVkIHJvdyBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWN0aXZhdGVkUm93ID0gbW9kZWw8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLToh6rlrprkuYnmqKHmnb/vvIzpgJrov4cga2V5LXZhbHVlIOeahOaWueW8j+aMh+Wumuavj+WIl+eahOaooeeJiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGhlYWRDb2x1bW5UcGwgPSBpbnB1dDxYVGFibGVUZW1wbGF0ZT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLTljZXlhYPmoLzoh6rlrprkuYnmqKHmnb/vvIzkvJjlhYjnuqfkvY7kuo7liJflpLToh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkVGhUcGwgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WGheWuueiHquWumuS5ieaooeadv++8jOmAmui/hyBrZXktdmFsdWUg55qE5pa55byP5oyH5a6a5q+P5YiX55qE5qih54mIXHJcbiAgICogQGVuX1VTIENvbHVtbiBjb250ZW50IGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvZHlDb2x1bW5UcGwgPSBpbnB1dDxYVGFibGVUZW1wbGF0ZT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLznmoToh6rlrprkuYnmqKHmnb/vvIzkvJjlhYjnuqfkvY7kuo7liJflhoXlrrnoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHRlbXBsYXRlIG9mIGNlbGxzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYm9keVRkVHBsID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0NsYXNzID0gaW5wdXQ8KHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS05pCc57Si6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIExpbmUgaGVhZCBzZWFyY2ggY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGVhZFNlYXJjaFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP54K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNvcnQgY2xpY2sgZXZlbnRzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc29ydENoYW5nZSA9IG91dHB1dDxYU29ydFtdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLQgY2hlY2tib3gg5LqL5Lu2XHJcbiAgICogQGVuX1VTIGhlYWQgY2hlY2tib3ggZXZlbnRcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkQ2hlY2tib3hDaGFuZ2UgPSBvdXRwdXQ8WFRhYmxlSGVhZENoZWNrYm94PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IGNoZWNrYm94IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBoZWFkIGNoZWNrYm94IGV2ZW50XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYm9keUNoZWNrYm94Q2hhbmdlID0gb3V0cHV0PFhUYWJsZVJvdz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWB6K646KGM54K55Ye76YCJ5Lit5b2T5YmN6KGMXHJcbiAgICogQGVuX1VTIEFsbG93IHJvdyBjbGljayB0byBzZWxlY3RcclxuICAgKi9cclxuICByZWFkb25seSBhbGxvd1NlbGVjdFJvdyA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uYWxsb3dTZWxlY3RSb3cgPz8gdHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFgeiuuOihjOeCueWHu+mAieS4rSBjaGVja2JveFxyXG4gICAqIEBlbl9VUyBBbGxvdyBsaW5lcyB0byBjbGljayBjaGVja2JveFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFsbG93Q2hlY2tSb3cgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LmFsbG93Q2hlY2tSb3cgPz8gdHJ1ZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUdXJuIG9uIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdmlydHVhbFNjcm9sbCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8udmlydHVhbFNjcm9sbCA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICByZWFkb25seSBib2R5SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBYTnVtYmVyPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGl0ZW1TaXpl77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIGl0ZW1TaXpl77yMY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaXRlbVNpemUgPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5pdGVtU2l6ZSA/PyA0MiwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LaF5Ye65Y+v6KeG56qX5Y+j57yT5Yay5Yy655qE5pyA5bCP5YC877yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIEV4Y2VlZCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICByZWFkb25seSBtaW5CdWZmZXJQeCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMTAwLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbWF4QnVmZmVyUHggPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDIwMCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq6YCC5bqU6auY5bqm77yMdGFibGUg6auY5bqm562J5LqO5bGP5bmV6auY5bqm5YeP5o6J5q2k5aSE6K6+572u55qE5pWw5YC8XHJcbiAgICogQGVuX1VTIEFkYXB0aXZlIGhlaWdodCwgdGFibGUgaGVpZ2h0IGlzIGVxdWFsIHRvIHRoZSBzY3JlZW4gaGVpZ2h0IG1pbnVzIHRoZSB2YWx1ZSBzZXQgaGVyZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFkYXB0aW9uSGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkLCBYTnVtYmVyPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBEb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBieSBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZG9jUGVyY2VudCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMSwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5YiX5Yid5aeL6YCJ5Lit55qE5pWw5o2u77yM5YiX5Lit5r+A5rS7IGNoZWNrYm94XHJcbiAgICogQGVuX1VTIENoZWNrYm94IGNvbHVtbiBpbml0aWFsbHkgc2VsZWN0ZWQgZGF0YSwgY2hlY2tib3ggaXMgYWN0aXZhdGVkIGluIGNvbHVtblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNoZWNrZWRSb3cgPSBpbnB1dDx7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55W10gfT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpoLmnpwgZGF0YSDmmK/lh73mlbDnsbvlnovvvIzlj6/ku6XpgJrov4fmraTlj4LmlbDmjqfliLbor7fmsYLvvIzluLjnlKjkuo7lvLnmoYbkuK3nmoTooajmoLzvvIzlvLnlh7rlkI7lho3or7fmsYJcclxuICAgKiBAZW5fVVMgSWYgZGF0YSBpcyBhIGZ1bmN0aW9uIHR5cGUsIHlvdSBjYW4gdXNlIHRoaXMgcGFyYW1ldGVyIHRvIGNvbnRyb2wgdGhlIHJlcXVlc3QsIHdoaWNoIGlzIG9mdGVuIHVzZWQgaW4gdGhlIGZvcm0gaW4gdGhlIHBvcC11cCBib3gsIGFuZCB0aGVuIHJlcXVlc3QgaXQgYWZ0ZXIgaXQgcG9wcyB1cFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IG1hbnVhbCA9IG1vZGVsPGJvb2xlYW4+KHRydWUpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmu5rliqjljLrln5/pq5jlrr1cclxuICAgKiBAZW5fVVMgSGVpZ2h0IGFuZCB3aWR0aCBvZiByb2xsaW5nIGFyZWFcclxuICAgKi9cclxuICByZWFkb25seSBzY3JvbGwgPSBpbnB1dDx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteWktFxyXG4gICAqIEBlbl9VUyBUYWJsZSBoZWFkZXJcclxuICAgKi9cclxuICByZWFkb25seSBoZWFkZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteWwvlxyXG4gICAqIEBlbl9VUyBUYWJsZSBmb290ZXJcclxuICAgKi9cclxuICByZWFkb25seSBmb290ZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIGNvbmZpZ1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNlbGxDb25maWcgPSBpbnB1dDxYVGFibGVDZWxsQ29uZmlnPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd1NpemUgPSBpbnB1dDxYU2l6ZT4odGhpcy5jb25maWc/LnJvd1NpemUgPz8gJ21lZGl1bScpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXlmajkvY3nva5cclxuICAgKiBAZW5fVVMgUGFnaW5hdGlvbiBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25Qb3NpdGlvbiA9IGlucHV0PFhQYWdpbmF0aW9uUG9zaXRpb24+KCdib3R0b20tbGVmdCcpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmpDol4/ooajmoLzlpJbovrnmoYZcclxuICAgKiBAZW5fVVMgSGlkZGVuIHRhYmxlIHdyYXAgYm9yZGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGlkZGVuV3JhcEJvcmRlciA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uaGlkZGVuV3JhcEJvcmRlciA/PyBmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmakOiXj+WIhumhteWZqOaMiemSrui+ueahhlxyXG4gICAqIEBlbl9VUyBIaWRkZW4gcGFnaW5hdGlvbiBidXR0b24gYm9yZGVyXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgaGlkZGVuUGFnaW5hdGlvbkJvcmRlciA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uaGlkZGVuUGFnaW5hdGlvbkJvcmRlciA/PyBmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIhumhteWZqFxyXG4gICAqIEBlbl9VUyBQYWdpbmF0aW9uIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd1BhZ2luYXRpb24gPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dQYWdpbmF0aW9uID8/IHRydWUsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLxcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHRyZWVUYWJsZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8udHJlZVRhYmxlID8/IHRydWUsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvQm9vbGVhblxyXG4gIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZGVkQWxsID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5leHBhbmRlZEFsbCA/PyBmYWxzZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOm7mOiupOWxleW8gOeahOWxgue6p++8jC0xIOS4jeWxleW8gFxyXG4gICAqIEBlbl9VUyBEZWZhdWx0IGV4cGFuZGVkIGxldmVsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZXhwYW5kZWRMZXZlbCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4odGhpcy5jb25maWc/LmV4cGFuZGVkTGV2ZWwgPz8gLTEsIHtcclxuICAgIHRyYW5zZm9ybTogWFRvTnVtYmVyXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gOeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBFeHBhbmRlZCBub2RlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZXhwYW5kZWQgPSBpbnB1dDxhbnlbXT4oW10pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZXlvIDlhoXlrrlcclxuICAgKiBAZW5fVVMgQ3VzdG9taXplZCBleHBhbnNpb24gY29udGVudFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGV4cGFuZFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65pWw5o2u5Li656m655qE5o+Q56S6XHJcbiAgICogQGVuX1VTIERpc3BsYXkgYSBwcm9tcHQgd2l0aCBlbXB0eSBkYXRhXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0VtcHR5ID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93RW1wdHkgPz8gdHJ1ZSwge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Cb29sZWFuXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaVsOaNruS4uuepuueahOaPkOekuuWbvueJh+WcsOWdgOaIluiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBQaWN0dXJlIGFkZHJlc3Mgb3IgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZW1wdHlJbWcgPSBpbnB1dDxYVGVtcGxhdGUgfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5lbXB0eUltZyA/PyB1bmRlZmluZWQpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlbDmja7kuLrnqbrnmoTmj5DnpLrlhoXlrrnmiJboh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29udGVudCBvciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBlbXB0eUNvbnRlbnQgPSBpbnB1dDxYVGVtcGxhdGUgfCB1bmRlZmluZWQ+KHRoaXMuY29uZmlnPy5lbXB0eUNvbnRlbnQgPz8gdW5kZWZpbmVkKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6aG156CBXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgcGFnZSBudW1iZXJcclxuICAgKi9cclxuICByZWFkb25seSBpbmRleCA9IG1vZGVsPG51bWJlcj4odGhpcy5jb25maWc/LmluZGV4ID8/IDEpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmr4/pobXmmL7npLrmnaHmlbBcclxuICAgKiBAZW5fVVMgTnVtYmVyIG9mIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNpemUgPSBtb2RlbDxudW1iZXI+KHRoaXMuY29uZmlnPy5zaXplID8/IDEwKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oC75pWwXHJcbiAgICogQGVuX1VTIFRvdGFsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdG90YWwgPSBtb2RlbDxudW1iZXI+KDApO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmn6Xor6LmnaHku7ZcclxuICAgKiBAZW5fVVMgUXVlcnkgY29uZGl0aW9uc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHF1ZXJ5ID0gbW9kZWw8WFF1ZXJ5Pih7fSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacgOWkmuaYvuekuueahOWIhumhteaVsOmHj1xyXG4gICAqIEBlbl9VUyBUaGUgbGFyZ2VzdCBudW1iZXIgb2YgcGFnZXMgZGlzcGxheVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHBhZ2VMaW5rU2l6ZSA9IGlucHV0PG51bWJlciwgWE51bWJlcj4odGhpcy5jb25maWc/LnBhZ2VMaW5rU2l6ZSA/PyA1LCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrpppblsL7pobXot7PovaxcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgZmlyc3QgYW5kIGxhc3QgcGFnZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dFbGxpcHNpcyA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0VsbGlwc2lzID8/IHRydWUsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrmgLvmnaHmlbBcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgdG90YWxcclxuICAgKi9cclxuICByZWFkb25seSBzaG93VG90YWwgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dUb3RhbCA/PyB0cnVlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oyJ6ZKu6Ze06LedXHJcbiAgICogQGVuX1VTIEJ1dHRvbiBzcGFjaW5nXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc3BhY2UgPSBpbnB1dDxzdHJpbmcsIFhOdW1iZXI+KHRoaXMuY29uZmlnPy5zcGFjZSA/PyAnMC4yNXJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmt7vliqDog4zmma/oibJcclxuICAgKiBAZW5fVVMgU2hvdyBiYWNrZ3JvdW5kXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0JhY2tncm91bmQgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4odGhpcy5jb25maWc/LnNob3dCYWNrZ3JvdW5kID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiG6aG15p2h5pWwXHJcbiAgICogQGVuX1VTIFNob3cgc2l6ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNob3dTaXplID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRoaXMuY29uZmlnPy5zaG93U2l6ZSA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhteadoeaVsOmAieaLqeahhueahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGggc2VsZWN0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2l6ZVdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uc2l6ZVdpZHRoID8/ICc2Ljg3NXJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovpPlhaXliIbpobXmnaHmlbDvvIjkuI3og73ot5/kuIvmi4npgInpobnlkIzml7bkvb/nlKjvvIlcclxuICAgKiBAZW5fVVMgRGlzcGxheSB0aGUgbnVtYmVyIG9mIGlucHV0IHBhZ2UgYnJlYWtzIChjYW5ub3QgZXhpc3Qgd2l0aCB0aGUgZHJvcC1kb3duIG9wdGlvbnMgb2YgcGFnZSBicmVha3MpXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0lucHV0U2l6ZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2hvd0lucHV0U2l6ZSA/PyBmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhteadoeaVsOi+k+WFpeahhueahOWuveW6plxyXG4gICAqIEBlbl9VUyBzaXplIHdpdGggaW5wdXRcclxuICAgKi9cclxuICByZWFkb25seSBpbnB1dFNpemVXaWR0aCA9IGlucHV0PHN0cmluZywgWE51bWJlcj4odGhpcy5jb25maWc/LnNpemVXaWR0aCA/PyAnMy4xMjVyZW0nLCB7XHJcbiAgICB0cmFuc2Zvcm06IFhUb0Nzc1BpeGVsVmFsdWVcclxuICB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG6aG16YCJ5oup55qE5pWw5o2u6aG5XHJcbiAgICogQGVuX1VTIFBhZ2luZyBjaG9vc2UgaXRlbXMgb2YgZGF0YVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNpemVEYXRhID0gaW5wdXQ8WERhdGFBcnJheTxYU2VsZWN0Tm9kZT4+KHRoaXMuY29uZmlnPy5zaXplRGF0YSA/PyBYUGFnaW5hdGlvblNpemVEYXRhKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55So5pW05Liq5YiG6aG1XHJcbiAgICogQGVuX1VTIGRpc2FibGVkXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrot7PovazovpPlhaXmoYZcclxuICAgKiBAZW5fVVMgU2hvdyBzaXplXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2hvd0p1bXAgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDot7PovazpobXnmoTlrr3luqZcclxuICAgKiBAZW5fVVMgc2l6ZSB3aXRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkganVtcFdpZHRoID0gaW5wdXQ8c3RyaW5nLCBYTnVtYmVyPih0aGlzLmNvbmZpZz8uanVtcFdpZHRoID8/ICczLjEyNXJlbScsIHsgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmgLvmlbDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgVG90YWwgdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSB0b3RhbFRwbCA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g566A5Y2V5YiG6aG1XHJcbiAgICogQGVuX1VTIFNpbXBsZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNpbXBsZSA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPih0aGlzLmNvbmZpZz8uc2ltcGxlID8/IGZhbHNlLCB7IHRyYW5zZm9ybTogWFRvQm9vbGVhbiB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g566A5Y2V5YiG6aG16L6T5YWl5qGG5a695bqmXHJcbiAgICogQGVuX1VTIFNpbXBsZSBpbmRleCB3aXRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2ltcGxlSW5kZXhXaWR0aCA9IGlucHV0PHN0cmluZywgWE51bWJlcj4odGhpcy5jb25maWc/LnNpbXBsZUluZGV4V2lkdGggPz8gJzguMTI1cmVtJywge1xyXG4gICAgdHJhbnNmb3JtOiBYVG9Dc3NQaXhlbFZhbHVlXHJcbiAgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WktOaLluWKqOW8gOWni+S6i+S7tu+8jOi/lOWbnuaLluWKqOeahOWIl1xyXG4gICAqIEBlbl9VUyBDb2x1bW4gSGVhZGVyIERyYWcgRW5kIEV2ZW50XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uRHJhZ1N0YXJ0ZWQgPSBvdXRwdXQ8WFRhYmxlQ29sdW1uPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLTmi5bliqjnu5PmnZ/kuovku7bvvIzov5Tlm57mi5bliqjnmoTliJdcclxuICAgKiBAZW5fVVMgVGhlIGNvbHVtbiBoZWFkZXIgaXMgZHJhZ2dpbmcsIGFuZCB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIG9yZGVyIGlzIGNoYW5nZWRcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5EcmFnRW5kZWQgPSBvdXRwdXQ8WFRhYmxlQ29sdW1uPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPnlKjmiLfmiorkuIDkuKrmnaHnm67mipXmlL7ov5vor6Xlrrnlmajml7blsLHkvJrop6blj5HvvIzmi5bliqjmlL7lvIDnmoTkuovku7bvvIzov5Tlm57mi5bliqjmjpLluo/lkI7nmoTliJfmlbDmja5cclxuICAgKiBAZW5fVVMgVGhlIGNvbHVtbiBoZWFkZXIgaXMgZHJhZ2dpbmcsIGFuZCB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gdGhlIG9yZGVyIGlzIGNoYW5nZWRcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5Ecm9wTGlzdERyb3BwZWQgPSBvdXRwdXQ8WFRhYmxlQ29sdW1uW10+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWni+aLluWKqOWIl+WuveeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBzdGFydGVkIGRyYWcgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uRHJhZ1dpZHRoU3RhcnRlZCA9IG91dHB1dDxYVGFibGVEcmFnV2lkdGhFdmVudD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5q2j5Zyo5ouW5Yqo5YiX5a695pe255qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50IHRvIG1vdmVkIGRyYWcgY29sdW1uIHdpZHRoXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY29sdW1uRHJhZ1dpZHRoTW92ZWQgPSBvdXRwdXQ8WFRhYmxlRHJhZ1dpZHRoRXZlbnQ+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOe7k+adn+aLluWKqOWIl+WuveeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBlbmRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtbkRyYWdXaWR0aEVuZGVkID0gb3V0cHV0PFhUYWJsZURyYWdXaWR0aEV2ZW50PigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOihjOaVsOaNrlxyXG4gKiBAZW5fVVMgUm93IGRhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlUm93IGV4dGVuZHMgWFBhcmVudElkZW50aXR5UHJvcGVydHk8WFRhYmxlUm93PiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gFxyXG4gICAqIEBlbl9VUyBVbmZvbGRcclxuICAgKi9cclxuICBleHBhbmRlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+WPguaVsFxyXG4gKiBAZW5fVVMgQ29sdW1uIHBhcmFtZXRlclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDb2x1bW4gZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOexu+Wei1xyXG4gICAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gICAqL1xyXG4gIHR5cGU/OiBYQ29sdW1uVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5a695bqmXHJcbiAgICogQGVuX1VTIEZsZXggbGF5b3V0IHdpZHRoXHJcbiAgICovXHJcbiAgZmxleD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5p+l6K+i5a2X5q61XHJcbiAgICogQGVuX1VTIFF1ZXJ5IGZpZWxkXHJcbiAgICovXHJcbiAgc2VhcmNoPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP5a2X5q61XHJcbiAgICogQGVuX1VTIFNvcnQgZmllbGRcclxuICAgKi9cclxuICBzb3J0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75bem6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSBsZWZ0XHJcbiAgICovXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75Y+z6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSByaWdodFxyXG4gICAqL1xyXG4gIHJpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmk43kvZzmjInpkq5cclxuICAgKiBAZW5fVVMgT3BlcmF0aW9uIGJ1dHRvblxyXG4gICAqL1xyXG4gIGFjdGlvbj86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIHR5cGUg5Li6IGNoZWNrYm94IOaXtue7keWumuihjOeCueWHu+mAieS4reS6i+S7tlxyXG4gICAqIEBlbl9VUyBCaW5kIHJvdyBjbGljayBzZWxlY3Rpb24gZXZlbnQgd2hlbiB0eXBlIGlzIGNoZWNrYm94XHJcbiAgICovXHJcbiAgcm93Q2hlY2tlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIHR5cGUg5Li6IGV4cGFuZCDml7bnu5HlrprooYzngrnlh7vlsZXlvIDkuovku7ZcclxuICAgKiBAZW5fVVMgQmluZCByb3cgY2xpY2sgc2VsZWN0aW9uIGV2ZW50IHdoZW4gdHlwZSBpcyBleHBhbmRcclxuICAgKi9cclxuICByb3dFeHBhbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmloflrZflr7npvZDmlrnlvI9cclxuICAgKiBAZW5fVVMgVGV4dCBhbGlnbm1lbnRcclxuICAgKi9cclxuICB0ZXh0QWxpZ24/OiBYVGV4dEFsaWduO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqjliJflrr3vvIzpnIDopoHorr7nva7liJfnmoTliJ3lp4vlrr3luqYgd2lkdGhcclxuICAgKiBAZW5fVVMgRHJhZyB0aGUgY29sdW1uIHdpZHRoLCB5b3UgbmVlZCB0byBzZXQgdGhlIGluaXRpYWwgd2lkdGggb2YgdGhlIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOaLluWKqOWIl+WuvVxyXG4gICAqIEBlbl9VUyBEcmFnZ2luZyB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdnaW5nV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vmi5bliqjliJflrr3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gc3RhcnRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aFN0YXJ0ZWQ/OiAoZXZlbnQ6IFhUYWJsZURyYWdXaWR0aEV2ZW50KSA9PiB2b2lkO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjmi5bliqjliJflrr3ml7bnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnQgdG8gbW92ZWQgZHJhZyBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGhNb3ZlZD86IChldmVudDogWFRhYmxlRHJhZ1dpZHRoRXZlbnQpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOe7k+adn+aLluWKqOWIl+WuveeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBFdmVudCB0byBlbmRlZCBkcmFnIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aEVuZGVkPzogKGV2ZW50OiBYVGFibGVEcmFnV2lkdGhFdmVudCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiXXHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtblxyXG4gICAqL1xyXG4gIGRyYWdDb2x1bW4/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjmi5bliqjliJdcclxuICAgKiBAZW5fVVMgRHJhZ2dpbmcgY29sdW1uXHJcbiAgICovXHJcbiAgZHJhZ2dpbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpLTpg6jmmL7npLogY2hlY2tib3hcclxuICAgKiBAZW5fVVMgSGVhZCBzaG93cyBjaGVja2JveFxyXG4gICAqL1xyXG4gIGhlYWRDaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aS06YOo5pi+56S6IGV4cGFuZFxyXG4gICAqIEBlbl9VUyBIZWFkIHNob3dzIGV4cGFuZFxyXG4gICAqL1xyXG4gIGhlYWRFeHBhbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflpLTlrr3luqbmi5bliqjkuovku7ZcclxuICogQGVuX1VTIENvbHVtbiBoZWFkZXIgd2lkdGggZHJhZyBldmVudFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVEcmFnV2lkdGhFdmVudCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOeahOWIl1xyXG4gICAqIEBlbl9VUyBEcmFnZ2VkIGNvbHVtblxyXG4gICAqL1xyXG4gIGNvbHVtbjogWFRhYmxlQ29sdW1uO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfkvY3nva7vvIzmraPlnKjmi5bliqjnmoTml7blgJnmjIflgY/np7vkvY3nva5cclxuICAgKiBAZW5fVVMgVGhlIGNvbHVtbiBwb3NpdGlvbiByZWZlcnMgdG8gdGhlIG9mZnNldCBwb3NpdGlvbiB3aGVuIGRyYWdnaW5nXHJcbiAgICovXHJcbiAgcG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflpLQgY2hlY2tib3gg5LqL5Lu25pWw5o2uXHJcbiAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIGNoZWNrYm94IGV2ZW50IGRhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlSGVhZENoZWNrYm94IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgcm93czogWFRhYmxlUm93W107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBkYXRhXHJcbiAgICovXHJcbiAgY2hlY2tib3g6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBib29sZWFuIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAqIEBlbl9VUyBDZWxsIGNvbmZpZ1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDZWxsQ29uZmlnIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENvbHVtbiBjZWxsIGNvbmZpZ1xyXG4gICAqL1xyXG4gIHRoZWFkPzogWFRhYmxlQ2VsbENvbmZpZ1J1bGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBSb3cgY29uZmlnXHJcbiAgICovXHJcbiAgdGJvZHk/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzphY3nva7op4TliJlcclxuICogQGVuX1VTIENlbGwgY29uZmlnIHJ1bGVzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGxDb25maWdSdWxlIHtcclxuICAvKipcclxuICAgKiBAemhfQ04gZ3JpZCDluIPlsYDkuIvlrprkuYnliJflrr3luqZcclxuICAgKiBAZW5fVVMgRGVmaW5lIGNvbHVtbiB3aWR0aCB1bmRlciBncmlkIGxheW91dFxyXG4gICAqL1xyXG4gIGdyaWRUZW1wbGF0ZUNvbHVtbnM/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIG1lcmdlIHJ1bGVzXHJcbiAgICovXHJcbiAgY2VsbHM/OiBYVGFibGVDZWxsW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Y2V5YWD5qC85ZCI5bm26YWN572uXHJcbiAqIEBlbl9VUyBDZWxsIG1lcmdlIHJ1bGVzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGwge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkvb/nlKggZ3JpZCDluIPlsYDmnaXlkIjlubbljZXlhYPmoLxcclxuICAgKiBAZW5fVVMgVXNlIGdyaWQgbGF5b3V0IHRvIG1lcmdlIGNlbGxzXHJcbiAgICovXHJcbiAgZ3JpZEFyZWE/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWQjeensFxyXG4gICAqIEBlbl9VUyBOYW1lXHJcbiAgICovXHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWuveW6plxyXG4gICAqIEBlbl9VUyBXaWR0aFxyXG4gICAqL1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm7rlrprliJfvvIzot53nprvlt6bovrnnmoTot53nprtcclxuICAgKiBAZW5fVVMgRml4ZWQgY29sdW1uLCBkaXN0YW5jZSBmcm9tIGxlZnRcclxuICAgKi9cclxuICBsZWZ0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm7rlrprliJfvvIzot53nprvlj7PovrnnmoTot53nprtcclxuICAgKiBAZW5fVVMgRml4ZWQgY29sdW1uLCBkaXN0YW5jZSBmcm9tIHJpZ2h0XHJcbiAgICovXHJcbiAgcmlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWvueW6lOWIl+eahCBpZFxyXG4gICAqIEBlbl9VUyBUaGUgaWQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uXHJcbiAgICovXHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWIl+WuvVxyXG4gICAqIEBlbl9VUyBEcmFnIHRoZSBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJfnsbvlnotcclxuICogQGVuX1VTIENvbHVtbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYQ29sdW1uVHlwZSA9ICdsYWJlbCcgfCAnaW5kZXgnIHwgJ2NoZWNrYm94JyB8ICdleHBhbmQnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflpLTmmL7npLrkvY3nva5cclxuICogQGVuX1VTIExpbmUgaGVhZCBkaXNwbGF5IHBvc2l0aW9uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVGFibGVIZWFkZXJQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCAndG9wLWJvdHRvbSc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIhumhteWZqOS9jee9rlxyXG4gKiBAZW5fVVMgUGFnaW5nIHBvc2l0aW9uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYUGFnaW5hdGlvblBvc2l0aW9uID1cclxuICB8ICd0b3AtbGVmdCdcclxuICB8ICd0b3AtY2VudGVyJ1xyXG4gIHwgJ3RvcC1yaWdodCdcclxuICB8ICdib3R0b20tbGVmdCdcclxuICB8ICdib3R0b20tY2VudGVyJ1xyXG4gIHwgJ2JvdHRvbS1yaWdodCc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaooeadv1xyXG4gKiBAZW5fVVMgVGVtcGxhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhUYWJsZVRlbXBsYXRlID0geyBbcHJvcGVydHk6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfTtcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBIZWFkXHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlLWhlYWRcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVIZWFkUHJlZml4ID0gJ3gtdGFibGUtaGVhZCc7XHJcblxyXG4vKipcclxuICogVGFibGUgSGVhZCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiBgJHtYVGFibGVIZWFkUHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlSGVhZFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6ZuG5ZCIXHJcbiAgICogQGVuX1VTIENvbHVtbiBzZXRcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5zID0gaW5wdXQ8WFRhYmxlQ29sdW1uW10+KFtdKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqm77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlaWdodCBpbiBweFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHJvd0hlaWdodCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oNDIsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5UcGwgPSBpbnB1dDxYVGFibGVUZW1wbGF0ZT4oe30pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnq5blkJHmu5rliqjmnaHlrr3luqZcclxuICAgKiBAZW5fVVMgVmVydGljYWwgc2Nyb2xsIGJhciB3aWR0aFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNjcm9sbFlXaWR0aCA9IGlucHV0PG51bWJlciB8IG51bGwsIFhOdW1iZXI+KG51bGwsIHsgdHJhbnNmb3JtOiBYVG9OdW1iZXIgfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaoquWQkea7muWKqOadoeWuveW6plxyXG4gICAqIEBlbl9VUyBIb3Jpem9udGFsIHNjcm9sbCBiYXIgd2lkdGhcclxuICAgKi9cclxuICByZWFkb25seSBzY3JvbGxYV2lkdGggPSBpbnB1dDxudW1iZXIgfCBudWxsLCBYTnVtYmVyPihudWxsLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ2VsbCBtZXJnZSBydWxlc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNlbGxDb25maWcgPSBpbnB1dDxYVGFibGVDZWxsQ29uZmlnUnVsZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S655qE5L2N572uXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICByZWFkb25seSBwb3NpdGlvbiA9IGlucHV0PHN0cmluZz4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEJvZHlcclxuICogQHNlbGVjdG9yIHgtdGFibGUtYm9keVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZUJvZHlQcmVmaXggPSAneC10YWJsZS1ib2R5JztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBCb2R5IFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6IGAke1hUYWJsZUJvZHlQcmVmaXh9LXByb3BlcnR5YCwgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVCb2R5UHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmlbDmja5cclxuICAgKiBAZW5fVVMgUm93IGRhdGFcclxuICAgKi9cclxuICByZWFkb25seSBkYXRhID0gaW5wdXQ8WFRhYmxlUm93W10+KFtdKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6ZuG5ZCIXHJcbiAgICogQGVuX1VTIENvbHVtbiBzZXRcclxuICAgKi9cclxuICByZWFkb25seSBjb2x1bW5zID0gaW5wdXQ8WFRhYmxlQ29sdW1uW10+KFtdKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIEN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvbHVtblRwbCA9IGlucHV0PFhUYWJsZVRlbXBsYXRlPih7fSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgc2VsZWN0ZWQgcm93IGRhdGFcclxuICAgKi9cclxuICByZWFkb25seSBhY3RpdmF0ZWRSb3cgPSBtb2RlbDxYVGFibGVSb3c+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6pu+8jOWNleS9jSBweOOAguiuvue9ruS4uiAwIOihqOekuuihjOmrmOiHqumAguW6lOWGheWuuemrmOW6puOAglxyXG4gICAqIEBlbl9VUyBIZWlnaHQgaW4gcHguIHNldCB0byAwIG1lYW5zIHRoYXQgdGhlIHJvdyBoZWlnaHQgaXMgYWRhcHRpdmUgdG8gdGhlIGNvbnRlbnQgaGVpZ2h0XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcm93SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPig0MiwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04gYm9keSDmlbDmja7pq5jluqZcclxuICAgKiBAZW5fVVMgYm9keSBkYXRhIGhlaWdodFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGJvZHlIZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBudWxsLCBYTnVtYmVyPihudWxsLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhYHorrjooYzngrnlh7vpgInkuK1cclxuICAgKiBAZW5fVVMgQWxsb3cgcm93IGNsaWNrIHRvIHNlbGVjdFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFsbG93U2VsZWN0Um93ID0gaW5wdXQ8Ym9vbGVhbiwgWEJvb2xlYW4+KHRydWUsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVHVybiBvbiB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHZpcnR1YWxTY3JvbGwgPSBpbnB1dDxib29sZWFuLCBYQm9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBYVG9Cb29sZWFuIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBpdGVtU2l6Ze+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBpdGVtU2l6Ze+8jGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGl0ZW1TaXplID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPig0MiwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LaF5Ye65Y+v6KeG56qX5Y+j57yT5Yay5Yy655qE5pyA5bCP5YC877yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIEV4Y2VlZCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICByZWFkb25seSBtaW5CdWZmZXJQeCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMTAwLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgbWF4QnVmZmVyUHggPSBpbnB1dDxudW1iZXIsIFhOdW1iZXI+KDIwMCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq6YCC5bqU6auY5bqm77yMdGFibGUg6auY5bqm562J5LqO5bGP5bmV6auY5bqm5YeP5o6J5q2k5aSE6K6+572u55qE5pWw5YC8XHJcbiAgICogQGVuX1VTIEFkYXB0aXZlIGhlaWdodCwgdGFibGUgaGVpZ2h0IGlzIGVxdWFsIHRvIHRoZSBzY3JlZW4gaGVpZ2h0IG1pbnVzIHRoZSB2YWx1ZSBzZXQgaGVyZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGFkYXB0aW9uSGVpZ2h0ID0gaW5wdXQ8bnVtYmVyIHwgbnVsbCwgWE51bWJlcj4obnVsbCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5qGj6auY5bqm55m+5YiG5q+U77yM5by556qX55m+5YiG5q+U6auY5bqm55So5YiwXHJcbiAgICogQGVuX1VTIERvY3VtZW50IGhlaWdodCBwZXJjZW50YWdlLCB1c2VkIGJ5IHBvcC11cCB3aW5kb3cgcGVyY2VudGFnZSBoZWlnaHRcclxuICAgKi9cclxuICByZWFkb25seSBkb2NQZXJjZW50ID0gaW5wdXQ8bnVtYmVyLCBYTnVtYmVyPigxLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmu5rliqjljLrln5/pq5jlrr1cclxuICAgKiBAZW5fVVMgSGVpZ2h0IGFuZCB3aWR0aCBvZiByb2xsaW5nIGFyZWFcclxuICAgKi9cclxuICByZWFkb25seSBzY3JvbGwgPSBpbnB1dDx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9ruinhOWImVxyXG4gICAqIEBlbl9VUyBDZWxsIGNvbmZpZyBydWxlc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNlbGxDb25maWcgPSBpbnB1dDxYVGFibGVDZWxsQ29uZmlnUnVsZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5p2h5Lu25qC35byPXHJcbiAgICogQGVuX1VTIFJvdyBjb25kaXRpb24gY2xhc3NcclxuICAgKi9cclxuICByZWFkb25seSByb3dDbGFzcyA9IGlucHV0PChyb3c6IFhUYWJsZVJvdywgaW5kZXg6IG51bWJlcikgPT4geyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9ouihqOagvOS4i+eahOWxgue6p1xyXG4gICAqIEBlbl9VUyBUaGUgbGV2ZWwgdW5kZXIgdGhlIHRyZWUgdGFibGVcclxuICAgKi9cclxuICByZWFkb25seSBsZXZlbCA9IGlucHV0PG51bWJlciwgWE51bWJlcj4oMCwgeyB0cmFuc2Zvcm06IFhUb051bWJlciB9KTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC85bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICByZWFkb25seSBleHBhbmRlZEFsbCA9IGlucHV0PGJvb2xlYW4sIFhCb29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IFhUb0Jvb2xlYW4gfSk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxleW8gOWGheWuuVxyXG4gICAqIEBlbl9VUyBDdXN0b21pemVkIGV4cGFuc2lvbiBjb250ZW50XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZXhwYW5kVHBsID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG59XHJcblxyXG4vKipcclxuICogVGFibGUgRm9vdFxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZS1mb290XHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlRm9vdFByZWZpeCA9ICd4LXRhYmxlLWZvb3QnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEZvb3QgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WFRhYmxlRm9vdFByZWZpeH0tcHJvcGVydHlgLCB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUZvb3RQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteWwvlxyXG4gICAqIEBlbl9VUyBUYWJsZSBmb290ZXJcclxuICAgKi9cclxuICByZWFkb25seSBmb290ZXIgPSBpbnB1dDxYVGVtcGxhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOWktOWSjOihjOmrmO+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWFkZXIgYW5kIHJvdyBoZWlnaHQsIHVuaXQgcHhcclxuICAgKi9cclxuICByZWFkb25seSByb3dIZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBudWxsLCBYTnVtYmVyPihudWxsLCB7IHRyYW5zZm9ybTogWFRvTnVtYmVyIH0pO1xyXG59XHJcbiJdfQ==
|