vviinn-widgets 2.18.21 → 2.19.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/dist/cjs/Campaign-13258569.js +2 -0
- package/dist/cjs/Campaign-13258569.js.map +1 -0
- package/dist/cjs/{Handler-176539c8.js → Handler-de64afa5.js} +31 -43
- package/dist/cjs/Handler-de64afa5.js.map +1 -0
- package/dist/cjs/cropper-handler.cjs.entry.js +7 -4
- package/dist/cjs/cropper-handler.cjs.entry.js.map +1 -0
- package/dist/cjs/{customized-slots-6e56c354.js → customized-slots-aee3f39d.js} +3 -1
- package/dist/cjs/customized-slots-aee3f39d.js.map +1 -0
- package/dist/cjs/highlight-box_22.cjs.entry.js +68 -39
- package/dist/cjs/highlight-box_22.cjs.entry.js.map +1 -0
- package/dist/cjs/{imageSearch.store-98824653.js → imageSearch.store-fbe0600a.js} +3570 -2250
- package/dist/cjs/imageSearch.store-fbe0600a.js.map +1 -0
- package/dist/cjs/{index-cb410762.js → index-610c6c1f.js} +3 -1
- package/dist/cjs/index-610c6c1f.js.map +1 -0
- package/dist/cjs/{index-7f1325a7.js → index-a4becaff.js} +685 -303
- package/dist/cjs/index-a4becaff.js.map +1 -0
- package/dist/cjs/{index-a99edb90.js → index-c4851793.js} +3 -1
- package/dist/cjs/index-c4851793.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +6 -3
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/vviinn-button.cjs.entry.js +5 -3
- package/dist/cjs/vviinn-button.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-carousel_3.cjs.entry.js +124 -39
- package/dist/cjs/vviinn-carousel_3.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-error.cjs.entry.js +4 -2
- package/dist/cjs/vviinn-error.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-preloader.cjs.entry.js +7 -5
- package/dist/cjs/vviinn-preloader.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js +15 -6
- package/dist/cjs/vviinn-recommendations-sidebar.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-vpr-button.cjs.entry.js +13 -12
- package/dist/cjs/vviinn-vpr-button.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-vps-button.cjs.entry.js +28 -25
- package/dist/cjs/vviinn-vps-button.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-vps-widget.cjs.entry.js +46 -31
- package/dist/cjs/vviinn-vps-widget.cjs.entry.js.map +1 -0
- package/dist/cjs/vviinn-widgets.cjs.js +12 -3
- package/dist/cjs/vviinn-widgets.cjs.js.map +1 -0
- package/dist/collection/Image/error.js +1 -0
- package/dist/collection/Image/error.js.map +1 -0
- package/dist/collection/Image/form.js +1 -0
- package/dist/collection/Image/form.js.map +1 -0
- package/dist/collection/Image/fromFile.js +1 -0
- package/dist/collection/Image/fromFile.js.map +1 -0
- package/dist/collection/Image/imageToB64.js +1 -0
- package/dist/collection/Image/imageToB64.js.map +1 -0
- package/dist/collection/Image/index.js +1 -0
- package/dist/collection/Image/index.js.map +1 -0
- package/dist/collection/Image/renderPromise.js +1 -0
- package/dist/collection/Image/renderPromise.js.map +1 -0
- package/dist/collection/Image/resizeImage.js +1 -0
- package/dist/collection/Image/resizeImage.js.map +1 -0
- package/dist/collection/Image/sizing.js +1 -0
- package/dist/collection/Image/sizing.js.map +1 -0
- package/dist/collection/Image/sizing.spec.js +67 -0
- package/dist/collection/Image/sizing.spec.js.map +1 -0
- package/dist/collection/Image/toFile.js +1 -0
- package/dist/collection/Image/toFile.js.map +1 -0
- package/dist/collection/analytics/GAnalytics.js +1 -0
- package/dist/collection/analytics/GAnalytics.js.map +1 -0
- package/dist/collection/analytics/GeneralAnalytics.js +1 -0
- package/dist/collection/analytics/GeneralAnalytics.js.map +1 -0
- package/dist/collection/analytics/GtagAnalytics.js +1 -0
- package/dist/collection/analytics/GtagAnalytics.js.map +1 -0
- package/dist/collection/analytics/ProductAnalytics.js +1 -0
- package/dist/collection/analytics/ProductAnalytics.js.map +1 -0
- package/dist/collection/campaign/Campaign.js +1 -0
- package/dist/collection/campaign/Campaign.js.map +1 -0
- package/dist/collection/campaign/CampaignService.js +1 -0
- package/dist/collection/campaign/CampaignService.js.map +1 -0
- package/dist/collection/campaign/VCSCampaign.js +1 -0
- package/dist/collection/campaign/VCSCampaign.js.map +1 -0
- package/dist/collection/campaign/VCSCampaignResponse.js +1 -0
- package/dist/collection/campaign/VCSCampaignResponse.js.map +1 -0
- package/dist/collection/campaign/VCSCampaignService.js +1 -0
- package/dist/collection/campaign/VCSCampaignService.js.map +1 -0
- package/dist/collection/campaign/VPRCampaignResponse.js +1 -0
- package/dist/collection/campaign/VPRCampaignResponse.js.map +1 -0
- package/dist/collection/campaign/VPRCampaignService.js +1 -0
- package/dist/collection/campaign/VPRCampaignService.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/customized-slots.js +1 -0
- package/dist/collection/components/customized-slots.js.map +1 -0
- package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.css +2 -16
- package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.js +12 -7
- package/dist/collection/components/image-search/image-view/highlight-box/highlight-box.js.map +1 -0
- package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.css +0 -1
- package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js +41 -37
- package/dist/collection/components/image-search/image-view/image-cropper/cropper-handler/cropper-handler.js.map +1 -0
- package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js +74 -67
- package/dist/collection/components/image-search/image-view/image-cropper/image-cropper.js.map +1 -0
- package/dist/collection/components/image-search/search-filters/search-filters.css +4 -23
- package/dist/collection/components/image-search/search-filters/search-filters.js +98 -91
- package/dist/collection/components/image-search/search-filters/search-filters.js.map +1 -0
- package/dist/collection/components/vviinn-button/vviinn-button.js +35 -31
- package/dist/collection/components/vviinn-button/vviinn-button.js.map +1 -0
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.css +1 -2
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.js +162 -156
- package/dist/collection/components/vviinn-carousel/vviinn-carousel.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js +13 -14
- package/dist/collection/components/vviinn-error/vviinn-empty-results/vviinn-empty-results.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-error.js +13 -12
- package/dist/collection/components/vviinn-error/vviinn-error.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js +36 -30
- package/dist/collection/components/vviinn-error/vviinn-server-error/vviinn-server-error.js.map +1 -0
- package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js +36 -30
- package/dist/collection/components/vviinn-error/vviinn-wrong-format/vviinn-wrong-format.js.map +1 -0
- package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js +130 -121
- package/dist/collection/components/vviinn-example-images/vviinn-example-image/vviinn-example-image.js.map +1 -0
- package/dist/collection/components/vviinn-example-images/vviinn-example-images.js +76 -75
- package/dist/collection/components/vviinn-example-images/vviinn-example-images.js.map +1 -0
- package/dist/collection/components/vviinn-icons/index.js +11 -27
- package/dist/collection/components/vviinn-icons/index.js.map +1 -0
- package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js +121 -67
- package/dist/collection/components/vviinn-image-selector/vviinn-image-selector.js.map +1 -0
- package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js +82 -69
- package/dist/collection/components/vviinn-image-view/vviinn-detected-object/vviinn-detected-object.js.map +1 -0
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.css +0 -1
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.js +28 -28
- package/dist/collection/components/vviinn-image-view/vviinn-image-view.js.map +1 -0
- package/dist/collection/components/vviinn-modal/vviinn-modal.css +7 -36
- package/dist/collection/components/vviinn-modal/vviinn-modal.js +116 -93
- package/dist/collection/components/vviinn-modal/vviinn-modal.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js +13 -14
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-1/vviinn-onboarding-card-1.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js +13 -14
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-2/vviinn-onboarding-card-2.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js +13 -14
- package/dist/collection/components/vviinn-onboarding/onboarding-cards/vviinn-onboarding-card-3/vviinn-onboarding-card-3.js.map +1 -0
- package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js +13 -17
- package/dist/collection/components/vviinn-onboarding/vviinn-onboarding.js.map +1 -0
- package/dist/collection/components/vviinn-overlay/vviinn-overlay.css +1 -12
- package/dist/collection/components/vviinn-overlay/vviinn-overlay.js +13 -9
- package/dist/collection/components/vviinn-overlay/vviinn-overlay.js.map +1 -0
- package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js +108 -78
- package/dist/collection/components/vviinn-overlayed-modal/vviinn-overlayed-modal.js.map +1 -0
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.css +1 -11
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.js +12 -7
- package/dist/collection/components/vviinn-preloader/vviinn-preloader.js.map +1 -0
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.css +0 -1
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js +13 -16
- package/dist/collection/components/vviinn-privacy-badge/vviinn-privacy-badge.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/render-helpers.js +7 -14
- package/dist/collection/components/vviinn-product-card/render-helpers.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/stories/args.js +1 -0
- package/dist/collection/components/vviinn-product-card/stories/args.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/stories/decorators.js +1 -0
- package/dist/collection/components/vviinn-product-card/stories/decorators.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/stories/vviinn-product-card.stories.js +1 -0
- package/dist/collection/components/vviinn-product-card/stories/vviinn-product-card.stories.js.map +1 -0
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js +426 -415
- package/dist/collection/components/vviinn-product-card/vviinn-product-card.js.map +1 -0
- package/dist/collection/components/vviinn-slider/arrow.js +2 -2
- package/dist/collection/components/vviinn-slider/arrow.js.map +1 -0
- package/dist/collection/components/vviinn-slider/vviinn-slide/vviinn-slide.js +13 -9
- package/dist/collection/components/vviinn-slider/vviinn-slide/vviinn-slide.js.map +1 -0
- package/dist/collection/components/vviinn-slider/vviinn-slider.css +0 -1
- package/dist/collection/components/vviinn-slider/vviinn-slider.js +88 -82
- package/dist/collection/components/vviinn-slider/vviinn-slider.js.map +1 -0
- package/dist/collection/components/vviinn-teaser/vviinn-teaser.js +13 -18
- package/dist/collection/components/vviinn-teaser/vviinn-teaser.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.css +12 -64
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js +372 -360
- package/dist/collection/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/args.js +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/args.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js +1 -0
- package/dist/collection/components/vviinn-vpr-button/stories/vviinn-vpr-button.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js +449 -444
- package/dist/collection/components/vviinn-vpr-button/vviinn-vpr-button.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/args.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/args.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/decorators.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/decorators.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/stories/vviinn-vpr-widget.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/token-helpers.js +1 -0
- package/dist/collection/components/vviinn-vpr-widget/token-helpers.js.map +1 -0
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js +546 -542
- package/dist/collection/components/vviinn-vpr-widget/vviinn-vpr-vidget.js.map +1 -0
- package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js +3 -0
- package/dist/collection/components/vviinn-vps-button/stories/vviinn-vps-button.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js +369 -332
- package/dist/collection/components/vviinn-vps-button/vviinn-vps-button.js.map +1 -0
- package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js +1 -0
- package/dist/collection/components/vviinn-vps-widget/stories/vviinn-vps-widget.stories.js.map +1 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.css +0 -5
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.e2e.js +27 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.e2e.js.map +1 -0
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js +503 -425
- package/dist/collection/components/vviinn-vps-widget/vviinn-vps-widget.js.map +1 -0
- package/dist/collection/cropper/Cropper.js +1 -0
- package/dist/collection/cropper/Cropper.js.map +1 -0
- package/dist/collection/cropper/Handler.js +1 -0
- package/dist/collection/cropper/Handler.js.map +1 -0
- package/dist/collection/dom/index.js +1 -0
- package/dist/collection/dom/index.js.map +1 -0
- package/dist/collection/error.js +1 -0
- package/dist/collection/error.js.map +1 -0
- package/dist/collection/file/index.js +1 -0
- package/dist/collection/file/index.js.map +1 -0
- package/dist/collection/geometry/Clip.js +1 -0
- package/dist/collection/geometry/Clip.js.map +1 -0
- package/dist/collection/geometry/Clip.spec.js +17 -0
- package/dist/collection/geometry/Clip.spec.js.map +1 -0
- package/dist/collection/geometry/Point.js +1 -0
- package/dist/collection/geometry/Point.js.map +1 -0
- package/dist/collection/geometry/Rectangle.js +1 -0
- package/dist/collection/geometry/Rectangle.js.map +1 -0
- package/dist/collection/geometry/Rectangle.spec.js +67 -0
- package/dist/collection/geometry/Rectangle.spec.js.map +1 -0
- package/dist/collection/geometry/RectangleAlt.js +1 -0
- package/dist/collection/geometry/RectangleAlt.js.map +1 -0
- package/dist/collection/geometry/Sized.js +1 -0
- package/dist/collection/geometry/Sized.js.map +1 -0
- package/dist/collection/geometry/Sized.spec.js +17 -0
- package/dist/collection/geometry/Sized.spec.js.map +1 -0
- package/dist/collection/global.js +1 -0
- package/dist/collection/global.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/interfaces/generated.js +1 -4
- package/dist/collection/interfaces/generated.js.map +1 -0
- package/dist/collection/interfaces/recommendation.js +1 -0
- package/dist/collection/interfaces/recommendation.js.map +1 -0
- package/dist/collection/network/apiClient.js +1 -0
- package/dist/collection/network/apiClient.js.map +1 -0
- package/dist/collection/network/ion/File.js +1 -0
- package/dist/collection/network/ion/File.js.map +1 -0
- package/dist/collection/network/ion/Form.js +1 -0
- package/dist/collection/network/ion/Form.js.map +1 -0
- package/dist/collection/network/ion/Form.spec.js +44 -0
- package/dist/collection/network/ion/Form.spec.js.map +1 -0
- package/dist/collection/network/ion/Link.js +1 -0
- package/dist/collection/network/ion/Link.js.map +1 -0
- package/dist/collection/network/ion/ValueObject.js +1 -0
- package/dist/collection/network/ion/ValueObject.js.map +1 -0
- package/dist/collection/network/request.js +1 -0
- package/dist/collection/network/request.js.map +1 -0
- package/dist/collection/network/utils.js +1 -0
- package/dist/collection/network/utils.js.map +1 -0
- package/dist/collection/openApi/index.js +1 -0
- package/dist/collection/openApi/index.js.map +1 -0
- package/dist/collection/recommendation/events.js +1 -0
- package/dist/collection/recommendation/events.js.map +1 -0
- package/dist/collection/recommendation/recommendation.js +1 -0
- package/dist/collection/recommendation/recommendation.js.map +1 -0
- package/dist/collection/searchSession/searchSession.js +1 -0
- package/dist/collection/searchSession/searchSession.js.map +1 -0
- package/dist/collection/sentry.js +1 -0
- package/dist/collection/sentry.js.map +1 -0
- package/dist/collection/slider/GridMode.js +1 -0
- package/dist/collection/slider/GridMode.js.map +1 -0
- package/dist/collection/store/file-processing.js +1 -0
- package/dist/collection/store/file-processing.js.map +1 -0
- package/dist/collection/store/imageSearch.store.js +1 -0
- package/dist/collection/store/imageSearch.store.js.map +1 -0
- package/dist/collection/store/store.js +1 -0
- package/dist/collection/store/store.js.map +1 -0
- package/dist/collection/store/tracking.store.js +1 -0
- package/dist/collection/store/tracking.store.js.map +1 -0
- package/dist/collection/stories/image-selector.stories.js +1 -0
- package/dist/collection/stories/image-selector.stories.js.map +1 -0
- package/dist/collection/stories/image-view.stories.js +1 -0
- package/dist/collection/stories/image-view.stories.js.map +1 -0
- package/dist/collection/stories/modal.stories.js +1 -0
- package/dist/collection/stories/modal.stories.js.map +1 -0
- package/dist/collection/stories/onboarding.stories.js +1 -0
- package/dist/collection/stories/onboarding.stories.js.map +1 -0
- package/dist/collection/stories/overlay.stories.js +1 -0
- package/dist/collection/stories/overlay.stories.js.map +1 -0
- package/dist/collection/stories/overlayedModal.stories.js +1 -0
- package/dist/collection/stories/overlayedModal.stories.js.map +1 -0
- package/dist/collection/stories/privacy-badge.stories.js +1 -0
- package/dist/collection/stories/privacy-badge.stories.js.map +1 -0
- package/dist/collection/stories/slider.stories.js +1 -0
- package/dist/collection/stories/slider.stories.js.map +1 -0
- package/dist/collection/stories/teaser.stories.js +1 -0
- package/dist/collection/stories/teaser.stories.js.map +1 -0
- package/dist/collection/stories/vps-widget.stories.js +1 -0
- package/dist/collection/stories/vps-widget.stories.js.map +1 -0
- package/dist/collection/stories/vviinn-product.stories.js +1 -0
- package/dist/collection/stories/vviinn-product.stories.js.map +1 -0
- package/dist/collection/tracking/event.js +1 -0
- package/dist/collection/tracking/event.js.map +1 -0
- package/dist/collection/tracking/filter.js +1 -0
- package/dist/collection/tracking/filter.js.map +1 -0
- package/dist/collection/tracking/index.js +1 -0
- package/dist/collection/tracking/index.js.map +1 -0
- package/dist/collection/tracking/models.js +1 -0
- package/dist/collection/tracking/models.js.map +1 -0
- package/dist/collection/tracking/product.js +1 -0
- package/dist/collection/tracking/product.js.map +1 -0
- package/dist/collection/tracking/search.js +1 -0
- package/dist/collection/tracking/search.js.map +1 -0
- package/dist/collection/tracking/widget.js +1 -0
- package/dist/collection/tracking/widget.js.map +1 -0
- package/dist/collection/utils/collections/collectionsUtils.js +1 -0
- package/dist/collection/utils/collections/collectionsUtils.js.map +1 -0
- package/dist/collection/utils/either.js +1 -0
- package/dist/collection/utils/either.js.map +1 -0
- package/dist/collection/utils/enum/enumUtils.js +1 -0
- package/dist/collection/utils/enum/enumUtils.js.map +1 -0
- package/dist/collection/utils/event/Events.js +1 -0
- package/dist/collection/utils/event/Events.js.map +1 -0
- package/dist/collection/utils/number/index.js +1 -0
- package/dist/collection/utils/number/index.js.map +1 -0
- package/dist/collection/utils/option/option.js +1 -0
- package/dist/collection/utils/option/option.js.map +1 -0
- package/dist/collection/utils/semigroup/semigroupDiff.js +1 -0
- package/dist/collection/utils/semigroup/semigroupDiff.js.map +1 -0
- package/dist/collection/utils/token/tokenUtils.js +1 -0
- package/dist/collection/utils/token/tokenUtils.js.map +1 -0
- package/dist/esm/Campaign-90ba7e06.js +2 -0
- package/dist/esm/Campaign-90ba7e06.js.map +1 -0
- package/dist/esm/{Handler-f9b8735c.js → Handler-7bfee84f.js} +30 -43
- package/dist/esm/Handler-7bfee84f.js.map +1 -0
- package/dist/esm/cropper-handler.entry.js +7 -4
- package/dist/esm/cropper-handler.entry.js.map +1 -0
- package/dist/esm/{customized-slots-00afe247.js → customized-slots-b372eaed.js} +3 -1
- package/dist/esm/customized-slots-b372eaed.js.map +1 -0
- package/dist/esm/highlight-box_22.entry.js +68 -39
- package/dist/esm/highlight-box_22.entry.js.map +1 -0
- package/dist/esm/{imageSearch.store-9dde5360.js → imageSearch.store-cccd9b24.js} +3572 -2251
- package/dist/esm/imageSearch.store-cccd9b24.js.map +1 -0
- package/dist/esm/{index-590cb67e.js → index-48ef9564.js} +685 -304
- package/dist/esm/index-48ef9564.js.map +1 -0
- package/dist/esm/{index-b31d86ce.js → index-714e572a.js} +3 -1
- package/dist/esm/index-714e572a.js.map +1 -0
- package/dist/esm/{index-4d5b52ba.js → index-fdc32fbc.js} +3 -1
- package/dist/esm/index-fdc32fbc.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +6 -3
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/vviinn-button.entry.js +5 -3
- package/dist/esm/vviinn-button.entry.js.map +1 -0
- package/dist/esm/vviinn-carousel_3.entry.js +123 -38
- package/dist/esm/vviinn-carousel_3.entry.js.map +1 -0
- package/dist/esm/vviinn-error.entry.js +4 -2
- package/dist/esm/vviinn-error.entry.js.map +1 -0
- package/dist/esm/vviinn-preloader.entry.js +7 -5
- package/dist/esm/vviinn-preloader.entry.js.map +1 -0
- package/dist/esm/vviinn-recommendations-sidebar.entry.js +15 -6
- package/dist/esm/vviinn-recommendations-sidebar.entry.js.map +1 -0
- package/dist/esm/vviinn-vpr-button.entry.js +13 -12
- package/dist/esm/vviinn-vpr-button.entry.js.map +1 -0
- package/dist/esm/vviinn-vps-button.entry.js +28 -25
- package/dist/esm/vviinn-vps-button.entry.js.map +1 -0
- package/dist/esm/vviinn-vps-widget.entry.js +46 -31
- package/dist/esm/vviinn-vps-widget.entry.js.map +1 -0
- package/dist/esm/vviinn-widgets.js +9 -3
- package/dist/esm/vviinn-widgets.js.map +1 -0
- package/dist/loader/index.d.ts +9 -0
- package/dist/loader/package.json +1 -0
- package/dist/types/Image/sizing.d.ts +4 -4
- package/dist/types/campaign/Campaign.d.ts +5 -5
- package/dist/types/campaign/VCSCampaignResponse.d.ts +1 -1
- package/dist/types/components/vviinn-carousel/vviinn-carousel.d.ts +2 -2
- package/dist/types/components/vviinn-image-selector/vviinn-image-selector.d.ts +4 -0
- package/dist/types/components/vviinn-modal/vviinn-modal.d.ts +2 -0
- package/dist/types/components/vviinn-overlayed-modal/vviinn-overlayed-modal.d.ts +2 -0
- package/dist/types/components/vviinn-product-card/render-helpers.d.ts +3 -3
- package/dist/types/components/vviinn-slider/arrow.d.ts +2 -2
- package/dist/types/components/vviinn-vpr-button/recommendations-sidebar/recommendations-sidebar.d.ts +2 -2
- package/dist/types/components/vviinn-vps-button/vviinn-vps-button.d.ts +9 -4
- package/dist/types/components/vviinn-vps-widget/vviinn-vps-widget.d.ts +8 -0
- package/dist/types/components.d.ts +154 -54
- package/dist/types/error.d.ts +1 -1
- package/dist/types/geometry/Point.d.ts +1 -1
- package/dist/types/geometry/Rectangle.d.ts +1 -1
- package/dist/types/geometry/Sized.d.ts +1 -1
- package/dist/types/interfaces/generated.d.ts +192 -371
- package/dist/types/network/ion/File.d.ts +2 -2
- package/dist/types/network/ion/Form.d.ts +5 -5
- package/dist/types/network/ion/Link.d.ts +1 -1
- package/dist/types/network/ion/ValueObject.d.ts +4 -4
- package/dist/types/network/utils.d.ts +3 -3
- package/dist/types/recommendation/events.d.ts +5 -5
- package/dist/types/recommendation/recommendation.d.ts +1 -1
- package/dist/types/searchSession/searchSession.d.ts +7 -7
- package/dist/types/slider/GridMode.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +98 -23
- package/dist/types/store/imageSearch.store.d.ts +1 -1
- package/dist/types/tracking/models.d.ts +2 -2
- package/dist/types/utils/event/Events.d.ts +1 -1
- package/dist/vviinn-widgets/index.esm.js +2 -0
- package/dist/vviinn-widgets/index.esm.js.map +1 -0
- package/dist/vviinn-widgets/p-0b0d59d7.entry.js +2 -0
- package/dist/vviinn-widgets/p-0b0d59d7.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-14373da7.entry.js +2 -0
- package/dist/vviinn-widgets/p-14373da7.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-18fd769b.js +2 -1
- package/dist/vviinn-widgets/p-18fd769b.js.map +1 -0
- package/dist/vviinn-widgets/p-2f7bf983.js +2 -0
- package/dist/vviinn-widgets/p-2f7bf983.js.map +1 -0
- package/dist/vviinn-widgets/p-3abc679c.js +2 -0
- package/dist/vviinn-widgets/p-3abc679c.js.map +1 -0
- package/dist/vviinn-widgets/p-3b99c62d.js +2 -0
- package/dist/vviinn-widgets/p-3b99c62d.js.map +1 -0
- package/dist/vviinn-widgets/p-4325566b.entry.js +2 -0
- package/dist/vviinn-widgets/p-4325566b.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-53eacbe3.js +2 -0
- package/dist/vviinn-widgets/p-53eacbe3.js.map +1 -0
- package/dist/vviinn-widgets/p-645baf22.entry.js +2 -0
- package/dist/vviinn-widgets/p-645baf22.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-a10b9151.entry.js +2 -0
- package/dist/vviinn-widgets/p-a10b9151.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-c012ef97.entry.js +2 -0
- package/dist/vviinn-widgets/p-c012ef97.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-c24caccd.js +2 -0
- package/dist/vviinn-widgets/p-c24caccd.js.map +1 -0
- package/dist/vviinn-widgets/p-d20a9a96.entry.js +2 -0
- package/dist/vviinn-widgets/p-d20a9a96.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-d95d7c38.entry.js +2 -0
- package/dist/vviinn-widgets/p-d95d7c38.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-e5e67a5f.entry.js +2 -0
- package/dist/vviinn-widgets/p-e5e67a5f.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-e6d67de3.entry.js +2 -0
- package/dist/vviinn-widgets/p-e6d67de3.entry.js.map +1 -0
- package/dist/vviinn-widgets/p-fa17e81f.js +3 -0
- package/dist/vviinn-widgets/p-fa17e81f.js.map +1 -0
- package/dist/vviinn-widgets/vviinn-widgets.esm.js +2 -1
- package/dist/vviinn-widgets/vviinn-widgets.esm.js.map +1 -0
- package/package.json +12 -12
- package/www/build/index.esm.js +2 -0
- package/www/build/index.esm.js.map +1 -0
- package/www/build/p-0b0d59d7.entry.js +2 -0
- package/www/build/p-0b0d59d7.entry.js.map +1 -0
- package/www/build/p-14373da7.entry.js +2 -0
- package/www/build/p-14373da7.entry.js.map +1 -0
- package/www/build/p-18fd769b.js +2 -1
- package/www/build/p-18fd769b.js.map +1 -0
- package/www/build/p-2f7bf983.js +2 -0
- package/www/build/p-2f7bf983.js.map +1 -0
- package/www/build/p-3abc679c.js +2 -0
- package/www/build/p-3abc679c.js.map +1 -0
- package/www/build/p-3b99c62d.js +2 -0
- package/www/build/p-3b99c62d.js.map +1 -0
- package/www/build/p-4325566b.entry.js +2 -0
- package/www/build/p-4325566b.entry.js.map +1 -0
- package/www/build/p-53eacbe3.js +2 -0
- package/www/build/p-53eacbe3.js.map +1 -0
- package/www/build/p-645baf22.entry.js +2 -0
- package/www/build/p-645baf22.entry.js.map +1 -0
- package/www/build/p-a10b9151.entry.js +2 -0
- package/www/build/p-a10b9151.entry.js.map +1 -0
- package/www/build/p-a67898be.css +1 -0
- package/www/build/p-ae6e6410.js +2 -0
- package/www/build/p-c012ef97.entry.js +2 -0
- package/www/build/p-c012ef97.entry.js.map +1 -0
- package/www/build/p-c24caccd.js +2 -0
- package/www/build/p-c24caccd.js.map +1 -0
- package/www/build/p-d20a9a96.entry.js +2 -0
- package/www/build/p-d20a9a96.entry.js.map +1 -0
- package/www/build/p-d95d7c38.entry.js +2 -0
- package/www/build/p-d95d7c38.entry.js.map +1 -0
- package/www/build/p-e5e67a5f.entry.js +2 -0
- package/www/build/p-e5e67a5f.entry.js.map +1 -0
- package/www/build/p-e6d67de3.entry.js +2 -0
- package/www/build/p-e6d67de3.entry.js.map +1 -0
- package/www/build/p-fa17e81f.js +3 -0
- package/www/build/p-fa17e81f.js.map +1 -0
- package/www/build/vviinn-widgets.esm.js +2 -1
- package/www/build/vviinn-widgets.esm.js.map +1 -0
- package/www/index.html +1 -1
- package/dist/vviinn-widgets/p-11f61564.js +0 -1
- package/dist/vviinn-widgets/p-12851e97.entry.js +0 -1
- package/dist/vviinn-widgets/p-2f9ee951.js +0 -1
- package/dist/vviinn-widgets/p-339c6838.js +0 -1
- package/dist/vviinn-widgets/p-3b2c91c0.entry.js +0 -1
- package/dist/vviinn-widgets/p-45df9f28.entry.js +0 -1
- package/dist/vviinn-widgets/p-57ed5303.entry.js +0 -1
- package/dist/vviinn-widgets/p-69850e5b.js +0 -1
- package/dist/vviinn-widgets/p-7c2f762a.entry.js +0 -1
- package/dist/vviinn-widgets/p-7c3b7388.entry.js +0 -1
- package/dist/vviinn-widgets/p-85006f41.entry.js +0 -1
- package/dist/vviinn-widgets/p-8a3dd76d.entry.js +0 -1
- package/dist/vviinn-widgets/p-99e58be7.entry.js +0 -1
- package/dist/vviinn-widgets/p-a2b450b6.entry.js +0 -1
- package/dist/vviinn-widgets/p-bcc1ccf0.js +0 -1
- package/dist/vviinn-widgets/p-e6fee8d2.js +0 -1
- package/www/build/p-11f61564.js +0 -1
- package/www/build/p-12851e97.entry.js +0 -1
- package/www/build/p-2f9ee951.js +0 -1
- package/www/build/p-339c6838.js +0 -1
- package/www/build/p-3b2c91c0.entry.js +0 -1
- package/www/build/p-45df9f28.entry.js +0 -1
- package/www/build/p-57ed5303.entry.js +0 -1
- package/www/build/p-69850e5b.js +0 -1
- package/www/build/p-7c2f762a.entry.js +0 -1
- package/www/build/p-7c3b7388.entry.js +0 -1
- package/www/build/p-85006f41.entry.js +0 -1
- package/www/build/p-8a3dd76d.entry.js +0 -1
- package/www/build/p-99e58be7.entry.js +0 -1
- package/www/build/p-9e2c131a.js +0 -125
- package/www/build/p-a2b450b6.entry.js +0 -1
- package/www/build/p-bcc1ccf0.js +0 -1
- package/www/build/p-e0153ae2.css +0 -6
- package/www/build/p-e6fee8d2.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"imageSearch.store-fbe0600a.js","mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,IAAI,aAAa,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAY,GAAG,6BAA6B,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,KAAK,CAAC,CAAC;AAChiB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,OAAO,YAAY,EAAE,QAAQ;AACjC,QAAQ,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrF,QAAQ,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrF,QAAQ,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5C,QAAQ,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE;AAC1C,QAAQ,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3F,QAAQ,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1E,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,IAAI,OAAO,YAAY,EAAE,QAAQ;AACjC,QAAQ,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACzF,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,IAAI,aAAa,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,OAAO,YAAY,EAAE,QAAQ;AACjC,QAAQ,MAAM,EAAE,aAAa,EAAE,CAAC,MAAM;AACtC,QAAQ,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE;AAC9C,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACzC,IAAI,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/E,IAAI,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AACxC,IAAI,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/E,IAAI,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE;AACtC,CAAC,EAAE,EAAE,CAAC;AACN,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACxC,IAAI,OAAO;AACX,QAAQ,GAAG,EAAE,CAAC,CAAC,GAAG;AAClB,QAAQ,GAAG,EAAE,CAAC,CAAC,GAAG;AAClB,QAAQ,GAAG,EAAE,CAAC,CAAC,GAAG;AAClB,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI;AACpB,QAAQ,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACnF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;AACzB,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,oBAAoB,GAAG,QAAQ,CAAC;AAChC;AACA;AACA;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAI,OAAO,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC;AACD,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;AAC3C,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,YAAY;AACvB,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACtD,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACrC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,SAAS;AACT,QAAQ,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,KAAK,CAAC;AACN,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClD,IAAI,QAAQ,SAAS,CAAC,MAAM;AAC5B,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC;AACtB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AACrD,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACzD,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,YAAY;AAC/B,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,aAAa,CAAC;AACd,KAAK;AACL,IAAI,OAAO;AACX,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,SAAS,KAAK,GAAG;AACjB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClD,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AACD,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AACD,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,IAAI,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC3E,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAI,OAAO,YAAY;AACvB,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACtD,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK,CAAC;AACN,CAAC;AACD,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACjD,IAAI,QAAQ,SAAS,CAAC,MAAM;AAC5B,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,CAAC,CAAC;AACrB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAQ,SAAS;AACjB,YAAY,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACnC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvD,gBAAgB,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,aAAa;AACb,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,KAAK;AACL,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,MAAM,CAAC;AACtB;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AACvC,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,CAAC,SAAS,EAAE;AACxB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,GAAG,YAAY,EAAE,QAAQ;AAClD,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AACpE,IAAI,KAAK,EAAE,QAAQ;AACnB,CAAC,EAAE,EAAE,CAAC;AACN,6BAA6B,GAAG,qBAAqB,CAAC;AACtD;AACA,IAAI,IAAI,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE;AAClC,IAAI,IAAI,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC;AAC3G,IAAI,OAAO,YAAY;AACvB,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;AACpC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,OAAO,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI;;;;AC/WnB,IAAI,aAAa,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,qBAAqB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,iCAAiC,GAAG,WAAW,GAAG,mBAAmB,GAAG,0BAA0B,GAAG,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC;AACtc;AACvC;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;AAC1D,cAAc,GAAG,MAAM,CAAC;AACxB;AACA,IAAI,MAAM,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;AAC1D,cAAc,GAAG,MAAM,CAAC;AACxB;AACA,YAAY,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChC;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACjE,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;AAC1D,cAAc,GAAG,MAAM,CAAC;AACxB;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;AAC5D,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAChE,YAAY,GAAG,IAAI,CAAC;AACpB;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACnE,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AACzD,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,YAAY,GAAG,IAAI,CAAC;AACpB;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA,0BAA0B,GAAG,EAAE,CAAC;AAChC;AACA,mBAAmB,GAAG,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAC9C;AACA;AACA;AACA;AACA,IAAI,yBAAyB,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AACpG,iCAAiC,GAAG,yBAAyB,CAAC;AAC9D;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,IAAI,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE;AACpC,QAAQ,OAAO,YAAY;AAC3B,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC1D,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACtC,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,YAAY,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpH,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE;AAChC,QAAQ,OAAO,YAAY;AAC3B,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,YAAY,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC1D,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACtC,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,YAAY,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnI,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA,IAAI,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACtC,kBAAkB,OAAO,IAAIC,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE;AAChF,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5E,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,uBAAuB,GAAG,eAAe,CAAC;AAC1C;AACA,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACpC,kBAAkB,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChJ,CAAC,CAAC;AACF,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACpC,kBAAkB,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;AACpE,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAChC,kBAAkB,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;AACpE,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAClC,kBAAkB,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;AACpE,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACpC,kBAAkB,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;AACpE,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,qBAAqB,GAAG,aAAa;;;;AC7IrC,IAAI,eAAe,GAAG,CAACD,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,iBAAiB,GAAG,iBAAiB,GAAG,yBAAyB,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuC;AACvC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AAC5C,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AAClB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,UAAU,GAAG,EAAE;AAC9B,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5G,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,UAAU,GAAG,EAAE,CAAC;AAChB,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,IAAI,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,UAAU,KAAK,EAAE;AACvD,QAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9F,KAAK,CAAC,EAAE,CAAC;AACT,CAAC;AACD,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,IAAI,OAAO,UAAU,MAAM,EAAE;AAC7B,QAAQ,OAAO,UAAU,KAAK,EAAE;AAChC,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAClG,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,SAAS,GAAG,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,UAAU,IAAI,EAAE,EAAE,EAAE;AAC/B,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE;AACrE,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AACzE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACvB,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ;AAClC,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE;AACzC,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAChH,SAAS;AACT,KAAK,EAAE,EAAE,CAAC;AACV,CAAC;AACD,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5B,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,SAAS;AACT,QAAQ,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACjC,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC/E,KAAK,CAAC;AACN,CAAC;AACD,IAAI,iBAAiB,GAAG;AACxB,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/D,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3F,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvH,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACnJ,CAAC,CAAC;AACF,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE;AAC7C,QAAQ,iBAAiB,CAAC,GAAG,CAAC,GAAG,OAAO,CAACD,SAAU,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AACD,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,IAAI,OAAO,YAAY;AACvB,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACtD,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACrC,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzC,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC;AACD,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,UAAU,CAAC,EAAE;AAChC,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;AACtD,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE;AACtD,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;AACvE,aAAa,CAAC,EAAE,CAAC;AACjB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE;AAC5E,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;AACxF,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;AACpB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE;AAClG,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,QAAQ,EAAE,GAAG,EAAE;AAC/B,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,EAAE;AACxB,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACvB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE;AACxH,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,QAAQ,EAAE,GAAG,EAAE;AAC/B,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,oBAAoB,EAAE,EAAE;AACxB,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1B,QAAQ;AACR,YAAY,OAAO,OAAO,CAAC,YAAY;AACvC,gBAAgB,IAAI,IAAI,GAAG,EAAE,CAAC;AAC9B,gBAAgB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC9D,oBAAoB,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7C,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3B,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC9C,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,CAAC;AACzB,aAAa,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5B,KAAK;AACL,CAAC;AACD,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,QAAQ,IAAI,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,CAAC;AACN,CAAC;AACD,iBAAiB,GAAG,SAAS;;;;ACjN7B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAY,GAAG,WAAW,GAAG,kBAAkB,GAAG,KAAK,CAAC,CAAC;AACzD,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AACD,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA,SAAS,GAAG,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,UAAU,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC3H,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AACzH,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AACjE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACjB,CAAC;AACD,YAAY,GAAG,IAAI;;;;AClBnB;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,CAACD,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,iBAAiB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,KAAK,CAAC,CAAC;AACpL;AACM;AACvC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AAC5C,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,IAAI,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACrI,CAAC;AACD,kBAAkB,GAAG,UAAU,CAAC;AAChC,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,SAAS,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,UAAU,CAAC,EAAE;AAC5B,YAAY,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,qBAAqB,GAAG,aAAa,CAAC;AACtC,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,IAAI,IAAI,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,OAAO,UAAU,MAAM,EAAE;AAC7B,QAAQ,IAAI,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AACvC,QAAQ,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAID,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AACtE,KAAK,CAAC;AACN,CAAC;AACD,mBAAmB,GAAG,WAAW,CAAC;AAClC,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,OAAO,UAAU,MAAM,EAAE;AAC7B,QAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvF,KAAK,CAAC;AACN,CAAC;AACD,oBAAoB,GAAG,YAAY,CAAC;AACpC,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AACD,mBAAmB,GAAG,WAAW,CAAC;AAClC,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3F,CAAC;AACD,oBAAoB,GAAG,YAAY,CAAC;AACpC,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,UAAU,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AACD,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,OAAO,UAAU,SAAS,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtH,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,IAAI,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,GAAG,IAAIE,KAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAI,OAAO,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AACD,iBAAiB,GAAG,SAAS;;;;ACzF7B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,cAAc,GAAG,UAAU,GAAG,6BAA6B,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuC;AACvC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACnB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChH,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzG,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,IAAI,OAAO,UAAU,IAAI,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE;AAClF,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE;AAC3C,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACb,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE;AACrF,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;AACpE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACb,CAAC;AACD,WAAW,GAAG,IAAI,CAAC;AACnB;AACA,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzB,IAAI,OAAO;AACX,QAAQ,GAAG,EAAE,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIF,SAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7E,KAAK,CAAC;AACN,CAAC;AACD,6BAA6B,GAAG,qBAAqB,CAAC;AACtD;AACA,SAAS,EAAE,CAAC,CAAC,EAAE;AACf,IAAI,OAAO,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACjF,CAAC;AACD,UAAU,GAAG,EAAE,CAAC;AAChB;AACA,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,OAAO,UAAU,IAAI,EAAE,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AACD,cAAc,GAAG,MAAM;;;;ACxDvB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,KAAK,CAAC,CAAC;AACvS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,MAAM,EAAE,EAAE,QAAQ;AAC7C,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/D,CAAC,EAAE,EAAE,CAAC;AACN,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,GAAG,EAAE;AAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE;AAC5D,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AAC7B,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3D,gBAAgB,OAAO,KAAK,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,YAAY;AACxB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClD,QAAQ,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9I,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AACpD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC,CAAC,EAAE,CAAC;AACL,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,WAAW,GAAG,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA,gBAAgB,GAAG;AACnB,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/C,CAAC,CAAC;AACF,IAAI,KAAK,GAAG;AACZ,IAAI,MAAM,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE;AACxC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,YAAY,EAAE,QAAQ;AACzC,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC7H,CAAC,EAAE,EAAE,CAAC;AACN,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,YAAY,EAAE,QAAQ;AACtC,IAAI,MAAM,EAAE,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,MAAM;AAC9C,IAAI,KAAK,EAAE,KAAK;AAChB,CAAC,EAAE,EAAE,CAAC;AACN,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,qBAAqB,GAAG;AACxB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,SAAS,EAAE,UAAU;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG;AACjB,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;AACrF,CAAC;;;;AC7ND,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,aAAa,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,KAAK,CAAC,CAAC;AAChc;AACY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,UAAU,OAAO,EAAE;AACvC,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,OAAO,EAAE,EAAE,QAAQ;AAC/C,IAAI,MAAM,EAAE,IAAI,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;AAC/C,IAAI,OAAO,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,KAAK,KAAK,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE;AACjG,CAAC,EAAE,EAAE,CAAC;AACN,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,YAAY;AACxB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClD,QAAQ,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE;AAC7D,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE;AACzB,gBAAgB,OAAO,CAAC,CAAC;AACzB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC/H,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AACpD,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1G,CAAC,CAAC,EAAE,CAAC;AACL,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,WAAW,GAAG,KAAK,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,YAAY,EAAE,QAAQ;AACzC,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE;AACrC,QAAQ,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE;AACxD,YAAY,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAY,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC,EAAE,EAAE,CAAC;AACN,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,YAAY,EAAE,QAAQ;AACtC,IAAI,MAAM,EAAE,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,MAAM;AAC9C,IAAI,KAAK,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC,EAAE,EAAE,CAAC;AACN,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,qBAAqB,GAAG;AACxB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,SAAS,EAAE,UAAU;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,MAAM,EAAEA,SAAU,CAAC,SAAS;AAChC,IAAI,OAAO,gBAAgB,IAAIA,SAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,MAAM,EAAE;AAC7B,QAAQ,OAAO,UAAU,KAAK,EAAE;AAChC,YAAY,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACtE,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE;AACtB,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC,CAAC;AACF,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE;AACtB,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN,CAAC,CAAC;AACF,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;AACjF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;AAClF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;AACzB,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAI,OAAO,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1F,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACjC,IAAI,OAAO,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5G,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;AACpC;AACA,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AAChC,IAAI,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AACD,IAAI,SAAS,GAAG;AAChB,IAAI,MAAM,EAAEG,EAAI,CAAC,QAAQ,CAAC,MAAM;AAChC,IAAI,OAAO,EAAE,OAAO;AACpB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,SAAS,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIH,SAAU,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS;AACxD;AACA,IAAI,OAAO,CAAC,SAAS,EAAE,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;;;AC9bnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,eAAe,GAAG,KAAK,CAAC,CAAC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACrC,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AACxE,CAAC,EAAE,EAAE,CAAC;AACN,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,SAAS,EAAE;AACvC,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ;AAClC,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE;AAC1G,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,SAAS,EAAE;AACxC,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ;AAClC,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE;AAC1G,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ;AAClC,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAClF,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,SAAS,EAAE;AAChC,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACxF,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS;;;;ACjF7B,IAAI,eAAe,GAAG,CAACD,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,wBAAwB,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,YAAY,GAAG,+BAA+B,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,YAAY,GAAG,aAAa,GAAG,mBAAmB,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC;AAClnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuC;AACvC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AAC5C,IAAI,CAAC,GAAG,YAAY,CAACG,KAAkB,CAAC,CAAC;AACzC,IAAI,EAAE,GAAG,YAAY,CAACC,GAAgB,CAAC,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACjC,IAAI,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,CAAC,EAAE,EAAE,CAAC;AACN,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACjC,IAAI,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,CAAC,EAAE,EAAE,CAAC;AACN,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACtC,IAAI,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;AACrC,CAAC,EAAE,EAAE,CAAC;AACN,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,UAAU,EAAE,EAAE,QAAQ;AAC7C,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE;AACrC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,QAAQ,KAAK,IAAI,CAAC,IAAI,UAAU,EAAE;AAClC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE;AAC3C,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK;AACL,CAAC,EAAE,EAAE,CAAC;AACN,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,YAAY;AACxB,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClD,QAAQ,UAAU,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,QAAQ;AACZ,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC9H,KAAK,EAAE;AACP,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,MAAM,EAAE;AACpC,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ;AAClC,QAAQ,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5E,KAAK,EAAE,EAAE,CAAC;AACV,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAEL,SAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtE,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;AAC/E,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,CAAC,CAAC,SAAS,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,YAAY,EAAE,QAAQ;AAC/C,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AACjF,CAAC,EAAE,EAAE,CAAC;AACN,0BAA0B,GAAG,kBAAkB,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,GAAG,OAAO,CAAC,WAAW,CAAC;AACtD,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,IAAI,UAAU,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,OAAO,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACvH,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG;AACvB,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG;AACvB,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AAC9C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,GAAGA,SAAU,CAAC,YAAY,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG;AAC1B,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG;AACvB,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC7C,CAAC;;;;ACvZD,IAAI,eAAe,GAAG,CAACD,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAG,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,GAAG,iBAAiB,GAAG,cAAc,GAAG,yBAAyB,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;AAC55B,iBAAiB,GAAG,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,eAAe,GAAG,WAAW,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,aAAa,GAAG,kBAAkB,GAAG,aAAa,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,wBAAwB,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,GAAG,yBAAyB,GAAG,aAAa,GAAG,oBAAoB,GAAG,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,KAAK,CAAC,CAAC;AACh9B,6BAA6B,GAAG,YAAY,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,uBAAuB,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC;AAC1K;AACA;AACN;AACY;AACF;AACrC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AACf;AAC7B,IAAI,EAAE,GAAG,YAAY,CAACG,WAAsB,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC;AACrC;AACA;AACA;AACA,kBAAkB,GAAG,CAAC,CAAC,UAAU,CAAC;AAClC;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACxE,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,IAAI,EAAE;AAC/B,IAAI,OAAO,UAAU,IAAI,EAAE;AAC3B,QAAQ,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;AACnC;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,GAAG,EAAE;AAC7B,IAAI,OAAO,UAAU,IAAI,EAAE;AAC3B,QAAQ,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE;AACrC,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;AACjD,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACrB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;AACjD,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,QAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AACnC,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrE,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClE,YAAY,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC;AACvB,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,IAAI,EAAE;AAC7B,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,GAAG,IAAIE,GAAK,CAAC,SAAS,GAAG,CAAC;AACvC,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,OAAON,SAAU,CAAC,QAAQ,CAAC;AAC/B,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;AACzB,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,UAAU,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,IAAIA,SAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzH,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACpC,QAAQ,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnE,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,YAAY,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,YAAY,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACpD,SAAS;AACT,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,EAAE,EAAE;AACtC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,KAAK,EAAE,GAAG,EAAE;AAClC,IAAI,OAAO,KAAK,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;AACrF,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,IAAI,OAAO,UAAU,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC;AACD,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE;AAC5B,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1G,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,KAAK,CAAC,CAAC,EAAE;AAClB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,OAAO,OAAO,CAAC,KAAK,CAAC;AACjC,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;AACnC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC;AACD,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC5D,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;AACpC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACjE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChH,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AACrB,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AAC1B,QAAQ,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACrD,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,GAAG,EAAE;AAC3B,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,MAAM,EAAE;AACnC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,MAAM,EAAE;AACpC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7J,KAAK,CAAC;AACN,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE;AAClC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3E,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;AACxB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAY,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAY,IAAI,GAAG,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvJ,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF;AACA,IAAI,aAAa,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxG,IAAI,GAAG,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF;AACA,IAAI,YAAY,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5G;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,IAAI,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC,CAAC;AACF;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F;AACA,IAAI,gBAAgB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AACF;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,IAAI,iBAAiB,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC,CAAC;AACF;AACA,IAAI,qBAAqB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAChD,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,IAAI,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,IAAI,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAChI,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE;AAC3D,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,iBAAiB;AACjB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAEA,SAAU,CAAC,QAAQ,CAAC,CAAC;AACvD;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc,IAAI,OAAO,CAAC,OAAO,EAAEA,SAAU,CAAC,QAAQ,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACtC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,uBAAuB,GAAG,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,UAAU,CAAC,EAAE;AACpC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5G,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,wBAAwB,GAAG,gBAAgB,CAAC;AAC5C;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,4BAA4B,GAAG,oBAAoB,CAAC;AACpD;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAACA,SAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AACrE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,gBAAgB,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzJ,aAAa;AACb,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB;AACA;AACA;AACA;AACA,WAAW,GAAG,uBAAuB,CAAC;AACtC;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACrC,IAAI,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC9E,CAAC,EAAE,EAAE,CAAC;AACN,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,YAAY,EAAE,QAAQ;AACzC,IAAI,MAAM,EAAE,MAAM;AAClB,CAAC,EAAE,EAAE,CAAC;AACN,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;AACzB,IAAI,OAAO,IAAIG,EAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACnJ,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,IAAI,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAII,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,IAAIA,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,IAAIN,KAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5D;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,gBAAgB,GAAG;AACnB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,yBAAyB,GAAG;AAC5B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,4BAA4B,GAAG;AAC/B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;AAC5C;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAIK,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxD,IAAI,IAAI,iBAAiB,IAAIA,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7D,WAAW,GAAG,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAIL,KAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA,WAAW,GAAG,IAAIM,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;AAC/B;AACA;AACA;AACA,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;AACtB;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACtF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7F,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAIR,SAAU,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7F,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE;AAC/B,IAAI,IAAI,UAAU,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;AAC5G,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACvG,CAAC;AACD,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,MAAM,CAAC,SAAS,EAAE;AAC3B,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClF,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,UAAU,SAAS,EAAE;AAC3C,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtG,KAAK,CAAC;AACN,CAAC,CAAC;AACF,uBAAuB,GAAG,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;AAClC,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAC1B,IAAI,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACpH,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/F,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,GAAG;AAChC,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,IAAI,GAAG,EAAE,IAAI;AACb,CAAC;;;;AC/xCD,IAAI,eAAe,GAAG,CAACD,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,sBAAsB,GAAG,eAAe,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,GAAG,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,iCAAiC,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,KAAK,CAAC,CAAC;AAC16B,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,eAAe,GAAG,WAAW,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,aAAa,GAAG,kBAAkB,GAAG,aAAa,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,wBAAwB,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,GAAG,yBAAyB,GAAG,aAAa,GAAG,oBAAoB,GAAG,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC;AACx8B,qBAAqB,GAAG,YAAY,GAAG,oBAAoB,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,GAAG,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC;AACnK;AACA;AACM;AACF;AACrC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AACf;AAC7B,IAAI,IAAI,GAAG,YAAY,CAACG,qBAAkC,CAAC,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AACzD,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACxE,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,IAAI,EAAE;AAC/B,IAAI,OAAO,UAAU,IAAI,EAAE;AAC3B,QAAQ,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;AACnC;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,GAAG,EAAE;AAC7B,IAAI,OAAO,UAAU,IAAI,EAAE;AAC3B,QAAQ,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE;AACrC,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;AAC5D,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,IAAI,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;AACxD,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAY,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,QAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AACnC,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrE,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClE,YAAY,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC;AACvB,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,IAAI,EAAE;AAC7B,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,GAAG,IAAIE,GAAK,CAAC,SAAS,GAAG,CAAC;AACvC,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC;AACxB,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;AACzB,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,UAAU,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,IAAIN,SAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACzH,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACpC,QAAQ,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnE,YAAY,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,SAAS;AACT,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;AACnB,YAAY,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,YAAY,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,SAAS;AACT,aAAa;AACb,YAAY,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACpD,SAAS;AACT,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,GAAG,CAAC,CAAC,yBAAyB,CAAC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9F,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,KAAK,EAAE,GAAG,EAAE;AAClC,IAAI,OAAO,KAAK,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7G,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,IAAI,OAAO,UAAU,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAC7D,CAAC;AACD,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAChH,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,KAAK,CAAC,CAAC,EAAE;AAClB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE;AACvB,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;AACnC,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC;AACD,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC5D,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;AACpC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC1C,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/F,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChH,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC;AACjD;AACA;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AACrB,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AAC1B,QAAQ,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACrD,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,GAAG,EAAE;AAC3B,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,MAAM,EAAE;AACnC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,MAAM,EAAE;AACpC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAChL,KAAK,CAAC;AACN,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACjD;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE;AAClC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC;AACxB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAY,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,YAAY,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAY,IAAI,GAAG,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/J,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF;AACA,IAAI,aAAa,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxG;AACA,IAAI,GAAG,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF;AACA,IAAI,YAAY,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5G;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,IAAI,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC,CAAC;AACF;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F;AACA,IAAI,gBAAgB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AACF;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,IAAI,iBAAiB,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC,CAAC;AACF;AACA,IAAI,qBAAqB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAChD,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,IAAI,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,IAAI,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE;AACvB,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxG,CAAC,CAAC;AACF,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE;AAC3D,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,iBAAiB,GAAG,IAAI,OAAO,CAAC,MAAM,EAAEA,SAAU,CAAC,QAAQ,CAAC,CAAC;AAC7D;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,OAAO,CAAC,OAAO,EAAEA,SAAU,CAAC,QAAQ,CAAC,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC/F,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC;AAC/C;AACA;AACA;AACA;AACA,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA,4BAA4B,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACzD;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzG,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AACrE,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,gBAAgB,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzJ,aAAa;AACb,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;AAC5B;AACA;AACA;AACA;AACA,WAAW,GAAG,eAAe,CAAC;AAC9B;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,YAAY,EAAE,QAAQ;AACzC,IAAI,MAAM,EAAE,MAAM;AAClB,CAAC,EAAE,EAAE,CAAC;AACN,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,IAAI,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAIO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,IAAIA,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc,IAAIN,KAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,gBAAgB,GAAG;AACnB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,yBAAyB,GAAG;AAC5B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,4BAA4B,GAAG;AAC/B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;AAC5C;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAIK,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxD,IAAI,IAAI,iBAAiB,IAAIA,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7D,WAAW,GAAG,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAIL,KAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA,WAAW,GAAG,IAAIM,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB;AACA;AACA;AACA,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC;AACvB;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACtF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7F,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAIR,SAAU,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7F,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAC5F,CAAC;AACD,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,MAAM,CAAC,SAAS,EAAE;AAC3B,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClF,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,UAAU,SAAS,EAAE;AAC3C,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,KAAK,CAAC;AACN,CAAC,CAAC;AACF,uBAAuB,GAAG,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;AAClC,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAC1B,IAAI,OAAO,IAAI,KAAK,SAAS,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACpH,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACjG,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,GAAG;AACxB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,IAAI,GAAG,EAAE,IAAI;AACb,CAAC;;;;AC7sCD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,aAAa,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,gBAAgB,GAAG,KAAK,CAAC,CAAC;AACvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;AAC9D,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG;AACb,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,KAAK,MAAM,CAAC,EAAE;AACjE,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,IAAI,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM;AAC7B,IAAI,OAAO,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;AAChG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM;AAC7B,IAAI,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;AAChC,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,MAAM,EAAE,CAAC,QAAQ;AACrB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,GAAG;AACf,IAAI,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,gBAAgB,GAAG;AACnB,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,GAAG,MAAM,CAAC,EAAE;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG;AACvB,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,GAAG,MAAM,CAAC,EAAE;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,GAAG,MAAM,CAAC,EAAE;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;AACvC,IAAI,KAAK,EAAE,CAAC;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,GAAG;AACxB,IAAI,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;AAC3C,IAAI,KAAK,EAAE,CAAC;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;AACpC,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;AACxC,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;AAChC,IAAI,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;AACtC,IAAI,GAAG,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,GAAG,MAAM,CAAC,EAAE;AAC5D,IAAI,GAAG,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,KAAK,GAAG,MAAM,CAAC,EAAE;AAC5D,CAAC;;;;AChID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC;AACtI;AACF;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAClF,iBAAiB,GAAG,SAAS,CAAC;AAC9B,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,IAAI,QAAQ,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9F,IAAI,MAAM,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE;AACvB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACxF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AACxF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,KAAK,CAAC;AACN,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA,WAAW,GAAG,WAAW,CAAC;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,GAAG;AACpB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,KAAK,EAAE,MAAM;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAIO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3C,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7C,aAAa,GAAG,KAAK;;;;ACxGrB,IAAI,eAAe,GAAG,CAACR,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,KAAK,CAAC,CAAC;AACvE,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AAC5C,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AAChF,KAAK,CAAC;AACN,CAAC;AACD,mBAAmB,GAAG,WAAW,CAAC;AAClC,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC/E,KAAK,CAAC;AACN,CAAC;AACD,qBAAqB,GAAG,aAAa,CAAC;AACtC,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,OAAO,UAAU,SAAS,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvL,KAAK,CAAC;AACN,CAAC;AACD,eAAe,GAAG,OAAO;;;;AC9CzB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,aAAa,GAAG,KAAK,CAAC,CAAC;AACvB,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AACrE,CAAC;AACD,aAAa,GAAG,KAAK;;;;ACLrB,IAAI,eAAe,GAAG,CAACF,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,oBAAoB,GAAG,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,kBAAkB,GAAG,eAAe,GAAG,KAAK,CAAC,CAAC;AAC38B,gBAAgB,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,eAAe,GAAG,cAAc,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,cAAc,GAAG,uBAAuB,GAAG,6BAA6B,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,GAAG,0BAA0B,GAAG,cAAc,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,WAAW,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,6BAA6B,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,eAAe,GAAG,KAAK,CAAC,CAAC;AACj/B,eAAe,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,kBAAkB,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,cAAc,GAAG,mBAAmB,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,aAAa,GAAG,aAAa,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,wBAAwB,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,GAAG,0BAA0B,GAAG,gCAAgC,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,eAAe,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,yBAAyB,GAAG,KAAK,CAAC,CAAC;AAChkC,qBAAqB,GAAG,oBAAoB,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,mBAAmB,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,iBAAiB,GAAG,KAAK,CAAC,CAAC;AACtQ;AACA;AACN;AACgB;AACJ;AACF;AACrC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AAC5C,IAAI,CAAC,GAAG,YAAY,CAACG,MAAmB,CAAC,CAAC;AACb;AAC7B,IAAI,IAAI,GAAG,YAAY,CAACC,qBAAkC,CAAC,CAAC;AACnB;AACE;AACZ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;AACxD,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACtF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9F,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,aAAa,CAAC,SAAS,EAAE;AAClC,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,QAAQ,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACzE,CAAC;AACD,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACvF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACpF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,OAAO,EAAE,UAAU,EAAE;AAC5C,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;AACxE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,OAAO,EAAE,UAAU,EAAE;AAChD,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;AAClG,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,OAAO,EAAE,UAAU,EAAE;AACjD,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;AAClG,KAAK,CAAC;AACN,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE;AAClC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;AACtC,YAAY,OAAO,OAAO,CAAC,KAAK,CAAC;AACjC,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAChC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACrC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/C,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;AACzC,SAAS,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;AACvB,IAAI,OAAO,EAAE,KAAK,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClI,CAAC;AACD,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACpG,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACpG,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE;AACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE;AACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,aAAa,CAAC,SAAS,EAAE;AAClC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC5D,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AAC/B,gBAAgB,MAAM;AACtB,aAAa;AACb,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,SAAS;AACT,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AAC7B,QAAQ,OAAO,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;AACxE,KAAK,CAAC;AACN,CAAC;AACD,qBAAqB,GAAG,aAAa,CAAC;AACtC,IAAI,aAAa,GAAG,UAAU,EAAE,EAAE,SAAS,EAAE;AAC7C,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACvB,QAAQ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/B,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACpG,QAAQ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1C,KAAK,CAAC;AACN,CAAC;AACD,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACjH,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrH,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,aAAa,CAAC,SAAS,EAAE;AAClC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC7C,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5E,KAAK,CAAC;AACN,CAAC;AACD,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,SAAS,EAAE;AACrC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B,SAAS,SAAS,CAAC,SAAS,EAAE;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,KAAK,CAAC;AACN,CAAC;AACD,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC/B,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC,SAAS,QAAQ,CAAC,SAAS,EAAE;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,KAAK,CAAC;AACN,CAAC;AACD,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC/B,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,UAAU,SAAS,EAAE;AACzC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAgB,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC;AACtB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACvF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACtG,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChH,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;AACrF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,EAAE,EAAE;AAC3B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;AAChC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,EAAE,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAChE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACnC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AACrB,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE;AAC1B,QAAQ,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACrD,KAAK;AACL,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AACD,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,EAAE,EAAE;AAC1B,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAChB,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,MAAM,EAAE;AACnC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACpC,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,MAAM,EAAE;AACpC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACrC,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE;AAC5B,QAAQ,IAAI,EAAE,KAAK,SAAS,EAAE;AAC9B,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,YAAY,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,SAAS,GAAG,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAY,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK,CAAC;AACN,CAAC;AACD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,IAAI,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC3F,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClJ,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC3F,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE;AAC/B,IAAI,OAAO,YAAY;AACvB,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACtD,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,KAAK,CAAC;AACN,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC,SAAS,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;AACpC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE;AAC3D,IAAI,IAAI,EAAE,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AACrC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;AAC7C,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAIL,SAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACxJ,cAAc,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,kBAAkB,OAAO,CAAC,KAAK,CAAC;AAChC,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AACD,qBAAqB,GAAG,aAAa,CAAC;AACtC;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,MAAM,EAAE;AAChC,IAAI,OAAO,UAAU,KAAK,EAAE;AAC5B,QAAQ,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClH,KAAK,CAAC;AACN,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC,SAAS,KAAK,CAAC,CAAC,EAAE;AAClB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,OAAO,UAAU,KAAK,EAAE,MAAM,EAAE;AACpC,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;AAClC,YAAY,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AACzE,SAAS;AACT,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3J,KAAK,CAAC;AACN,CAAC;AACD,aAAa,GAAG,KAAK,CAAC;AACtB,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,EAAE;AAC7B,QAAQ,IAAI,EAAE,KAAK,SAAS,EAAE;AAC9B,YAAY,IAAI,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAClD,YAAY,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACrE,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChE,KAAK,CAAC;AACN,CAAC;AACD,oBAAoB,GAAG,YAAY,CAAC;AACpC,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,EAAE;AAC7B,QAAQ,IAAI,EAAE,KAAK,SAAS,EAAE;AAC9B,YAAY,IAAI,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;AACnE,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,KAAK,CAAC;AACN,CAAC;AACD,kBAAkB,GAAG,UAAU,CAAC;AAChC,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,IAAI,aAAa,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxG,IAAI,GAAG,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,SAAS,EAAE;AACvC,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG,IAAI,UAAU,GAAG,UAAU,EAAE,EAAE,SAAS,EAAE;AAC1C,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxG,IAAI,mBAAmB,GAAG,UAAU,EAAE,EAAE,kBAAkB,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;AACtJ,IAAI,sBAAsB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1H,IAAI,IAAI,GAAG,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClG,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5G,IAAI,gBAAgB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AACF,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,IAAI,iBAAiB,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC,CAAC;AACF,IAAI,qBAAqB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAChD,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF,IAAI,mBAAmB,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpH,IAAI,gBAAgB,GAAG,UAAU,EAAE,EAAE,kBAAkB,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;AAChJ,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5F,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,IAAI,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC,CAAC;AACF;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,IAAI,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC,CAAC;AACF;AACA,IAAI,mBAAmB,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClH,2BAA2B,GAAG,mBAAmB,CAAC;AAClD;AACA,IAAI,qBAAqB,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtH,6BAA6B,GAAG,qBAAqB,CAAC;AACtD;AACA;AACA;AACA;AACA,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;AACrB;AACA;AACA;AACA,IAAI,IAAI,GAAG,YAAY,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,IAAI,EAAE;AAC3B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;AAC3B;AACA;AACA;AACA,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE;AACvB,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxG,CAAC,CAAC;AACF,UAAU,GAAG,EAAE,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE;AAC3D,IAAI,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,OAAO,CAAC,OAAO,EAAEA,SAAU,CAAC,QAAQ,CAAC,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AAC9C,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,EAAE,CAAC;AACL,WAAW,GAAG,GAAG,CAAC;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AACvD,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,EAAE,CAAC;AACL,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,EAAE,EAAE;AAC7B,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AACxD,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAS;AACT,aAAa;AACb,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAIS,SAAW,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,SAAS,EAAE;AAClC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACnC,gBAAgB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,0BAA0B,GAAG,kBAAkB,CAAC;AAChD;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAI,OAAO,CAAC,SAAS,EAAET,SAAU,CAAC,QAAQ,CAAC,CAAC;AAC9D;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,SAAS,EAAE;AACrC,IAAI,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC,CAAC;AACF,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,UAAU,kBAAkB,EAAE;AACvD,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;AACvB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAY,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC1C,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAIS,SAAW,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,KAAK,CAAC;AACN,CAAC,CAAC;AACF,0BAA0B,GAAG,kBAAkB,CAAC;AAChD;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;AAChC,IAAI,OAAO,IAAI,OAAO,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC;AACF,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA,IAAI,qBAAqB,GAAG,UAAU,CAAC,EAAE;AACzC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;AACvB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;AACnC,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACpC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,IAAIA,SAAW,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvD,KAAK,CAAC;AACN,CAAC,CAAC;AACF,6BAA6B,GAAG,qBAAqB,CAAC;AACtD;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,UAAU,kBAAkB,EAAE;AACpD,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,uBAAuB,GAAG,eAAe,CAAC;AAC1C;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AACjD,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC,EAAE,CAAC;AACL,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA,iBAAiB,GAAG,IAAI,OAAO,CAAC,MAAM,EAAET,SAAU,CAAC,QAAQ,CAAC,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,UAAU,CAAC,EAAE;AACpC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,UAAU,EAAE,EAAE;AAC7B,YAAY,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC,CAAC;AACF,wBAAwB,GAAG,gBAAgB,CAAC;AAC5C;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;AAC3B,IAAI,IAAI,iBAAiB,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC,CAAC;AACF,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AAC7D,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC;AACxB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC,CAAC,EAAE,CAAC;AACL,uBAAuB,GAAG,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAClC,IAAI,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE;AAClE,IAAI,OAAO,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC,EAAE,CAAC;AACL,4BAA4B,GAAG,oBAAoB,CAAC;AACpD;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,IAAI,kBAAkB,GAAG,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC5B,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,EAAE;AACzE,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7I,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gBAAgB,GAAG,QAAQ,CAAC;AAC5B;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC5F,YAAY,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAIA,SAAU,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClJ,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;AACxB,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf;AACA,IAAI,OAAO,IAAI,EAAE;AACjB,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AAC1B,YAAY,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,YAAY,EAAE,GAAG,GAAG,CAAC;AACrB,SAAS;AACT,aAAa;AACb,YAAY,MAAM;AAClB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA,WAAW,GAAG,eAAe,CAAC;AAC9B;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACrC,IAAI,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC9E,CAAC,EAAE,EAAE,CAAC;AACN,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG,YAAY,EAAE,QAAQ;AACzC,IAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;AACrJ,CAAC,EAAE,EAAE,CAAC;AACN,oBAAoB,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,YAAY,EAAE,QAAQ;AACtC,IAAI,MAAM,EAAE,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,MAAM;AAC9C,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK;AACxB,CAAC,EAAE,EAAE,CAAC;AACN,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;AACzB,IAAI,OAAO,IAAIG,EAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACnJ,CAAC,CAAC;AACF,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE;AAC1B,IAAI,OAAO,IAAIG,GAAK,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE;AAClD,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,IAAI,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,YAAY,IAAI,QAAQ,KAAK,CAAC,EAAE;AAChC,gBAAgB,OAAO,QAAQ,CAAC;AAChC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,yBAAyB,GAAG,iBAAiB,CAAC;AAC9C;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AAC5C,IAAI,MAAM,EAAE,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM;AACpD,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK;AACxB,CAAC,EAAE,EAAE,CAAC;AACN,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,wBAAwB,GAAG,UAAU,CAAC,EAAE;AAC5C,IAAI,IAAI,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACjF,KAAK,CAAC;AACN,CAAC,CAAC;AACF,gCAAgC,GAAG,wBAAwB,CAAC;AAC5D;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,IAAI,IAAI,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,0BAA0B,GAAG,kBAAkB,CAAC;AAChD;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAIC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,IAAIA,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc,IAAIN,KAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA,kBAAkB,GAAG;AACrB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO,CAAC,MAAM;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE,IAAI;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,YAAY,GAAG;AACf,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI;AACtB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,aAAa,GAAG,IAAIQ,IAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACjE;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI;AACtB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,cAAc,GAAG;AACjB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,kBAAkB,GAAG;AACrB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,YAAY,EAAE,aAAa;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,2BAA2B,GAAG;AAC9B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,qBAAqB,EAAE,sBAAsB;AACjD,IAAI,kBAAkB,EAAE,mBAAmB;AAC3C,IAAI,kBAAkB,EAAE,mBAAmB;AAC3C,IAAI,eAAe,EAAE,gBAAgB;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,gBAAgB,GAAG;AACnB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,yBAAyB,GAAG;AAC5B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,4BAA4B,GAAG;AAC/B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACtC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,IAAI,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjD,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACjC,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAC7B,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,0BAA0B,GAAG,kBAAkB,CAAC;AAChD;AACA;AACA;AACA;AACA,0BAA0B,GAAG;AAC7B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,IAAI,QAAQ,EAAE,OAAO,CAAC,mBAAmB;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG,UAAU,CAAC,EAAE;AACxC,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,QAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;AACtB,QAAQ,IAAI,GAAG,GAAG,EAAE,CAAC;AACrB,QAAQ,SAAS,EAAE,CAAC,CAAC,EAAE;AACvB,YAAY,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAC7B,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzE,aAAa;AACb,iBAAiB;AACjB,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC3E,YAAY,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAClC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AAClB,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC7B,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,CAAC,CAAC;AACF,4BAA4B,GAAG,oBAAoB,CAAC;AACpD;AACA;AACA;AACA;AACA,4BAA4B,GAAG;AAC/B,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,IAAI,QAAQ,EAAE,OAAO,CAAC,qBAAqB;AAC3C,CAAC,CAAC;AACF,IAAI,OAAO,iBAAiB,IAAIC,UAAY,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AACtG,IAAI,KAAK,iBAAiB,IAAIA,UAAY,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAClG;AACA;AACA;AACA;AACA,kBAAkB,GAAG;AACrB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,IAAI,EAAE,KAAK;AACf,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIA,UAAY,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AAChE;AACA;AACA;AACA;AACA,kBAAkB,GAAG;AACrB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,UAAU,EAAE,OAAO,CAAC,UAAU;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,mBAAmB,GAAG,IAAIC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC;AAC7C;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AACzC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AAC5E,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE;AACtC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACxB,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,IAAI,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AACF,sBAAsB,GAAG,cAAc,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;AACnD,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;AAClG,iBAAiB,GAAG,SAAS,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,SAAS,KAAK,CAAC,SAAS,EAAE;AAC1B,IAAI,OAAO,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AACD,aAAa,GAAG,KAAK,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,UAAU,SAAS,EAAE;AAChC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,KAAK,CAAC;AACN,CAAC,CAAC;AACF,YAAY,GAAG,IAAI,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE;AAC/B,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,UAAU,MAAM,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACnH,CAAC,CAAC;AACF,mBAAmB,GAAG,WAAW,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;AAC5C;AACA;AACA;AACA;AACA,cAAc,GAAG,IAAIL,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AACxD,IAAI,IAAI,iBAAiB,IAAIA,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7D,WAAW,GAAG,IAAI,CAAC;AACnB;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAIL,KAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA,WAAW,GAAG,IAAIM,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,GAAG;AACxB,IAAI,GAAG,EAAE,OAAO,CAAC,GAAG;AACpB,IAAI,OAAO,EAAE,OAAO,CAAC,OAAO;AAC5B,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE;AAClB,IAAI,KAAK,EAAE,OAAO,CAAC,OAAO;AAC1B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,YAAY,EAAE,aAAa;AAC/B,IAAI,qBAAqB,EAAE,sBAAsB;AACjD,IAAI,kBAAkB,EAAE,mBAAmB;AAC3C,IAAI,kBAAkB,EAAE,mBAAmB;AAC3C,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI;AACtB,IAAI,MAAM,EAAE,OAAO,CAAC,MAAM;AAC1B,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,QAAQ,EAAE,SAAS;AACvB,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC9B,IAAI,eAAe,EAAE,gBAAgB;AACrC,IAAI,gBAAgB,EAAE,iBAAiB;AACvC,IAAI,oBAAoB,EAAE,qBAAqB;AAC/C,IAAI,iBAAiB,EAAE,kBAAkB;AACzC,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,IAAI,EAAE,KAAK;AACf,CAAC;;;;ACxsED,IAAI,eAAe,GAAG,CAACT,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC,CAAC;AACJ,IAAI,kBAAkB,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AACH,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;AACjE,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7I,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACpC,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,oBAAoB,GAAG,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,kBAAkB,GAAG,eAAe,GAAG,KAAK,CAAC,CAAC;AAC38B,yBAAyB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,uBAAuB,GAAG,cAAc,GAAG,wBAAwB,GAAG,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,uBAAuB,GAAG,WAAW,GAAG,YAAY,GAAG,6BAA6B,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,0BAA0B,GAAG,oBAAoB,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,GAAG,eAAe,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC;AAC99B,YAAY,GAAG,aAAa,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,eAAe,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,gBAAgB,GAAG,2BAA2B,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,cAAc,GAAG,mBAAmB,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,GAAG,kBAAkB,GAAG,aAAa,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,wBAAwB,GAAG,eAAe,GAAG,YAAY,GAAG,eAAe,GAAG,0BAA0B,GAAG,gCAAgC,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,eAAe,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC;AACjjC,aAAa,GAAG,oBAAoB,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,mBAAmB,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC;AAC3M;AACA;AACU;AACJ;AACF;AACrC,IAAI,CAAC,GAAG,YAAY,CAACE,QAAqB,CAAC,CAAC;AAC5C,IAAI,GAAG,GAAG,YAAY,CAACG,aAA0B,CAAC,CAAC;AACnD,IAAI,EAAE,GAAG,YAAY,CAACC,aAA0B,CAAC,CAAC;AACT;AACE;AACZ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;AACxD,eAAe,GAAG,OAAO,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,GAAG,GAAG,CAAC,UAAU,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1E,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAA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,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC9C,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxD,KAAK,CAAC;AACN,CAAC,CAAC;AAQF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACU,IAAC,KAAK,GAAG,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACO,IAAI,IAAI,GAAG,KAAK,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAI,UAAU,GAAG,UAAU,MAAM,EAAE;AAC1C,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;AAChD,KAAK,CAAC;AACN,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAI,SAAS,GAAG,UAAU,CAAC;AA0ElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAgThF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAIc,OAAK,GAAGf,SAAO,CAAC;AA8E3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,UAAU,MAAM,EAAE,OAAO,EAAE;AACxC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7E,KAAK,CAAC;AACN,CAAC,CAAC;AACF,cAAc,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG,UAAU,MAAM,EAAE;AACnC,IAAI,OAAO,UAAU,EAAE,EAAE;AACzB,QAAQ,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACpE,KAAK,CAAC;AACN,CAAC,CAAC;AACF,kBAAkB,GAAG,UAAU,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;AACnC;AACA;AACA;AACA,UAAU;AACV,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA,eAAe,GAAG,IAAIA,SAAU,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,cAAc,IAAI,OAAO,CAAC,OAAO,EAAEA,SAAU,CAAC,QAAQ,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;AAC3B;AACA;AACA;AACA;AACA,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;AAC3B;AACA;AACA;AACA,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;AAClC;AACA;AACA;AACA;AACA,WAAW,GAAG,YAAY,CAAC;A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","names":["this","function_1","require$$0","Chain_1","Eq_1","require$$1","require$$2","Ord_1","Functor_1","Apply_1","Separated_1","Zero_1","Witherable_1","FromEither_1","Predicate_1","Applicative_1","Semigroup_1","getRenderingRef","forceUpdate","state","onChange","map","fromOption","_.isNone","_.left","_.right","flatMap","dual","_map","pipe","ap","URI","Functor","mapLeft","FromEither","identity","fromOption_","_.isLeft","matchW","match","fromNullable","chain","_.none","_.some","first","E.right","map_","E.Functor","E.isLeft","mapError","E.mapLeft","ET.rightF","T.Functor","T.of","ET.map","ET.mapError","ET.flatMap","T.Monad","_.flatMapTask","Option_1","ChainRec_1","Compactable_1","FromIO_1","require$$3","require$$4","Filterable_1","FromTask_1","isEmpty","O.getMonoid","String.Monoid","O.getFirstMonoid","O.fromNullable","E.fromOption","S.struct","O.getOrElse","S.last","TE.tryCatch","TE.right","TE.left","TE.fromTask","TE.chain","TE.mapLeft","E.left","E.fromNullable","E.chain","E.map","sequenceT","Apply","O.none","O.fold","TE.fromEither","TE.chainW","O.chain","fromRectangle","pointSumSemigroup","HandlerDirection","some","none","findFirstMap","_.isSome","RA.findFirstMap","create_image_1","copy_1","contramap","OrdNumber","sort","lanczos","T.map","T.chain","TE.fromOption","TE.map","F.fromFile","O.map","O.some","TE.chainTaskK"],"sources":["./node_modules/fp-ts/lib/function.js","./node_modules/fp-ts/lib/internal.js","./node_modules/fp-ts/lib/Apply.js","./node_modules/fp-ts/lib/Chain.js","./node_modules/fp-ts/lib/FromEither.js","./node_modules/fp-ts/lib/Functor.js","./node_modules/fp-ts/lib/Eq.js","./node_modules/fp-ts/lib/Ord.js","./node_modules/fp-ts/lib/Magma.js","./node_modules/fp-ts/lib/Semigroup.js","./node_modules/fp-ts/lib/ReadonlyNonEmptyArray.js","./node_modules/fp-ts/lib/NonEmptyArray.js","./node_modules/fp-ts/lib/number.js","./node_modules/fp-ts/lib/Separated.js","./node_modules/fp-ts/lib/Witherable.js","./node_modules/fp-ts/lib/Zero.js","./node_modules/fp-ts/lib/ReadonlyArray.js","./node_modules/fp-ts/lib/Array.js","./node_modules/fp-ts/lib/Applicative.js","./node_modules/fp-ts/lib/Predicate.js","./node_modules/fp-ts/lib/Option.js","./node_modules/@stencil/store/dist/index.mjs","./src/store/tracking.store.ts","./src/store/store.ts","./node_modules/fp-ts/es6/Functor.js","./node_modules/fp-ts/es6/FromEither.js","./node_modules/fp-ts/es6/Either.js","./node_modules/fp-ts/es6/Option.js","./node_modules/fp-ts/es6/EitherT.js","./node_modules/fp-ts/es6/Task.js","./node_modules/fp-ts/es6/TaskEither.js","./node_modules/fp-ts/lib/Compactable.js","./node_modules/fp-ts/lib/ChainRec.js","./node_modules/fp-ts/lib/Either.js","./node_modules/fp-ts/lib/EitherT.js","./node_modules/fp-ts/lib/Filterable.js","./node_modules/fp-ts/lib/FromIO.js","./node_modules/fp-ts/lib/FromTask.js","./node_modules/fp-ts/lib/Task.js","./node_modules/fp-ts/lib/TaskEither.js","./node_modules/fp-ts/es6/string.js","./src/error.ts","./src/network/utils.ts","./src/network/request.ts","./src/utils/collections/collectionsUtils.ts","./src/utils/token/tokenUtils.ts","./src/utils/either.ts","./src/Image/form.ts","./src/searchSession/searchSession.ts","./src/network/ion/ValueObject.ts","./src/network/ion/Link.ts","./src/geometry/Rectangle.ts","./src/network/ion/Form.ts","./src/network/ion/File.ts","./src/utils/option/option.ts","./node_modules/fp-ts/es6/ReadonlyArray.js","./node_modules/fp-ts/es6/Array.js","./src/Image/error.ts","./src/file/index.ts","./src/Image/fromFile.ts","./node_modules/@rgba-image/copy/dist/index.js","./node_modules/@rgba-image/create-image/dist/index.js","./node_modules/@rgba-image/lanczos/dist/filters.js","./node_modules/@rgba-image/lanczos/dist/convolve.js","./node_modules/@rgba-image/lanczos/dist/index.js","./src/Image/sizing.ts","./src/Image/resizeImage.ts","./src/Image/toFile.ts","./src/Image/imageToB64.ts","./src/store/file-processing.ts","./src/store/imageSearch.store.ts"],"sourcesContent":["\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dual = exports.getEndomorphismMonoid = exports.not = exports.SK = exports.hole = exports.pipe = exports.untupled = exports.tupled = exports.absurd = exports.decrement = exports.increment = exports.tuple = exports.flow = exports.flip = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.constant = exports.unsafeCoerce = exports.identity = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\nexports.getBooleanAlgebra = getBooleanAlgebra;\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate<number> = (n) => n <= 2\n * const g: Predicate<number> = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)<number>()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)<number>()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\nexports.getSemigroup = getSemigroup;\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate<number> = (n) => n <= 2\n * const g: Predicate<number> = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)<number>()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)<number>()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getMonoid = function (M) {\n var getSemigroupM = (0, exports.getSemigroup)(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getRing = function (R) {\n var S = (0, exports.getSemiring)(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\nexports.getRing = getRing;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\nexports.apply = apply;\n/**\n * @since 2.0.0\n */\nfunction identity(a) {\n return a;\n}\nexports.identity = identity;\n/**\n * @since 2.0.0\n */\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nfunction constant(a) {\n return function () { return a; };\n}\nexports.constant = constant;\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexports.constTrue = constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexports.constFalse = constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexports.constNull = constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexports.constUndefined = constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexports.constVoid = exports.constUndefined;\nfunction flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nexports.flip = flip;\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\nexports.flow = flow;\n/**\n * @since 2.0.0\n */\nfunction tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\nexports.tuple = tuple;\n/**\n * @since 2.0.0\n */\nfunction increment(n) {\n return n + 1;\n}\nexports.increment = increment;\n/**\n * @since 2.0.0\n */\nfunction decrement(n) {\n return n - 1;\n}\nexports.decrement = decrement;\n/**\n * @since 2.0.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\nexports.absurd = absurd;\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nfunction tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\nexports.tupled = tupled;\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nfunction untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexports.untupled = untupled;\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\nexports.pipe = pipe;\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexports.hole = absurd;\n/**\n * @since 2.11.0\n */\nvar SK = function (_, b) { return b; };\nexports.SK = SK;\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction not(predicate) {\n return function (a) { return !predicate(a); };\n}\nexports.not = not;\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nvar getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\nexports.getEndomorphismMonoid = getEndomorphismMonoid;\n/** @internal */\nvar dual = function (arity, body) {\n var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity;\n return function () {\n var args = Array.from(arguments);\n if (isDataFirst(arguments)) {\n return body.apply(this, args);\n }\n return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); };\n };\n};\nexports.dual = dual;\n","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.flatMapReader = exports.flatMapTask = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.fromReadonlyNonEmptyArray = exports.has = exports.emptyRecord = exports.emptyReadonlyArray = exports.tail = exports.head = exports.isNonEmpty = exports.singleton = exports.right = exports.left = exports.isRight = exports.isLeft = exports.some = exports.none = exports.isSome = exports.isNone = void 0;\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/** @internal */\nvar isSome = function (fa) { return fa._tag === 'Some'; };\nexports.isSome = isSome;\n/** @internal */\nexports.none = { _tag: 'None' };\n/** @internal */\nvar some = function (a) { return ({ _tag: 'Some', value: a }); };\nexports.some = some;\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isLeft = function (ma) { return ma._tag === 'Left'; };\nexports.isLeft = isLeft;\n/** @internal */\nvar isRight = function (ma) { return ma._tag === 'Right'; };\nexports.isRight = isRight;\n/** @internal */\nvar left = function (e) { return ({ _tag: 'Left', left: e }); };\nexports.left = left;\n/** @internal */\nvar right = function (a) { return ({ _tag: 'Right', right: a }); };\nexports.right = right;\n// -------------------------------------------------------------------------------------\n// ReadonlyNonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar singleton = function (a) { return [a]; };\nexports.singleton = singleton;\n/** @internal */\nvar isNonEmpty = function (as) { return as.length > 0; };\nexports.isNonEmpty = isNonEmpty;\n/** @internal */\nvar head = function (as) { return as[0]; };\nexports.head = head;\n/** @internal */\nvar tail = function (as) { return as.slice(1); };\nexports.tail = tail;\n// -------------------------------------------------------------------------------------\n// empty\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.emptyReadonlyArray = [];\n/** @internal */\nexports.emptyRecord = {};\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1), true); };\nexports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray;\n/** @internal */\nvar liftNullable = function (F) {\n return function (f, onNullable) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither(o == null ? (0, exports.left)(onNullable.apply(void 0, a)) : (0, exports.right)(o));\n };\n };\n};\nexports.liftNullable = liftNullable;\n/** @internal */\nvar liftOption = function (F) {\n return function (f, onNone) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n var o = f.apply(void 0, a);\n return F.fromEither((0, exports.isNone)(o) ? (0, exports.left)(onNone.apply(void 0, a)) : (0, exports.right)(o.value));\n };\n };\n};\nexports.liftOption = liftOption;\n/** @internal */\nvar flatMapNullable = function (F, M) {\n /*#__PURE__*/ return (0, function_1.dual)(3, function (self, f, onNullable) {\n return M.flatMap(self, (0, exports.liftNullable)(F)(f, onNullable));\n });\n};\nexports.flatMapNullable = flatMapNullable;\n/** @internal */\nvar flatMapOption = function (F, M) {\n /*#__PURE__*/ return (0, function_1.dual)(3, function (self, f, onNone) { return M.flatMap(self, (0, exports.liftOption)(F)(f, onNone)); });\n};\nexports.flatMapOption = flatMapOption;\n/** @internal */\nvar flatMapEither = function (F, M) {\n /*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromEither(f(a)); });\n });\n};\nexports.flatMapEither = flatMapEither;\n/** @internal */\nvar flatMapIO = function (F, M) {\n /*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromIO(f(a)); });\n });\n};\nexports.flatMapIO = flatMapIO;\n/** @internal */\nvar flatMapTask = function (F, M) {\n /*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromTask(f(a)); });\n });\n};\nexports.flatMapTask = flatMapTask;\n/** @internal */\nvar flatMapReader = function (F, M) {\n /*#__PURE__*/ return (0, function_1.dual)(2, function (self, f) {\n return M.flatMap(self, function (a) { return F.fromReader(f(a)); });\n });\n};\nexports.flatMapReader = flatMapReader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequenceS = exports.sequenceT = exports.getApplySemigroup = exports.apS = exports.apSecond = exports.apFirst = exports.ap = void 0;\n/**\n * The `Apply` class provides the `ap` which is used to apply a function to an argument under a type constructor.\n *\n * `Apply` can be used to lift functions of two or more arguments to work on values wrapped with the type constructor\n * `f`.\n *\n * Instances must satisfy the following law in addition to the `Functor` laws:\n *\n * 1. Associative composition: `F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))`\n *\n * Formally, `Apply` represents a strong lax semi-monoidal endofunctor.\n *\n * @example\n * import * as O from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (a: string) => (b: number) => (c: boolean) => a + String(b) + String(c)\n * const fa: O.Option<string> = O.some('s')\n * const fb: O.Option<number> = O.some(1)\n * const fc: O.Option<boolean> = O.some(true)\n *\n * assert.deepStrictEqual(\n * pipe(\n * // lift a function\n * O.some(f),\n * // apply the first argument\n * O.ap(fa),\n * // apply the second argument\n * O.ap(fb),\n * // apply the third argument\n * O.ap(fc)\n * ),\n * O.some('s1true')\n * )\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nfunction ap(F, G) {\n return function (fa) {\n return function (fab) {\n return F.ap(F.map(fab, function (gab) { return function (ga) { return G.ap(gab, ga); }; }), fa);\n };\n };\n}\nexports.ap = ap;\nfunction apFirst(A) {\n return function (second) { return function (first) {\n return A.ap(A.map(first, function (a) { return function () { return a; }; }), second);\n }; };\n}\nexports.apFirst = apFirst;\nfunction apSecond(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function () { return function (b) { return b; }; }), second);\n };\n };\n}\nexports.apSecond = apSecond;\nfunction apS(F) {\n return function (name, fb) {\n return function (fa) {\n return F.ap(F.map(fa, function (a) { return function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }; }), fb);\n };\n };\n}\nexports.apS = apS;\nfunction getApplySemigroup(F) {\n return function (S) { return ({\n concat: function (first, second) {\n return F.ap(F.map(first, function (x) { return function (y) { return S.concat(x, y); }; }), second);\n }\n }); };\n}\nexports.getApplySemigroup = getApplySemigroup;\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\n };\n}\nvar tupleConstructors = {\n 1: function (a) { return [a]; },\n 2: function (a) { return function (b) { return [a, b]; }; },\n 3: function (a) { return function (b) { return function (c) { return [a, b, c]; }; }; },\n 4: function (a) { return function (b) { return function (c) { return function (d) { return [a, b, c, d]; }; }; }; },\n 5: function (a) { return function (b) { return function (c) { return function (d) { return function (e) { return [a, b, c, d, e]; }; }; }; }; }\n};\nfunction getTupleConstructor(len) {\n if (!_.has.call(tupleConstructors, len)) {\n tupleConstructors[len] = curried(function_1.tuple, len - 1, []);\n }\n return tupleConstructors[len];\n}\nfunction sequenceT(F) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n return fas;\n };\n}\nexports.sequenceT = sequenceT;\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a);\n };\n case 2:\n return function (a) { return function (b) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a);\n }; };\n case 3:\n return function (a) { return function (b) { return function (c) {\n var _a;\n return (_a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a);\n }; }; };\n case 4:\n return function (a) { return function (b) { return function (c) { return function (d) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a);\n }; }; }; };\n case 5:\n return function (a) { return function (b) { return function (c) { return function (d) { return function (e) {\n var _a;\n return (_a = {},\n _a[keys[0]] = a,\n _a[keys[1]] = b,\n _a[keys[2]] = c,\n _a[keys[3]] = d,\n _a[keys[4]] = e,\n _a);\n }; }; }; }; };\n default:\n return curried(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var r = {};\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n return r;\n }, len - 1, []);\n }\n}\nfunction sequenceS(F) {\n return function (r) {\n var keys = Object.keys(r);\n var len = keys.length;\n var f = getRecordConstructor(keys);\n var fr = F.map(r[keys[0]], f);\n for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n return fr;\n };\n}\nexports.sequenceS = sequenceS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = exports.tap = exports.chainFirst = void 0;\nfunction chainFirst(M) {\n var tapM = tap(M);\n return function (f) { return function (first) { return tapM(first, f); }; };\n}\nexports.chainFirst = chainFirst;\n/** @internal */\nfunction tap(M) {\n return function (first, f) { return M.chain(first, function (a) { return M.map(f(a), function () { return a; }); }); };\n}\nexports.tap = tap;\nfunction bind(M) {\n return function (name, f) { return function (ma) { return M.chain(ma, function (a) { return M.map(f(a), function (b) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n }); }); }; };\n}\nexports.bind = bind;\n","\"use strict\";\n/**\n * The `FromEither` type class represents those data types which support errors.\n *\n * @since 2.10.0\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tapEither = exports.filterOrElse = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.chainOptionK = exports.fromOptionK = exports.fromPredicate = exports.fromOption = void 0;\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nfunction fromOption(F) {\n return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; };\n}\nexports.fromOption = fromOption;\nfunction fromPredicate(F) {\n return function (predicate, onFalse) {\n return function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n };\n };\n}\nexports.fromPredicate = fromPredicate;\nfunction fromOptionK(F) {\n var fromOptionF = fromOption(F);\n return function (onNone) {\n var from = fromOptionF(onNone);\n return function (f) { return (0, function_1.flow)(f, from); };\n };\n}\nexports.fromOptionK = fromOptionK;\nfunction chainOptionK(F, M) {\n var fromOptionKF = fromOptionK(F);\n return function (onNone) {\n var from = fromOptionKF(onNone);\n return function (f) { return function (ma) { return M.chain(ma, from(f)); }; };\n };\n}\nexports.chainOptionK = chainOptionK;\nfunction fromEitherK(F) {\n return function (f) { return (0, function_1.flow)(f, F.fromEither); };\n}\nexports.fromEitherK = fromEitherK;\nfunction chainEitherK(F, M) {\n var fromEitherKF = fromEitherK(F);\n return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; };\n}\nexports.chainEitherK = chainEitherK;\nfunction chainFirstEitherK(F, M) {\n var tapEitherM = tapEither(F, M);\n return function (f) { return function (ma) { return tapEitherM(ma, f); }; };\n}\nexports.chainFirstEitherK = chainFirstEitherK;\nfunction filterOrElse(F, M) {\n return function (predicate, onFalse) {\n return function (ma) {\n return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); });\n };\n };\n}\nexports.filterOrElse = filterOrElse;\n/** @internal */\nfunction tapEither(F, M) {\n var fromEither = fromEitherK(F);\n var tapM = (0, Chain_1.tap)(M);\n return function (self, f) { return tapM(self, fromEither(f)); };\n}\nexports.tapEither = tapEither;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.asUnit = exports.as = exports.getFunctorComposition = exports.let = exports.bindTo = exports.flap = exports.map = void 0;\n/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nfunction map(F, G) {\n return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; };\n}\nexports.map = map;\nfunction flap(F) {\n return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; };\n}\nexports.flap = flap;\nfunction bindTo(F) {\n return function (name) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return (_a = {}, _a[name] = a, _a);\n }); }; };\n}\nexports.bindTo = bindTo;\nfunction let_(F) {\n return function (name, f) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a));\n }); }; };\n}\nexports.let = let_;\n/** @deprecated */\nfunction getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) { return (0, function_1.pipe)(fga, _map(f)); }\n };\n}\nexports.getFunctorComposition = getFunctorComposition;\n/** @internal */\nfunction as(F) {\n return function (self, b) { return F.map(self, function () { return b; }); };\n}\nexports.as = as;\n/** @internal */\nfunction asUnit(F) {\n var asM = as(F);\n return function (self) { return asM(self, undefined); };\n}\nexports.asUnit = asUnit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.eqDate = exports.eqNumber = exports.eqString = exports.eqBoolean = exports.eq = exports.strictEqual = exports.getStructEq = exports.getTupleEq = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.eqStrict = exports.URI = exports.contramap = exports.tuple = exports.struct = exports.fromEquals = void 0;\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromEquals = function (equals) { return ({\n equals: function (x, y) { return x === y || equals(x, y); }\n}); };\nexports.fromEquals = fromEquals;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar struct = function (eqs) {\n return (0, exports.fromEquals)(function (first, second) {\n for (var key in eqs) {\n if (!eqs[key].equals(first[key], second[key])) {\n return false;\n }\n }\n return true;\n });\n};\nexports.struct = struct;\n/**\n * Given a tuple of `Eq`s returns a `Eq` for the tuple\n *\n * @example\n * import { tuple } from 'fp-ts/Eq'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import * as B from 'fp-ts/boolean'\n *\n * const E = tuple(S.Eq, N.Eq, B.Eq)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, true]), true)\n * assert.strictEqual(E.equals(['a', 1, true], ['b', 1, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 2, true]), false)\n * assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var eqs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n eqs[_i] = arguments[_i];\n }\n return (0, exports.fromEquals)(function (first, second) { return eqs.every(function (E, i) { return E.equals(first[i], second[i]); }); });\n};\nexports.tuple = tuple;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Eq<User>`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for equality (meaning we have an `Eq<X>`)\n *\n * For example, given the following `User` type, we want to construct an `Eq<User>` that just looks at the `key` field\n * for each user (since it's known to be unique).\n *\n * If we have a way of comparing `UUID`s for equality (`eqUUID: Eq<UUID>`) and we know how to go from `User -> UUID`,\n * using `contramap` we can do this\n *\n * @example\n * import { contramap, Eq } from 'fp-ts/Eq'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/string'\n *\n * type UUID = string\n *\n * interface User {\n * readonly key: UUID\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const eqUUID: Eq<UUID> = S.Eq\n *\n * const eqUserByKey: Eq<User> = pipe(\n * eqUUID,\n * contramap((user) => user.key)\n * )\n *\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k2', firstName: 'a1', lastName: 'b1' }\n * ),\n * false\n * )\n * assert.deepStrictEqual(\n * eqUserByKey.equals(\n * { key: 'k1', firstName: 'a1', lastName: 'b1' },\n * { key: 'k1', firstName: 'a2', lastName: 'b1' }\n * ),\n * true\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromEquals)(function (x, y) { return fa.equals(f(x), f(y)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Eq';\n/**\n * @category instances\n * @since 2.5.0\n */\nexports.eqStrict = {\n equals: function (a, b) { return a === b; }\n};\nvar empty = {\n equals: function () { return true; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (x, y) { return (0, exports.fromEquals)(function (a, b) { return x.equals(a, b) && y.equals(a, b); }); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @category instances\n * @since 2.6.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleEq = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructEq = exports.struct;\n/**\n * Use [`eqStrict`](#eqstrict) instead\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.strictEqual = exports.eqStrict.equals;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Contravariant` instance, pass `E.Contravariant` instead of `E.eq`\n * (where `E` is from `import E from 'fp-ts/Eq'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eq = exports.Contravariant;\n/**\n * Use [`Eq`](./boolean.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqBoolean = exports.eqStrict;\n/**\n * Use [`Eq`](./string.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqString = exports.eqStrict;\n/**\n * Use [`Eq`](./number.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqNumber = exports.eqStrict;\n/**\n * Use [`Eq`](./Date.ts.html#eq) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.eqDate = {\n equals: function (first, second) { return first.valueOf() === second.valueOf(); }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ordDate = exports.ordNumber = exports.ordString = exports.ordBoolean = exports.ord = exports.getDualOrd = exports.getTupleOrd = exports.between = exports.clamp = exports.max = exports.min = exports.geq = exports.leq = exports.gt = exports.lt = exports.equals = exports.trivial = exports.Contravariant = exports.getMonoid = exports.getSemigroup = exports.URI = exports.contramap = exports.reverse = exports.tuple = exports.fromCompare = exports.equalsDefault = void 0;\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\n// -------------------------------------------------------------------------------------\n// defaults\n// -------------------------------------------------------------------------------------\n/**\n * @category defaults\n * @since 2.10.0\n */\nvar equalsDefault = function (compare) {\n return function (first, second) {\n return first === second || compare(first, second) === 0;\n };\n};\nexports.equalsDefault = equalsDefault;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar fromCompare = function (compare) { return ({\n equals: (0, exports.equalsDefault)(compare),\n compare: function (first, second) { return (first === second ? 0 : compare(first, second)); }\n}); };\nexports.fromCompare = fromCompare;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Ord'\n * import * as B from 'fp-ts/boolean'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n *\n * const O = tuple(S.Ord, N.Ord, B.Ord)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var ords = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n return (0, exports.fromCompare)(function (first, second) {\n var i = 0;\n for (; i < ords.length - 1; i++) {\n var r = ords[i].compare(first[i], second[i]);\n if (r !== 0) {\n return r;\n }\n }\n return ords[i].compare(first[i], second[i]);\n });\n};\nexports.tuple = tuple;\n/**\n * @since 2.10.0\n */\nvar reverse = function (O) { return (0, exports.fromCompare)(function (first, second) { return O.compare(second, first); }); };\nexports.reverse = reverse;\n/* istanbul ignore next */\nvar contramap_ = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.contramap)(f)); };\n/**\n * A typical use case for `contramap` would be like, given some `User` type, to construct an `Ord<User>`.\n *\n * We can do so with a function from `User -> X` where `X` is some value that we know how to compare\n * for ordering (meaning we have an `Ord<X>`)\n *\n * For example, given the following `User` type, there are lots of possible choices for `X`,\n * but let's say we want to sort a list of users by `lastName`.\n *\n * If we have a way of comparing `lastName`s for ordering (`ordLastName: Ord<string>`) and we know how to go from `User -> string`,\n * using `contramap` we can do this\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import { contramap, Ord } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly firstName: string\n * readonly lastName: string\n * }\n *\n * const ordLastName: Ord<string> = S.Ord\n *\n * const ordByLastName: Ord<User> = pipe(\n * ordLastName,\n * contramap((user) => user.lastName)\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordByLastName)([\n * { firstName: 'a', lastName: 'd' },\n * { firstName: 'c', lastName: 'b' }\n * ]),\n * [\n * { firstName: 'c', lastName: 'b' },\n * { firstName: 'a', lastName: 'd' }\n * ]\n * )\n *\n * @since 2.0.0\n */\nvar contramap = function (f) { return function (fa) {\n return (0, exports.fromCompare)(function (first, second) { return fa.compare(f(first), f(second)); });\n}; };\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Ord';\n/**\n * A typical use case for the `Semigroup` instance of `Ord` is merging two or more orderings.\n *\n * For example the following snippet builds an `Ord` for a type `User` which\n * sorts by `created` date descending, and **then** `lastName`\n *\n * @example\n * import * as D from 'fp-ts/Date'\n * import { pipe } from 'fp-ts/function'\n * import { contramap, getSemigroup, Ord, reverse } from 'fp-ts/Ord'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * interface User {\n * readonly id: string\n * readonly lastName: string\n * readonly created: Date\n * }\n *\n * const ordByLastName: Ord<User> = pipe(\n * S.Ord,\n * contramap((user) => user.lastName)\n * )\n *\n * const ordByCreated: Ord<User> = pipe(\n * D.Ord,\n * contramap((user) => user.created)\n * )\n *\n * const ordUserByCreatedDescThenLastName = getSemigroup<User>().concat(\n * reverse(ordByCreated),\n * ordByLastName\n * )\n *\n * assert.deepStrictEqual(\n * RA.sort(ordUserByCreatedDescThenLastName)([\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) }\n * ]),\n * [\n * { id: 'e', lastName: 'f', created: new Date(1980, 10, 30) },\n * { id: 'a', lastName: 'b', created: new Date(1973, 10, 30) },\n * { id: 'c', lastName: 'd', created: new Date(1973, 10, 30) }\n * ]\n * )\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) {\n return (0, exports.fromCompare)(function (a, b) {\n var ox = first.compare(a, b);\n return ox !== 0 ? ox : second.compare(a, b);\n });\n }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` such that:\n *\n * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2`\n * - its `empty` value is an `Ord` that always considers compared elements equal\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import { contramap, reverse, getMonoid } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as B from 'fp-ts/boolean'\n * import { pipe } from 'fp-ts/function'\n * import { concatAll } from 'fp-ts/Monoid'\n * import * as N from 'fp-ts/number'\n *\n * interface User {\n * readonly id: number\n * readonly name: string\n * readonly age: number\n * readonly rememberMe: boolean\n * }\n *\n * const byName = pipe(\n * S.Ord,\n * contramap((p: User) => p.name)\n * )\n *\n * const byAge = pipe(\n * N.Ord,\n * contramap((p: User) => p.age)\n * )\n *\n * const byRememberMe = pipe(\n * B.Ord,\n * contramap((p: User) => p.rememberMe)\n * )\n *\n * const M = getMonoid<User>()\n *\n * const users: Array<User> = [\n * { id: 1, name: 'Guido', age: 47, rememberMe: false },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true }\n * ]\n *\n * // sort by name, then by age, then by `rememberMe`\n * const O1 = concatAll(M)([byName, byAge, byRememberMe])\n * assert.deepStrictEqual(sort(O1)(users), [\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * // now `rememberMe = true` first, then by name, then by age\n * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge])\n * assert.deepStrictEqual(sort(O2)(users), [\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * @category instances\n * @since 2.4.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: (0, exports.fromCompare)(function () { return 0; })\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nexports.trivial = {\n equals: function_1.constTrue,\n compare: /*#__PURE__*/ (0, function_1.constant)(0)\n};\n/**\n * @since 2.11.0\n */\nvar equals = function (O) {\n return function (second) {\n return function (first) {\n return first === second || O.compare(first, second) === 0;\n };\n };\n};\nexports.equals = equals;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 2.0.0\n */\nvar lt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === -1;\n };\n};\nexports.lt = lt;\n// TODO: curry in v3\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar gt = function (O) {\n return function (first, second) {\n return O.compare(first, second) === 1;\n };\n};\nexports.gt = gt;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 2.0.0\n */\nvar leq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== 1;\n };\n};\nexports.leq = leq;\n// TODO: curry in v3\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 2.0.0\n */\nvar geq = function (O) {\n return function (first, second) {\n return O.compare(first, second) !== -1;\n };\n};\nexports.geq = geq;\n// TODO: curry in v3\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar min = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) < 1 ? first : second;\n };\n};\nexports.min = min;\n// TODO: curry in v3\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\nvar max = function (O) {\n return function (first, second) {\n return first === second || O.compare(first, second) > -1 ? first : second;\n };\n};\nexports.max = max;\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 2.0.0\n */\nvar clamp = function (O) {\n var minO = (0, exports.min)(O);\n var maxO = (0, exports.max)(O);\n return function (low, hi) { return function (a) { return maxO(minO(a, hi), low); }; };\n};\nexports.clamp = clamp;\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 2.0.0\n */\nvar between = function (O) {\n var ltO = (0, exports.lt)(O);\n var gtO = (0, exports.gt)(O);\n return function (low, hi) { return function (a) { return ltO(a, low) || gtO(a, hi) ? false : true; }; };\n};\nexports.between = between;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleOrd = exports.tuple;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualOrd = exports.reverse;\n/**\n * Use [`Contravariant`](#contravariant) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ord = exports.Contravariant;\n// default compare for primitive types\nfunction compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n}\nvar strictOrd = {\n equals: Eq_1.eqStrict.equals,\n compare: compare\n};\n/**\n * Use [`Ord`](./boolean.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordBoolean = strictOrd;\n/**\n * Use [`Ord`](./string.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordString = strictOrd;\n/**\n * Use [`Ord`](./number.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordNumber = strictOrd;\n/**\n * Use [`Ord`](./Date.ts.html#ord) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.ordDate = (0, function_1.pipe)(exports.ordNumber, \n/*#__PURE__*/\n(0, exports.contramap)(function (date) { return date.valueOf(); }));\n","\"use strict\";\n/**\n * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A`\n *\n * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances.\n *\n * @since 2.0.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatAll = exports.endo = exports.filterSecond = exports.filterFirst = exports.reverse = void 0;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Magma`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse, concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(reverse(N.MagmaSub))(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), 2)\n *\n * @since 2.11.0\n */\nvar reverse = function (M) { return ({\n concat: function (first, second) { return M.concat(second, first); }\n}); };\nexports.reverse = reverse;\n/**\n * @since 2.11.0\n */\nvar filterFirst = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(first) ? M.concat(first, second) : second); }\n }); };\n};\nexports.filterFirst = filterFirst;\n/**\n * @since 2.11.0\n */\nvar filterSecond = function (predicate) {\n return function (M) { return ({\n concat: function (first, second) { return (predicate(second) ? M.concat(first, second) : first); }\n }); };\n};\nexports.filterSecond = filterSecond;\n/**\n * @since 2.11.0\n */\nvar endo = function (f) {\n return function (M) { return ({\n concat: function (first, second) { return M.concat(f(first), f(second)); }\n }); };\n};\nexports.endo = endo;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(N.MagmaSub)(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), -6)\n *\n * @since 2.11.0\n */\nvar concatAll = function (M) {\n return function (startWith) {\n return function (as) {\n return as.reduce(function (a, acc) { return M.concat(a, acc); }, startWith);\n };\n };\n};\nexports.concatAll = concatAll;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.semigroupProduct = exports.semigroupSum = exports.semigroupString = exports.getFunctionSemigroup = exports.semigroupAny = exports.semigroupAll = exports.fold = exports.getIntercalateSemigroup = exports.getMeetSemigroup = exports.getJoinSemigroup = exports.getDualSemigroup = exports.getStructSemigroup = exports.getTupleSemigroup = exports.getFirstSemigroup = exports.getLastSemigroup = exports.getObjectSemigroup = exports.semigroupVoid = exports.concatAll = exports.last = exports.first = exports.intercalate = exports.tuple = exports.struct = exports.reverse = exports.constant = exports.max = exports.min = void 0;\n/**\n * If a type `A` can form a `Semigroup` it has an **associative** binary operation.\n *\n * ```ts\n * interface Semigroup<A> {\n * readonly concat: (x: A, y: A) => A\n * }\n * ```\n *\n * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`.\n *\n * ```ts\n * concat(x, concat(y, z)) = concat(concat(x, y), z)\n * ```\n *\n * A common example of a semigroup is the type `string` with the operation `+`.\n *\n * ```ts\n * import { Semigroup } from 'fp-ts/Semigroup'\n *\n * const semigroupString: Semigroup<string> = {\n * concat: (x, y) => x + y\n * }\n *\n * const x = 'x'\n * const y = 'y'\n * const z = 'z'\n *\n * semigroupString.concat(x, y) // 'xy'\n *\n * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz'\n *\n * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz'\n * ```\n *\n * *Adapted from https://typelevel.org/cats*\n *\n * @since 2.0.0\n */\nvar function_1 = require(\"./function\");\nvar _ = __importStar(require(\"./internal\"));\nvar M = __importStar(require(\"./Magma\"));\nvar Or = __importStar(require(\"./Ord\"));\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Get a semigroup where `concat` will return the minimum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.min(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 1)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar min = function (O) { return ({\n concat: Or.min(O)\n}); };\nexports.min = min;\n/**\n * Get a semigroup where `concat` will return the maximum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.max(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 2)\n *\n * @category constructors\n * @since 2.10.0\n */\nvar max = function (O) { return ({\n concat: Or.max(O)\n}); };\nexports.max = max;\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar constant = function (a) { return ({\n concat: function () { return a; }\n}); };\nexports.constant = constant;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba')\n *\n * @since 2.10.0\n */\nexports.reverse = M.reverse;\n/**\n * Given a struct of semigroups returns a semigroup for the struct.\n *\n * @example\n * import { struct } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * interface Point {\n * readonly x: number\n * readonly y: number\n * }\n *\n * const S = struct<Point>({\n * x: N.SemigroupSum,\n * y: N.SemigroupSum\n * })\n *\n * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 })\n *\n * @since 2.10.0\n */\nvar struct = function (semigroups) { return ({\n concat: function (first, second) {\n var r = {};\n for (var k in semigroups) {\n if (_.has.call(semigroups, k)) {\n r[k] = semigroups[k].concat(first[k], second[k]);\n }\n }\n return r;\n }\n}); };\nexports.struct = struct;\n/**\n * Given a tuple of semigroups returns a semigroup for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Semigroup'\n * import * as B from 'fp-ts/boolean'\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/string'\n *\n * const S1 = tuple(S.Semigroup, N.SemigroupSum)\n * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll)\n * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @since 2.10.0\n */\nvar tuple = function () {\n var semigroups = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n semigroups[_i] = arguments[_i];\n }\n return ({\n concat: function (first, second) { return semigroups.map(function (s, i) { return s.concat(first[i], second[i]); }); }\n });\n};\nexports.tuple = tuple;\n/**\n * Between each pair of elements insert `middle`.\n *\n * @example\n * import { intercalate } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * const S1 = pipe(S.Semigroup, intercalate(' + '))\n *\n * assert.strictEqual(S1.concat('a', 'b'), 'a + b')\n *\n * @since 2.10.0\n */\nvar intercalate = function (middle) {\n return function (S) { return ({\n concat: function (x, y) { return S.concat(x, S.concat(middle, y)); }\n }); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * Always return the first argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.first<number>().concat(1, 2), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nvar first = function () { return ({ concat: function_1.identity }); };\nexports.first = first;\n/**\n * Always return the last argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.last<number>().concat(1, 2), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nvar last = function () { return ({ concat: function (_, y) { return y; } }); };\nexports.last = last;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * const sum = concatAll(N.SemigroupSum)(0)\n *\n * assert.deepStrictEqual(sum([1, 2, 3]), 6)\n * assert.deepStrictEqual(sum([]), 0)\n *\n * @since 2.10.0\n */\nexports.concatAll = M.concatAll;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `void` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupVoid = (0, exports.constant)(undefined);\n/**\n * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getObjectSemigroup = function () { return ({\n concat: function (first, second) { return Object.assign({}, first, second); }\n}); };\nexports.getObjectSemigroup = getObjectSemigroup;\n/**\n * Use [`last`](#last) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getLastSemigroup = exports.last;\n/**\n * Use [`first`](#first) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFirstSemigroup = exports.first;\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getTupleSemigroup = exports.tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getStructSemigroup = exports.struct;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getDualSemigroup = exports.reverse;\n/**\n * Use [`max`](#max) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getJoinSemigroup = exports.max;\n/**\n * Use [`min`](#min) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getMeetSemigroup = exports.min;\n/**\n * Use [`intercalate`](#intercalate) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.getIntercalateSemigroup = exports.intercalate;\nfunction fold(S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (startWith, as) { return (as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as)); };\n}\nexports.fold = fold;\n/**\n * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAll = {\n concat: function (x, y) { return x && y; }\n};\n/**\n * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupAny = {\n concat: function (x, y) { return x || y; }\n};\n/**\n * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getFunctionSemigroup = function_1.getSemigroup;\n/**\n * Use [`Semigroup`](./string.ts.html#Semigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupString = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupSum = {\n concat: function (x, y) { return x + y; }\n};\n/**\n * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.semigroupProduct = {\n concat: function (x, y) { return x * y; }\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reduceRight = exports.foldMap = exports.reduce = exports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.of = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.modifyAt = exports.updateAt = exports.sort = exports.groupBy = exports.group = exports.reverse = exports.concat = exports.concatW = exports.fromArray = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromReadonlyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = exports.empty = void 0;\nexports.groupSort = exports.chain = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.foldMapWithIndex = exports.reduceWithIndex = void 0;\nexports.readonlyNonEmptyArray = exports.fold = exports.prependToAll = exports.insertAt = exports.snoc = exports.cons = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.filter = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar Se = __importStar(require(\"./Semigroup\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nexports.empty = _.emptyReadonlyArray;\n/**\n * @internal\n */\nexports.isNonEmpty = _.isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n if (as[i] === a) {\n return as;\n }\n else {\n var xs = _.fromReadonlyNonEmptyArray(as);\n xs[i] = a;\n return xs;\n }\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `ReadonlyNonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return as;\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `ReadonlyNonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = RNEA.sortBy([byName, byAge])\n *\n * const persons: RNEA.ReadonlyNonEmptyArray<Person> = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return function_1.identity;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `ReadonlyNonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return as;\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Return a `ReadonlyNonEmptyArray` from a `ReadonlyArray` returning `none` if the input is empty.\n *\n * @category conversions\n * @since 2.5.0\n */\nvar fromReadonlyArray = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(as) : _.none;\n};\nexports.fromReadonlyArray = fromReadonlyArray;\n/**\n * Return a `ReadonlyNonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `ReadonlyNonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3, 4]), [1, [2, 3, 4]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return (0, exports.fromReadonlyArray)(as.slice()); };\nexports.fromArray = fromArray;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nexports.concatW = concatW;\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\nexports.concat = concat;\n/**\n * @since 2.5.0\n */\nvar reverse = function (as) {\n return as.length === 1 ? as : __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true);\n};\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return exports.empty;\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\nexports.group = group;\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.5.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length === 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : as;\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = _.fromReadonlyNonEmptyArray(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * A useful recursion pattern for processing a `ReadonlyNonEmptyArray` to produce a new `ReadonlyNonEmptyArray`, often used for \"chopping\" up the input\n * `ReadonlyNonEmptyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyNonEmptyArray` and produce a\n * value and the tail of the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyNonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [as, exports.empty] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyNonEmptyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyNonEmptyArray`.\n *\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = _.singleton;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as RNEA.ReadonlyNonEmptyArray<number>,\n * RNEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyNonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (as) { return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); }); };\nexports.ap = ap;\n/**\n * @example\n * import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RNEA.flatMap((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); }));\n});\n/**\n * @since 2.5.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = \n/*#__PURE__*/ (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = \n/*#__PURE__*/ (0, exports.flatMap)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) {\n return (0, exports.mapWithIndex)(function (_, a) { return f(a); });\n};\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a) { return S.concat(s, f(a)); }, f(as[0]));\n };\n };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) {\n return function (as) {\n return as.reduce(function (b, a, i) { return f(i, b, a); }, b);\n };\n};\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * **Note**. The constraint is relaxed: a `Semigroup` instead of a `Monoid`.\n *\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (S) {\n return function (f) {\n return function (as) {\n return as.slice(1).reduce(function (s, a, i) { return S.concat(s, f(i + 1, a)); }, f(0, as[0]));\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) {\n return function (as) {\n return as.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n };\n};\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function_1.SK); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category Comonad\n * @since 2.6.3\n */\nexports.extract = _.head;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyNonEmptyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * Builds a `Semigroup` instance for `ReadonlyNonEmptyArray`\n *\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/ReadonlyNonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.5.0\n */\nexports.head = exports.extract;\n/**\n * @since 2.5.0\n */\nexports.tail = _.tail;\n/**\n * @since 2.5.0\n */\nvar last = function (as) { return as[as.length - 1]; };\nexports.last = last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.5.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.5.0\n */\nvar min = function (O) {\n var S = Se.min(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.min = min;\n/**\n * @since 2.5.0\n */\nvar max = function (O) {\n var S = Se.max(O);\n return function (as) { return as.reduce(S.concat); };\n};\nexports.max = max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `ReadonlyNonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `ReadonlyNonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyNonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (S) {\n var concatAllS = (0, exports.concatAll)(S);\n return function (middle) { return (0, function_1.flow)((0, exports.intersperse)(middle), concatAllS); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.5.0\n */\nexports.chain = exports.flatMap;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : exports.empty); };\n}\nexports.groupSort = groupSort;\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\nexports.filter = filter;\n/**\n * Use [`filterWithIndex`](./ReadonlyArray.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromReadonlyArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\nexports.cons = cons;\n/**\n * Use [`append`](./ReadonlyArray.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, concat([end])); };\nexports.snoc = snoc;\n/**\n * Use [`insertAt`](./ReadonlyArray.ts.html#insertat) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = exports.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RNEA.Functor` instead of `RNEA.readonlyNonEmptyArray`\n * (where `RNEA` is from `import RNEA from 'fp-ts/ReadonlyNonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyNonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: exports.flatMap,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapWithIndex = exports.map = exports.flatten = exports.duplicate = exports.extend = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.chunksOf = exports.splitAt = exports.chop = exports.chainWithIndex = exports.foldMap = exports.foldMapWithIndex = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.of = exports.copy = exports.modifyAt = exports.updateAt = exports.insertAt = exports.sort = exports.groupBy = exports.group = exports.reverse = exports.concat = exports.concatW = exports.unappend = exports.unprepend = exports.range = exports.replicate = exports.makeBy = exports.fromArray = exports.fromReadonlyNonEmptyArray = exports.rotate = exports.union = exports.sortBy = exports.uniq = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.append = exports.appendW = exports.prepend = exports.prependW = exports.isOutOfBound = exports.isNonEmpty = void 0;\nexports.chain = exports.intercalate = exports.updateLast = exports.modifyLast = exports.updateHead = exports.modifyHead = exports.matchRight = exports.matchLeft = exports.concatAll = exports.max = exports.min = exports.init = exports.last = exports.tail = exports.head = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.Comonad = exports.Alt = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getUnionSemigroup = exports.getEq = exports.getSemigroup = exports.getShow = exports.URI = exports.extract = exports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = void 0;\nexports.nonEmptyArray = exports.fold = exports.prependToAll = exports.snoc = exports.cons = exports.unsnoc = exports.uncons = exports.filterWithIndex = exports.filter = exports.groupSort = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\n// -------------------------------------------------------------------------------------\n// internal\n// -------------------------------------------------------------------------------------\n/**\n * @internal\n */\nvar isNonEmpty = function (as) { return as.length > 0; };\nexports.isNonEmpty = isNonEmpty;\n/**\n * @internal\n */\nvar isOutOfBound = function (i, as) { return i < 0 || i >= as.length; };\nexports.isOutOfBound = isOutOfBound;\n/**\n * @internal\n */\nvar prependW = function (head) {\n return function (tail) {\n return __spreadArray([head], tail, true);\n };\n};\nexports.prependW = prependW;\n/**\n * @internal\n */\nexports.prepend = exports.prependW;\n/**\n * @internal\n */\nvar appendW = function (end) {\n return function (init) {\n return __spreadArray(__spreadArray([], init, true), [end], false);\n };\n};\nexports.appendW = appendW;\n/**\n * @internal\n */\nexports.append = exports.appendW;\n/**\n * @internal\n */\nvar unsafeInsertAt = function (i, a, as) {\n if ((0, exports.isNonEmpty)(as)) {\n var xs = (0, exports.fromReadonlyNonEmptyArray)(as);\n xs.splice(i, 0, a);\n return xs;\n }\n return [a];\n};\nexports.unsafeInsertAt = unsafeInsertAt;\n/**\n * @internal\n */\nvar unsafeUpdateAt = function (i, a, as) {\n var xs = (0, exports.fromReadonlyNonEmptyArray)(as);\n xs[i] = a;\n return xs;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * Remove duplicates from a `NonEmptyArray`, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.11.0\n */\nvar uniq = function (E) {\n return function (as) {\n if (as.length === 1) {\n return (0, exports.copy)(as);\n }\n var out = [(0, exports.head)(as)];\n var rest = (0, exports.tail)(as);\n var _loop_1 = function (a) {\n if (out.every(function (o) { return !E.equals(o, a); })) {\n out.push(a);\n }\n };\n for (var _i = 0, rest_1 = rest; _i < rest_1.length; _i++) {\n var a = rest_1[_i];\n _loop_1(a);\n }\n return out;\n };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of a `NonEmptyArray` in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * name: string\n * age: number\n * }\n *\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n *\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = NEA.sortBy([byName, byAge])\n *\n * const persons: NEA.NonEmptyArray<Person> = [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 },\n * { name: 'b', age: 2 }\n * ]\n *\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.11.0\n */\nvar sortBy = function (ords) {\n if ((0, exports.isNonEmpty)(ords)) {\n var M = (0, Ord_1.getMonoid)();\n return (0, exports.sort)(ords.reduce(M.concat, M.empty));\n }\n return exports.copy;\n};\nexports.sortBy = sortBy;\n/**\n * @since 2.11.0\n */\nvar union = function (E) {\n var uniqE = (0, exports.uniq)(E);\n return function (second) { return function (first) { return uniqE((0, function_1.pipe)(first, concat(second))); }; };\n};\nexports.union = union;\n/**\n * Rotate a `NonEmptyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n * assert.deepStrictEqual(rotate(-2)([1, 2, 3, 4, 5]), [3, 4, 5, 1, 2])\n *\n * @since 2.11.0\n */\nvar rotate = function (n) {\n return function (as) {\n var len = as.length;\n var m = Math.round(n) % len;\n if ((0, exports.isOutOfBound)(Math.abs(m), as) || m === 0) {\n return (0, exports.copy)(as);\n }\n if (m < 0) {\n var _a = (0, exports.splitAt)(-m)(as), f = _a[0], s = _a[1];\n return (0, function_1.pipe)(s, concat(f));\n }\n else {\n return (0, exports.rotate)(m - len)(as);\n }\n };\n};\nexports.rotate = rotate;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.fromReadonlyNonEmptyArray = _.fromReadonlyNonEmptyArray;\n/**\n * Builds a `NonEmptyArray` from an `Array` returning `none` if `as` is an empty array\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromArray = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(as) : _.none); };\nexports.fromArray = fromArray;\n/**\n * Return a `NonEmptyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { makeBy } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(pipe(5, makeBy(double)), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar makeBy = function (f) {\n return function (n) {\n var j = Math.max(0, Math.floor(n));\n var out = [f(0)];\n for (var i = 1; i < j; i++) {\n out.push(f(i));\n }\n return out;\n };\n};\nexports.makeBy = makeBy;\n/**\n * Create a `NonEmptyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a natural number.\n *\n * @example\n * import { replicate } from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(3, replicate('a')), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar replicate = function (a) { return (0, exports.makeBy)(function () { return a; }); };\nexports.replicate = replicate;\n/**\n * Create a `NonEmptyArray` containing a range of integers, including both endpoints.\n *\n * @example\n * import { range } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(range(1, 5), [1, 2, 3, 4, 5])\n *\n * @category constructors\n * @since 2.11.0\n */\nvar range = function (start, end) {\n return start <= end ? (0, exports.makeBy)(function (i) { return start + i; })(end - start + 1) : [start];\n};\nexports.range = range;\n/**\n * Return the tuple of the `head` and the `tail`.\n *\n * @example\n * import { unprepend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unprepend([1, 2, 3]), [1, [2, 3]])\n *\n * @since 2.9.0\n */\nvar unprepend = function (as) { return [(0, exports.head)(as), (0, exports.tail)(as)]; };\nexports.unprepend = unprepend;\n/**\n * Return the tuple of the `init` and the `last`.\n *\n * @example\n * import { unappend } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(unappend([1, 2, 3, 4]), [[1, 2, 3], 4])\n *\n * @since 2.9.0\n */\nvar unappend = function (as) { return [(0, exports.init)(as), (0, exports.last)(as)]; };\nexports.unappend = unappend;\nfunction concatW(second) {\n return function (first) { return first.concat(second); };\n}\nexports.concatW = concatW;\nfunction concat(x, y) {\n return y ? x.concat(y) : function (y) { return y.concat(x); };\n}\nexports.concat = concat;\n/**\n * @since 2.0.0\n */\nvar reverse = function (as) { return __spreadArray([(0, exports.last)(as)], as.slice(0, -1).reverse(), true); };\nexports.reverse = reverse;\nfunction group(E) {\n return function (as) {\n var len = as.length;\n if (len === 0) {\n return [];\n }\n var out = [];\n var head = as[0];\n var nea = [head];\n for (var i = 1; i < len; i++) {\n var a = as[i];\n if (E.equals(a, head)) {\n nea.push(a);\n }\n else {\n out.push(nea);\n head = a;\n nea = [head];\n }\n }\n out.push(nea);\n return out;\n };\n}\nexports.group = group;\n/**\n * Splits an array into sub-non-empty-arrays stored in an object, based on the result of calling a `string`-returning\n * function on each element, and grouping the results according to values returned\n *\n * @example\n * import { groupBy } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(groupBy((s: string) => String(s.length))(['a', 'b', 'ab']), {\n * '1': ['a', 'b'],\n * '2': ['ab']\n * })\n *\n * @since 2.0.0\n */\nvar groupBy = function (f) {\n return function (as) {\n var out = {};\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n var k = f(a);\n if (_.has.call(out, k)) {\n out[k].push(a);\n }\n else {\n out[k] = [a];\n }\n }\n return out;\n };\n};\nexports.groupBy = groupBy;\n/**\n * @since 2.0.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * @since 2.0.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * @since 2.0.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * @since 2.0.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * @since 2.0.0\n */\nexports.copy = exports.fromReadonlyNonEmptyArray;\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar of = function (a) { return [a]; };\nexports.of = of;\n/**\n * @since 2.5.1\n */\nvar zipWith = function (as, bs, f) {\n var cs = [f(as[0], bs[0])];\n var len = Math.min(as.length, bs.length);\n for (var i = 1; i < len; i++) {\n cs[i] = f(as[i], bs[i]);\n }\n return cs;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * @since 2.5.1\n */\nvar unzip = function (abs) {\n var fa = [abs[0][0]];\n var fb = [abs[0][1]];\n for (var i = 1; i < abs.length; i++) {\n fa[i] = abs[i][0];\n fb[i] = abs[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n return function (as) {\n var out = [middle, as[0]];\n for (var i = 1; i < as.length; i++) {\n out.push(middle, as[i]);\n }\n return out;\n };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n return function (as) {\n var rest = (0, exports.tail)(as);\n return (0, exports.isNonEmpty)(rest) ? (0, function_1.pipe)(rest, (0, exports.prependAll)(middle), (0, exports.prepend)((0, exports.head)(as))) : (0, exports.copy)(as);\n };\n};\nexports.intersperse = intersperse;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.foldMapWithIndex = RNEA.foldMapWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.foldMap = RNEA.foldMap;\n/**\n * @category sequencing\n * @since 2.10.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = (0, exports.fromReadonlyNonEmptyArray)(f(0, (0, exports.head)(as)));\n for (var i = 1; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * @since 2.10.0\n */\nvar chop = function (f) {\n return function (as) {\n var _a = f(as), b = _a[0], rest = _a[1];\n var out = [b];\n var next = rest;\n while ((0, exports.isNonEmpty)(next)) {\n var _b = f(next), b_1 = _b[0], rest_2 = _b[1];\n out.push(b_1);\n next = rest_2;\n }\n return out;\n };\n};\nexports.chop = chop;\n/**\n * Splits a `NonEmptyArray` into two pieces, the first piece has max `n` elements.\n *\n * @since 2.10.0\n */\nvar splitAt = function (n) {\n return function (as) {\n var m = Math.max(1, n);\n return m >= as.length ? [(0, exports.copy)(as), []] : [(0, function_1.pipe)(as.slice(1, m), (0, exports.prepend)((0, exports.head)(as))), as.slice(m)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * @since 2.10.0\n */\nvar chunksOf = function (n) { return (0, exports.chop)((0, exports.splitAt)(n)); };\nexports.chunksOf = chunksOf;\n/* istanbul ignore next */\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3] as NEA.NonEmptyArray<number>,\n * NEA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (as) {\n return (0, function_1.pipe)(as, concatW(that()));\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `NonEmptyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * NEA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.6.2\n */\nexports.alt = exports.altW;\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @since 2.0.0\n */\nvar ap = function (as) {\n return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(as, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * @example\n * import * as NEA from 'fp-ts/NonEmptyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * NEA.flatMap((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n *\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); }));\n});\n/**\n * @since 2.0.0\n */\nvar extend = function (f) {\n return function (as) {\n var next = (0, exports.tail)(as);\n var out = [f(as)];\n while ((0, exports.isNonEmpty)(next)) {\n out.push(f(next));\n next = (0, exports.tail)(next);\n }\n return out;\n };\n};\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.flatMap)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return (0, exports.mapWithIndex)(function (_, a) { return f(a); }); };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar mapWithIndex = function (f) {\n return function (as) {\n var out = [f(0, (0, exports.head)(as))];\n for (var i = 1; i < as.length; i++) {\n out.push(f(i, as[i]));\n }\n return out;\n };\n};\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduce = RNEA.reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceWithIndex = RNEA.reduceWithIndex;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRight = RNEA.reduceRight;\n/**\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRightWithIndex = RNEA.reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) { return (0, exports.traverseWithIndex)(F)(function (_, a) { return a; }); };\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return function (as) {\n var out = F.map(f(0, (0, exports.head)(as)), exports.of);\n for (var i = 1; i < as.length; i++) {\n out = F.ap(F.map(out, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, as[i]));\n }\n return out;\n };\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @since 2.7.0\n */\nexports.extract = RNEA.head;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'NonEmptyArray';\n/**\n * @category instances\n * @since 2.0.0\n */\nexports.getShow = RNEA.getShow;\n/**\n * Builds a `Semigroup` instance for `NonEmptyArray`\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function () { return ({\n concat: concat\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * @example\n * import { getEq } from 'fp-ts/NonEmptyArray'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals([1, 2], [1, 2]), true)\n * assert.strictEqual(E.equals([1, 2], [1, 3]), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RNEA.getEq;\n/**\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = (0, exports.union)(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Comonad = {\n URI: exports.URI,\n map: _map,\n extend: _extend,\n extract: exports.extract\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.0.0\n */\nexports.head = RNEA.head;\n/**\n * @since 2.0.0\n */\nvar tail = function (as) { return as.slice(1); };\nexports.tail = tail;\n/**\n * @since 2.0.0\n */\nexports.last = RNEA.last;\n/**\n * Get all but the last element of a non empty array, creating a new array.\n *\n * @example\n * import { init } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), [1, 2])\n * assert.deepStrictEqual(init([1]), [])\n *\n * @since 2.2.0\n */\nvar init = function (as) { return as.slice(0, -1); };\nexports.init = init;\n/**\n * @since 2.0.0\n */\nexports.min = RNEA.min;\n/**\n * @since 2.0.0\n */\nexports.max = RNEA.max;\n/**\n * @since 2.10.0\n */\nvar concatAll = function (S) {\n return function (as) {\n return as.reduce(S.concat);\n };\n};\nexports.concatAll = concatAll;\n/**\n * Break an `Array` into its first element and remaining elements.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeft = function (f) {\n return function (as) {\n return f((0, exports.head)(as), (0, exports.tail)(as));\n };\n};\nexports.matchLeft = matchLeft;\n/**\n * Break an `Array` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRight = function (f) {\n return function (as) {\n return f((0, exports.init)(as), (0, exports.last)(as));\n };\n};\nexports.matchRight = matchRight;\n/**\n * Apply a function to the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyHead = function (f) {\n return function (as) {\n return __spreadArray([f((0, exports.head)(as))], (0, exports.tail)(as), true);\n };\n};\nexports.modifyHead = modifyHead;\n/**\n * Change the head, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateHead = function (a) { return (0, exports.modifyHead)(function () { return a; }); };\nexports.updateHead = updateHead;\n/**\n * Apply a function to the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar modifyLast = function (f) {\n return function (as) {\n return (0, function_1.pipe)((0, exports.init)(as), (0, exports.append)(f((0, exports.last)(as))));\n };\n};\nexports.modifyLast = modifyLast;\n/**\n * Change the last element, creating a new `NonEmptyArray`.\n *\n * @since 2.11.0\n */\nvar updateLast = function (a) { return (0, exports.modifyLast)(function () { return a; }); };\nexports.updateLast = updateLast;\n/**\n * Places an element in between members of a `NonEmptyArray`, then folds the results using the provided `Semigroup`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/NonEmptyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Semigroup)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexports.intercalate = RNEA.intercalate;\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\nfunction groupSort(O) {\n var sortO = (0, exports.sort)(O);\n var groupO = group(O);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? groupO(sortO(as)) : []); };\n}\nexports.groupSort = groupSort;\nfunction filter(predicate) {\n return (0, exports.filterWithIndex)(function (_, a) { return predicate(a); });\n}\nexports.filter = filter;\n/**\n * Use [`filterWithIndex`](./Array.ts.html#filterwithindex) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar filterWithIndex = function (predicate) {\n return function (as) {\n return (0, exports.fromArray)(as.filter(function (a, i) { return predicate(i, a); }));\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Use [`unprepend`](#unprepend) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.uncons = exports.unprepend;\n/**\n * Use [`unappend`](#unappend) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.unsnoc = exports.unappend;\nfunction cons(head, tail) {\n return tail === undefined ? (0, exports.prepend)(head) : (0, function_1.pipe)(tail, (0, exports.prepend)(head));\n}\nexports.cons = cons;\n/**\n * Use [`append`](./Array.ts.html#append) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar snoc = function (init, end) { return (0, function_1.pipe)(init, (0, exports.append)(end)); };\nexports.snoc = snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * Use [`concatAll`](#concatall) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.fold = RNEA.concatAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `NEA.Functor` instead of `NEA.nonEmptyArray`\n * (where `NEA` is from `import NEA from 'fp-ts/NonEmptyArray'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.nonEmptyArray = {\n URI: exports.URI,\n of: exports.of,\n map: _map,\n mapWithIndex: _mapWithIndex,\n ap: _ap,\n chain: exports.flatMap,\n extend: _extend,\n extract: exports.extract,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n alt: _alt\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Field = exports.MonoidProduct = exports.MonoidSum = exports.SemigroupProduct = exports.SemigroupSum = exports.MagmaSub = exports.Show = exports.Bounded = exports.Ord = exports.Eq = exports.isNumber = void 0;\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @category refinements\n * @since 2.11.0\n */\nvar isNumber = function (u) { return typeof u === 'number'; };\nexports.isNumber = isNumber;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Ord = {\n equals: exports.Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bounded = {\n equals: exports.Eq.equals,\n compare: exports.Ord.compare,\n top: Infinity,\n bottom: -Infinity\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Show = {\n show: function (n) { return JSON.stringify(n); }\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.MagmaSub = {\n concat: function (first, second) { return first - second; }\n};\n/**\n * `number` semigroup under addition.\n *\n * @example\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupSum.concat(2, 3), 5)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupSum = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * `number` semigroup under multiplication.\n *\n * @example\n * import { SemigroupProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(SemigroupProduct.concat(2, 3), 6)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.SemigroupProduct = {\n concat: function (first, second) { return first * second; }\n};\n/**\n * `number` monoid under addition.\n *\n * The `empty` value is `0`.\n *\n * @example\n * import { MonoidSum } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidSum.concat(2, MonoidSum.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidSum = {\n concat: exports.SemigroupSum.concat,\n empty: 0\n};\n/**\n * `number` monoid under multiplication.\n *\n * The `empty` value is `1`.\n *\n * @example\n * import { MonoidProduct } from 'fp-ts/number'\n *\n * assert.deepStrictEqual(MonoidProduct.concat(2, MonoidProduct.empty), 2)\n *\n * @category instances\n * @since 2.10.0\n */\nexports.MonoidProduct = {\n concat: exports.SemigroupProduct.concat,\n empty: 1\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Field = {\n add: exports.SemigroupSum.concat,\n zero: 0,\n mul: exports.SemigroupProduct.concat,\n one: 1,\n sub: exports.MagmaSub.concat,\n degree: function (_) { return 1; },\n div: function (first, second) { return first / second; },\n mod: function (first, second) { return first % second; }\n};\n","\"use strict\";\n/**\n * ```ts\n * interface Separated<E, A> {\n * readonly left: E\n * readonly right: A\n * }\n * ```\n *\n * Represents a result of separating a whole into two parts.\n *\n * @since 2.10.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.right = exports.left = exports.flap = exports.Functor = exports.Bifunctor = exports.URI = exports.bimap = exports.mapLeft = exports.map = exports.separated = void 0;\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar separated = function (left, right) { return ({ left: left, right: right }); };\nexports.separated = separated;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); };\nvar _bimap = function (fa, g, f) { return (0, function_1.pipe)(fa, (0, exports.bimap)(g, f)); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar map = function (f) {\n return function (fa) {\n return (0, exports.separated)((0, exports.left)(fa), f((0, exports.right)(fa)));\n };\n};\nexports.map = map;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar mapLeft = function (f) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), (0, exports.right)(fa));\n };\n};\nexports.mapLeft = mapLeft;\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.10.0\n */\nvar bimap = function (f, g) {\n return function (fa) {\n return (0, exports.separated)(f((0, exports.left)(fa)), g((0, exports.right)(fa)));\n };\n};\nexports.bimap = bimap;\n/**\n * @category type lambdas\n * @since 2.10.0\n */\nexports.URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar left = function (s) { return s.left; };\nexports.left = left;\n/**\n * @since 2.10.0\n */\nvar right = function (s) { return s.right; };\nexports.right = right;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterE = exports.witherDefault = exports.wiltDefault = void 0;\nvar _ = __importStar(require(\"./internal\"));\nfunction wiltDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.separate); };\n };\n}\nexports.wiltDefault = wiltDefault;\nfunction witherDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) { return F.map(traverseF(wa, f), C.compact); };\n };\n}\nexports.witherDefault = witherDefault;\nfunction filterE(W) {\n return function (F) {\n var witherF = W.wither(F);\n return function (predicate) { return function (ga) { return witherF(ga, function (a) { return F.map(predicate(a), function (b) { return (b ? _.some(a) : _.none); }); }); }; };\n };\n}\nexports.filterE = filterE;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.guard = void 0;\nfunction guard(F, P) {\n return function (b) { return (b ? P.of(undefined) : F.zero()); };\n}\nexports.guard = guard;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sort = exports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.foldMap = exports.reduce = exports.foldMapWithIndex = exports.duplicate = exports.extend = exports.filterWithIndex = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.filter = exports.separate = exports.mapWithIndex = exports.map = exports.flatten = exports.flatMap = exports.ap = exports.alt = exports.altW = exports.zero = exports.of = exports._chainRecBreadthFirst = exports._chainRecDepthFirst = exports.difference = exports.intersection = exports.union = exports.concat = exports.concatW = exports.comprehension = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = void 0;\nexports.toArray = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.Witherable = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = exports.traverseWithIndex = void 0;\nexports.readonlyArray = exports.prependToAll = exports.snoc = exports.cons = exports.range = exports.chain = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = exports.some = exports.every = exports.empty = exports.fromArray = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar Eq_1 = require(\"./Eq\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar N = __importStar(require(\"./number\"));\nvar Ord_1 = require(\"./Ord\");\nvar RNEA = __importStar(require(\"./ReadonlyNonEmptyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `ReadonlyArray` is empty.\n *\n * @example\n * import { isEmpty } from 'fp-ts/ReadonlyArray'\n *\n * assert.strictEqual(isEmpty([]), true)\n *\n * @category refinements\n * @since 2.5.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether a `ReadonlyArray` is non empty.\n *\n * @category refinements\n * @since 2.5.0\n */\nexports.isNonEmpty = RNEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = RNEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @since 2.11.0\n */\nexports.prependW = RNEA.prependW;\n/**\n * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = RNEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @since 2.11.0\n */\nexports.appendW = RNEA.appendW;\n/**\n * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyArray'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? exports.empty : RNEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `ReadonlyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.5.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : exports.empty); };\n}\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? exports.empty : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Transforms an `Either` to a `ReadonlyArray`.\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? exports.empty : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/ReadonlyArray'\n *\n * const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n if ((0, exports.isEmpty)(as)) {\n return exports.empty;\n }\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps.\n *\n * @example\n * import { scanLeft } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.5.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.5.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `ReadonlyArray`.\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @since 2.5.0\n */\nexports.isOutOfBound = RNEA.isOutOfBound;\nfunction lookup(i, as) {\n return as === undefined ? function (as) { return lookup(i, as); } : (0, exports.isOutOfBound)(i, as) ? _.none : _.some(as[i]);\n}\nexports.lookup = lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.5.0\n */\nvar head = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.head(as)) : _.none); };\nexports.head = head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.5.0\n */\nvar last = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(RNEA.last(as)) : _.none); };\nexports.last = last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.5.0\n */\nvar tail = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.tail(as)) : _.none;\n};\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.5.0\n */\nvar init = function (as) {\n return (0, exports.isNonEmpty)(as) ? _.some(RNEA.init(as)) : _.none;\n};\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeLeft(4)), input)\n * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeRight(4)), input)\n * assert.strictEqual(pipe(input, RA.takeRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? as : n === 0 ? exports.empty : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n var len = out.length;\n return len === as.length ? as : len === 0 ? exports.empty : out;\n };\n}\nexports.takeLeftWhile = takeLeftWhile;\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\nexports.spanLeft = spanLeft;\n/**\n * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3])\n * assert.strictEqual(pipe(input, RA.dropLeft(0)), input)\n * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1])\n * assert.strictEqual(pipe(input, RA.dropRight(0)), input)\n * assert.strictEqual(pipe(input, RA.dropRight(-1)), input)\n *\n * @since 2.5.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? as : n >= as.length ? exports.empty : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) {\n var i = spanLeftIndex(as, predicate);\n return i === 0 ? as : i === as.length ? exports.empty : as.slice(i);\n };\n}\nexports.dropLeftWhile = dropLeftWhile;\n/**\n * Find the first index for which a predicate holds\n *\n * @example\n * import { findIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.5.0\n */\nvar findIndex = function (predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findIndex = findIndex;\nfunction findFirst(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\nexports.findFirst = findFirst;\n/**\n * Find the first element returned by an option based selector function\n *\n * @example\n * import { findFirstMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the first person that has an age\n * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary'))\n *\n * @since 2.5.0\n */\nvar findFirstMap = function (f) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findFirstMap = findFirstMap;\nfunction findLast(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\nexports.findLast = findLast;\n/**\n * Find the last element returned by an option based selector function\n *\n * @example\n * import { findLastMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the last person that has an age\n * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey'))\n *\n * @since 2.5.0\n */\nvar findLastMap = function (f) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexports.findLastMap = findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate\n *\n * @example\n * import { findLastIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: ReadonlyArray<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n *\n * @since 2.5.0\n */\nvar findLastIndex = function (predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexports.findLastIndex = findLastIndex;\n/**\n * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { insertAt } from 'fp-ts/ReadonlyArray'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.5.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.5.0\n */\nvar updateAt = function (i, a) {\n return (0, exports.modifyAt)(i, function () { return a; });\n};\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { deleteAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.5.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.5.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.5.0\n */\nvar reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order\n *\n * @example\n * import { rights } from 'fp-ts/ReadonlyArray'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.5.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order\n *\n * @example\n * import { lefts } from 'fp-ts/ReadonlyArray'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.5.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.5.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? as : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n// TODO: curry and make data-last in v3\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.5.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.5.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = RNEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.prependAll = prependAll;\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = RNEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.intersperse = intersperse;\n/**\n * Rotate a `ReadonlyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.5.0\n */\nvar rotate = function (n) {\n var f = RNEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.rotate = rotate;\nfunction elem(E) {\n return function (a, as) {\n if (as === undefined) {\n var elemE_1 = elem(E);\n return function (as) { return elemE_1(a, as); };\n }\n var predicate = function (element) { return E.equals(element, a); };\n var i = 0;\n for (; i < as.length; i++) {\n if (predicate(as[i])) {\n return true;\n }\n }\n return false;\n };\n}\nexports.elem = elem;\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.5.0\n */\nvar uniq = function (E) {\n var f = RNEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/ReadonlyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.5.0\n */\nvar sortBy = function (ords) {\n var f = RNEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : as); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for \"chopping\" up the input\n * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a\n * value and the tail of the `ReadonlyArray`.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = <A>(S: Eq<A>): ((as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>>) => {\n * return RA.chop(as => {\n * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.5.0\n */\nvar chop = function (f) {\n var g = RNEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : exports.empty); };\n};\nexports.chop = chop;\n/**\n * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.5.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? RNEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [as, exports.empty] : [exports.empty, as];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that:\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `as`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.5.0\n */\nvar chunksOf = function (n) {\n var f = RNEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : exports.empty); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, exports.flatMap)(RNEA.head(input), function (a) { return go((0, function_1.pipe)(scope, (0, exports.append)(a)), RNEA.tail(input)); })\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : exports.empty;\n };\n return go(exports.empty, input);\n}\nexports.comprehension = comprehension;\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = RNEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second) ? unionE(second)(first) : (0, exports.isNonEmpty)(first) ? first : second;\n };\n}\nexports.union = union;\nfunction intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexports.intersection = intersection;\nfunction difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nexports.difference = difference;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _filter = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.filter)(predicate));\n};\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\n/** @internal */\nvar _chainRecDepthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecDepthFirst)(f)); };\nexports._chainRecDepthFirst = _chainRecDepthFirst;\n/** @internal */\nvar _chainRecBreadthFirst = function (a, f) { return (0, function_1.pipe)(a, (0, exports.chainRecBreadthFirst)(f)); };\nexports._chainRecBreadthFirst = _chainRecBreadthFirst;\n/**\n * @category constructors\n * @since 2.5.0\n */\nexports.of = RNEA.of;\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.empty; };\nexports.zero = zero;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.5.0\n */\nexports.alt = exports.altW;\n/**\n * @since 2.5.0\n */\nvar ap = function (fa) {\n return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.flatMap((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.flatMap(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); }));\n});\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.flatMap)(function_1.identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nvar map = function (f) { return function (fa) {\n return fa.map(function (a) { return f(a); });\n}; };\nexports.map = map;\n/**\n * @category mapping\n * @since 2.5.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (predicateWithIndex(i, a)) {\n right.push(a);\n }\n else {\n left.push(a);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMap = function (f) {\n return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.partitionMap = partitionMap;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * @category filtering\n * @since 2.5.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (a, i) { return predicateWithIndex(i, a); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * @since 2.5.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * @since 2.5.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMapWithIndex = function (M) {\n return function (f) {\n return function (fa) {\n return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty);\n };\n };\n};\nexports.foldMapWithIndex = foldMapWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduce = function (b, f) {\n return (0, exports.reduceWithIndex)(b, function (_, b, a) { return f(b, a); });\n};\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar foldMap = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n};\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceWithIndex = function (b, f) { return function (fa) {\n var len = fa.length;\n var out = b;\n for (var i = 0; i < len; i++) {\n out = f(i, out, fa[i]);\n }\n return out;\n}; };\nexports.reduceWithIndex = reduceWithIndex;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRight = function (b, f) {\n return (0, exports.reduceRightWithIndex)(b, function (_, a, b) { return f(a, b); });\n};\nexports.reduceRight = reduceRight;\n/**\n * @category folding\n * @since 2.5.0\n */\nvar reduceRightWithIndex = function (b, f) { return function (fa) {\n return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n}; };\nexports.reduceRightWithIndex = reduceRightWithIndex;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexports.URI = 'ReadonlyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.5.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return ((0, exports.isEmpty)(first) ? second : (0, exports.isEmpty)(second) ? first : first.concat(second)); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `ReadonlyArray<A>`.\n *\n * @example\n * import { getMonoid } from 'fp-ts/ReadonlyArray'\n *\n * const M = getMonoid<number>()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.5.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: exports.empty\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/ReadonlyArray'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.5.0\n */\nvar getEq = function (E) {\n return (0, Eq_1.fromEquals)(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\nexports.getEq = getEq;\n/**\n * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n *\n * @category instances\n * @since 2.5.0\n */\nvar getOrd = function (O) {\n return (0, Ord_1.fromCompare)(function (a, b) {\n var aLen = a.length;\n var bLen = b.length;\n var len = Math.min(aLen, bLen);\n for (var i = 0; i < len; i++) {\n var ordering = O.compare(a[i], b[i]);\n if (ordering !== 0) {\n return ordering;\n }\n }\n return N.Ord.compare(aLen, bLen);\n });\n};\nexports.getOrd = getOrd;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: exports.empty\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecDepthFirst = function (f) {\n return function (a) {\n var todo = __spreadArray([], f(a), true);\n var out = [];\n while (todo.length > 0) {\n var e = todo.shift();\n if (_.isLeft(e)) {\n todo.unshift.apply(todo, f(e.left));\n }\n else {\n out.push(e.right);\n }\n }\n return out;\n };\n};\nexports.chainRecDepthFirst = chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: exports._chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nvar chainRecBreadthFirst = function (f) {\n return function (a) {\n var initial = f(a);\n var todo = [];\n var out = [];\n function go(e) {\n if (_.isLeft(e)) {\n f(e.left).forEach(function (v) { return todo.push(v); });\n }\n else {\n out.push(e.right);\n }\n }\n for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) {\n var e = initial_1[_i];\n go(e);\n }\n while (todo.length > 0) {\n go(todo.shift());\n }\n return out;\n };\n};\nexports.chainRecBreadthFirst = chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: exports._chainRecBreadthFirst\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Filter values inside a context.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as T from 'fp-ts/Task'\n *\n * const filterE = RA.filterE(T.ApplicativePar)\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * [-1, 2, 3],\n * filterE((n) => T.of(n > 0))\n * )(),\n * [2, 3]\n * )\n * }\n * test()\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexports.unsafeInsertAt = RNEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? RNEA.unsafeUpdateAt(i, a, as) : as;\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar toArray = function (as) { return as.slice(); };\nexports.toArray = toArray;\n/**\n * @category conversions\n * @since 2.5.0\n */\nvar fromArray = function (as) { return ((0, exports.isEmpty)(as) ? exports.empty : as.slice()); };\nexports.fromArray = fromArray;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * An empty array\n *\n * @since 2.5.0\n */\nexports.empty = RNEA.empty;\nfunction every(predicate) {\n return function (as) { return as.every(predicate); };\n}\nexports.every = every;\n/**\n * Check if a predicate holds true for any array member.\n *\n * @example\n * import { some } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true)\n * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false)\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nvar intercalate = function (M) {\n var intercalateM = RNEA.intercalate(M);\n return function (middle) { return (0, exports.match)(function () { return M.empty; }, intercalateM(middle)); };\n};\nexports.intercalate = intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.5.0\n */\nexports.chain = exports.flatMap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `ReadonlyNonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.range = RNEA.range;\n/**\n * Use [`prepend`](#prepend) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.cons = RNEA.cons;\n/**\n * Use [`append`](#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.snoc = RNEA.snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray`\n * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexports.readonlyArray = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lefts = exports.rights = exports.reverse = exports.modifyAt = exports.deleteAt = exports.updateAt = exports.insertAt = exports.copy = exports.findLastIndex = exports.findLastMap = exports.findLast = exports.findFirstMap = exports.findFirst = exports.findIndex = exports.dropLeftWhile = exports.dropRight = exports.dropLeft = exports.spanLeft = exports.takeLeftWhile = exports.takeRight = exports.takeLeft = exports.init = exports.tail = exports.last = exports.head = exports.lookup = exports.isOutOfBound = exports.size = exports.scanRight = exports.scanLeft = exports.chainWithIndex = exports.foldRight = exports.matchRight = exports.matchRightW = exports.foldLeft = exports.matchLeft = exports.matchLeftW = exports.match = exports.matchW = exports.fromEither = exports.fromOption = exports.fromPredicate = exports.replicate = exports.makeBy = exports.appendW = exports.append = exports.prependW = exports.prepend = exports.isNonEmpty = exports.isEmpty = void 0;\nexports.traverseWithIndex = exports.sequence = exports.traverse = exports.reduceRightWithIndex = exports.reduceRight = exports.reduceWithIndex = exports.reduce = exports.foldMapWithIndex = exports.foldMap = exports.duplicate = exports.extend = exports.filterWithIndex = exports.alt = exports.altW = exports.partitionMapWithIndex = exports.partitionMap = exports.partitionWithIndex = exports.partition = exports.filter = exports.separate = exports.compact = exports.filterMap = exports.filterMapWithIndex = exports.mapWithIndex = exports.flatten = exports.flatMap = exports.ap = exports.map = exports.zero = exports.of = exports.difference = exports.intersection = exports.union = exports.concat = exports.concatW = exports.comprehension = exports.fromOptionK = exports.chunksOf = exports.splitAt = exports.chop = exports.sortBy = exports.uniq = exports.elem = exports.rotate = exports.intersperse = exports.prependAll = exports.unzip = exports.zip = exports.zipWith = exports.sort = void 0;\nexports.some = exports.every = exports.unsafeDeleteAt = exports.unsafeUpdateAt = exports.unsafeInsertAt = exports.fromEitherK = exports.FromEither = exports.filterE = exports.ChainRecBreadthFirst = exports.chainRecBreadthFirst = exports.ChainRecDepthFirst = exports.chainRecDepthFirst = exports.Witherable = exports.TraversableWithIndex = exports.Traversable = exports.FoldableWithIndex = exports.Foldable = exports.FilterableWithIndex = exports.Filterable = exports.Compactable = exports.Extend = exports.Alternative = exports.guard = exports.Zero = exports.Alt = exports.Unfoldable = exports.Monad = exports.chainFirst = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.FunctorWithIndex = exports.Pointed = exports.flap = exports.Functor = exports.getDifferenceMagma = exports.getIntersectionSemigroup = exports.getUnionMonoid = exports.getUnionSemigroup = exports.getOrd = exports.getEq = exports.getMonoid = exports.getSemigroup = exports.getShow = exports.URI = exports.unfold = exports.wilt = exports.wither = void 0;\nexports.array = exports.prependToAll = exports.snoc = exports.cons = exports.empty = exports.range = exports.chain = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.intercalate = exports.exists = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar NEA = __importStar(require(\"./NonEmptyArray\"));\nvar RA = __importStar(require(\"./ReadonlyArray\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether an array is empty\n *\n * @example\n * import { isEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isEmpty([]), true)\n * assert.strictEqual(isEmpty(['a']), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isEmpty = function (as) { return as.length === 0; };\nexports.isEmpty = isEmpty;\n/**\n * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>`\n *\n * @example\n * import { isNonEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isNonEmpty([]), false)\n * assert.strictEqual(isNonEmpty(['a']), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isNonEmpty = NEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.prepend = NEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @example\n * import { prependW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prependW(\"a\")), [\"a\", 2, 3, 4]);\n *\n * @since 2.11.0\n */\nexports.prependW = NEA.prependW;\n/**\n * Append an element to the end of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexports.append = NEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @example\n * import { appendW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], appendW(\"d\")), [1, 2, 3, \"d\"]);\n *\n * @since 2.11.0\n */\nexports.appendW = NEA.appendW;\n/**\n * Return a `Array` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/Array'\n *\n * const double = (i: number): number => i * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n * assert.deepStrictEqual(makeBy(-3, double), [])\n * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])\n *\n * @category constructors\n * @since 2.0.0\n */\nvar makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); };\nexports.makeBy = makeBy;\n/**\n * Create a `Array` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n * assert.deepStrictEqual(replicate(-3, 'a'), [])\n * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])\n *\n * @category constructors\n * @since 2.0.0\n */\nvar replicate = function (n, a) { return (0, exports.makeBy)(n, function () { return a; }); };\nexports.replicate = replicate;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : []); };\n}\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * Create an array from an `Option`. The resulting array will contain the content of the\n * `Option` if it is `Some` and it will be empty if the `Option` is `None`.\n *\n * @example\n * import { fromOption } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(option.some(\"a\"), fromOption),[\"a\"])\n * assert.deepStrictEqual(pipe(option.none, fromOption),[])\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); };\nexports.fromOption = fromOption;\n/**\n * Create an array from an `Either`. The resulting array will contain the content of the\n * `Either` if it is `Right` and it will be empty if the `Either` is `Left`.\n *\n * @example\n * import { fromEither } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(either.right(\"r\"), fromEither), [\"r\"]);\n * assert.deepStrictEqual(pipe(either.left(\"l\"), fromEither), []);\n *\n * @category conversions\n * @since 2.11.0\n */\nvar fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); };\nexports.fromEither = fromEither;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @example\n * import { matchW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcherW = matchW(\n * () => \"No elements\",\n * (as) => as.length\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);\n * assert.deepStrictEqual(pipe([], matcherW), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(as) : onEmpty();\n };\n};\nexports.matchW = matchW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` and returns the result.\n *\n * @example\n * import { match } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcher = match(\n * () => \"No elements\",\n * (as) => `Found ${as.length} element(s)`\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), \"Found 4 element(s)\");\n * assert.deepStrictEqual(pipe([], matcher), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexports.match = exports.matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchLeftW } from 'fp-ts/Array'\n *\n * const f = matchLeftW(\n * () => 0,\n * (head: string, tail: string[]) => `Found \"${head}\" followed by ${tail.length} elements`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found \"a\" followed by 2 elements');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();\n };\n};\nexports.matchLeftW = matchLeftW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/Array'\n *\n * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchLeft = exports.matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.foldLeft = exports.matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchRightW } from 'fp-ts/Array'\n *\n * const f = matchRightW(\n * () => 0,\n * (head: string[], tail: string) => `Found ${head.length} elements folllowed by \"${tail}\"`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found 2 elements folllowed by \"c\"');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nvar matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return (0, exports.isNonEmpty)(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();\n };\n};\nexports.matchRightW = matchRightW;\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its initial elements and the last element.\n *\n * @example\n * import { matchRight } from 'fp-ts/Array'\n *\n * const len: <A>(as: Array<A>) => number = matchRight(\n * () => 0,\n * (head, _) => 1 + len(head)\n * );\n * assert.strictEqual(len([1, 2, 3]), 3);\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchRight = exports.matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.foldRight = exports.matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Same as [`chain`](#chain), but passing also the index to the iterating function.\n *\n * @example\n * import { chainWithIndex, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (index: number, x: string) => replicate(2, `${x}${index}`);\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], chainWithIndex(f)), [\"a0\", \"a0\", \"b1\", \"b1\", \"c2\", \"c2\"]);\n *\n * @category sequencing\n * @since 2.7.0\n */\nvar chainWithIndex = function (f) {\n return function (as) {\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\nexports.chainWithIndex = chainWithIndex;\n/**\n * Same as `reduce` but it carries over the intermediate steps\n *\n * @example\n * import { scanLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.0.0\n */\nvar scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\nexports.scanLeft = scanLeft;\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.0.0\n */\nvar scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\nexports.scanRight = scanRight;\n/**\n * Calculate the number of elements in a `Array`.\n *\n * @example\n * import { size } from 'fp-ts/Array'\n *\n * assert.strictEqual(size([\"a\",\"b\",\"c\"]),3)\n *\n * @since 2.10.0\n */\nvar size = function (as) { return as.length; };\nexports.size = size;\n/**\n * Test whether an array contains a particular index\n *\n * @example\n * import { isOutOfBound } from 'fp-ts/Array'\n *\n * assert.strictEqual(isOutOfBound(1,[\"a\",\"b\",\"c\"]),false)\n * assert.strictEqual(isOutOfBound(-1,[\"a\",\"b\",\"c\"]),true)\n * assert.strictEqual(isOutOfBound(3,[\"a\",\"b\",\"c\"]),true)\n *\n * @since 2.0.0\n */\nexports.isOutOfBound = NEA.isOutOfBound;\n// TODO: remove non-curried overloading in v3\n/**\n * This function provides a safe way to read a value at a particular index from an array.\n * It returns a `none` if the index is out of bounds, and a `some` of the element if the\n * index is valid.\n *\n * @example\n * import { lookup } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)\n *\n * @since 2.0.0\n */\nexports.lookup = RA.lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.0.0\n */\nexports.head = RA.head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.0.0\n */\nexports.last = RA.last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.0.0\n */\nvar tail = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.tail(as)) : _.none); };\nexports.tail = tail;\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.0.0\n */\nvar init = function (as) { return ((0, exports.isNonEmpty)(as) ? _.some(NEA.init(as)) : _.none); };\nexports.init = init;\n/**\n * Keep only a max number of elements from the start of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);\n * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nvar takeLeft = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : as.slice(0, n);\n };\n};\nexports.takeLeft = takeLeft;\n/**\n * Keep only a max number of elements from the end of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);\n * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nvar takeRight = function (n) {\n return function (as) {\n return (0, exports.isOutOfBound)(n, as) ? (0, exports.copy)(as) : n === 0 ? [] : as.slice(-n);\n };\n};\nexports.takeRight = takeRight;\nfunction takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n return out;\n };\n}\nexports.takeLeftWhile = takeLeftWhile;\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nfunction spanLeft(predicate) {\n return function (as) {\n var _a = (0, exports.splitAt)(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\nexports.spanLeft = spanLeft;\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);\n * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nvar dropLeft = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(n, as.length);\n };\n};\nexports.dropLeft = dropLeft;\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);\n * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nvar dropRight = function (n) {\n return function (as) {\n return n <= 0 || (0, exports.isEmpty)(as) ? (0, exports.copy)(as) : n >= as.length ? [] : as.slice(0, as.length - n);\n };\n};\nexports.dropRight = dropRight;\nfunction dropLeftWhile(predicate) {\n return function (as) { return as.slice(spanLeftIndex(as, predicate)); };\n}\nexports.dropLeftWhile = dropLeftWhile;\n/**\n * `findIndex` returns an `Option` containing the first index for which a predicate holds.\n * It returns `None` if no element satisfies the predicate.\n * Similar to [`findFirst`](#findFirst) but returning the index instead of the element.\n *\n * @example\n * import { findIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.0.0\n */\nexports.findIndex = RA.findIndex;\nfunction findFirst(predicate) {\n return RA.findFirst(predicate);\n}\nexports.findFirst = findFirst;\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array and\n * returns the first `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findFirstMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array<Person> = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some(\"Mary\"));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexports.findFirstMap = RA.findFirstMap;\nfunction findLast(predicate) {\n return RA.findLast(predicate);\n}\nexports.findLast = findLast;\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array starting from the\n * end and returns the last `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findLastMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array<Person> = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some(\"Joey\"));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexports.findLastMap = RA.findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate.\n * It returns an `Option` containing the index or `None` if not found.\n *\n * @example\n * import { findLastIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n * @since 2.0.0\n */\nexports.findLastIndex = RA.findLastIndex;\n/**\n * This function takes an array and makes a new array containing the same elements.\n *\n * @since 2.0.0\n */\nvar copy = function (as) { return as.slice(); };\nexports.copy = copy;\n/**\n * Insert an element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { insertAt } from 'fp-ts/Array'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.0.0\n */\nvar insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some((0, exports.unsafeInsertAt)(i, a, as));\n };\n};\nexports.insertAt = insertAt;\n/**\n * Change the element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { updateAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.0.0\n */\nvar updateAt = function (i, a) { return (0, exports.modifyAt)(i, function () { return a; }); };\nexports.updateAt = updateAt;\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.\n *\n * @example\n * import { deleteAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.0.0\n */\nvar deleteAt = function (i) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeDeleteAt)(i, as));\n };\n};\nexports.deleteAt = deleteAt;\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds.\n *\n * @example\n * import { modifyAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.0.0\n */\nvar modifyAt = function (i, f) {\n return function (as) {\n return (0, exports.isOutOfBound)(i, as) ? _.none : _.some((0, exports.unsafeUpdateAt)(i, f(as[i]), as));\n };\n};\nexports.modifyAt = modifyAt;\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.0.0\n */\nvar reverse = function (as) { return ((0, exports.isEmpty)(as) ? [] : as.slice().reverse()); };\nexports.reverse = reverse;\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Right` elements in the same order.\n *\n * @example\n * import { rights } from 'fp-ts/Array'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.0.0\n */\nvar rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\nexports.rights = rights;\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Left` elements in the same order.\n *\n * @example\n * import { lefts } from 'fp-ts/Array'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.0.0\n */\nvar lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\nexports.lefts = lefts;\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.0.0\n */\nvar sort = function (O) {\n return function (as) {\n return as.length <= 1 ? (0, exports.copy)(as) : as.slice().sort(O.compare);\n };\n};\nexports.sort = sort;\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.0.0\n */\nvar zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexports.zipWith = zipWith;\nfunction zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return (0, exports.zipWith)(as, bs, function (a, b) { return [a, b]; });\n}\nexports.zip = zip;\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.0.0\n */\nvar unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\nexports.unzip = unzip;\n/**\n * Creates a new `Array`, prepending an element to every member of the input `Array`.\n *\n * @example\n * import { prependAll } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nvar prependAll = function (middle) {\n var f = NEA.prependAll(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); };\n};\nexports.prependAll = prependAll;\n/**\n * Creates a new `Array` placing an element in between members of the input `Array`.\n *\n * @example\n * import { intersperse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nvar intersperse = function (middle) {\n var f = NEA.intersperse(middle);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.intersperse = intersperse;\n/**\n * Creates a new `Array` rotating the input `Array` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.0.0\n */\nvar rotate = function (n) {\n var f = NEA.rotate(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.rotate = rotate;\n// TODO: remove non-curried overloading in v3\n/**\n * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single\n * argument which returns the function to use to search for a value of type `A` in\n * an `Array<A>`.\n *\n * @example\n * import { elem } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)\n *\n * @since 2.0.0\n */\nexports.elem = RA.elem;\n/**\n * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,\n * based on a `Eq<A>`.\n *\n * @example\n * import { uniq } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.0.0\n */\nvar uniq = function (E) {\n var f = NEA.uniq(E);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.uniq = uniq;\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/Array'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.0.0\n */\nvar sortBy = function (ords) {\n var f = NEA.sortBy(ords);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : (0, exports.copy)(as)); };\n};\nexports.sortBy = sortBy;\n/**\n * A useful recursion pattern for processing an array to produce a new array, often used for \"chopping\" up the input\n * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a\n * value and the rest of the array.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as A from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => {\n * return A.chop(as => {\n * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.0.0\n */\nvar chop = function (f) {\n var g = NEA.chop(f);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? g(as) : []); };\n};\nexports.chop = chop;\n/**\n * Splits an `Array` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.0.0\n */\nvar splitAt = function (n) {\n return function (as) {\n return n >= 1 && (0, exports.isNonEmpty)(as) ? NEA.splitAt(n)(as) : (0, exports.isEmpty)(as) ? [(0, exports.copy)(as), []] : [[], (0, exports.copy)(as)];\n };\n};\nexports.splitAt = splitAt;\n/**\n * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `xs`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.0.0\n */\nvar chunksOf = function (n) {\n var f = NEA.chunksOf(n);\n return function (as) { return ((0, exports.isNonEmpty)(as) ? f(as) : []); };\n};\nexports.chunksOf = chunksOf;\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.fromOption)(f.apply(void 0, a));\n };\n};\nexports.fromOptionK = fromOptionK;\nfunction comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return (0, exports.isNonEmpty)(input)\n ? (0, exports.flatMap)(NEA.head(input), function (a) { return go((0, function_1.pipe)(scope, (0, exports.append)(a)), NEA.tail(input)); })\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : [];\n };\n return go([], input);\n}\nexports.comprehension = comprehension;\n/**\n * @since 2.11.0\n */\nvar concatW = function (second) {\n return function (first) {\n return (0, exports.isEmpty)(first) ? (0, exports.copy)(second) : (0, exports.isEmpty)(second) ? (0, exports.copy)(first) : first.concat(second);\n };\n};\nexports.concatW = concatW;\n/**\n * @since 2.11.0\n */\nexports.concat = exports.concatW;\nfunction union(E) {\n var unionE = NEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return (0, exports.isNonEmpty)(first) && (0, exports.isNonEmpty)(second)\n ? unionE(second)(first)\n : (0, exports.isNonEmpty)(first)\n ? (0, exports.copy)(first)\n : (0, exports.copy)(second);\n };\n}\nexports.union = union;\nfunction intersection(E) {\n var elemE = (0, exports.elem)(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexports.intersection = intersection;\nfunction difference(E) {\n var elemE = (0, exports.elem)(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nexports.difference = difference;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapWithIndex)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/* istanbul ignore next */\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.partitionWithIndex)(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _partitionMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = (0, exports.foldMapWithIndex)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return (0, function_1.pipe)(fa, (0, exports.reduceRightWithIndex)(b, f));\n};\n/* istanbul ignore next */\nvar _filterMapWithIndex = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMapWithIndex)(f)); };\n/* istanbul ignore next */\nvar _filterWithIndex = function (fa, predicateWithIndex) { return (0, function_1.pipe)(fa, (0, exports.filterWithIndex)(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _extend = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseWithIndexF(f)); };\n};\nvar _chainRecDepthFirst = RA._chainRecDepthFirst;\nvar _chainRecBreadthFirst = RA._chainRecBreadthFirst;\n/**\n * Given an element of the base type, `of` builds an `Array` containing just that\n * element of the base type (this is useful for building a `Monad`).\n *\n * @example\n * import { of } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(of(\"a\"), [\"a\"]);\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.of = NEA.of;\n/**\n * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)\n *\n * @since 2.7.0\n */\nvar zero = function () { return []; };\nexports.zero = zero;\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`.\n * In practice it applies the base function to each element of the array and collects the\n * results in a new array.\n *\n * @example\n * import { map } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => n * 2;\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; };\nexports.map = map;\n/**\n * @example\n * import { ap, map, of } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * // a curried function with 3 input parameteres\n * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;\n *\n * // let's use `ap` to iterate `f` over an array for each input parameter\n * assert.deepStrictEqual(pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"])), [\n * \"a1😀\", \"a1😫\", \"a1😎\",\n * \"a2😀\", \"a2😫\", \"a2😎\",\n * \"b1😀\", \"b1😫\", \"b1😎\",\n * \"b2😀\", \"b2😫\", \"b2😎\",\n * ]);\n *\n * // given Array implements the Applicative interface with the `of` method,\n * // we can write exactly the same thing in a more symmetric way\n * // using `of` on `f` and `ap` on each array in input\n * assert.deepStrictEqual(\n * pipe(of(f), ap([\"a\", \"b\"]), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"])),\n * pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"]))\n * );\n *\n * @since 2.0.0\n */\nvar ap = function (fa) {\n return (0, exports.flatMap)(function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); });\n};\nexports.ap = ap;\n/**\n * Composes computations in sequence, using the return value of one computation to\n * determine the next computation.\n *\n * In other words it takes a function `f` that produces an array from a single element of\n * the base type `A` and returns a new function which applies `f` to each element of the\n * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the\n * results into a single array (like [`flatten`](#flatten)).\n *\n * @example\n * import { flatMap, map, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => replicate(n, `${n}`);\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [[\"1\"], [\"2\", \"2\"], [\"3\", \"3\", \"3\"]]);\n * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), [\"1\", \"2\", \"2\", \"3\", \"3\", \"3\"]);\n *\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return (0, function_1.pipe)(ma, (0, exports.chainWithIndex)(function (i, a) { return f(a, i); }));\n});\n/**\n * Takes an array of arrays of `A` and flattens them into an array of `A`\n * by concatenating the elements of each array in order.\n *\n * @example\n * import { flatten } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(flatten([[\"a\"], [\"b\", \"c\"], [\"d\", \"e\", \"f\"]]), [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]);\n *\n * @category sequencing\n * @since 2.5.0\n */\nexports.flatten = (0, exports.flatMap)(function_1.identity);\n/**\n * Same as [`map`](#map), but the iterating function takes both the index and the value\n * of the element.\n *\n * @example\n * import { mapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (i: number, s: string) => `${s} - ${i}`;\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], mapWithIndex(f)), [\"a - 0\", \"b - 1\", \"c - 2\"]);\n *\n * @category mapping\n * @since 2.0.0\n */\nvar mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\nexports.mapWithIndex = mapWithIndex;\n/**\n * Maps an array with an iterating function that takes the index and the value of\n * each element and returns an `Option`. It keeps only the `Some` values discarding\n * the `None`s.\n *\n * Same as [`filterMap`](#filterMap), but with an iterating function which takes also\n * the index as input.\n *\n * @example\n * import { filterMapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMapWithIndex(f)), [\"NO\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\nexports.filterMapWithIndex = filterMapWithIndex;\n/**\n * Maps an array with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMap(f)), [\"A\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) {\n return (0, exports.filterMapWithIndex)(function (_, a) { return f(a); });\n};\nexports.filterMap = filterMap;\n/**\n * Compact an array of `Option`s discarding the `None` values and\n * keeping the `Some` values. It returns a new array containing the values of\n * the `Some` options.\n *\n * @example\n * import { compact } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n *\n * assert.deepStrictEqual(compact([option.some(\"a\"), option.none, option.some(\"b\")]), [\"a\", \"b\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.filterMap)(function_1.identity);\n/**\n * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:\n * one containing all the left values and one containing all the right values.\n *\n * @example\n * import { separate } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n *\n * assert.deepStrictEqual(separate([either.right(\"r1\"), either.left(\"l1\"), either.right(\"r2\")]), {\n * left: [\"l1\"],\n * right: [\"r1\", \"r2\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n};\nexports.separate = separate;\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `filter` creates a new `Array` containing the elements of the original\n * `Array` for which the iterating function is `true`.\n *\n * @example\n * import { filter } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(filter(isString)([\"a\", 1, {}, \"b\", 5]), [\"a\", \"b\"]);\n * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\nexports.filter = filter;\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `partition` creates two new `Array`s: `right` containing the elements of the original\n * `Array` for which the iterating function is `true`, `left` containing the elements\n * for which it is false.\n *\n * @example\n * import { partition } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(partition(isString)([\"a\", 1, {}, \"b\", 5]), { left: [1, {}, 5], right: [\"a\", \"b\"] });\n * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return (0, exports.partitionWithIndex)(function (_, a) { return predicate(a); });\n};\nexports.partition = partition;\n/**\n * Same as [`partition`](#partition), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionWithIndex } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {\n * left: [-2, 7],\n * right: [5, 6],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var b = as[i];\n if (predicateWithIndex(i, b)) {\n right.push(b);\n }\n else {\n left.push(b);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionWithIndex = partitionWithIndex;\n/**\n * Given an iterating function that returns an `Either`,\n * `partitionMap` applies the iterating function to each element and it creates two `Array`s:\n * `right` containing the values of `Right` results, `left` containing the values of `Left` results.\n *\n * @example\n * import { partitionMap } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfString = <B>(x: B): Either<B, string> =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMap(upperIfString)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7],\n * right: [ 'HELLO', 'WORLD' ],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, exports.partitionMapWithIndex)(function (_, a) { return f(a); }); };\nexports.partitionMap = partitionMap;\n/**\n * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionMapWithIndex } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> =>\n * index < 3 && typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7, \"world\"],\n * right: [\"HELLO\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return (0, Separated_1.separated)(left, right);\n };\n};\nexports.partitionMapWithIndex = partitionMapWithIndex;\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Array` concatenates the inputs into a single array.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * Same as [`filter`](#filter), but passing also the index to the iterating function.\n *\n * @example\n * import { filterWithIndex } from 'fp-ts/Array';\n *\n * const f = (index: number, x: number) => x > 0 && index <= 2;\n * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);\n *\n * @category filtering\n * @since 2.0.0\n */\nvar filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (b, i) { return predicateWithIndex(i, b); });\n };\n};\nexports.filterWithIndex = filterWithIndex;\n/**\n * Given an iterating function that takes `Array<A>` as input, `extend` returns\n * an array containing the results of the iterating function applied to the whole input\n * `Array`, then to the input `Array` without the first element, then to the input\n * `Array` without the first two elements, etc.\n *\n * @example\n * import { extend } from 'fp-ts/Array'\n *\n * const f = (a: string[]) => a.join(\",\");\n * assert.deepStrictEqual(extend(f)([\"a\", \"b\", \"c\"]), [\"a,b,c\", \"b,c\", \"c\"]);\n *\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\nexports.extend = extend;\n/**\n * `duplicate` returns an array containing the whole input `Array`,\n * then to the input `Array` dropping the first element, then to the input\n * `Array` dropping the first two elements, etc.\n *\n * @example\n * import { duplicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(duplicate([\"a\", \"b\", \"c\"]), [[\"a\", \"b\", \"c\"], [\"b\", \"c\"], [\"c\"]]);\n *\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * Map and fold an `Array`.\n * Map the `Array` passing each value to the iterating function.\n * Then fold the results using the provided `Monoid`.\n *\n * @example\n * import { foldMap } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (s: string) => s.toUpperCase()\n * assert.deepStrictEqual(foldMap(monoid)(f)([\"a\", \"b\", \"c\"]), \"ABC\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.foldMap = RA.foldMap;\n/**\n * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.\n *\n * @example\n * import { foldMapWithIndex } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`\n * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)([\"a\", \"b\", \"c\"]), \"A(0)B(1)C(2)\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.foldMapWithIndex = RA.foldMapWithIndex;\n/**\n * Reduces an `Array`.\n *\n * `reduce` executes the supplied iterating function on each element of the array,\n * in order, passing in the element and the return value from the calculation on the preceding element.\n *\n * The first time that the iterating function is called there is no \"return value of the\n * previous calculation\", the initial value is used in its place.\n *\n * @example\n * import { reduce } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduce = RA.reduce;\n/**\n * Same as [`reduce`](#reduce) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, acc: string, cur: unknown) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"A1B2\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceWithIndex = RA.reduceWithIndex;\n/**\n * Same as [`reduce`](#reduce) but applied from the end to the start.\n *\n * *Note*: the iterating function in this case takes the accumulator as the last argument.\n *\n * @example\n * import { reduceRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduceRight(\"\", (cur: string, acc: string) => acc + cur)([\"a\", \"b\", \"c\"]), \"cba\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRight = RA.reduceRight;\n/**\n * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceRightWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, cur: unknown, acc: string) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceRightWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"B2A1\");\n *\n * @category folding\n * @since 2.0.0\n */\nexports.reduceRightWithIndex = RA.reduceRightWithIndex;\n/**\n * Given an iterating function that returns a `HKT` (higher kinded type), `traverse`\n * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s\n * the results using the provided `Applicative`.\n *\n * E.g. suppose you have an `Array` and you want to format each element with a function\n * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse`\n * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>`\n * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results\n * are `Error`s.\n *\n * @example\n * import { traverse } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (x: unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", \"b\"]), right([\"A\", \"B\"]));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n var traverseWithIndexF = (0, exports.traverseWithIndex)(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\nexports.traverse = traverse;\n/**\n * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and,\n * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`.\n * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`.\n *\n * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an\n * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an\n * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`,\n * it needs an `Applicative` for `Option`.\n *\n * @example\n * import { sequence } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * assert.deepStrictEqual(sequence(Applicative)([right(\"a\"), right(\"b\")]), right([\"a\", \"b\"]));\n * assert.deepStrictEqual(\n * sequence(Applicative)([right(\"a\"), left(new Error(\"not a string\"))]),\n * left(new Error(\"not a string\"))\n * );\n *\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of((0, exports.zero)()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return (0, function_1.pipe)(as, (0, exports.append)(a)); }; }), fa);\n });\n };\n};\nexports.sequence = sequence;\n/**\n * Same as [`traverse`](#traverse) but passing also the index to the iterating function.\n *\n * @example\n * import { traverseWithIndex } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (index:number, x:unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase() + index) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", \"b\"]), right([\"A0\", \"B1\"]));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category sequencing\n * @since 2.6.3\n */\nvar traverseWithIndex = function (F) {\n return function (f) {\n return (0, exports.reduceWithIndex)(F.of((0, exports.zero)()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return (0, function_1.pipe)(bs, (0, exports.append)(b)); }; }), f(i, a));\n });\n };\n};\nexports.traverseWithIndex = traverseWithIndex;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome\n * value and an input for the following iteration.\n * `unfold` applies `f` to the initial value `b` and then recursively to the second\n * element of the tuple contained in the returned `option` of the previous\n * calculation until `f` returns `Option.none`.\n *\n * @example\n * import { unfold } from 'fp-ts/Array'\n * import { option } from 'fp-ts'\n *\n * const f = (n: number) => {\n * if (n <= 0) return option.none;\n * const returnValue = n * 2;\n * const inputForNextRound = n - 1;\n * return option.some([returnValue, inputForNextRound] as const);\n * };\n * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);\n *\n * @since 2.6.6\n */\nvar unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\nexports.unfold = unfold;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Array';\n/**\n * `getShow` makes a `Show` for an `Array<A>` from a `Show` for\n * an `A`.\n *\n * @example\n * import { getShow } from 'fp-ts/Array'\n *\n * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };\n * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), \"[(2), (1), 0, 1]\");\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getShow = RA.getShow;\n/**\n * Get a `Semigroup` based on the concatenation of `Array`s.\n * See also [`getMonoid`](#getMonoid).\n *\n * @example\n * import { getSemigroup } from 'fp-ts/Array'\n *\n * const S = getSemigroup<number>();\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function () { return ({\n concat: function (first, second) { return first.concat(second); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s.\n *\n * @example\n * import { getMonoid } from 'fp-ts/Array'\n *\n * const M = getMonoid<number>()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function () { return ({\n concat: (0, exports.getSemigroup)().concat,\n empty: []\n}); };\nexports.getMonoid = getMonoid;\n/**\n * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/Array'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getEq = RA.getEq;\n/**\n * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/Array'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n * @category instances\n * @since 2.0.0\n */\nexports.getOrd = RA.getOrd;\n/**\n * Get a `Semigroup` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n * See also [`getUnionMonoid`](#getUnionMonoid).\n *\n * @example\n * import { getUnionSemigroup } from 'fp-ts/Array';\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getUnionSemigroup<number>(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\nexports.getUnionSemigroup = getUnionSemigroup;\n/**\n * Get a `Monoid` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n *\n * @example\n * import { getUnionMonoid } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const M = getUnionMonoid<number>(Eq);\n * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(M.empty,[]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getUnionMonoid = function (E) { return ({\n concat: (0, exports.getUnionSemigroup)(E).concat,\n empty: []\n}); };\nexports.getUnionMonoid = getUnionMonoid;\n/**\n * Get a `Semigroup` based on the intersection of the elements of `Array`s.\n * Only elements present in the two arrays which are equal according to the\n * provided `Eq` are included in the result.\n *\n * @example\n * import { getIntersectionSemigroup } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getIntersectionSemigroup<number>(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\nexports.getIntersectionSemigroup = getIntersectionSemigroup;\n/**\n * Get a `Magma` for `Array` where the `concat` function is the differnce between\n * the first and the second array, i.e. the result contains all the elements of the\n * first array for which their is no equal element in the second array according\n * to the `Eq` provided.\n *\n *\n * @example\n * import { getDifferenceMagma } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getDifferenceMagma<number>(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);\n *\n * @category instances\n * @since 2.11.0\n */\nvar getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\nexports.getDifferenceMagma = getDifferenceMagma;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Given an input an `Array` of functions, `flap` returns an `Array` containing\n * the results of applying each function to the given input.\n *\n * @example\n * import { flap } from 'fp-ts/Array'\n *\n * const funs = [\n * (n: number) => `Double: ${n * 2}`,\n * (n: number) => `Triple: ${n * 3}`,\n * (n: number) => `Square: ${n * n}`,\n * ];\n * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);\n *\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FunctorWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.chainFirst = \n/*#__PURE__*/ (0, Chain_1.chainFirst)(exports.Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Unfoldable = {\n URI: exports.URI,\n unfold: exports.unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FilterableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.FoldableWithIndex = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.TraversableWithIndex = {\n URI: exports.URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: exports.sequence,\n traverseWithIndex: _traverseWithIndex\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainRecDepthFirst = RA.chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecDepthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainRecBreadthFirst = RA.chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.ChainRecBreadthFirst = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: _chainRecBreadthFirst\n};\n/**\n * Filter values inside a context.\n *\n * @since 2.11.0\n */\nexports.filterE = (0, Witherable_1.filterE)(exports.Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.0.0\n */\nexports.unsafeInsertAt = NEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nvar unsafeUpdateAt = function (i, a, as) {\n return (0, exports.isNonEmpty)(as) ? NEA.unsafeUpdateAt(i, a, as) : [];\n};\nexports.unsafeUpdateAt = unsafeUpdateAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nvar unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\nexports.unsafeDeleteAt = unsafeDeleteAt;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * `every` tells if the provided predicate holds true for every element in the `Array`.\n *\n * @example\n * import { every } from 'fp-ts/Array'\n *\n * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nexports.every = RA.every;\n/**\n * `some` tells if the provided predicate holds true at least for one element in the `Array`.\n *\n * @example\n * import { some } from 'fp-ts/Array'\n *\n * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nvar some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\nexports.some = some;\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexports.exists = exports.some;\n/**\n * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexports.intercalate = RA.intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = (0, Chain_1.bind)(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `NonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.range = NEA.range;\n/**\n * Use a new `[]` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.empty = [];\n/**\n * Use `prepend` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.cons = NEA.cons;\n/**\n * Use `append` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.snoc = NEA.snoc;\n/**\n * Use `prependAll` instead\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexports.prependToAll = exports.prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array`\n * (where `A` is from `import A from 'fp-ts/Array'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.array = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: exports.zero,\n unfold: exports.unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApplicativeComposition = exports.getApplicativeMonoid = void 0;\n/**\n * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values\n * of type `f a` from values of type `a`.\n *\n * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are\n * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the\n * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for\n * any number of function arguments.\n *\n * Instances must satisfy the following laws in addition to the `Apply` laws:\n *\n * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa`\n * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))`\n * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)`\n *\n * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)`\n *\n * @since 2.0.0\n */\nvar Apply_1 = require(\"./Apply\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nfunction getApplicativeMonoid(F) {\n var f = (0, Apply_1.getApplySemigroup)(F);\n return function (M) { return ({\n concat: f(M).concat,\n empty: F.of(M.empty)\n }); };\n}\nexports.getApplicativeMonoid = getApplicativeMonoid;\n/** @deprecated */\nfunction getApplicativeComposition(F, G) {\n var map = (0, Functor_1.getFunctorComposition)(F, G).map;\n var _ap = (0, Apply_1.ap)(F, G);\n return {\n map: map,\n of: function (a) { return F.of(G.of(a)); },\n ap: function (fgab, fga) { return (0, function_1.pipe)(fgab, _ap(fga)); }\n };\n}\nexports.getApplicativeComposition = getApplicativeComposition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.and = exports.or = exports.not = exports.Contravariant = exports.getMonoidAll = exports.getSemigroupAll = exports.getMonoidAny = exports.getSemigroupAny = exports.URI = exports.contramap = void 0;\nvar function_1 = require(\"./function\");\nvar contramap_ = function (predicate, f) { return (0, function_1.pipe)(predicate, (0, exports.contramap)(f)); };\n/**\n * @since 2.11.0\n */\nvar contramap = function (f) {\n return function (predicate) {\n return (0, function_1.flow)(f, predicate);\n };\n};\nexports.contramap = contramap;\n/**\n * @category type lambdas\n * @since 2.11.0\n */\nexports.URI = 'Predicate';\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAny = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.or)(second)); }\n}); };\nexports.getSemigroupAny = getSemigroupAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAny = function () { return ({\n concat: (0, exports.getSemigroupAny)().concat,\n empty: function_1.constFalse\n}); };\nexports.getMonoidAny = getMonoidAny;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getSemigroupAll = function () { return ({\n concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.and)(second)); }\n}); };\nexports.getSemigroupAll = getSemigroupAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nvar getMonoidAll = function () { return ({\n concat: (0, exports.getSemigroupAll)().concat,\n empty: function_1.constTrue\n}); };\nexports.getMonoidAll = getMonoidAll;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Contravariant = {\n URI: exports.URI,\n contramap: contramap_\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar not = function (predicate) {\n return function (a) {\n return !predicate(a);\n };\n};\nexports.not = not;\n/**\n * @since 2.11.0\n */\nvar or = function (second) {\n return function (first) {\n return function (a) {\n return first(a) || second(a);\n };\n };\n};\nexports.or = or;\n/**\n * @since 2.11.0\n */\nvar and = function (second) {\n return function (first) {\n return function (a) {\n return first(a) && second(a);\n };\n };\n};\nexports.and = and;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Witherable = exports.wilt = exports.wither = exports.Traversable = exports.sequence = exports.traverse = exports.Filterable = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = exports.Compactable = exports.separate = exports.compact = exports.Extend = exports.extend = exports.Alternative = exports.guard = exports.Zero = exports.zero = exports.Alt = exports.alt = exports.altW = exports.orElse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.flatMap = exports.Applicative = exports.Apply = exports.ap = exports.Pointed = exports.of = exports.asUnit = exports.as = exports.Functor = exports.map = exports.getMonoid = exports.getOrd = exports.getEq = exports.getShow = exports.URI = exports.getRight = exports.getLeft = exports.fromPredicate = exports.some = exports.none = void 0;\nexports.getFirstMonoid = exports.getApplyMonoid = exports.getApplySemigroup = exports.option = exports.mapNullable = exports.getRefinement = exports.chainFirst = exports.chain = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toUndefined = exports.toNullable = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.chainFirstEitherK = exports.chainEitherK = exports.fromEitherK = exports.duplicate = exports.tapEither = exports.tap = exports.flatten = exports.apSecond = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = exports.match = exports.foldW = exports.matchW = exports.isNone = exports.isSome = exports.FromEither = exports.fromEither = exports.MonadThrow = exports.throwError = void 0;\nexports.getLastMonoid = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar chainable = __importStar(require(\"./Chain\"));\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Predicate_1 = require(\"./Predicate\");\nvar Semigroup_1 = require(\"./Semigroup\");\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\nvar Zero_1 = require(\"./Zero\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.some = _.some;\nfunction fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? (0, exports.some)(a) : exports.none); };\n}\nexports.fromPredicate = fromPredicate;\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getLeft = function (ma) { return (ma._tag === 'Right' ? exports.none : (0, exports.some)(ma.left)); };\nexports.getLeft = getLeft;\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nvar getRight = function (ma) { return (ma._tag === 'Left' ? exports.none : (0, exports.some)(ma.right)); };\nexports.getRight = getRight;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = (0, exports.foldMap)(M);\n return function (fa, f) { return (0, function_1.pipe)(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\nvar _filter = function (fa, predicate) { return (0, function_1.pipe)(fa, (0, exports.filter)(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.filterMap)(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return (0, function_1.pipe)(fa, (0, exports.partition)(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.partitionMap)(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (S) { return ({\n show: function (ma) { return ((0, exports.isNone)(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (E) { return ({\n equals: function (x, y) { return x === y || ((0, exports.isNone)(x) ? (0, exports.isNone)(y) : (0, exports.isNone)(y) ? false : E.equals(x.value, y.value)); }\n}); };\nexports.getEq = getEq;\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nvar getOrd = function (O) { return ({\n equals: (0, exports.getEq)(O).equals,\n compare: function (x, y) { return (x === y ? 0 : (0, exports.isSome)(x) ? ((0, exports.isSome)(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\nexports.getOrd = getOrd;\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getMonoid = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isNone)(x) ? y : (0, exports.isNone)(y) ? x : (0, exports.some)(S.concat(x.value, y.value))); },\n empty: exports.none\n}); };\nexports.getMonoid = getMonoid;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(f(fa.value));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Maps the `Some` value of this `Option` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor));\n/**\n * Maps the `Some` value of this `Option` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.asUnit = (0, Functor_1.asUnit)(exports.Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @since 2.0.0\n */\nvar ap = function (fa) { return function (fab) {\n return (0, exports.isNone)(fab) ? exports.none : (0, exports.isNone)(fa) ? exports.none : (0, exports.some)(fab.value(fa.value));\n}; };\nexports.ap = ap;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) { return ((0, exports.isNone)(ma) ? exports.none : f(ma.value)); });\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(b, fa.value);\n}; };\nexports.reduce = reduce;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? M.empty : f(fa.value);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isNone)(fa) ? b : f(fa.value, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`.\n *\n * @param self - The first `Option` to be checked.\n * @param that - The `Option` to return if `self` is `None`.\n *\n * @example\n * import * as O from \"fp-ts/Option\"\n *\n * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none)\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1))\n * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b'))\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1))\n *\n * @category error handling\n * @since 2.16.0\n */\nexports.orElse = (0, function_1.dual)(2, function (self, that) { return ((0, exports.isNone)(self) ? that() : self); });\n/**\n * Alias of `orElse`.\n *\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category legacy\n * @since 2.9.0\n */\nexports.altW = exports.orElse;\n/**\n * Alias of `orElse`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.alt = exports.orElse;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nvar zero = function () { return exports.none; };\nexports.zero = zero;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.Zero = {\n URI: exports.URI,\n zero: exports.zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexports.guard = (0, Zero_1.guard)(exports.Zero, exports.Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alternative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n alt: _alt,\n zero: exports.zero\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isNone)(wa) ? exports.none : (0, exports.some)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexports.compact = (0, exports.flatMap)(function_1.identity);\nvar defaultSeparated = /*#__PURE__*/ (0, Separated_1.separated)(exports.none, exports.none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar separate = function (ma) {\n return (0, exports.isNone)(ma) ? defaultSeparated : (0, Separated_1.separated)((0, exports.getLeft)(ma.value), (0, exports.getRight)(ma.value));\n};\nexports.separate = separate;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Compactable = {\n URI: exports.URI,\n compact: exports.compact,\n separate: exports.separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filter = function (predicate) {\n return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : predicate(fa.value) ? fa : exports.none;\n };\n};\nexports.filter = filter;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar filterMap = function (f) { return function (fa) {\n return (0, exports.isNone)(fa) ? exports.none : f(fa.value);\n}; };\nexports.filterMap = filterMap;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partition = function (predicate) {\n return function (fa) {\n return (0, Separated_1.separated)(_filter(fa, (0, Predicate_1.not)(predicate)), _filter(fa, predicate));\n };\n};\nexports.partition = partition;\n/**\n * @category filtering\n * @since 2.0.0\n */\nvar partitionMap = function (f) { return (0, function_1.flow)((0, exports.map)(f), exports.separate); };\nexports.partitionMap = partitionMap;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Filterable = {\n URI: exports.URI,\n map: _map,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(f(ta.value), exports.some);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ta) {\n return (0, exports.isNone)(ta) ? F.of(exports.none) : F.map(ta.value, exports.some);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\nvar _wither = /*#__PURE__*/ (0, Witherable_1.witherDefault)(exports.Traversable, exports.Compactable);\nvar _wilt = /*#__PURE__*/ (0, Witherable_1.wiltDefault)(exports.Traversable, exports.Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\nexports.wither = wither;\n/**\n * @category filtering\n * @since 2.6.5\n */\nvar wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\nexports.wilt = wilt;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Witherable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nvar throwError = function () { return exports.none; };\nexports.throwError = throwError;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap,\n throwError: exports.throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromEither = exports.getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nvar isNone = function (fa) { return fa._tag === 'None'; };\nexports.isNone = isNone;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onNone, onSome) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : onSome(ma.value);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onNone) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? onNone() : ma.value;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n * import * as E from 'fp-ts/Either'\n *\n * const compute = (value: number) => pipe(\n * O.of(value),\n * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')),\n * )\n *\n * assert.deepStrictEqual(compute(1), O.of(1))\n * assert.deepStrictEqual(compute(-42), O.none)\n *\n * @category combinators\n * @since 2.16.0\n */\nexports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain));\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexports.chainEitherK = \n/*#__PURE__*/ (0, FromEither_1.chainEitherK)(exports.FromEither, exports.Chain);\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexports.chainFirstEitherK = exports.tapEither;\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (a) { return (a == null ? exports.none : (0, exports.some)(a)); };\nexports.fromNullable = fromNullable;\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f) {\n try {\n return (0, exports.some)(f());\n }\n catch (e) {\n return exports.none;\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); });\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nvar fromNullableK = function (f) { return (0, function_1.flow)(f, exports.fromNullable); };\nexports.fromNullableK = fromNullableK;\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nvar chainNullableK = function (f) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? exports.none : (0, exports.fromNullable)(f(ma.value));\n };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toNullable = (0, exports.match)(function_1.constNull, function_1.identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.toUndefined = (0, exports.match)(function_1.constUndefined, function_1.identity);\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isNone)(ma) ? false : E.equals(a, ma.value);\n };\n}\nexports.elem = elem;\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isNone)(ma) ? false : predicate(ma.value);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = chainable.bind(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if ((0, exports.isNone)(o)) {\n return exports.none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if ((0, exports.isNone)(o_1)) {\n return exports.none;\n }\n out.push(o_1.value);\n }\n return (0, exports.some)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) {\n return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); });\n};\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chainFirst = exports.tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getRefinement(getOption) {\n return function (a) { return (0, exports.isSome)(getOption(a)); };\n}\nexports.getRefinement = getRefinement;\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.mapNullable = exports.chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.option = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: exports.flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n zero: exports.zero,\n alt: _alt,\n extend: _extend,\n compact: exports.compact,\n separate: exports.separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid<number>()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getFirstMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.first)()); };\nexports.getFirstMonoid = getFirstMonoid;\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid<number>()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getLastMonoid = function () { return (0, exports.getMonoid)((0, Semigroup_1.last)()); };\nexports.getLastMonoid = getLastMonoid;\n","import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst unwrap = (val) => (typeof val === 'function' ? val() : val);\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n const unwrappedState = unwrap(defaultState);\n let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n var _a;\n // When resetting the state, the default state may be a function - unwrap it to invoke it.\n // otherwise, the state won't be properly reset\n states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(unwrappedState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n // We need to unwrap the defaultState because it might be a function.\n // Otherwise we might not be sending the right reset value.\n const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","export const trackingStore = {\n trackingEnabled: true,\n};\n","import { createStore } from \"@stencil/store\";\nimport { trackingStore } from \"./tracking.store\";\n\nexport const { state, onChange } = createStore({\n fallbackStyles: \"\",\n pricePrefix: null,\n currencySign: null,\n apiPath: null,\n token: null,\n locale: \"de-DE\",\n ...trackingStore,\n});\n","/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nimport { pipe } from './function';\nexport function map(F, G) {\n return function (f) { return function (fa) { return F.map(fa, function (ga) { return G.map(ga, f); }); }; };\n}\nexport function flap(F) {\n return function (a) { return function (fab) { return F.map(fab, function (f) { return f(a); }); }; };\n}\nexport function bindTo(F) {\n return function (name) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return (_a = {}, _a[name] = a, _a);\n }); }; };\n}\nfunction let_(F) {\n return function (name, f) { return function (fa) { return F.map(fa, function (a) {\n var _a;\n return Object.assign({}, a, (_a = {}, _a[name] = f(a), _a));\n }); }; };\n}\nexport { \n/**\n * @since 2.13.0\n */\nlet_ as let };\n/** @deprecated */\nexport function getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) { return pipe(fga, _map(f)); }\n };\n}\n/** @internal */\nexport function as(F) {\n return function (self, b) { return F.map(self, function () { return b; }); };\n}\n/** @internal */\nexport function asUnit(F) {\n var asM = as(F);\n return function (self) { return asM(self, undefined); };\n}\n","/**\n * The `FromEither` type class represents those data types which support errors.\n *\n * @since 2.10.0\n */\nimport { tap } from './Chain';\nimport { flow } from './function';\nimport * as _ from './internal';\nexport function fromOption(F) {\n return function (onNone) { return function (ma) { return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value)); }; };\n}\nexport function fromPredicate(F) {\n return function (predicate, onFalse) {\n return function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n };\n };\n}\nexport function fromOptionK(F) {\n var fromOptionF = fromOption(F);\n return function (onNone) {\n var from = fromOptionF(onNone);\n return function (f) { return flow(f, from); };\n };\n}\nexport function chainOptionK(F, M) {\n var fromOptionKF = fromOptionK(F);\n return function (onNone) {\n var from = fromOptionKF(onNone);\n return function (f) { return function (ma) { return M.chain(ma, from(f)); }; };\n };\n}\nexport function fromEitherK(F) {\n return function (f) { return flow(f, F.fromEither); };\n}\nexport function chainEitherK(F, M) {\n var fromEitherKF = fromEitherK(F);\n return function (f) { return function (ma) { return M.chain(ma, fromEitherKF(f)); }; };\n}\nexport function chainFirstEitherK(F, M) {\n var tapEitherM = tapEither(F, M);\n return function (f) { return function (ma) { return tapEitherM(ma, f); }; };\n}\nexport function filterOrElse(F, M) {\n return function (predicate, onFalse) {\n return function (ma) {\n return M.chain(ma, function (a) { return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a))); });\n };\n };\n}\n/** @internal */\nexport function tapEither(F, M) {\n var fromEither = fromEitherK(F);\n var tapM = tap(M);\n return function (self, f) { return tapM(self, fromEither(f)); };\n}\n","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { tailRec } from './ChainRec';\nimport { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither';\nimport { dual, flow, identity, pipe } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var left = _.left;\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var right = _.right;\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isLeft(ma) ? ma : f(ma.right)); });\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) { return function (fa, f) {\n var foldMapM = foldMap(M);\n return pipe(fa, foldMapM(f));\n}; };\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\nvar _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); };\nvar _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return pipe(wa, extend(f)); };\nvar _chainRec = function (a, f) {\n return tailRec(f(a), function (e) {\n return isLeft(e) ? right(left(e.left)) : isLeft(e.right) ? left(f(e.right.left)) : right(right(e.right.right));\n });\n};\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getShow = function (SE, SA) { return ({\n show: function (ma) { return (isLeft(ma) ? \"left(\".concat(SE.show(ma.left), \")\") : \"right(\".concat(SA.show(ma.right), \")\")); }\n}); };\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getEq = function (EL, EA) { return ({\n equals: function (x, y) {\n return x === y || (isLeft(x) ? isLeft(y) && EL.equals(x.left, y.left) : isRight(y) && EA.equals(x.right, y.right));\n }\n}); };\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup<string, number>(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getSemigroup = function (S) { return ({\n concat: function (x, y) { return (isLeft(y) ? x : isLeft(x) ? y : right(S.concat(x.right, y.right))); }\n}); };\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category filtering\n * @since 2.10.0\n */\nexport var getCompactable = function (M) {\n var empty = left(M.empty);\n return {\n URI: URI,\n _E: undefined,\n compact: function (ma) { return (isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : right(ma.right.value)); },\n separate: function (ma) {\n return isLeft(ma)\n ? separated(ma, ma)\n : isLeft(ma.right)\n ? separated(right(ma.right.left), empty)\n : separated(empty, right(ma.right.right));\n }\n };\n};\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.10.0\n */\nexport var getFilterable = function (M) {\n var empty = left(M.empty);\n var _a = getCompactable(M), compact = _a.compact, separate = _a.separate;\n var filter = function (ma, predicate) {\n return isLeft(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return isLeft(ma)\n ? separated(ma, ma)\n : p(ma.right)\n ? separated(empty, right(ma.right))\n : separated(right(ma.right), empty);\n };\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if (isLeft(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : right(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if (isLeft(ma)) {\n return separated(ma, ma);\n }\n var e = f(ma.right);\n return isLeft(e) ? separated(right(e.left), empty) : separated(empty, right(e.right));\n }\n };\n};\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var getWitherable = function (M) {\n var F_ = getFilterable(M);\n var C = getCompactable(M);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: F_.compact,\n separate: F_.separate,\n filter: F_.filter,\n filterMap: F_.filterMap,\n partition: F_.partition,\n partitionMap: F_.partitionMap,\n traverse: _traverse,\n sequence: sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: witherDefault(Traversable, C),\n wilt: wiltDefault(Traversable, C)\n };\n};\n/**\n * The default [`Applicative`](#applicative) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as A from 'fp-ts/Apply'\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either<string, string> =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either<string, number> =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n *\n * const parsePerson = (\n * input: Record<string, unknown>\n * ): E.Either<string, Person> =>\n * pipe(\n * E.Do,\n * E.apS('name', parseString(input.name)),\n * E.apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error\n *\n * const Applicative = E.getApplicativeValidation(\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * const apS = A.apS(Applicative)\n *\n * const parsePersonAll = (\n * input: Record<string, unknown>\n * ): E.Either<string, Person> =>\n * pipe(\n * E.Do,\n * apS('name', parseString(input.name)),\n * apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nexport var getApplicativeValidation = function (SE) { return ({\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) {\n return isLeft(fab)\n ? isLeft(fa)\n ? left(SE.concat(fab.left, fa.left))\n : fab\n : isLeft(fa)\n ? fa\n : right(fab.right(fa.right));\n },\n of: of\n}); };\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either<string, string> =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either<string, number> =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * const parse = (u: unknown): E.Either<string, string | number> =>\n * pipe(\n * parseString(u),\n * E.alt<string, string | number>(() => parseNumber(u))\n * )\n *\n * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error\n *\n * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', ')))\n *\n * const parseAll = (u: unknown): E.Either<string, string | number> =>\n * Alt.alt<string | number>(parseString(u), () => parseNumber(u))\n *\n * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nexport var getAltValidation = function (SE) { return ({\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if (isRight(me)) {\n return me;\n }\n var ea = that();\n return isLeft(ea) ? left(SE.concat(me.left, ea.left)) : ea;\n }\n}); };\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) {\n return isLeft(fa) ? fa : right(f(fa.right));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the `Right` value of this `Either` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the `Right` value of this `Either` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexport var of = right;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nexport var apW = function (fa) { return function (fab) {\n return isLeft(fab) ? fab : isLeft(fa) ? fa : right(fab.right(fa.right));\n}; };\n/**\n * @since 2.0.0\n */\nexport var ap = apW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * Left-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'prefix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduce(startWith, concat)),\n * 'prefix:a'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduce(startWith, concat)),\n * 'prefix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduce = function (b, f) { return function (fa) {\n return isLeft(fa) ? b : f(b, fa.right);\n}; };\n/**\n * Map each element of the structure to a monoid, and combine the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as S from 'fp-ts/string'\n *\n * const yell = (a: string) => `${a}!`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),\n * 'a!'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),\n * S.Monoid.empty\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nexport var foldMap = function (M) { return function (f) { return function (fa) {\n return isLeft(fa) ? M.empty : f(fa.right);\n}; }; };\n/**\n * Right-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'postfix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduceRight(startWith, concat)),\n * 'a:postfix'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduceRight(startWith, concat)),\n * 'postfix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRight = function (b, f) { return function (fa) {\n return isLeft(fa) ? b : f(fa.right, b);\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n return function (f) {\n return function (ta) {\n return isLeft(ta) ? F.of(left(ta.left)) : F.map(f(ta.right), right);\n };\n };\n};\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ma) {\n return isLeft(ma) ? F.of(left(ma.left)) : F.map(ma.right, right);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.0.0\n */\nexport var bimap = function (f, g) { return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : right(g(fa.right));\n}; };\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var mapLeft = function (f) { return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : fa;\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Bifunctor = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nexport var altW = function (that) { return function (fa) {\n return isLeft(fa) ? that() : fa;\n}; };\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`).\n *\n * | x | y | pipe(x, alt(() => y) |\n * | -------- | -------- | -------------------- |\n * | left(a) | left(b) | left(b) |\n * | left(a) | right(2) | right(2) |\n * | right(1) | left(b) | right(1) |\n * | right(1) | right(2) | right(1) |\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.left('b'))\n * ),\n * E.left('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.right(2))\n * ),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.left('b'))\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.right(2))\n * ),\n * E.right(1)\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var alt = altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.0.0\n */\nexport var extend = function (f) { return function (wa) {\n return isLeft(wa) ? wa : right(f(wa));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var ChainRec = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap,\n chainRec: _chainRec\n};\n/**\n * @since 2.6.3\n */\nexport var throwError = left;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n throwError: throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: identity\n};\n/**\n * @example\n * import { fromPredicate, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * 1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * -1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n *\n * @category lifting\n * @since 2.0.0\n */\nexport var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some(1),\n * E.fromOption(() => 'error')\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * E.fromOption(() => 'error')\n * ),\n * E.left('error')\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromOption = \n/*#__PURE__*/ fromOption_(FromEither);\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isRight = _.isRight;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchW = function (onLeft, onRight) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var foldW = matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array<string>): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexport var getOrElseW = function (onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma.right;\n };\n};\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var getOrElse = getOrElseW;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Less strict version of [`apFirst`](#apfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var apFirstW = apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * Less strict version of [`apSecond`](#apsecond)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var apSecondW = apSecond;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexport var flattenW = \n/*#__PURE__*/ flatMap(identity);\n/**\n * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))\n * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))\n * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = flattenW;\n/**\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * Use `liftOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var fromOptionK = \n/*#__PURE__*/ fromOptionK_(FromEither);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexport var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.13.2\n */\nexport var chainOptionKW = /*#__PURE__*/ chainOptionK;\n/** @internal */\nvar _FromEither = {\n fromEither: FromEither.fromEither\n};\n/**\n * @category lifting\n * @since 2.15.0\n */\nexport var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither);\n/**\n * @category lifting\n * @since 2.15.0\n */\nexport var liftOption = /*#__PURE__*/ _.liftOption(_FromEither);\n/** @internal */\nvar _FlatMap = {\n flatMap: flatMap\n};\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap);\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(-1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('a')\n * )\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexport var filterOrElseW = filterOrElse;\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @since 2.0.0\n */\nexport var swap = function (ma) { return (isLeft(ma) ? right(ma.left) : left(ma.right)); };\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nexport var orElseW = function (onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma;\n };\n};\n/**\n * Useful for recovering from errors.\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var orElse = orElseW;\n/**\n * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use\n * the provided default as a `Left`.\n *\n * @example\n * import { fromNullable, left, right } from 'fp-ts/Either'\n *\n * const parse = fromNullable('nully')\n *\n * assert.deepStrictEqual(parse(1), right(1))\n * assert.deepStrictEqual(parse(null), left('nully'))\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromNullable = function (e) {\n return function (a) {\n return a == null ? left(e) : right(a);\n };\n};\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = <A>(as: ReadonlyArray<A>): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f, onThrow) {\n try {\n return right(f());\n }\n catch (e) {\n return left(onThrow(e));\n }\n};\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nexport var tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () { return f.apply(void 0, a); }, onThrow);\n };\n};\n/**\n * Use `liftNullable`.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var fromNullableK = function (e) {\n var from = fromNullable(e);\n return function (f) { return flow(f, from); };\n};\n/**\n * Use `flatMapNullable`.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var chainNullableK = function (e) {\n var from = fromNullableK(e);\n return function (f) { return flatMap(from(f)); };\n};\n/**\n * @category conversions\n * @since 2.10.0\n */\nexport var toUnion = /*#__PURE__*/ foldW(identity, identity);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nexport function toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return isLeft(ma) ? false : E.equals(a, ma.right);\n };\n}\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\nexport var exists = function (predicate) {\n return function (ma) {\n return isLeft(ma) ? false : predicate(ma.right);\n };\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexport var bindW = bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexport var apSW = apS;\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var e = f(0, _.head(as));\n if (isLeft(e)) {\n return e;\n }\n var out = [e.right];\n for (var i = 1; i < as.length; i++) {\n var e_1 = f(i, as[i]);\n if (isLeft(e_1)) {\n return e_1;\n }\n out.push(e_1.right);\n }\n return right(out);\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); };\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.6.0\n */\nexport var chainW = flatMap;\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.8.0\n */\nexport var chainFirstW = tap;\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function parseJSON(s, onError) {\n return tryCatch(function () { return JSON.parse(s); }, onError);\n}\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var stringifyJSON = function (u, onError) {\n return tryCatch(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either`\n * (where `E` is from `import E from 'fp-ts/Either'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var either = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values\n * are concatenated using the provided `Semigroup`\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplySemigroup = \n/*#__PURE__*/ getApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = \n/*#__PURE__*/ getApplicativeMonoid(Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getValidationSemigroup = function (SE, SA) {\n return getApplySemigroup_(getApplicativeValidation(SE))(SA);\n};\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getValidationMonoid = function (SE, MA) {\n return getApplicativeMonoid(getApplicativeValidation(SE))(MA);\n};\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function getValidation(SE) {\n var ap = getApplicativeValidation(SE).ap;\n var alt = getAltValidation(SE).alt;\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n of: of,\n chain: flatMap,\n bimap: _bimap,\n mapLeft: _mapLeft,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n extend: _extend,\n traverse: _traverse,\n sequence: sequence,\n chainRec: _chainRec,\n throwError: throwError,\n ap: ap,\n alt: alt\n };\n}\n","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { chainEitherK as chainEitherK_, fromEitherK as fromEitherK_, tapEither as tapEither_ } from './FromEither';\nimport { constNull, constUndefined, dual, flow, identity, pipe } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport { not } from './Predicate';\nimport { first, last } from './Semigroup';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var some = _.some;\nexport function fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? some(a) : none); };\n}\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var getLeft = function (ma) { return (ma._tag === 'Right' ? none : some(ma.left)); };\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var getRight = function (ma) { return (ma._tag === 'Left' ? none : some(ma.right)); };\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = foldMap(M);\n return function (fa, f) { return pipe(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\nvar _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return pipe(wa, extend(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var getShow = function (S) { return ({\n show: function (ma) { return (isNone(ma) ? 'none' : \"some(\".concat(S.show(ma.value), \")\")); }\n}); };\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getEq = function (E) { return ({\n equals: function (x, y) { return x === y || (isNone(x) ? isNone(y) : isNone(y) ? false : E.equals(x.value, y.value)); }\n}); };\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getOrd = function (O) { return ({\n equals: getEq(O).equals,\n compare: function (x, y) { return (x === y ? 0 : isSome(x) ? (isSome(y) ? O.compare(x.value, y.value) : 1) : -1); }\n}); };\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getMonoid = function (S) { return ({\n concat: function (x, y) { return (isNone(x) ? y : isNone(y) ? x : some(S.concat(x.value, y.value))); },\n empty: none\n}); };\n/**\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) {\n return isNone(fa) ? none : some(f(fa.value));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the `Some` value of this `Option` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the `Some` value of this `Option` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexport var of = some;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @since 2.0.0\n */\nexport var ap = function (fa) { return function (fab) {\n return isNone(fab) ? none : isNone(fa) ? none : some(fab.value(fa.value));\n}; };\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) { return (isNone(ma) ? none : f(ma.value)); });\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var reduce = function (b, f) { return function (fa) {\n return isNone(fa) ? b : f(b, fa.value);\n}; };\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var foldMap = function (M) { return function (f) { return function (fa) {\n return isNone(fa) ? M.empty : f(fa.value);\n}; }; };\n/**\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRight = function (b, f) { return function (fa) {\n return isNone(fa) ? b : f(fa.value, b);\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Returns the provided `Option` `that` if `self` is `None`, otherwise returns `self`.\n *\n * @param self - The first `Option` to be checked.\n * @param that - The `Option` to return if `self` is `None`.\n *\n * @example\n * import * as O from \"fp-ts/Option\"\n *\n * assert.deepStrictEqual(O.orElse(O.none, () => O.none), O.none)\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.none), O.some(1))\n * assert.deepStrictEqual(O.orElse(O.none, () => O.some('b')), O.some('b'))\n * assert.deepStrictEqual(O.orElse(O.some(1), () => O.some('b')), O.some(1))\n *\n * @category error handling\n * @since 2.16.0\n */\nexport var orElse = dual(2, function (self, that) { return (isNone(self) ? that() : self); });\n/**\n * Alias of `orElse`.\n *\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category legacy\n * @since 2.9.0\n */\nexport var altW = orElse;\n/**\n * Alias of `orElse`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var alt = orElse;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.7.0\n */\nexport var zero = function () { return none; };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexport var guard = /*#__PURE__*/ guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alternative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n alt: _alt,\n zero: zero\n};\n/**\n * @since 2.0.0\n */\nexport var extend = function (f) { return function (wa) {\n return isNone(wa) ? none : some(f(wa));\n}; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var compact = /*#__PURE__*/ flatMap(identity);\nvar defaultSeparated = /*#__PURE__*/ separated(none, none);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var separate = function (ma) {\n return isNone(ma) ? defaultSeparated : separated(getLeft(ma.value), getRight(ma.value));\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filter = function (predicate) {\n return function (fa) {\n return isNone(fa) ? none : predicate(fa.value) ? fa : none;\n };\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filterMap = function (f) { return function (fa) {\n return isNone(fa) ? none : f(fa.value);\n}; };\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var partition = function (predicate) {\n return function (fa) {\n return separated(_filter(fa, not(predicate)), _filter(fa, predicate));\n };\n};\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var partitionMap = function (f) { return flow(map(f), separate); };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Filterable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n return function (f) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(f(ta.value), some);\n };\n };\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(ta.value, some);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\nvar _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);\nvar _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Witherable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @since 2.7.0\n */\nexport var throwError = function () { return none; };\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n throwError: throwError\n};\n/**\n * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromEither = getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isNone = function (fa) { return fa._tag === 'None'; };\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchW = function (onNone, onSome) {\n return function (ma) {\n return isNone(ma) ? onNone() : onSome(ma.value);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var foldW = matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexport var getOrElseW = function (onNone) {\n return function (ma) {\n return isNone(ma) ? onNone() : ma.value;\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var getOrElse = getOrElseW;\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n * import * as E from 'fp-ts/Either'\n *\n * const compute = (value: number) => pipe(\n * O.of(value),\n * O.tapEither((value) => value > 0 ? E.right('ok') : E.left('error')),\n * )\n *\n * assert.deepStrictEqual(compute(1), O.of(1))\n * assert.deepStrictEqual(compute(-42), O.none)\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain));\n/**\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainEitherK = \n/*#__PURE__*/ chainEitherK_(FromEither, Chain);\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var chainFirstEitherK = tapEither;\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var fromNullable = function (a) { return (a == null ? none : some(a)); };\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f) {\n try {\n return some(f());\n }\n catch (e) {\n return none;\n }\n};\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\nexport var tryCatchK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () { return f.apply(void 0, a); });\n };\n};\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category lifting\n * @since 2.9.0\n */\nexport var fromNullableK = function (f) { return flow(f, fromNullable); };\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category sequencing\n * @since 2.9.0\n */\nexport var chainNullableK = function (f) {\n return function (ma) {\n return isNone(ma) ? none : fromNullable(f(ma.value));\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var toNullable = /*#__PURE__*/ match(constNull, identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexport var toUndefined = /*#__PURE__*/ match(constUndefined, identity);\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return isNone(ma) ? false : E.equals(a, ma.value);\n };\n}\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\nexport var exists = function (predicate) {\n return function (ma) {\n return isNone(ma) ? false : predicate(ma.value);\n };\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var o = f(0, _.head(as));\n if (isNone(o)) {\n return none;\n }\n var out = [o.value];\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n if (isNone(o_1)) {\n return none;\n }\n out.push(o_1.value);\n }\n return some(out);\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) {\n return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); });\n};\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `Refinement` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function getRefinement(getOption) {\n return function (a) { return isSome(getOption(a)); };\n}\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var mapNullable = chainNullableK;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `O.Functor` instead of `O.option`\n * (where `O` is from `import O from 'fp-ts/Option'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var option = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n zero: zero,\n alt: _alt,\n extend: _extend,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplySemigroup = /*#__PURE__*/ getApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = /*#__PURE__*/ getApplicativeMonoid(Applicative);\n/**\n * Use\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid<number>()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getFirstMonoid = function () { return getMonoid(first()); };\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid<number>()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getLastMonoid = function () { return getMonoid(last()); };\n","import { ap as ap_ } from './Apply';\nimport * as E from './Either';\nimport { flow, pipe } from './function';\nimport { map as map_ } from './Functor';\nexport function right(F) {\n return flow(E.right, F.of);\n}\nexport function left(F) {\n return flow(E.left, F.of);\n}\nexport function rightF(F) {\n return function (fa) { return F.map(fa, E.right); };\n}\nexport function leftF(F) {\n return function (fe) { return F.map(fe, E.left); };\n}\nexport function fromNullable(F) {\n return function (e) { return flow(E.fromNullable(e), F.of); };\n}\nexport function fromNullableK(F) {\n var fromNullableF = fromNullable(F);\n return function (e) {\n var fromNullableFE = fromNullableF(e);\n return function (f) { return flow(f, fromNullableFE); };\n };\n}\nexport function chainNullableK(M) {\n var chainM = chain(M);\n var fromNullableKM = fromNullableK(M);\n return function (e) {\n var fromNullableKMe = fromNullableKM(e);\n return function (f) { return chainM(fromNullableKMe(f)); };\n };\n}\nexport function map(F) {\n return map_(F, E.Functor);\n}\nexport function ap(F) {\n return ap_(F, E.Apply);\n}\nexport function chain(M) {\n var flatMapM = flatMap(M);\n return function (f) { return function (ma) { return flatMapM(ma, f); }; };\n}\n/** @internal */\nexport function flatMap(M) {\n return function (ma, f) { return M.chain(ma, function (e) { return (E.isLeft(e) ? M.of(e) : f(e.right)); }); };\n}\nexport function alt(M) {\n return function (second) { return function (first) { return M.chain(first, function (e) { return (E.isLeft(e) ? second() : M.of(e)); }); }; };\n}\nexport function bimap(F) {\n var mapBothF = mapBoth(F);\n return function (f, g) { return function (self) { return mapBothF(self, f, g); }; };\n}\n/** @internal */\nexport function mapBoth(F) {\n return function (self, f, g) { return F.map(self, E.bimap(f, g)); };\n}\nexport function mapLeft(F) {\n var mapErrorF = mapError(F);\n return function (f) { return function (self) { return mapErrorF(self, f); }; };\n}\n/** @internal */\nexport function mapError(F) {\n return function (self, f) { return F.map(self, E.mapLeft(f)); };\n}\nexport function altValidation(M, S) {\n return function (second) { return function (first) {\n return M.chain(first, E.match(function (e1) {\n return M.map(second(), E.mapLeft(function (e2) { return S.concat(e1, e2); }));\n }, right(M)));\n }; };\n}\nexport function match(F) {\n return function (onLeft, onRight) { return function (ma) { return F.map(ma, E.match(onLeft, onRight)); }; };\n}\nexport function matchE(M) {\n return function (onLeft, onRight) { return function (ma) { return M.chain(ma, E.match(onLeft, onRight)); }; };\n}\nexport function getOrElse(M) {\n return function (onLeft) { return function (ma) { return M.chain(ma, E.match(onLeft, M.of)); }; };\n}\nexport function orElse(M) {\n return function (onLeft) { return function (ma) { return M.chain(ma, function (e) { return (E.isLeft(e) ? onLeft(e.left) : M.of(e)); }); }; };\n}\nexport function orElseFirst(M) {\n var tapErrorM = tapError(M);\n return function (onLeft) { return function (ma) { return tapErrorM(ma, onLeft); }; };\n}\n/** @internal */\nexport function tapError(M) {\n var orElseM = orElse(M);\n return function (ma, onLeft) {\n return pipe(ma, orElseM(function (e) { return M.map(onLeft(e), function (eb) { return (E.isLeft(eb) ? eb : E.left(e)); }); }));\n };\n}\nexport function orLeft(M) {\n return function (onLeft) { return function (ma) {\n return M.chain(ma, E.match(function (e) { return M.map(onLeft(e), E.left); }, function (a) { return M.of(E.right(a)); }));\n }; };\n}\nexport function swap(F) {\n return function (ma) { return F.map(ma, E.swap); };\n}\nexport function toUnion(F) {\n return function (fa) { return F.map(fa, E.toUnion); };\n}\n/** @deprecated */\n/* istanbul ignore next */\nexport function getEitherM(M) {\n var _ap = ap(M);\n var _map = map(M);\n var _chain = chain(M);\n var _alt = alt(M);\n var _bimap = bimap(M);\n var _mapLeft = mapLeft(M);\n var _fold = matchE(M);\n var _getOrElse = getOrElse(M);\n var _orElse = orElse(M);\n return {\n map: function (fa, f) { return pipe(fa, _map(f)); },\n ap: function (fab, fa) { return pipe(fab, _ap(fa)); },\n of: right(M),\n chain: function (ma, f) { return pipe(ma, _chain(f)); },\n alt: function (fa, that) { return pipe(fa, _alt(that)); },\n bimap: function (fea, f, g) { return pipe(fea, _bimap(f, g)); },\n mapLeft: function (fea, f) { return pipe(fea, _mapLeft(f)); },\n fold: function (fa, onLeft, onRight) { return pipe(fa, _fold(onLeft, onRight)); },\n getOrElse: function (fa, onLeft) { return pipe(fa, _getOrElse(onLeft)); },\n orElse: function (fa, f) { return pipe(fa, _orElse(f)); },\n swap: swap(M),\n rightM: rightF(M),\n leftM: leftF(M),\n left: left(M)\n };\n}\n","/**\n * ```ts\n * interface Task<A> {\n * (): Promise<A>\n * }\n * ```\n *\n * `Task<A>` represents an asynchronous computation that yields a value of type `A` and **never fails**.\n * If you want to represent an asynchronous computation that may fail, please see `TaskEither`.\n *\n * @since 2.0.0\n */\nimport { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO';\nimport { dual, identity, pipe } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.0.0\n */\nexport var fromIO = function (ma) { return function () { return Promise.resolve().then(ma); }; };\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Creates a task that will complete after a time delay\n *\n * @example\n * import { sequenceT } from 'fp-ts/Apply'\n * import * as T from 'fp-ts/Task'\n * import { takeRight } from 'fp-ts/Array'\n *\n * async function test() {\n * const log: Array<string> = []\n * const append = (message: string): T.Task<void> =>\n * T.fromIO(() => {\n * log.push(message)\n * })\n * const fa = append('a')\n * const fb = T.delay(20)(append('b'))\n * const fc = T.delay(10)(append('c'))\n * const fd = append('d')\n * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)()\n * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b'])\n * }\n *\n * test()\n *\n * @since 2.0.0\n */\nexport function delay(millis) {\n return function (ma) { return function () {\n return new Promise(function (resolve) {\n setTimeout(function () {\n Promise.resolve().then(ma).then(resolve);\n }, millis);\n });\n }; };\n}\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _apPar = function (fab, fa) { return pipe(fab, ap(fa)); };\nvar _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) { return function () {\n return Promise.resolve().then(fa).then(f);\n}; }; };\n/**\n * @since 2.0.0\n */\nexport var ap = function (fa) { return function (fab) { return function () {\n return Promise.all([Promise.resolve().then(fab), Promise.resolve().then(fa)]).then(function (_a) {\n var f = _a[0], a = _a[1];\n return f(a);\n });\n}; }; };\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var of = function (a) { return function () { return Promise.resolve(a); }; };\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) {\n return function () {\n return Promise.resolve()\n .then(ma)\n .then(function (a) { return f(a)(); });\n };\n});\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = /*#__PURE__*/ flatMap(identity);\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Task';\n/**\n * Monoid returning the first completed task.\n *\n * Note: uses `Promise.race` internally.\n *\n * @example\n * import * as T from 'fp-ts/Task'\n *\n * async function test() {\n * const S = T.getRaceMonoid<string>()\n * const fa = T.delay(20)(T.of('a'))\n * const fb = T.delay(10)(T.of('b'))\n * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b')\n * }\n *\n * test()\n *\n * @category instances\n * @since 2.0.0\n */\nexport function getRaceMonoid() {\n return {\n concat: function (x, y) { return function () { return Promise.race([Promise.resolve().then(x), Promise.resolve().then(y)]); }; },\n empty: never\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the value to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the value to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.10.0\n */\nexport var ApplyPar = {\n URI: URI,\n map: _map,\n ap: _apPar\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(ApplyPar);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(ApplyPar);\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.7.0\n */\nexport var ApplicativePar = {\n URI: URI,\n map: _map,\n ap: _apPar,\n of: of\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.10.0\n */\nexport var ApplySeq = {\n URI: URI,\n map: _map,\n ap: _apSeq\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.7.0\n */\nexport var ApplicativeSeq = {\n URI: URI,\n map: _map,\n ap: _apSeq,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var MonadIO = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: flatMap,\n fromIO: fromIO\n};\n/**\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexport var fromTask = identity;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var MonadTask = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: flatMap,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromIO = {\n URI: URI,\n fromIO: fromIO\n};\n/** @internal */\nvar _FlatMap = {\n flatMap: flatMap\n};\n/** @internal */\nvar _FromIO = {\n fromIO: FromIO.fromIO\n};\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexport var flatMapIO = _.flatMapIO(_FromIO, _FlatMap);\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as T from 'fp-ts/Task'\n * import * as Console from 'fp-ts/Console'\n *\n * // Will produce `Hello, fp-ts` to the stdout\n * const effect = pipe(\n * T.of('fp-ts'),\n * T.tapIO((value) => Console.log(`Hello, ${value}`)),\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await effect(), 'fp-ts')\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain));\n/**\n * @category lifting\n * @since 2.4.0\n */\nexport var fromIOK = \n/*#__PURE__*/ fromIOK_(FromIO);\n/**\n * Alias of `flatMapIO`.\n *\n * @category legacy\n * @since 2.4.0\n */\nexport var chainIOK = flatMapIO;\n/**\n * Alias of `tapIO`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var chainFirstIOK = tapIO;\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromTask = {\n URI: URI,\n fromIO: fromIO,\n fromTask: fromTask\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * A `Task` that never completes.\n *\n * @since 2.0.0\n */\nexport var never = function () { return new Promise(function (_) { return undefined; }); };\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(ApplyPar);\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n return function () {\n return Promise.all(as.map(function (a, i) { return Promise.resolve().then(function () { return f(i, a)(); }); }));\n };\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) {\n return function (as) {\n return function () {\n return _.tail(as).reduce(function (acc, a, i) {\n return acc.then(function (bs) {\n return Promise.resolve()\n .then(f(i + 1, a))\n .then(function (b) {\n bs.push(b);\n return bs;\n });\n });\n }, Promise.resolve()\n .then(f(0, _.head(as)))\n .then(_.singleton));\n };\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndexSeq = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) {\n return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); });\n};\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseSeqArray = function (f) {\n return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); });\n};\n/**\n * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceSeqArray = \n/*#__PURE__*/ traverseSeqArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.task`\n * (where `T` is from `import T from 'fp-ts/Task'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var task = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: flatMap,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.taskSeq`\n * (where `T` is from `import T from 'fp-ts/Task'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var taskSeq = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apSeq,\n chain: flatMap,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getSemigroup = /*#__PURE__*/ getApplySemigroup_(ApplySeq);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getMonoid = /*#__PURE__*/ getApplicativeMonoid(ApplicativeSeq);\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { getApplicativeMonoid } from './Applicative';\nimport { ap as ap_, apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport * as chainable from './Chain';\nimport { compact as compact_, separate as separate_ } from './Compactable';\nimport * as E from './Either';\nimport * as ET from './EitherT';\nimport { filter as filter_, filterMap as filterMap_, partition as partition_, partitionMap as partitionMap_ } from './Filterable';\nimport { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromEitherK as fromEitherK_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_, tapEither as tapEither_ } from './FromEither';\nimport { fromIOK as fromIOK_, tapIO as tapIO_ } from './FromIO';\nimport { fromTaskK as fromTaskK_, tapTask as tapTask_ } from './FromTask';\nimport { dual, flow, identity, pipe, SK } from './function';\nimport { as as as_, asUnit as asUnit_, bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport * as T from './Task';\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var left = /*#__PURE__*/ ET.left(T.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var right = /*#__PURE__*/ ET.right(T.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var rightTask = /*#__PURE__*/ ET.rightF(T.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var leftTask = /*#__PURE__*/ ET.leftF(T.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var rightIO = /*#__PURE__*/ flow(T.fromIO, rightTask);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var leftIO = /*#__PURE__*/ flow(T.fromIO, leftTask);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.7.0\n */\nexport var fromIO = rightIO;\n/**\n * @category conversions\n * @since 2.7.0\n */\nexport var fromTask = rightTask;\n/**\n * @category conversions\n * @since 2.0.0\n */\nexport var fromEither = T.of;\n/**\n * @category conversions\n * @since 2.0.0\n */\nexport var fromIOEither = T.fromIO;\n/**\n * @category conversions\n * @since 2.11.0\n */\nexport var fromTaskOption = function (onNone) {\n return T.map(E.fromOption(onNone));\n};\n/**\n * @category pattern matching\n * @since 2.10.0\n */\nexport var match = \n/*#__PURE__*/ ET.match(T.Functor);\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchW = match;\n/**\n * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchE = /*#__PURE__*/ ET.matchE(T.Monad);\n/**\n * Alias of [`matchE`](#matche).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var fold = matchE;\n/**\n * Less strict version of [`matchE`](#matche).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchEW = matchE;\n/**\n * Alias of [`matchEW`](#matchew).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var foldW = matchEW;\n/**\n * @category error handling\n * @since 2.0.0\n */\nexport var getOrElse = \n/*#__PURE__*/ ET.getOrElse(T.Monad);\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexport var getOrElseW = getOrElse;\n/**\n * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { left, right } from 'fp-ts/Either'\n * import { tryCatch } from 'fp-ts/TaskEither'\n *\n * tryCatch(() => Promise.resolve(1), String)().then(result => {\n * assert.deepStrictEqual(result, right(1))\n * })\n * tryCatch(() => Promise.reject('error'), String)().then(result => {\n * assert.deepStrictEqual(result, left('error'))\n * })\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f, onRejected) {\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var reason_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, f().then(_.right)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n reason_1 = _a.sent();\n return [2 /*return*/, _.left(onRejected(reason_1))];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n};\n/**\n * Converts a function returning a `Promise` to one returning a `TaskEither`.\n *\n * @category interop\n * @since 2.5.0\n */\nexport var tryCatchK = function (f, onRejected) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () { return f.apply(void 0, a); }, onRejected);\n };\n};\n/**\n * @category conversions\n * @since 2.10.0\n */\nexport var toUnion = /*#__PURE__*/ ET.toUnion(T.Functor);\n/**\n * @category conversions\n * @since 2.12.0\n */\nexport var fromNullable = /*#__PURE__*/ ET.fromNullable(T.Pointed);\n/**\n * Use `liftNullable`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var fromNullableK = /*#__PURE__*/ ET.fromNullableK(T.Pointed);\n/**\n * Use `flatMapNullable`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var chainNullableK = \n/*#__PURE__*/ ET.chainNullableK(T.Monad);\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise.\n *\n * See also [alt](#alt).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * async function test() {\n * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`))\n * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok'))\n * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...'))\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var orElse = \n/*#__PURE__*/ ET.orElse(T.Monad);\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nexport var orElseW = orElse;\n/**\n * Returns an effect that effectfully \"peeks\" at the failure of this effect.\n *\n * @category error handling\n * @since 2.15.0\n */\nexport var tapError = /*#__PURE__*/ dual(2, ET.tapError(T.Monad));\n/**\n * @category error handling\n * @since 2.12.0\n */\nexport var orElseFirstIOK = function (onLeft) { return tapError(fromIOK(onLeft)); };\n/**\n * @category error handling\n * @since 2.12.0\n */\nexport var orElseFirstTaskK = function (onLeft) { return tapError(fromTaskK(onLeft)); };\n/**\n * @category error handling\n * @since 2.11.0\n */\nexport var orLeft = \n/*#__PURE__*/ ET.orLeft(T.Monad);\n/**\n * @since 2.0.0\n */\nexport var swap = /*#__PURE__*/ ET.swap(T.Functor);\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromTaskOptionK = function (onNone) {\n var from = fromTaskOption(onNone);\n return function (f) { return flow(f, from); };\n};\n/**\n * Use `flatMapTaskOption`.\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category legacy\n * @since 2.12.3\n */\nexport var chainTaskOptionKW = function (onNone) {\n return function (f) {\n return function (ma) {\n return flatMap(ma, fromTaskOptionK(onNone)(f));\n };\n };\n};\n/**\n * Use `flatMapTaskOption`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexport var chainTaskOptionK = chainTaskOptionKW;\n/**\n * @category lifting\n * @since 2.4.0\n */\nexport var fromIOEitherK = function (f) { return flow(f, fromIOEither); };\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _apPar = function (fab, fa) { return pipe(fab, ap(fa)); };\nvar _apSeq = function (fab, fa) { return flatMap(fab, function (f) { return pipe(fa, map(f)); }); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nexport var map = /*#__PURE__*/ ET.map(T.Functor);\n/**\n * Returns a `TaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`.\n *\n * @example\n * import * as TaskEither from 'fp-ts/TaskEither'\n * import * as Either from 'fp-ts/Either'\n *\n * const f = (s: string) => new Error(s)\n * const g = (n: number) => n * 2\n *\n * async function test() {\n * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.right(1), f, g)(), Either.right(2))\n * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.left('err'), f, g)(), Either.left(new Error('err')))\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.16.0\n */\nexport var mapBoth = /*#__PURE__*/ dual(3, ET.mapBoth(T.Functor));\n/**\n * Alias of `mapBoth`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var bimap = mapBoth;\n/**\n * Returns a `TaskEither` with its error channel mapped using the specified function.\n *\n * @example\n * import * as TaskEither from 'fp-ts/TaskEither'\n * import * as Either from 'fp-ts/Either'\n *\n * const f = (s: string) => new Error(s)\n *\n * async function test() {\n * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.right(1), f)(), Either.right(1))\n * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.left('err'), f)(), Either.left(new Error('err')))\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.16.0\n */\nexport var mapError = /*#__PURE__*/ dual(2, ET.mapError(T.Functor));\n/**\n * Alias of `mapError`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var mapLeft = mapError;\n/**\n * @since 2.0.0\n */\nexport var ap = \n/*#__PURE__*/ ET.ap(T.ApplyPar);\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nexport var apW = ap;\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, ET.flatMap(T.Monad));\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexport var flattenW = \n/*#__PURE__*/ flatMap(identity);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexport var flatten = flattenW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise.\n *\n * See also [orElse](#orelse).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * TE.right(1),\n * TE.alt(() => TE.right(2))\n * )(),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * await pipe(\n * TE.left('a'),\n * TE.alt(() => TE.right(2))\n * )(),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * await pipe(\n * TE.left('a'),\n * TE.alt(() => TE.left('b'))\n * )(),\n * E.left('b')\n * )\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var alt = \n/*#__PURE__*/ ET.alt(T.Monad);\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nexport var altW = alt;\n/**\n * @category constructors\n * @since 2.0.0\n */\nexport var of = right;\n/**\n * @since 2.7.0\n */\nexport var throwError = left;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'TaskEither';\n/**\n * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n * import * as T from 'fp-ts/Task'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * interface User {\n * readonly id: string\n * readonly name: string\n * }\n *\n * const remoteDatabase: ReadonlyArray<User> = [\n * { id: 'id1', name: 'John' },\n * { id: 'id2', name: 'Mary' },\n * { id: 'id3', name: 'Joey' }\n * ]\n *\n * const fetchUser = (id: string): TE.TaskEither<string, User> =>\n * pipe(\n * remoteDatabase,\n * RA.findFirst((user) => user.id === id),\n * TE.fromOption(() => `${id} not found`)\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(['id4', 'id5'], RA.traverse(TE.ApplicativePar)(fetchUser))(),\n * E.left('id4 not found') // <= first error\n * )\n *\n * const Applicative = TE.getApplicativeTaskValidation(\n * T.ApplyPar,\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * assert.deepStrictEqual(\n * await pipe(['id4', 'id5'], RA.traverse(Applicative)(fetchUser))(),\n * E.left('id4 not found, id5 not found') // <= all errors\n * )\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.7.0\n */\nexport function getApplicativeTaskValidation(A, S) {\n var ap = ap_(A, E.getApplicativeValidation(S));\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) { return pipe(fab, ap(fa)); },\n of: of\n };\n}\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * See [`getAltValidation`](./Either.ts.html#getaltvalidation).\n *\n * @category error handling\n * @since 2.7.0\n */\nexport function getAltTaskValidation(S) {\n var alt = ET.altValidation(T.Monad, S);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function (fa, that) { return pipe(fa, alt(that)); }\n };\n}\n/**\n * @category filtering\n * @since 2.10.0\n */\nexport var getCompactable = function (M) {\n var C = E.getCompactable(M);\n return {\n URI: URI,\n _E: undefined,\n compact: compact_(T.Functor, C),\n separate: separate_(T.Functor, C, E.Functor)\n };\n};\n/**\n * @category filtering\n * @since 2.1.0\n */\nexport function getFilterable(M) {\n var F = E.getFilterable(M);\n var C = getCompactable(M);\n var filter = filter_(T.Functor, F);\n var filterMap = filterMap_(T.Functor, F);\n var partition = partition_(T.Functor, F);\n var partitionMap = partitionMap_(T.Functor, F);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: C.compact,\n separate: C.separate,\n filter: function (fa, predicate) { return pipe(fa, filter(predicate)); },\n filterMap: function (fa, f) { return pipe(fa, filterMap(f)); },\n partition: function (fa, predicate) { return pipe(fa, partition(predicate)); },\n partitionMap: function (fa, f) { return pipe(fa, partitionMap(f)); }\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Maps the `Right` value of this `TaskEither` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var as = dual(2, as_(Functor));\n/**\n * Maps the `Right` value of this `TaskEither` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexport var asUnit = asUnit_(Functor);\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.10.0\n */\nexport var ApplyPar = {\n URI: URI,\n map: _map,\n ap: _apPar\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(ApplyPar);\n/**\n * Less strict version of [`apFirst`](#apfirst).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var apFirstW = apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(ApplyPar);\n/**\n * Less strict version of [`apSecond`](#apsecond).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var apSecondW = apSecond;\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.7.0\n */\nexport var ApplicativePar = {\n URI: URI,\n map: _map,\n ap: _apPar,\n of: of\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.10.0\n */\nexport var ApplySeq = {\n URI: URI,\n map: _map,\n ap: _apSeq\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.7.0\n */\nexport var ApplicativeSeq = {\n URI: URI,\n map: _map,\n ap: _apSeq,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: flatMap,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var MonadIO = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: flatMap,\n of: of,\n fromIO: fromIO\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var MonadTask = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: flatMap,\n of: of,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: flatMap,\n of: of,\n throwError: throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromIO = {\n URI: URI,\n fromIO: fromIO\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromTask = {\n URI: URI,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexport var tap = /*#__PURE__*/ dual(2, chainable.tap(Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * const checkString = (value: string) => pipe(\n * TE.of(value),\n * TE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error'))\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await checkString('')(), E.left('error'))\n * assert.deepStrictEqual(await checkString('fp-ts')(), E.right('fp-ts'))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapEither = /*#__PURE__*/ dual(2, tapEither_(FromEither, Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n * import * as E from 'fp-ts/Either'\n * import * as Console from 'fp-ts/Console'\n *\n *\n * // Will produce `Hello, fp-ts` to the stdout\n * const effectA = TE.tapIO(\n * TE.of(1),\n * (value) => Console.log(`Hello, ${value}`)\n * )\n *\n * // No output to the stdout\n * const effectB = pipe(\n * TE.left('error'),\n * TE.tapIO((value) => Console.log(`Hello, ${value}`))\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await effectA(), E.of(1))\n * assert.deepStrictEqual(await effectB(), E.left('error'))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapIO = /*#__PURE__*/ dual(2, tapIO_(FromIO, Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as TE from 'fp-ts/TaskEither'\n * import * as T from 'fp-ts/Task'\n * import * as E from 'fp-ts/Either'\n *\n *\n * const effect = TE.tapIO(\n * TE.of(1),\n * (value) => T.of(value + 1)\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await effect(), E.of(1))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexport var tapTask = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain));\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Bifunctor = {\n URI: URI,\n bimap: mapBoth,\n mapLeft: mapError\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category conversions\n * @since 2.0.0\n */\nexport var fromOption = \n/*#__PURE__*/ fromOption_(FromEither);\n/**\n * Use `liftOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var fromOptionK = \n/*#__PURE__*/ fromOptionK_(FromEither);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var chainOptionK = /*#__PURE__*/ chainOptionK_(FromEither, Chain);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.13.2\n */\nexport var chainOptionKW = \n/*#__PURE__*/ chainOptionK;\n/** @internal */\nvar _FromEither = {\n fromEither: FromEither.fromEither\n};\n/**\n * @category lifting\n * @since 2.15.0\n */\nexport var liftNullable = /*#__PURE__*/ _.liftNullable(_FromEither);\n/**\n * @category lifting\n * @since 2.15.0\n */\nexport var liftOption = /*#__PURE__*/ _.liftOption(_FromEither);\n/** @internal */\nvar _FlatMap = {\n flatMap: flatMap\n};\n/** @internal */\nvar _FromIO = {\n fromIO: FromIO.fromIO\n};\n/** @internal */\nvar _FromTask = {\n fromTask: fromTask\n};\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapNullable = /*#__PURE__*/ _.flatMapNullable(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapOption = /*#__PURE__*/ _.flatMapOption(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapEither = /*#__PURE__*/ _.flatMapEither(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexport var flatMapIO = /*#__PURE__*/ _.flatMapIO(_FromIO, _FlatMap);\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexport var flatMapTask = /*#__PURE__*/ _.flatMapTask(_FromTask, _FlatMap);\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexport var flatMapIOEither = /*#__PURE__*/ dual(2, function (self, f) {\n return flatMap(self, fromIOEitherK(f));\n});\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexport var flatMapTaskOption = /*#__PURE__*/ dual(3, function (self, f, onNone) {\n return flatMap(self, function (a) { return fromTaskOption(function () { return onNone(a); })(f(a)); });\n});\n/**\n * Alias of `flatMapEither`.\n *\n * @category legacy\n * @since 2.4.0\n */\nexport var chainEitherK = flatMapEither;\n/**\n * Alias of `flatMapEither`.\n *\n * @category legacy\n * @since 2.6.1\n */\nexport var chainEitherKW = flatMapEither;\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var chainFirstEitherK = tapEither;\n/**\n * Alias of `tapEither`.\n *\n * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category legacy\n * @since 2.12.0\n */\nexport var chainFirstEitherKW = tapEither;\n/**\n * @category lifting\n * @since 2.0.0\n */\nexport var fromPredicate = /*#__PURE__*/ fromPredicate_(FromEither);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexport var filterOrElse = /*#__PURE__*/ filterOrElse_(FromEither, Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexport var filterOrElseW = filterOrElse;\n/**\n * @category lifting\n * @since 2.4.0\n */\nexport var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);\n/**\n * @category lifting\n * @since 2.10.0\n */\nexport var fromIOK = /*#__PURE__*/ fromIOK_(FromIO);\n/**\n * Alias of `flatMapIO`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var chainIOK = flatMapIO;\n/**\n * Alias of `tapIO`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var chainFirstIOK = tapIO;\n/**\n * @category lifting\n * @since 2.10.0\n */\nexport var fromTaskK = /*#__PURE__*/ fromTaskK_(FromTask);\n/**\n * Alias of `flatMapTask`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var chainTaskK = flatMapTask;\n/**\n * Alias of `tapTask`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexport var chainFirstTaskK = tapTask;\n/**\n * Alias of `flatMapIOEither`.\n *\n * Less strict version of [`chainIOEitherK`](#chainioeitherk).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category legacy\n * @since 2.6.1\n */\nexport var chainIOEitherKW = flatMapIOEither;\n/**\n * Alias of `flatMapIOEither`.\n *\n * @category legacy\n * @since 2.4.0\n */\nexport var chainIOEitherK = flatMapIOEither;\nexport function taskify(f) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return function () {\n return new Promise(function (resolve) {\n var cbResolver = function (e, r) { return (e != null ? resolve(_.left(e)) : resolve(_.right(r))); };\n f.apply(null, args.concat(cbResolver));\n });\n };\n };\n}\n/**\n * Make sure that a resource is cleaned up in the event of an exception (\\*). The release action is called regardless of\n * whether the body action throws (\\*) or returns.\n *\n * (\\*) i.e. returns a `Left`\n *\n * @since 2.0.0\n */\nexport var bracket = function (acquire, use, release) { return bracketW(acquire, use, release); };\n/**\n * Less strict version of [`bracket`](#bracket).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexport var bracketW = function (acquire, use, release) {\n return flatMap(acquire, function (a) { return T.flatMap(use(a), function (e) { return flatMap(release(a, e), function () { return T.of(e); }); }); });\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ chainable.bind(Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexport var bindW = bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(ApplyPar);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexport var apSW = apS;\n/**\n * @since 2.11.0\n */\nexport var ApT = /*#__PURE__*/ of(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return flow(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(E.traverseReadonlyNonEmptyArrayWithIndex(SK)));\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndex = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndex(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) {\n return function (as) {\n return function () {\n return _.tail(as).reduce(function (acc, a, i) {\n return acc.then(function (ebs) {\n return _.isLeft(ebs)\n ? acc\n : f(i + 1, a)().then(function (eb) {\n if (_.isLeft(eb)) {\n return eb;\n }\n ebs.right.push(eb.right);\n return ebs;\n });\n });\n }, f(0, _.head(as))().then(E.map(_.singleton)));\n };\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nexport var traverseReadonlyArrayWithIndexSeq = function (f) {\n var g = traverseReadonlyNonEmptyArrayWithIndexSeq(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };\n};\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); };\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceArray = \n/*#__PURE__*/ traverseArray(identity);\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseSeqArrayWithIndex = traverseReadonlyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var traverseSeqArray = function (f) { return traverseReadonlyArrayWithIndexSeq(function (_, a) { return f(a); }); };\n/**\n * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexport var sequenceSeqArray = \n/*#__PURE__*/ traverseSeqArray(identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.6.0\n */\nexport var chainW = flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chainFirst = tap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.8.0\n */\nexport var chainFirstW = tap;\n/**\n * Alias of `tapError`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexport var orElseFirst = tapError;\n/**\n * Alias of `tapError`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexport var orElseFirstW = tapError;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEither`\n * (where `TE` is from `import TE from 'fp-ts/TaskEither'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var taskEither = {\n URI: URI,\n bimap: mapBoth,\n mapLeft: mapError,\n map: _map,\n of: of,\n ap: _apPar,\n chain: flatMap,\n alt: _alt,\n fromIO: fromIO,\n fromTask: fromTask,\n throwError: throwError\n};\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEitherSeq`\n * (where `TE` is from `import TE from 'fp-ts/TaskEither'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var taskEitherSeq = {\n URI: URI,\n bimap: mapBoth,\n mapLeft: mapError,\n map: _map,\n of: of,\n ap: _apSeq,\n chain: flatMap,\n alt: _alt,\n fromIO: fromIO,\n fromTask: fromTask,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplySemigroup = \n/*#__PURE__*/ getApplySemigroup_(ApplySeq);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = \n/*#__PURE__*/ getApplicativeMonoid(ApplicativeSeq);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var getSemigroup = function (S) {\n return getApplySemigroup_(T.ApplySeq)(E.getSemigroup(S));\n};\n/**\n * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport function getTaskValidation(SE) {\n var applicativeTaskValidation = getApplicativeTaskValidation(T.ApplicativePar, SE);\n var altTaskValidation = getAltTaskValidation(SE);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: applicativeTaskValidation.ap,\n of: of,\n chain: flatMap,\n bimap: mapBoth,\n mapLeft: mapError,\n alt: altTaskValidation.alt,\n fromIO: fromIO,\n fromTask: fromTask,\n throwError: throwError\n };\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCompactableComposition = exports.separate = exports.compact = void 0;\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar Option_1 = require(\"./Option\");\nvar S = __importStar(require(\"./Separated\"));\nfunction compact(F, G) {\n return function (fga) { return F.map(fga, G.compact); };\n}\nexports.compact = compact;\nfunction separate(F, C, G) {\n var _compact = compact(F, C);\n var _map = (0, Functor_1.map)(F, G);\n return function (fge) { return S.separated(_compact((0, function_1.pipe)(fge, _map(Option_1.getLeft))), _compact((0, function_1.pipe)(fge, _map(Option_1.getRight)))); };\n}\nexports.separate = separate;\n/** @deprecated */\nfunction getCompactableComposition(F, G) {\n var map = (0, Functor_1.getFunctorComposition)(F, G).map;\n return {\n map: map,\n compact: compact(F, G),\n separate: separate(F, G, G)\n };\n}\nexports.getCompactableComposition = getCompactableComposition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tailRec = void 0;\n/**\n * @since 2.0.0\n */\nvar tailRec = function (startWith, f) {\n var ab = f(startWith);\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n return ab.right;\n};\nexports.tailRec = tailRec;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.match = exports.foldW = exports.matchW = exports.isRight = exports.isLeft = exports.fromOption = exports.fromPredicate = exports.FromEither = exports.MonadThrow = exports.throwError = exports.ChainRec = exports.Extend = exports.extend = exports.Alt = exports.alt = exports.altW = exports.Bifunctor = exports.mapLeft = exports.bimap = exports.Traversable = exports.sequence = exports.traverse = exports.Foldable = exports.reduceRight = exports.foldMap = exports.reduce = exports.Monad = exports.Chain = exports.Applicative = exports.Apply = exports.ap = exports.apW = exports.Pointed = exports.of = exports.asUnit = exports.as = exports.Functor = exports.map = exports.getAltValidation = exports.getApplicativeValidation = exports.getWitherable = exports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.URI = exports.flatMap = exports.right = exports.left = void 0;\nexports.chainFirstW = exports.chainFirst = exports.chain = exports.chainW = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toError = exports.toUnion = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.orElse = exports.orElseW = exports.swap = exports.filterOrElseW = exports.filterOrElse = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.duplicate = exports.flatten = exports.flattenW = exports.tap = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.flap = exports.getOrElse = exports.getOrElseW = exports.fold = void 0;\nexports.getValidation = exports.getValidationMonoid = exports.getValidationSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.either = exports.stringifyJSON = exports.parseJSON = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar chainable = __importStar(require(\"./Chain\"));\nvar ChainRec_1 = require(\"./ChainRec\");\nvar FromEither_1 = require(\"./FromEither\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Separated_1 = require(\"./Separated\");\nvar Witherable_1 = require(\"./Witherable\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.left = _.left;\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexports.right = _.right;\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) { return ((0, exports.isLeft)(ma) ? ma : f(ma.right)); });\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _ap = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduce)(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) { return function (fa, f) {\n var foldMapM = (0, exports.foldMap)(M);\n return (0, function_1.pipe)(fa, foldMapM(f));\n}; };\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return (0, function_1.pipe)(fa, (0, exports.reduceRight)(b, f)); };\nvar _traverse = function (F) {\n var traverseF = (0, exports.traverse)(F);\n return function (ta, f) { return (0, function_1.pipe)(ta, traverseF(f)); };\n};\nvar _bimap = function (fa, f, g) { return (0, function_1.pipe)(fa, (0, exports.bimap)(f, g)); };\nvar _mapLeft = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.mapLeft)(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/* istanbul ignore next */\nvar _extend = function (wa, f) { return (0, function_1.pipe)(wa, (0, exports.extend)(f)); };\nvar _chainRec = function (a, f) {\n return (0, ChainRec_1.tailRec)(f(a), function (e) {\n return (0, exports.isLeft)(e) ? (0, exports.right)((0, exports.left)(e.left)) : (0, exports.isLeft)(e.right) ? (0, exports.left)(f(e.right.left)) : (0, exports.right)((0, exports.right)(e.right.right));\n });\n};\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getShow = function (SE, SA) { return ({\n show: function (ma) { return ((0, exports.isLeft)(ma) ? \"left(\".concat(SE.show(ma.left), \")\") : \"right(\".concat(SA.show(ma.right), \")\")); }\n}); };\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.0.0\n */\nvar getEq = function (EL, EA) { return ({\n equals: function (x, y) {\n return x === y || ((0, exports.isLeft)(x) ? (0, exports.isLeft)(y) && EL.equals(x.left, y.left) : (0, exports.isRight)(y) && EA.equals(x.right, y.right));\n }\n}); };\nexports.getEq = getEq;\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup<string, number>(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\nvar getSemigroup = function (S) { return ({\n concat: function (x, y) { return ((0, exports.isLeft)(y) ? x : (0, exports.isLeft)(x) ? y : (0, exports.right)(S.concat(x.right, y.right))); }\n}); };\nexports.getSemigroup = getSemigroup;\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category filtering\n * @since 2.10.0\n */\nvar getCompactable = function (M) {\n var empty = (0, exports.left)(M.empty);\n return {\n URI: exports.URI,\n _E: undefined,\n compact: function (ma) { return ((0, exports.isLeft)(ma) ? ma : ma.right._tag === 'None' ? empty : (0, exports.right)(ma.right.value)); },\n separate: function (ma) {\n return (0, exports.isLeft)(ma)\n ? (0, Separated_1.separated)(ma, ma)\n : (0, exports.isLeft)(ma.right)\n ? (0, Separated_1.separated)((0, exports.right)(ma.right.left), empty)\n : (0, Separated_1.separated)(empty, (0, exports.right)(ma.right.right));\n }\n };\n};\nexports.getCompactable = getCompactable;\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.10.0\n */\nvar getFilterable = function (M) {\n var empty = (0, exports.left)(M.empty);\n var _a = (0, exports.getCompactable)(M), compact = _a.compact, separate = _a.separate;\n var filter = function (ma, predicate) {\n return (0, exports.isLeft)(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return (0, exports.isLeft)(ma)\n ? (0, Separated_1.separated)(ma, ma)\n : p(ma.right)\n ? (0, Separated_1.separated)(empty, (0, exports.right)(ma.right))\n : (0, Separated_1.separated)((0, exports.right)(ma.right), empty);\n };\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if ((0, exports.isLeft)(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : (0, exports.right)(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if ((0, exports.isLeft)(ma)) {\n return (0, Separated_1.separated)(ma, ma);\n }\n var e = f(ma.right);\n return (0, exports.isLeft)(e) ? (0, Separated_1.separated)((0, exports.right)(e.left), empty) : (0, Separated_1.separated)(empty, (0, exports.right)(e.right));\n }\n };\n};\nexports.getFilterable = getFilterable;\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category filtering\n * @since 2.0.0\n */\nvar getWitherable = function (M) {\n var F_ = (0, exports.getFilterable)(M);\n var C = (0, exports.getCompactable)(M);\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: F_.compact,\n separate: F_.separate,\n filter: F_.filter,\n filterMap: F_.filterMap,\n partition: F_.partition,\n partitionMap: F_.partitionMap,\n traverse: _traverse,\n sequence: exports.sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: (0, Witherable_1.witherDefault)(exports.Traversable, C),\n wilt: (0, Witherable_1.wiltDefault)(exports.Traversable, C)\n };\n};\nexports.getWitherable = getWitherable;\n/**\n * The default [`Applicative`](#applicative) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as A from 'fp-ts/Apply'\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either<string, string> =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either<string, number> =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n *\n * const parsePerson = (\n * input: Record<string, unknown>\n * ): E.Either<string, Person> =>\n * pipe(\n * E.Do,\n * E.apS('name', parseString(input.name)),\n * E.apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePerson({}), E.left('not a string')) // <= first error\n *\n * const Applicative = E.getApplicativeValidation(\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * const apS = A.apS(Applicative)\n *\n * const parsePersonAll = (\n * input: Record<string, unknown>\n * ): E.Either<string, Person> =>\n * pipe(\n * E.Do,\n * apS('name', parseString(input.name)),\n * apS('age', parseNumber(input.age))\n * )\n *\n * assert.deepStrictEqual(parsePersonAll({}), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nvar getApplicativeValidation = function (SE) { return ({\n URI: exports.URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) {\n return (0, exports.isLeft)(fab)\n ? (0, exports.isLeft)(fa)\n ? (0, exports.left)(SE.concat(fab.left, fa.left))\n : fab\n : (0, exports.isLeft)(fa)\n ? fa\n : (0, exports.right)(fab.right(fa.right));\n },\n of: exports.of\n}); };\nexports.getApplicativeValidation = getApplicativeValidation;\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n *\n * const parseString = (u: unknown): E.Either<string, string> =>\n * typeof u === 'string' ? E.right(u) : E.left('not a string')\n *\n * const parseNumber = (u: unknown): E.Either<string, number> =>\n * typeof u === 'number' ? E.right(u) : E.left('not a number')\n *\n * const parse = (u: unknown): E.Either<string, string | number> =>\n * pipe(\n * parseString(u),\n * E.alt<string, string | number>(() => parseNumber(u))\n * )\n *\n * assert.deepStrictEqual(parse(true), E.left('not a number')) // <= last error\n *\n * const Alt = E.getAltValidation(pipe(string.Semigroup, S.intercalate(', ')))\n *\n * const parseAll = (u: unknown): E.Either<string, string | number> =>\n * Alt.alt<string | number>(parseString(u), () => parseNumber(u))\n *\n * assert.deepStrictEqual(parseAll(true), E.left('not a string, not a number')) // <= all errors\n *\n * @category error handling\n * @since 2.7.0\n */\nvar getAltValidation = function (SE) { return ({\n URI: exports.URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if ((0, exports.isRight)(me)) {\n return me;\n }\n var ea = that();\n return (0, exports.isLeft)(ea) ? (0, exports.left)(SE.concat(me.left, ea.left)) : ea;\n }\n}); };\nexports.getAltValidation = getAltValidation;\n/**\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? fa : (0, exports.right)(f(fa.right));\n}; };\nexports.map = map;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Maps the `Right` value of this `Either` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor));\n/**\n * Maps the `Right` value of this `Either` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.asUnit = (0, Functor_1.asUnit)(exports.Functor);\n/**\n * @category constructors\n * @since 2.7.0\n */\nexports.of = exports.right;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nvar apW = function (fa) { return function (fab) {\n return (0, exports.isLeft)(fab) ? fab : (0, exports.isLeft)(fa) ? fa : (0, exports.right)(fab.right(fa.right));\n}; };\nexports.apW = apW;\n/**\n * @since 2.0.0\n */\nexports.ap = exports.apW;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap\n};\n/**\n * Left-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'prefix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduce(startWith, concat)),\n * 'prefix:a'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduce(startWith, concat)),\n * 'prefix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar reduce = function (b, f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? b : f(b, fa.right);\n}; };\nexports.reduce = reduce;\n/**\n * Map each element of the structure to a monoid, and combine the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as S from 'fp-ts/string'\n *\n * const yell = (a: string) => `${a}!`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),\n * 'a!'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),\n * S.Monoid.empty\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar foldMap = function (M) { return function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? M.empty : f(fa.right);\n}; }; };\nexports.foldMap = foldMap;\n/**\n * Right-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'postfix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduceRight(startWith, concat)),\n * 'a:postfix'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduceRight(startWith, concat)),\n * 'postfix'\n * )\n *\n * @category folding\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? b : f(fa.right, b);\n}; };\nexports.reduceRight = reduceRight;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return (0, exports.isLeft)(ta) ? F.of((0, exports.left)(ta.left)) : F.map(f(ta.right), exports.right);\n };\n };\n};\nexports.traverse = traverse;\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category traversing\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? F.of((0, exports.left)(ma.left)) : F.map(ma.right, exports.right);\n };\n};\nexports.sequence = sequence;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar bimap = function (f, g) { return function (fa) {\n return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : (0, exports.right)(g(fa.right));\n}; };\nexports.bimap = bimap;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category error handling\n * @since 2.0.0\n */\nvar mapLeft = function (f) { return function (fa) {\n return (0, exports.isLeft)(fa) ? (0, exports.left)(f(fa.left)) : fa;\n}; };\nexports.mapLeft = mapLeft;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nvar altW = function (that) { return function (fa) {\n return (0, exports.isLeft)(fa) ? that() : fa;\n}; };\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Either` returns the left-most non-`Left` value (or the right-most `Left` value if both values are `Left`).\n *\n * | x | y | pipe(x, alt(() => y) |\n * | -------- | -------- | -------------------- |\n * | left(a) | left(b) | left(b) |\n * | left(a) | right(2) | right(2) |\n * | right(1) | left(b) | right(1) |\n * | right(1) | right(2) | right(1) |\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.left('b'))\n * ),\n * E.left('b')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.alt(() => E.right(2))\n * ),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.left('b'))\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.alt(() => E.right(2))\n * ),\n * E.right(1)\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @since 2.0.0\n */\nvar extend = function (f) { return function (wa) {\n return (0, exports.isLeft)(wa) ? wa : (0, exports.right)(f(wa));\n}; };\nexports.extend = extend;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.ChainRec = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: exports.flatMap,\n chainRec: _chainRec\n};\n/**\n * @since 2.6.3\n */\nexports.throwError = exports.left;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: exports.flatMap,\n throwError: exports.throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: function_1.identity\n};\n/**\n * @example\n * import { fromPredicate, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * 1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * -1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n *\n * @category lifting\n * @since 2.0.0\n */\nexports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some(1),\n * E.fromOption(() => 'error')\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * E.fromOption(() => 'error')\n * ),\n * E.left('error')\n * )\n *\n * @category conversions\n * @since 2.0.0\n */\nexports.fromOption = \n/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither);\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\nexports.isRight = _.isRight;\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nvar matchW = function (onLeft, onRight) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array<string>): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nvar getOrElseW = function (onLeft) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma.right;\n };\n};\nexports.getOrElseW = getOrElseW;\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = exports.getOrElseW;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.Apply);\n/**\n * Less strict version of [`apFirst`](#apfirst)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apFirstW = exports.apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.Apply);\n/**\n * Less strict version of [`apSecond`](#apsecond)\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apSecondW = exports.apSecond;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain));\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexports.flattenW = \n/*#__PURE__*/ (0, exports.flatMap)(function_1.identity);\n/**\n * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))\n * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))\n * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))\n *\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.flattenW;\n/**\n * @since 2.0.0\n */\nexports.duplicate = (0, exports.extend)(function_1.identity);\n/**\n * Use `liftOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.fromOptionK = \n/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.13.2\n */\nexports.chainOptionKW = exports.chainOptionK;\n/** @internal */\nvar _FromEither = {\n fromEither: exports.FromEither.fromEither\n};\n/**\n * @category lifting\n * @since 2.15.0\n */\nexports.liftNullable = _.liftNullable(_FromEither);\n/**\n * @category lifting\n * @since 2.15.0\n */\nexports.liftOption = _.liftOption(_FromEither);\n/** @internal */\nvar _FlatMap = {\n flatMap: exports.flatMap\n};\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap);\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(-1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('a')\n * )\n *\n * @category filtering\n * @since 2.0.0\n */\nexports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexports.filterOrElseW = exports.filterOrElse;\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @since 2.0.0\n */\nvar swap = function (ma) { return ((0, exports.isLeft)(ma) ? (0, exports.right)(ma.left) : (0, exports.left)(ma.right)); };\nexports.swap = swap;\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nvar orElseW = function (onLeft) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? onLeft(ma.left) : ma;\n };\n};\nexports.orElseW = orElseW;\n/**\n * Useful for recovering from errors.\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.orElse = exports.orElseW;\n/**\n * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use\n * the provided default as a `Left`.\n *\n * @example\n * import { fromNullable, left, right } from 'fp-ts/Either'\n *\n * const parse = fromNullable('nully')\n *\n * assert.deepStrictEqual(parse(1), right(1))\n * assert.deepStrictEqual(parse(null), left('nully'))\n *\n * @category conversions\n * @since 2.0.0\n */\nvar fromNullable = function (e) {\n return function (a) {\n return a == null ? (0, exports.left)(e) : (0, exports.right)(a);\n };\n};\nexports.fromNullable = fromNullable;\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = <A>(as: ReadonlyArray<A>): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f, onThrow) {\n try {\n return (0, exports.right)(f());\n }\n catch (e) {\n return (0, exports.left)(onThrow(e));\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onThrow);\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * Use `liftNullable`.\n *\n * @category legacy\n * @since 2.9.0\n */\nvar fromNullableK = function (e) {\n var from = (0, exports.fromNullable)(e);\n return function (f) { return (0, function_1.flow)(f, from); };\n};\nexports.fromNullableK = fromNullableK;\n/**\n * Use `flatMapNullable`.\n *\n * @category legacy\n * @since 2.9.0\n */\nvar chainNullableK = function (e) {\n var from = (0, exports.fromNullableK)(e);\n return function (f) { return (0, exports.flatMap)(from(f)); };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.toUnion = (0, exports.foldW)(function_1.identity, function_1.identity);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nfunction toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\nexports.toError = toError;\nfunction elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) { return elemE_1(a, ma); };\n }\n return (0, exports.isLeft)(ma) ? false : E.equals(a, ma.right);\n };\n}\nexports.elem = elem;\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\nvar exists = function (predicate) {\n return function (ma) {\n return (0, exports.isLeft)(ma) ? false : predicate(ma.right);\n };\n};\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = chainable.bind(exports.Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.bindW = exports.bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.Apply);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.apSW = exports.apS;\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n var e = f(0, _.head(as));\n if ((0, exports.isLeft)(e)) {\n return e;\n }\n var out = [e.right];\n for (var i = 1; i < as.length; i++) {\n var e_1 = f(i, as[i]);\n if ((0, exports.isLeft)(e_1)) {\n return e_1;\n }\n out.push(e_1.right);\n }\n return (0, exports.right)(out);\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); };\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.6.0\n */\nexports.chainW = exports.flatMap;\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chainFirst = exports.tap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.8.0\n */\nexports.chainFirstW = exports.tap;\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction parseJSON(s, onError) {\n return (0, exports.tryCatch)(function () { return JSON.parse(s); }, onError);\n}\nexports.parseJSON = parseJSON;\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar stringifyJSON = function (u, onError) {\n return (0, exports.tryCatch)(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\nexports.stringifyJSON = stringifyJSON;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `E.Functor` instead of `E.either`\n * (where `E` is from `import E from 'fp-ts/Either'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.either = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: exports.flatMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values\n * are concatenated using the provided `Semigroup`\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = \n/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = \n/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationSemigroup = function (SE, SA) {\n return (0, Apply_1.getApplySemigroup)((0, exports.getApplicativeValidation)(SE))(SA);\n};\nexports.getValidationSemigroup = getValidationSemigroup;\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationMonoid = function (SE, MA) {\n return (0, Applicative_1.getApplicativeMonoid)((0, exports.getApplicativeValidation)(SE))(MA);\n};\nexports.getValidationMonoid = getValidationMonoid;\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getValidation(SE) {\n var ap = (0, exports.getApplicativeValidation)(SE).ap;\n var alt = (0, exports.getAltValidation)(SE).alt;\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n of: exports.of,\n chain: exports.flatMap,\n bimap: _bimap,\n mapLeft: _mapLeft,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n extend: _extend,\n traverse: _traverse,\n sequence: exports.sequence,\n chainRec: _chainRec,\n throwError: exports.throwError,\n ap: ap,\n alt: alt\n };\n}\nexports.getValidation = getValidation;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEitherM = exports.toUnion = exports.swap = exports.orLeft = exports.tapError = exports.orElseFirst = exports.orElse = exports.getOrElse = exports.matchE = exports.match = exports.altValidation = exports.mapError = exports.mapLeft = exports.mapBoth = exports.bimap = exports.alt = exports.flatMap = exports.chain = exports.ap = exports.map = exports.chainNullableK = exports.fromNullableK = exports.fromNullable = exports.leftF = exports.rightF = exports.left = exports.right = void 0;\nvar Apply_1 = require(\"./Apply\");\nvar E = __importStar(require(\"./Either\"));\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nfunction right(F) {\n return (0, function_1.flow)(E.right, F.of);\n}\nexports.right = right;\nfunction left(F) {\n return (0, function_1.flow)(E.left, F.of);\n}\nexports.left = left;\nfunction rightF(F) {\n return function (fa) { return F.map(fa, E.right); };\n}\nexports.rightF = rightF;\nfunction leftF(F) {\n return function (fe) { return F.map(fe, E.left); };\n}\nexports.leftF = leftF;\nfunction fromNullable(F) {\n return function (e) { return (0, function_1.flow)(E.fromNullable(e), F.of); };\n}\nexports.fromNullable = fromNullable;\nfunction fromNullableK(F) {\n var fromNullableF = fromNullable(F);\n return function (e) {\n var fromNullableFE = fromNullableF(e);\n return function (f) { return (0, function_1.flow)(f, fromNullableFE); };\n };\n}\nexports.fromNullableK = fromNullableK;\nfunction chainNullableK(M) {\n var chainM = chain(M);\n var fromNullableKM = fromNullableK(M);\n return function (e) {\n var fromNullableKMe = fromNullableKM(e);\n return function (f) { return chainM(fromNullableKMe(f)); };\n };\n}\nexports.chainNullableK = chainNullableK;\nfunction map(F) {\n return (0, Functor_1.map)(F, E.Functor);\n}\nexports.map = map;\nfunction ap(F) {\n return (0, Apply_1.ap)(F, E.Apply);\n}\nexports.ap = ap;\nfunction chain(M) {\n var flatMapM = flatMap(M);\n return function (f) { return function (ma) { return flatMapM(ma, f); }; };\n}\nexports.chain = chain;\n/** @internal */\nfunction flatMap(M) {\n return function (ma, f) { return M.chain(ma, function (e) { return (E.isLeft(e) ? M.of(e) : f(e.right)); }); };\n}\nexports.flatMap = flatMap;\nfunction alt(M) {\n return function (second) { return function (first) { return M.chain(first, function (e) { return (E.isLeft(e) ? second() : M.of(e)); }); }; };\n}\nexports.alt = alt;\nfunction bimap(F) {\n var mapBothF = mapBoth(F);\n return function (f, g) { return function (self) { return mapBothF(self, f, g); }; };\n}\nexports.bimap = bimap;\n/** @internal */\nfunction mapBoth(F) {\n return function (self, f, g) { return F.map(self, E.bimap(f, g)); };\n}\nexports.mapBoth = mapBoth;\nfunction mapLeft(F) {\n var mapErrorF = mapError(F);\n return function (f) { return function (self) { return mapErrorF(self, f); }; };\n}\nexports.mapLeft = mapLeft;\n/** @internal */\nfunction mapError(F) {\n return function (self, f) { return F.map(self, E.mapLeft(f)); };\n}\nexports.mapError = mapError;\nfunction altValidation(M, S) {\n return function (second) { return function (first) {\n return M.chain(first, E.match(function (e1) {\n return M.map(second(), E.mapLeft(function (e2) { return S.concat(e1, e2); }));\n }, right(M)));\n }; };\n}\nexports.altValidation = altValidation;\nfunction match(F) {\n return function (onLeft, onRight) { return function (ma) { return F.map(ma, E.match(onLeft, onRight)); }; };\n}\nexports.match = match;\nfunction matchE(M) {\n return function (onLeft, onRight) { return function (ma) { return M.chain(ma, E.match(onLeft, onRight)); }; };\n}\nexports.matchE = matchE;\nfunction getOrElse(M) {\n return function (onLeft) { return function (ma) { return M.chain(ma, E.match(onLeft, M.of)); }; };\n}\nexports.getOrElse = getOrElse;\nfunction orElse(M) {\n return function (onLeft) { return function (ma) { return M.chain(ma, function (e) { return (E.isLeft(e) ? onLeft(e.left) : M.of(e)); }); }; };\n}\nexports.orElse = orElse;\nfunction orElseFirst(M) {\n var tapErrorM = tapError(M);\n return function (onLeft) { return function (ma) { return tapErrorM(ma, onLeft); }; };\n}\nexports.orElseFirst = orElseFirst;\n/** @internal */\nfunction tapError(M) {\n var orElseM = orElse(M);\n return function (ma, onLeft) {\n return (0, function_1.pipe)(ma, orElseM(function (e) { return M.map(onLeft(e), function (eb) { return (E.isLeft(eb) ? eb : E.left(e)); }); }));\n };\n}\nexports.tapError = tapError;\nfunction orLeft(M) {\n return function (onLeft) { return function (ma) {\n return M.chain(ma, E.match(function (e) { return M.map(onLeft(e), E.left); }, function (a) { return M.of(E.right(a)); }));\n }; };\n}\nexports.orLeft = orLeft;\nfunction swap(F) {\n return function (ma) { return F.map(ma, E.swap); };\n}\nexports.swap = swap;\nfunction toUnion(F) {\n return function (fa) { return F.map(fa, E.toUnion); };\n}\nexports.toUnion = toUnion;\n/** @deprecated */\n/* istanbul ignore next */\nfunction getEitherM(M) {\n var _ap = ap(M);\n var _map = map(M);\n var _chain = chain(M);\n var _alt = alt(M);\n var _bimap = bimap(M);\n var _mapLeft = mapLeft(M);\n var _fold = matchE(M);\n var _getOrElse = getOrElse(M);\n var _orElse = orElse(M);\n return {\n map: function (fa, f) { return (0, function_1.pipe)(fa, _map(f)); },\n ap: function (fab, fa) { return (0, function_1.pipe)(fab, _ap(fa)); },\n of: right(M),\n chain: function (ma, f) { return (0, function_1.pipe)(ma, _chain(f)); },\n alt: function (fa, that) { return (0, function_1.pipe)(fa, _alt(that)); },\n bimap: function (fea, f, g) { return (0, function_1.pipe)(fea, _bimap(f, g)); },\n mapLeft: function (fea, f) { return (0, function_1.pipe)(fea, _mapLeft(f)); },\n fold: function (fa, onLeft, onRight) { return (0, function_1.pipe)(fa, _fold(onLeft, onRight)); },\n getOrElse: function (fa, onLeft) { return (0, function_1.pipe)(fa, _getOrElse(onLeft)); },\n orElse: function (fa, f) { return (0, function_1.pipe)(fa, _orElse(f)); },\n swap: swap(M),\n rightM: rightF(M),\n leftM: leftF(M),\n left: left(M)\n };\n}\nexports.getEitherM = getEitherM;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFilterableComposition = exports.partitionMap = exports.partition = exports.filterMap = exports.filter = void 0;\n/**\n * `Filterable` represents data structures which can be _partitioned_/_filtered_.\n *\n * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs\n *\n * @since 2.0.0\n */\nvar Compactable_1 = require(\"./Compactable\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar Option_1 = require(\"./Option\");\nvar Predicate_1 = require(\"./Predicate\");\nvar Separated_1 = require(\"./Separated\");\nfunction filter(F, G) {\n return function (predicate) { return function (fga) { return F.map(fga, function (ga) { return G.filter(ga, predicate); }); }; };\n}\nexports.filter = filter;\nfunction filterMap(F, G) {\n return function (f) { return function (fga) { return F.map(fga, function (ga) { return G.filterMap(ga, f); }); }; };\n}\nexports.filterMap = filterMap;\nfunction partition(F, G) {\n var _filter = filter(F, G);\n return function (predicate) {\n var left = _filter((0, Predicate_1.not)(predicate));\n var right = _filter(predicate);\n return function (fgb) { return (0, Separated_1.separated)(left(fgb), right(fgb)); };\n };\n}\nexports.partition = partition;\nfunction partitionMap(F, G) {\n var _filterMap = filterMap(F, G);\n return function (f) { return function (fga) {\n return (0, Separated_1.separated)((0, function_1.pipe)(fga, _filterMap(function (a) { return (0, Option_1.getLeft)(f(a)); })), (0, function_1.pipe)(fga, _filterMap(function (a) { return (0, Option_1.getRight)(f(a)); })));\n }; };\n}\nexports.partitionMap = partitionMap;\n/** @deprecated */\nfunction getFilterableComposition(F, G) {\n var map = (0, Functor_1.getFunctorComposition)(F, G).map;\n var _compact = (0, Compactable_1.compact)(F, G);\n var _separate = (0, Compactable_1.separate)(F, G, G);\n var _filter = filter(F, G);\n var _filterMap = filterMap(F, G);\n var _partition = partition(F, G);\n var _partitionMap = partitionMap(F, G);\n return {\n map: map,\n compact: _compact,\n separate: _separate,\n filter: function (fga, f) { return (0, function_1.pipe)(fga, _filter(f)); },\n filterMap: function (fga, f) { return (0, function_1.pipe)(fga, _filterMap(f)); },\n partition: function (fga, p) { return (0, function_1.pipe)(fga, _partition(p)); },\n partitionMap: function (fga, f) { return (0, function_1.pipe)(fga, _partitionMap(f)); }\n };\n}\nexports.getFilterableComposition = getFilterableComposition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tapIO = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = void 0;\n/**\n * Lift a computation from the `IO` monad\n *\n * @since 2.10.0\n */\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nfunction fromIOK(F) {\n return function (f) { return (0, function_1.flow)(f, F.fromIO); };\n}\nexports.fromIOK = fromIOK;\nfunction chainIOK(F, M) {\n return function (f) {\n var g = (0, function_1.flow)(f, F.fromIO);\n return function (first) { return M.chain(first, g); };\n };\n}\nexports.chainIOK = chainIOK;\nfunction chainFirstIOK(F, M) {\n var tapIOM = tapIO(F, M);\n return function (f) { return function (first) { return tapIOM(first, f); }; };\n}\nexports.chainFirstIOK = chainFirstIOK;\n/** @internal */\nfunction tapIO(F, M) {\n var chainFirstM = (0, Chain_1.tap)(M);\n return function (self, f) { return chainFirstM(self, (0, function_1.flow)(f, F.fromIO)); };\n}\nexports.tapIO = tapIO;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tapTask = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = void 0;\n/**\n * Lift a computation from the `Task` monad\n *\n * @since 2.10.0\n */\nvar Chain_1 = require(\"./Chain\");\nvar function_1 = require(\"./function\");\nfunction fromTaskK(F) {\n return function (f) { return (0, function_1.flow)(f, F.fromTask); };\n}\nexports.fromTaskK = fromTaskK;\nfunction chainTaskK(F, M) {\n return function (f) {\n var g = (0, function_1.flow)(f, F.fromTask);\n return function (first) { return M.chain(first, g); };\n };\n}\nexports.chainTaskK = chainTaskK;\nfunction chainFirstTaskK(F, M) {\n var tapTaskM = tapTask(F, M);\n return function (f) { return function (first) { return tapTaskM(first, f); }; };\n}\nexports.chainFirstTaskK = chainFirstTaskK;\n/** @internal */\nfunction tapTask(F, M) {\n var tapM = (0, Chain_1.tap)(M);\n return function (self, f) { return tapM(self, (0, function_1.flow)(f, F.fromTask)); };\n}\nexports.tapTask = tapTask;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apS = exports.bind = exports.let = exports.bindTo = exports.Do = exports.never = exports.FromTask = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.tapIO = exports.tap = exports.flatMapIO = exports.FromIO = exports.MonadTask = exports.fromTask = exports.MonadIO = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplySeq = exports.ApplicativePar = exports.apSecond = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.getRaceMonoid = exports.URI = exports.flatten = exports.flatMap = exports.of = exports.ap = exports.map = exports.delay = exports.fromIO = void 0;\nexports.getMonoid = exports.getSemigroup = exports.taskSeq = exports.task = exports.chainFirst = exports.chain = void 0;\n/**\n * ```ts\n * interface Task<A> {\n * (): Promise<A>\n * }\n * ```\n *\n * `Task<A>` represents an asynchronous computation that yields a value of type `A` and **never fails**.\n * If you want to represent an asynchronous computation that may fail, please see `TaskEither`.\n *\n * @since 2.0.0\n */\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar chainable = __importStar(require(\"./Chain\"));\nvar FromIO_1 = require(\"./FromIO\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.0.0\n */\nvar fromIO = function (ma) { return function () { return Promise.resolve().then(ma); }; };\nexports.fromIO = fromIO;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Creates a task that will complete after a time delay\n *\n * @example\n * import { sequenceT } from 'fp-ts/Apply'\n * import * as T from 'fp-ts/Task'\n * import { takeRight } from 'fp-ts/Array'\n *\n * async function test() {\n * const log: Array<string> = []\n * const append = (message: string): T.Task<void> =>\n * T.fromIO(() => {\n * log.push(message)\n * })\n * const fa = append('a')\n * const fb = T.delay(20)(append('b'))\n * const fc = T.delay(10)(append('c'))\n * const fd = append('d')\n * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)()\n * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b'])\n * }\n *\n * test()\n *\n * @since 2.0.0\n */\nfunction delay(millis) {\n return function (ma) { return function () {\n return new Promise(function (resolve) {\n setTimeout(function () {\n Promise.resolve().then(ma).then(resolve);\n }, millis);\n });\n }; };\n}\nexports.delay = delay;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _apPar = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nvar map = function (f) { return function (fa) { return function () {\n return Promise.resolve().then(fa).then(f);\n}; }; };\nexports.map = map;\n/**\n * @since 2.0.0\n */\nvar ap = function (fa) { return function (fab) { return function () {\n return Promise.all([Promise.resolve().then(fab), Promise.resolve().then(fa)]).then(function (_a) {\n var f = _a[0], a = _a[1];\n return f(a);\n });\n}; }; };\nexports.ap = ap;\n/**\n * @category constructors\n * @since 2.0.0\n */\nvar of = function (a) { return function () { return Promise.resolve(a); }; };\nexports.of = of;\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, function (ma, f) {\n return function () {\n return Promise.resolve()\n .then(ma)\n .then(function (a) { return f(a)(); });\n };\n});\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = (0, exports.flatMap)(function_1.identity);\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'Task';\n/**\n * Monoid returning the first completed task.\n *\n * Note: uses `Promise.race` internally.\n *\n * @example\n * import * as T from 'fp-ts/Task'\n *\n * async function test() {\n * const S = T.getRaceMonoid<string>()\n * const fa = T.delay(20)(T.of('a'))\n * const fb = T.delay(10)(T.of('b'))\n * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b')\n * }\n *\n * test()\n *\n * @category instances\n * @since 2.0.0\n */\nfunction getRaceMonoid() {\n return {\n concat: function (x, y) { return function () { return Promise.race([Promise.resolve().then(x), Promise.resolve().then(y)]); }; },\n empty: exports.never\n };\n}\nexports.getRaceMonoid = getRaceMonoid;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Maps the value to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor));\n/**\n * Maps the value to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.asUnit = (0, Functor_1.asUnit)(exports.Functor);\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.10.0\n */\nexports.ApplyPar = {\n URI: exports.URI,\n map: _map,\n ap: _apPar\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar);\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.7.0\n */\nexports.ApplicativePar = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n of: exports.of\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.10.0\n */\nexports.ApplySeq = {\n URI: exports.URI,\n map: _map,\n ap: _apSeq\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.7.0\n */\nexports.ApplicativeSeq = {\n URI: exports.URI,\n map: _map,\n ap: _apSeq,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _apPar,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.MonadIO = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _apPar,\n chain: exports.flatMap,\n fromIO: exports.fromIO\n};\n/**\n * @category zone of death\n * @since 2.7.0\n * @deprecated\n */\nexports.fromTask = function_1.identity;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.MonadTask = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _apPar,\n chain: exports.flatMap,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromIO = {\n URI: exports.URI,\n fromIO: exports.fromIO\n};\n/** @internal */\nvar _FlatMap = {\n flatMap: exports.flatMap\n};\n/** @internal */\nvar _FromIO = {\n fromIO: exports.FromIO.fromIO\n};\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap);\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as T from 'fp-ts/Task'\n * import * as Console from 'fp-ts/Console'\n *\n * // Will produce `Hello, fp-ts` to the stdout\n * const effect = pipe(\n * T.of('fp-ts'),\n * T.tapIO((value) => Console.log(`Hello, ${value}`)),\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await effect(), 'fp-ts')\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain));\n/**\n * @category lifting\n * @since 2.4.0\n */\nexports.fromIOK = \n/*#__PURE__*/ (0, FromIO_1.fromIOK)(exports.FromIO);\n/**\n * Alias of `flatMapIO`.\n *\n * @category legacy\n * @since 2.4.0\n */\nexports.chainIOK = exports.flatMapIO;\n/**\n * Alias of `tapIO`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.chainFirstIOK = exports.tapIO;\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromTask = {\n URI: exports.URI,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * A `Task` that never completes.\n *\n * @since 2.0.0\n */\nvar never = function () { return new Promise(function (_) { return undefined; }); };\nexports.never = never;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = chainable.bind(exports.Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.ApplyPar);\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return function (as) {\n return function () {\n return Promise.all(as.map(function (a, i) { return Promise.resolve().then(function () { return f(i, a)(); }); }));\n };\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) {\n return function (as) {\n return function () {\n return _.tail(as).reduce(function (acc, a, i) {\n return acc.then(function (bs) {\n return Promise.resolve()\n .then(f(i + 1, a))\n .then(function (b) {\n bs.push(b);\n return bs;\n });\n });\n }, Promise.resolve()\n .then(f(0, _.head(as)))\n .then(_.singleton));\n };\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndexSeq = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) {\n return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); });\n};\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseSeqArray = function (f) {\n return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); });\n};\nexports.traverseSeqArray = traverseSeqArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceSeqArray = \n/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chainFirst = exports.tap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.task`\n * (where `T` is from `import T from 'fp-ts/Task'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.task = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _apPar,\n chain: exports.flatMap,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask\n};\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `T.Functor` instead of `T.taskSeq`\n * (where `T` is from `import T from 'fp-ts/Task'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.taskSeq = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _apSeq,\n chain: exports.flatMap,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getSemigroup = (0, Apply_1.getApplySemigroup)(exports.ApplySeq);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getMonoid = (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativeSeq);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.throwError = exports.of = exports.altW = exports.alt = exports.flatten = exports.flattenW = exports.flatMap = exports.apW = exports.ap = exports.mapLeft = exports.mapError = exports.bimap = exports.mapBoth = exports.map = exports.fromIOEitherK = exports.chainTaskOptionK = exports.chainTaskOptionKW = exports.fromTaskOptionK = exports.swap = exports.orLeft = exports.orElseFirstTaskK = exports.orElseFirstIOK = exports.tapError = exports.orElseW = exports.orElse = exports.chainNullableK = exports.fromNullableK = exports.fromNullable = exports.toUnion = exports.tryCatchK = exports.tryCatch = exports.getOrElseW = exports.getOrElse = exports.foldW = exports.matchEW = exports.fold = exports.matchE = exports.matchW = exports.match = exports.fromTaskOption = exports.fromIOEither = exports.fromEither = exports.fromTask = exports.fromIO = exports.leftIO = exports.rightIO = exports.leftTask = exports.rightTask = exports.right = exports.left = void 0;\nexports.fromPredicate = exports.chainFirstEitherKW = exports.chainFirstEitherK = exports.chainEitherKW = exports.chainEitherK = exports.flatMapTaskOption = exports.flatMapIOEither = exports.flatMapTask = exports.flatMapIO = exports.flatMapEither = exports.flatMapOption = exports.flatMapNullable = exports.liftOption = exports.liftNullable = exports.chainOptionKW = exports.chainOptionK = exports.fromOptionK = exports.fromOption = exports.Alt = exports.Bifunctor = exports.tapTask = exports.tapIO = exports.tapEither = exports.tap = exports.FromTask = exports.FromIO = exports.FromEither = exports.MonadThrow = exports.MonadTask = exports.MonadIO = exports.Monad = exports.Chain = exports.ApplicativeSeq = exports.ApplySeq = exports.ApplicativePar = exports.apSecondW = exports.apSecond = exports.apFirstW = exports.apFirst = exports.ApplyPar = exports.Pointed = exports.flap = exports.asUnit = exports.as = exports.Functor = exports.getFilterable = exports.getCompactable = exports.getAltTaskValidation = exports.getApplicativeTaskValidation = exports.URI = void 0;\nexports.getTaskValidation = exports.getSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.taskEitherSeq = exports.taskEither = exports.orElseFirstW = exports.orElseFirst = exports.chainFirstW = exports.chainFirst = exports.chainW = exports.chain = exports.sequenceSeqArray = exports.traverseSeqArray = exports.traverseSeqArrayWithIndex = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq = exports.traverseReadonlyNonEmptyArrayWithIndexSeq = exports.traverseReadonlyArrayWithIndex = exports.traverseReadonlyNonEmptyArrayWithIndex = exports.ApT = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.let = exports.bindTo = exports.Do = exports.bracketW = exports.bracket = exports.taskify = exports.chainIOEitherK = exports.chainIOEitherKW = exports.chainFirstTaskK = exports.chainTaskK = exports.fromTaskK = exports.chainFirstIOK = exports.chainIOK = exports.fromIOK = exports.fromEitherK = exports.filterOrElseW = exports.filterOrElse = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar chainable = __importStar(require(\"./Chain\"));\nvar Compactable_1 = require(\"./Compactable\");\nvar E = __importStar(require(\"./Either\"));\nvar ET = __importStar(require(\"./EitherT\"));\nvar Filterable_1 = require(\"./Filterable\");\nvar FromEither_1 = require(\"./FromEither\");\nvar FromIO_1 = require(\"./FromIO\");\nvar FromTask_1 = require(\"./FromTask\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar T = __importStar(require(\"./Task\"));\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.left = ET.left(T.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.right = ET.right(T.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.rightTask = ET.rightF(T.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.leftTask = ET.leftF(T.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.rightIO = (0, function_1.flow)(T.fromIO, exports.rightTask);\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.leftIO = (0, function_1.flow)(T.fromIO, exports.leftTask);\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.7.0\n */\nexports.fromIO = exports.rightIO;\n/**\n * @category conversions\n * @since 2.7.0\n */\nexports.fromTask = exports.rightTask;\n/**\n * @category conversions\n * @since 2.0.0\n */\nexports.fromEither = T.of;\n/**\n * @category conversions\n * @since 2.0.0\n */\nexports.fromIOEither = T.fromIO;\n/**\n * @category conversions\n * @since 2.11.0\n */\nvar fromTaskOption = function (onNone) {\n return T.map(E.fromOption(onNone));\n};\nexports.fromTaskOption = fromTaskOption;\n/**\n * @category pattern matching\n * @since 2.10.0\n */\nexports.match = \n/*#__PURE__*/ ET.match(T.Functor);\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchW = exports.match;\n/**\n * The `E` suffix (short for **E**ffect) means that the handlers return an effect (`Task`).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchE = ET.matchE(T.Monad);\n/**\n * Alias of [`matchE`](#matche).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexports.fold = exports.matchE;\n/**\n * Less strict version of [`matchE`](#matche).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.matchEW = exports.matchE;\n/**\n * Alias of [`matchEW`](#matchew).\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexports.foldW = exports.matchEW;\n/**\n * @category error handling\n * @since 2.0.0\n */\nexports.getOrElse = \n/*#__PURE__*/ ET.getOrElse(T.Monad);\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * The `W` suffix (short for **W**idening) means that the handler return type will be merged.\n *\n * @category error handling\n * @since 2.6.0\n */\nexports.getOrElseW = exports.getOrElse;\n/**\n * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { left, right } from 'fp-ts/Either'\n * import { tryCatch } from 'fp-ts/TaskEither'\n *\n * tryCatch(() => Promise.resolve(1), String)().then(result => {\n * assert.deepStrictEqual(result, right(1))\n * })\n * tryCatch(() => Promise.reject('error'), String)().then(result => {\n * assert.deepStrictEqual(result, left('error'))\n * })\n *\n * @category interop\n * @since 2.0.0\n */\nvar tryCatch = function (f, onRejected) {\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var reason_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, f().then(_.right)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n reason_1 = _a.sent();\n return [2 /*return*/, _.left(onRejected(reason_1))];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function returning a `Promise` to one returning a `TaskEither`.\n *\n * @category interop\n * @since 2.5.0\n */\nvar tryCatchK = function (f, onRejected) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return (0, exports.tryCatch)(function () { return f.apply(void 0, a); }, onRejected);\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * @category conversions\n * @since 2.10.0\n */\nexports.toUnion = ET.toUnion(T.Functor);\n/**\n * @category conversions\n * @since 2.12.0\n */\nexports.fromNullable = ET.fromNullable(T.Pointed);\n/**\n * Use `liftNullable`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexports.fromNullableK = ET.fromNullableK(T.Pointed);\n/**\n * Use `flatMapNullable`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexports.chainNullableK = \n/*#__PURE__*/ ET.chainNullableK(T.Monad);\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise.\n *\n * See also [alt](#alt).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * async function test() {\n * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`))\n * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok'))\n * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...'))\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.orElse = \n/*#__PURE__*/ ET.orElse(T.Monad);\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @category error handling\n * @since 2.10.0\n */\nexports.orElseW = exports.orElse;\n/**\n * Returns an effect that effectfully \"peeks\" at the failure of this effect.\n *\n * @category error handling\n * @since 2.15.0\n */\nexports.tapError = (0, function_1.dual)(2, ET.tapError(T.Monad));\n/**\n * @category error handling\n * @since 2.12.0\n */\nvar orElseFirstIOK = function (onLeft) { return (0, exports.tapError)((0, exports.fromIOK)(onLeft)); };\nexports.orElseFirstIOK = orElseFirstIOK;\n/**\n * @category error handling\n * @since 2.12.0\n */\nvar orElseFirstTaskK = function (onLeft) { return (0, exports.tapError)((0, exports.fromTaskK)(onLeft)); };\nexports.orElseFirstTaskK = orElseFirstTaskK;\n/**\n * @category error handling\n * @since 2.11.0\n */\nexports.orLeft = \n/*#__PURE__*/ ET.orLeft(T.Monad);\n/**\n * @since 2.0.0\n */\nexports.swap = ET.swap(T.Functor);\n/**\n * @category lifting\n * @since 2.11.0\n */\nvar fromTaskOptionK = function (onNone) {\n var from = (0, exports.fromTaskOption)(onNone);\n return function (f) { return (0, function_1.flow)(f, from); };\n};\nexports.fromTaskOptionK = fromTaskOptionK;\n/**\n * Use `flatMapTaskOption`.\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category legacy\n * @since 2.12.3\n */\nvar chainTaskOptionKW = function (onNone) {\n return function (f) {\n return function (ma) {\n return (0, exports.flatMap)(ma, (0, exports.fromTaskOptionK)(onNone)(f));\n };\n };\n};\nexports.chainTaskOptionKW = chainTaskOptionKW;\n/**\n * Use `flatMapTaskOption`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexports.chainTaskOptionK = exports.chainTaskOptionKW;\n/**\n * @category lifting\n * @since 2.4.0\n */\nvar fromIOEitherK = function (f) { return (0, function_1.flow)(f, exports.fromIOEither); };\nexports.fromIOEitherK = fromIOEitherK;\nvar _map = function (fa, f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); };\nvar _apPar = function (fab, fa) { return (0, function_1.pipe)(fab, (0, exports.ap)(fa)); };\nvar _apSeq = function (fab, fa) { return (0, exports.flatMap)(fab, function (f) { return (0, function_1.pipe)(fa, (0, exports.map)(f)); }); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return (0, function_1.pipe)(fa, (0, exports.alt)(that)); };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.0.0\n */\nexports.map = ET.map(T.Functor);\n/**\n * Returns a `TaskEither` whose failure and success channels have been mapped by the specified pair of functions, `f` and `g`.\n *\n * @example\n * import * as TaskEither from 'fp-ts/TaskEither'\n * import * as Either from 'fp-ts/Either'\n *\n * const f = (s: string) => new Error(s)\n * const g = (n: number) => n * 2\n *\n * async function test() {\n * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.right(1), f, g)(), Either.right(2))\n * assert.deepStrictEqual(await TaskEither.mapBoth(TaskEither.left('err'), f, g)(), Either.left(new Error('err')))\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.16.0\n */\nexports.mapBoth = (0, function_1.dual)(3, ET.mapBoth(T.Functor));\n/**\n * Alias of `mapBoth`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.bimap = exports.mapBoth;\n/**\n * Returns a `TaskEither` with its error channel mapped using the specified function.\n *\n * @example\n * import * as TaskEither from 'fp-ts/TaskEither'\n * import * as Either from 'fp-ts/Either'\n *\n * const f = (s: string) => new Error(s)\n *\n * async function test() {\n * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.right(1), f)(), Either.right(1))\n * assert.deepStrictEqual(await TaskEither.mapError(TaskEither.left('err'), f)(), Either.left(new Error('err')))\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.16.0\n */\nexports.mapError = (0, function_1.dual)(2, ET.mapError(T.Functor));\n/**\n * Alias of `mapError`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.mapLeft = exports.mapError;\n/**\n * @since 2.0.0\n */\nexports.ap = \n/*#__PURE__*/ ET.ap(T.ApplyPar);\n/**\n * Less strict version of [`ap`](#ap).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.8.0\n */\nexports.apW = exports.ap;\n/**\n * @category sequencing\n * @since 2.14.0\n */\nexports.flatMap = (0, function_1.dual)(2, ET.flatMap(T.Monad));\n/**\n * Less strict version of [`flatten`](#flatten).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category sequencing\n * @since 2.11.0\n */\nexports.flattenW = \n/*#__PURE__*/ (0, exports.flatMap)(function_1.identity);\n/**\n * @category sequencing\n * @since 2.0.0\n */\nexports.flatten = exports.flattenW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise.\n *\n * See also [orElse](#orelse).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * TE.right(1),\n * TE.alt(() => TE.right(2))\n * )(),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * await pipe(\n * TE.left('a'),\n * TE.alt(() => TE.right(2))\n * )(),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * await pipe(\n * TE.left('a'),\n * TE.alt(() => TE.left('b'))\n * )(),\n * E.left('b')\n * )\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.0.0\n */\nexports.alt = \n/*#__PURE__*/ ET.alt(T.Monad);\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the error and the return types will be merged.\n *\n * @category error handling\n * @since 2.9.0\n */\nexports.altW = exports.alt;\n/**\n * @category constructors\n * @since 2.0.0\n */\nexports.of = exports.right;\n/**\n * @since 2.7.0\n */\nexports.throwError = exports.left;\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexports.URI = 'TaskEither';\n/**\n * The default [`ApplicativePar`](#applicativepar) instance returns the first error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/Semigroup'\n * import * as string from 'fp-ts/string'\n * import * as T from 'fp-ts/Task'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * interface User {\n * readonly id: string\n * readonly name: string\n * }\n *\n * const remoteDatabase: ReadonlyArray<User> = [\n * { id: 'id1', name: 'John' },\n * { id: 'id2', name: 'Mary' },\n * { id: 'id3', name: 'Joey' }\n * ]\n *\n * const fetchUser = (id: string): TE.TaskEither<string, User> =>\n * pipe(\n * remoteDatabase,\n * RA.findFirst((user) => user.id === id),\n * TE.fromOption(() => `${id} not found`)\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(['id4', 'id5'], RA.traverse(TE.ApplicativePar)(fetchUser))(),\n * E.left('id4 not found') // <= first error\n * )\n *\n * const Applicative = TE.getApplicativeTaskValidation(\n * T.ApplyPar,\n * pipe(string.Semigroup, S.intercalate(', '))\n * )\n *\n * assert.deepStrictEqual(\n * await pipe(['id4', 'id5'], RA.traverse(Applicative)(fetchUser))(),\n * E.left('id4 not found, id5 not found') // <= all errors\n * )\n * }\n *\n * test()\n *\n * @category error handling\n * @since 2.7.0\n */\nfunction getApplicativeTaskValidation(A, S) {\n var ap = (0, Apply_1.ap)(A, E.getApplicativeValidation(S));\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) { return (0, function_1.pipe)(fab, ap(fa)); },\n of: exports.of\n };\n}\nexports.getApplicativeTaskValidation = getApplicativeTaskValidation;\n/**\n * The default [`Alt`](#alt) instance returns the last error, if you want to\n * get all errors you need to provide a way to concatenate them via a `Semigroup`.\n *\n * See [`getAltValidation`](./Either.ts.html#getaltvalidation).\n *\n * @category error handling\n * @since 2.7.0\n */\nfunction getAltTaskValidation(S) {\n var alt = ET.altValidation(T.Monad, S);\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n alt: function (fa, that) { return (0, function_1.pipe)(fa, alt(that)); }\n };\n}\nexports.getAltTaskValidation = getAltTaskValidation;\n/**\n * @category filtering\n * @since 2.10.0\n */\nvar getCompactable = function (M) {\n var C = E.getCompactable(M);\n return {\n URI: exports.URI,\n _E: undefined,\n compact: (0, Compactable_1.compact)(T.Functor, C),\n separate: (0, Compactable_1.separate)(T.Functor, C, E.Functor)\n };\n};\nexports.getCompactable = getCompactable;\n/**\n * @category filtering\n * @since 2.1.0\n */\nfunction getFilterable(M) {\n var F = E.getFilterable(M);\n var C = (0, exports.getCompactable)(M);\n var filter = (0, Filterable_1.filter)(T.Functor, F);\n var filterMap = (0, Filterable_1.filterMap)(T.Functor, F);\n var partition = (0, Filterable_1.partition)(T.Functor, F);\n var partitionMap = (0, Filterable_1.partitionMap)(T.Functor, F);\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: C.compact,\n separate: C.separate,\n filter: function (fa, predicate) { return (0, function_1.pipe)(fa, filter(predicate)); },\n filterMap: function (fa, f) { return (0, function_1.pipe)(fa, filterMap(f)); },\n partition: function (fa, predicate) { return (0, function_1.pipe)(fa, partition(predicate)); },\n partitionMap: function (fa, f) { return (0, function_1.pipe)(fa, partitionMap(f)); }\n };\n}\nexports.getFilterable = getFilterable;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Maps the `Right` value of this `TaskEither` to the specified constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.as = (0, function_1.dual)(2, (0, Functor_1.as)(exports.Functor));\n/**\n * Maps the `Right` value of this `TaskEither` to the void constant value.\n *\n * @category mapping\n * @since 2.16.0\n */\nexports.asUnit = (0, Functor_1.asUnit)(exports.Functor);\n/**\n * @category mapping\n * @since 2.10.0\n */\nexports.flap = (0, Functor_1.flap)(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.10.0\n */\nexports.ApplyPar = {\n URI: exports.URI,\n map: _map,\n ap: _apPar\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.0.0\n */\nexports.apFirst = (0, Apply_1.apFirst)(exports.ApplyPar);\n/**\n * Less strict version of [`apFirst`](#apfirst).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apFirstW = exports.apFirst;\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.0.0\n */\nexports.apSecond = (0, Apply_1.apSecond)(exports.ApplyPar);\n/**\n * Less strict version of [`apSecond`](#apsecond).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nexports.apSecondW = exports.apSecond;\n/**\n * Runs computations in parallel.\n *\n * @category instances\n * @since 2.7.0\n */\nexports.ApplicativePar = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n of: exports.of\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.10.0\n */\nexports.ApplySeq = {\n URI: exports.URI,\n map: _map,\n ap: _apSeq\n};\n/**\n * Runs computations sequentially.\n *\n * @category instances\n * @since 2.7.0\n */\nexports.ApplicativeSeq = {\n URI: exports.URI,\n map: _map,\n ap: _apSeq,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n chain: exports.flatMap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n chain: exports.flatMap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.MonadIO = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n chain: exports.flatMap,\n of: exports.of,\n fromIO: exports.fromIO\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.MonadTask = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n chain: exports.flatMap,\n of: exports.of,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _apPar,\n chain: exports.flatMap,\n of: exports.of,\n throwError: exports.throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: exports.fromEither\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromIO = {\n URI: exports.URI,\n fromIO: exports.fromIO\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromTask = {\n URI: exports.URI,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @category combinators\n * @since 2.15.0\n */\nexports.tap = (0, function_1.dual)(2, chainable.tap(exports.Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * const checkString = (value: string) => pipe(\n * TE.of(value),\n * TE.tapEither(() => value.length > 0 ? E.right('ok') : E.left('error'))\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await checkString('')(), E.left('error'))\n * assert.deepStrictEqual(await checkString('fp-ts')(), E.right('fp-ts'))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexports.tapEither = (0, function_1.dual)(2, (0, FromEither_1.tapEither)(exports.FromEither, exports.Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n * import * as E from 'fp-ts/Either'\n * import * as Console from 'fp-ts/Console'\n *\n *\n * // Will produce `Hello, fp-ts` to the stdout\n * const effectA = TE.tapIO(\n * TE.of(1),\n * (value) => Console.log(`Hello, ${value}`)\n * )\n *\n * // No output to the stdout\n * const effectB = pipe(\n * TE.left('error'),\n * TE.tapIO((value) => Console.log(`Hello, ${value}`))\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await effectA(), E.of(1))\n * assert.deepStrictEqual(await effectB(), E.left('error'))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexports.tapIO = (0, function_1.dual)(2, (0, FromIO_1.tapIO)(exports.FromIO, exports.Chain));\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as TE from 'fp-ts/TaskEither'\n * import * as T from 'fp-ts/Task'\n * import * as E from 'fp-ts/Either'\n *\n *\n * const effect = TE.tapIO(\n * TE.of(1),\n * (value) => T.of(value + 1)\n * )\n *\n * async function test() {\n * assert.deepStrictEqual(await effect(), E.of(1))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.16.0\n */\nexports.tapTask = (0, function_1.dual)(2, (0, FromTask_1.tapTask)(exports.FromTask, exports.Chain));\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n bimap: exports.mapBoth,\n mapLeft: exports.mapError\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category conversions\n * @since 2.0.0\n */\nexports.fromOption = \n/*#__PURE__*/ (0, FromEither_1.fromOption)(exports.FromEither);\n/**\n * Use `liftOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.fromOptionK = \n/*#__PURE__*/ (0, FromEither_1.fromOptionK)(exports.FromEither);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.chainOptionK = (0, FromEither_1.chainOptionK)(exports.FromEither, exports.Chain);\n/**\n * Use `flatMapOption`.\n *\n * @category legacy\n * @since 2.13.2\n */\nexports.chainOptionKW = \n/*#__PURE__*/ exports.chainOptionK;\n/** @internal */\nvar _FromEither = {\n fromEither: exports.FromEither.fromEither\n};\n/**\n * @category lifting\n * @since 2.15.0\n */\nexports.liftNullable = _.liftNullable(_FromEither);\n/**\n * @category lifting\n * @since 2.15.0\n */\nexports.liftOption = _.liftOption(_FromEither);\n/** @internal */\nvar _FlatMap = {\n flatMap: exports.flatMap\n};\n/** @internal */\nvar _FromIO = {\n fromIO: exports.FromIO.fromIO\n};\n/** @internal */\nvar _FromTask = {\n fromTask: exports.fromTask\n};\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexports.flatMapNullable = _.flatMapNullable(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexports.flatMapOption = _.flatMapOption(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexports.flatMapEither = _.flatMapEither(_FromEither, _FlatMap);\n/**\n * @category sequencing\n * @since 2.15.0\n */\nexports.flatMapIO = _.flatMapIO(_FromIO, _FlatMap);\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexports.flatMapTask = _.flatMapTask(_FromTask, _FlatMap);\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexports.flatMapIOEither = (0, function_1.dual)(2, function (self, f) {\n return (0, exports.flatMap)(self, (0, exports.fromIOEitherK)(f));\n});\n/**\n * @category sequencing\n * @since 2.16.0\n */\nexports.flatMapTaskOption = (0, function_1.dual)(3, function (self, f, onNone) {\n return (0, exports.flatMap)(self, function (a) { return (0, exports.fromTaskOption)(function () { return onNone(a); })(f(a)); });\n});\n/**\n * Alias of `flatMapEither`.\n *\n * @category legacy\n * @since 2.4.0\n */\nexports.chainEitherK = exports.flatMapEither;\n/**\n * Alias of `flatMapEither`.\n *\n * @category legacy\n * @since 2.6.1\n */\nexports.chainEitherKW = exports.flatMapEither;\n/**\n * Alias of `tapEither`.\n *\n * @category legacy\n * @since 2.12.0\n */\nexports.chainFirstEitherK = exports.tapEither;\n/**\n * Alias of `tapEither`.\n *\n * Less strict version of [`chainFirstEitherK`](#chainfirsteitherk).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category legacy\n * @since 2.12.0\n */\nexports.chainFirstEitherKW = exports.tapEither;\n/**\n * @category lifting\n * @since 2.0.0\n */\nexports.fromPredicate = (0, FromEither_1.fromPredicate)(exports.FromEither);\n/**\n * @category filtering\n * @since 2.0.0\n */\nexports.filterOrElse = (0, FromEither_1.filterOrElse)(exports.FromEither, exports.Chain);\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category filtering\n * @since 2.9.0\n */\nexports.filterOrElseW = exports.filterOrElse;\n/**\n * @category lifting\n * @since 2.4.0\n */\nexports.fromEitherK = (0, FromEither_1.fromEitherK)(exports.FromEither);\n/**\n * @category lifting\n * @since 2.10.0\n */\nexports.fromIOK = (0, FromIO_1.fromIOK)(exports.FromIO);\n/**\n * Alias of `flatMapIO`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.chainIOK = exports.flatMapIO;\n/**\n * Alias of `tapIO`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.chainFirstIOK = exports.tapIO;\n/**\n * @category lifting\n * @since 2.10.0\n */\nexports.fromTaskK = (0, FromTask_1.fromTaskK)(exports.FromTask);\n/**\n * Alias of `flatMapTask`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.chainTaskK = exports.flatMapTask;\n/**\n * Alias of `tapTask`.\n *\n * @category legacy\n * @since 2.10.0\n */\nexports.chainFirstTaskK = exports.tapTask;\n/**\n * Alias of `flatMapIOEither`.\n *\n * Less strict version of [`chainIOEitherK`](#chainioeitherk).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category legacy\n * @since 2.6.1\n */\nexports.chainIOEitherKW = exports.flatMapIOEither;\n/**\n * Alias of `flatMapIOEither`.\n *\n * @category legacy\n * @since 2.4.0\n */\nexports.chainIOEitherK = exports.flatMapIOEither;\nfunction taskify(f) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return function () {\n return new Promise(function (resolve) {\n var cbResolver = function (e, r) { return (e != null ? resolve(_.left(e)) : resolve(_.right(r))); };\n f.apply(null, args.concat(cbResolver));\n });\n };\n };\n}\nexports.taskify = taskify;\n/**\n * Make sure that a resource is cleaned up in the event of an exception (\\*). The release action is called regardless of\n * whether the body action throws (\\*) or returns.\n *\n * (\\*) i.e. returns a `Left`\n *\n * @since 2.0.0\n */\nvar bracket = function (acquire, use, release) { return (0, exports.bracketW)(acquire, use, release); };\nexports.bracket = bracket;\n/**\n * Less strict version of [`bracket`](#bracket).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @since 2.12.0\n */\nvar bracketW = function (acquire, use, release) {\n return (0, exports.flatMap)(acquire, function (a) { return T.flatMap(use(a), function (e) { return (0, exports.flatMap)(release(a, e), function () { return T.of(e); }); }); });\n};\nexports.bracketW = bracketW;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexports.Do = (0, exports.of)(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bindTo = (0, Functor_1.bindTo)(exports.Functor);\nvar let_ = /*#__PURE__*/ (0, Functor_1.let)(exports.Functor);\nexports.let = let_;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.bind = chainable.bind(exports.Chain);\n/**\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.bindW = exports.bind;\n/**\n * @category do notation\n * @since 2.8.0\n */\nexports.apS = (0, Apply_1.apS)(exports.ApplyPar);\n/**\n * Less strict version of [`apS`](#aps).\n *\n * The `W` suffix (short for **W**idening) means that the error types will be merged.\n *\n * @category do notation\n * @since 2.8.0\n */\nexports.apSW = exports.apS;\n/**\n * @since 2.11.0\n */\nexports.ApT = (0, exports.of)(_.emptyReadonlyArray);\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndex = function (f) {\n return (0, function_1.flow)(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.map(E.traverseReadonlyNonEmptyArrayWithIndex(function_1.SK)));\n};\nexports.traverseReadonlyNonEmptyArrayWithIndex = traverseReadonlyNonEmptyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativePar)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndex = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndex)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndex = traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyNonEmptyArrayWithIndexSeq = function (f) {\n return function (as) {\n return function () {\n return _.tail(as).reduce(function (acc, a, i) {\n return acc.then(function (ebs) {\n return _.isLeft(ebs)\n ? acc\n : f(i + 1, a)().then(function (eb) {\n if (_.isLeft(eb)) {\n return eb;\n }\n ebs.right.push(eb.right);\n return ebs;\n });\n });\n }, f(0, _.head(as))().then(E.map(_.singleton)));\n };\n };\n};\nexports.traverseReadonlyNonEmptyArrayWithIndexSeq = traverseReadonlyNonEmptyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.11.0\n */\nvar traverseReadonlyArrayWithIndexSeq = function (f) {\n var g = (0, exports.traverseReadonlyNonEmptyArrayWithIndexSeq)(f);\n return function (as) { return (_.isNonEmpty(as) ? g(as) : exports.ApT); };\n};\nexports.traverseReadonlyArrayWithIndexSeq = traverseReadonlyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseArrayWithIndex = exports.traverseReadonlyArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndex)(function (_, a) { return f(a); }); };\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceArray = \n/*#__PURE__*/ (0, exports.traverseArray)(function_1.identity);\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.traverseSeqArrayWithIndex = exports.traverseReadonlyArrayWithIndexSeq;\n/**\n * Equivalent to `ReadonlyArray#traverse(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nvar traverseSeqArray = function (f) { return (0, exports.traverseReadonlyArrayWithIndexSeq)(function (_, a) { return f(a); }); };\nexports.traverseSeqArray = traverseSeqArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(ApplicativeSeq)`.\n *\n * @category traversing\n * @since 2.9.0\n */\nexports.sequenceSeqArray = \n/*#__PURE__*/ (0, exports.traverseSeqArray)(function_1.identity);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chain = exports.flatMap;\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.6.0\n */\nexports.chainW = exports.flatMap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexports.chainFirst = exports.tap;\n/**\n * Alias of `tap`.\n *\n * @category legacy\n * @since 2.8.0\n */\nexports.chainFirstW = exports.tap;\n/**\n * Alias of `tapError`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexports.orElseFirst = exports.tapError;\n/**\n * Alias of `tapError`.\n *\n * @category legacy\n * @since 2.11.0\n */\nexports.orElseFirstW = exports.tapError;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEither`\n * (where `TE` is from `import TE from 'fp-ts/TaskEither'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.taskEither = {\n URI: exports.URI,\n bimap: exports.mapBoth,\n mapLeft: exports.mapError,\n map: _map,\n of: exports.of,\n ap: _apPar,\n chain: exports.flatMap,\n alt: _alt,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask,\n throwError: exports.throwError\n};\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `TE.Functor` instead of `TE.taskEitherSeq`\n * (where `TE` is from `import TE from 'fp-ts/TaskEither'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.taskEitherSeq = {\n URI: exports.URI,\n bimap: exports.mapBoth,\n mapLeft: exports.mapError,\n map: _map,\n of: exports.of,\n ap: _apSeq,\n chain: exports.flatMap,\n alt: _alt,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask,\n throwError: exports.throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplySemigroup = \n/*#__PURE__*/ (0, Apply_1.getApplySemigroup)(exports.ApplySeq);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = \n/*#__PURE__*/ (0, Applicative_1.getApplicativeMonoid)(exports.ApplicativeSeq);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nvar getSemigroup = function (S) {\n return (0, Apply_1.getApplySemigroup)(T.ApplySeq)(E.getSemigroup(S));\n};\nexports.getSemigroup = getSemigroup;\n/**\n * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction getTaskValidation(SE) {\n var applicativeTaskValidation = getApplicativeTaskValidation(T.ApplicativePar, SE);\n var altTaskValidation = getAltTaskValidation(SE);\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n ap: applicativeTaskValidation.ap,\n of: exports.of,\n chain: exports.flatMap,\n bimap: exports.mapBoth,\n mapLeft: exports.mapError,\n alt: altTaskValidation.alt,\n fromIO: exports.fromIO,\n fromTask: exports.fromTask,\n throwError: exports.throwError\n };\n}\nexports.getTaskValidation = getTaskValidation;\n","import { isNonEmpty } from './ReadonlyNonEmptyArray';\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Eq.equals('a', 'a'), true)\n * assert.deepStrictEqual(S.Eq.equals('a', 'b'), false)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var Eq = {\n equals: function (first, second) { return first === second; }\n};\n/**\n * `string` semigroup under concatenation.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Semigroup.concat('a', 'b'), 'ab')\n *\n * @category instances\n * @since 2.10.0\n */\nexport var Semigroup = {\n concat: function (first, second) { return first + second; }\n};\n/**\n * An empty `string`.\n *\n * @since 2.10.0\n */\nexport var empty = '';\n/**\n * `string` monoid under concatenation.\n *\n * The `empty` value is `''`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Monoid.concat('a', 'b'), 'ab')\n * assert.deepStrictEqual(S.Monoid.concat('a', S.Monoid.empty), 'a')\n *\n * @category instances\n * @since 2.10.0\n */\nexport var Monoid = {\n concat: Semigroup.concat,\n empty: empty\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Ord.compare('a', 'a'), 0)\n * assert.deepStrictEqual(S.Ord.compare('a', 'b'), -1)\n * assert.deepStrictEqual(S.Ord.compare('b', 'a'), 1)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var Ord = {\n equals: Eq.equals,\n compare: function (first, second) { return (first < second ? -1 : first > second ? 1 : 0); }\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.Show.show('a'), '\"a\"')\n *\n * @category instances\n * @since 2.10.0\n */\nexport var Show = {\n show: function (s) { return JSON.stringify(s); }\n};\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(S.isString('a'), true)\n * assert.deepStrictEqual(S.isString(1), false)\n *\n * @category refinements\n * @since 2.11.0\n */\nexport var isString = function (u) { return typeof u === 'string'; };\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('a', S.toUpperCase), 'A')\n *\n * @since 2.11.0\n */\nexport var toUpperCase = function (s) { return s.toUpperCase(); };\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('A', S.toLowerCase), 'a')\n *\n * @since 2.11.0\n */\nexport var toLowerCase = function (s) { return s.toLowerCase(); };\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.replace('b', 'd')), 'adc')\n *\n * @since 2.11.0\n */\nexport var replace = function (searchValue, replaceValue) {\n return function (s) {\n return s.replace(searchValue, replaceValue);\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trim), 'a')\n *\n * @since 2.11.0\n */\nexport var trim = function (s) { return s.trim(); };\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimLeft), 'a ')\n *\n * @since 2.11.0\n */\nexport var trimLeft = function (s) { return s.trimLeft(); };\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(' a ', S.trimRight), ' a')\n *\n * @since 2.11.0\n */\nexport var trimRight = function (s) { return s.trimRight(); };\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abcd', S.slice(1, 3)), 'bc')\n *\n * @since 2.11.0\n */\nexport var slice = function (start, end) {\n return function (s) {\n return s.slice(start, end);\n };\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `string` is empty.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('', S.isEmpty), true)\n * assert.deepStrictEqual(pipe('a', S.isEmpty), false)\n *\n * @since 2.10.0\n */\nexport var isEmpty = function (s) { return s.length === 0; };\n/**\n * Calculate the number of characters in a `string`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.size), 3)\n *\n * @since 2.10.0\n */\nexport var size = function (s) { return s.length; };\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.split('')), ['a', 'b', 'c'])\n * assert.deepStrictEqual(pipe('', S.split('')), [''])\n *\n * @since 2.11.0\n */\nexport var split = function (separator) {\n return function (s) {\n var out = s.split(separator);\n return isNonEmpty(out) ? out : [s];\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.includes('b')), true)\n * assert.deepStrictEqual(pipe('abc', S.includes('d')), false)\n *\n * @since 2.11.0\n */\nexport var includes = function (searchString, position) {\n return function (s) {\n return s.includes(searchString, position);\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.startsWith('a')), true)\n * assert.deepStrictEqual(pipe('bc', S.startsWith('a')), false)\n *\n * @since 2.11.0\n */\nexport var startsWith = function (searchString, position) {\n return function (s) {\n return s.startsWith(searchString, position);\n };\n};\n/**\n * @example\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe('abc', S.endsWith('c')), true)\n * assert.deepStrictEqual(pipe('ab', S.endsWith('c')), false)\n *\n * @since 2.11.0\n */\nexport var endsWith = function (searchString, position) {\n return function (s) {\n return s.endsWith(searchString, position);\n };\n};\n","export type BasicError<T> = {\n kind: \"client\" | \"server\" | \"app\";\n inner: T;\n};\n\nexport const basicErrorFromResponse = (\n error: Response\n): BasicError<Response> => {\n return {\n kind: \"server\",\n inner: error,\n };\n};\n\nexport const invalidTokenError: BasicError<string> = {\n kind: \"client\",\n inner: \"Token not exist or empty\",\n};\n\nexport const emptyApiPathError: BasicError<string> = {\n kind: \"client\",\n inner: \"Api path empty or missing\",\n};\n","import * as O from \"fp-ts/Option\";\nimport * as E from \"fp-ts/Either\";\nimport { IO } from \"fp-ts/IO\";\nimport { pipe } from \"fp-ts/function\";\nimport * as S from \"fp-ts/Semigroup\";\nimport * as String from \"fp-ts/string\";\nimport { state } from \"../store/store\";\nimport { BasicError, emptyApiPathError } from \"../error\";\n\nconst stringMonoid = O.getMonoid(String.Monoid);\n\nexport const getApiPath: IO<E.Either<BasicError<string>, string>> = () =>\n pipe(\n O.getFirstMonoid<string>().concat(\n O.fromNullable(state.apiPath),\n O.fromNullable(`${process.env.API_PATH}`)\n ),\n E.fromOption(() => emptyApiPathError)\n );\n\nconst headersSemigroupSum: S.Semigroup<Headers> = {\n concat: (x: Headers, y: Headers) => {\n const result = new Headers();\n\n if (x !== undefined) x.forEach((val, key) => result.append(key, val));\n if (y !== undefined) y.forEach((val, key) => result.append(key, val));\n\n return result;\n },\n};\n\nexport const mergeInitRequests = S.struct<RequestInit>({\n method: {\n concat: (a: string, b: string) => {\n const method = stringMonoid.concat(O.fromNullable(a), O.fromNullable(b));\n\n return pipe(\n method,\n O.getOrElse(() => \"GET\")\n );\n },\n },\n body: S.last<string>(),\n headers: headersSemigroupSum,\n});\n\nexport type RequestWithPath = [string, RequestInit];\nexport type RequestMethod = \"GET\" | \"POST\" | \"DELETE\";\n\nexport const createBasicRequest = (method: RequestMethod): RequestInit => {\n return {\n method,\n };\n};\n\nexport const createRequestFromMethod = (\n method: RequestMethod\n): E.Either<any, RequestInit> => E.right(createBasicRequest(method));\n\nexport const createInitGetRequest: E.Either<any, RequestInit> = E.right(\n createBasicRequest(\"GET\")\n);\n\nexport const createInitPostRequest: E.Either<any, RequestInit> = E.right(\n createBasicRequest(\"POST\")\n);\n","import { pipe } from \"fp-ts/lib/function\";\nimport * as TE from \"fp-ts/lib/TaskEither\";\nimport * as T from \"fp-ts/lib/Task\";\nimport { mergeInitRequests, RequestWithPath } from \"./utils\";\nimport { BasicError, basicErrorFromResponse } from \"../error\";\n\nconst safeRequest = (\n url: string | Request,\n request: RequestInit = { method: \"GET\" }\n): TE.TaskEither<Response, Response> =>\n TE.tryCatch(\n () => fetch(url, request),\n (failedResponse: Response) => failedResponse\n );\n\nconst processResponce = (\n response: Response\n): TE.TaskEither<Response, Response> =>\n response.status >= 200 && response.status < 300\n ? TE.right(response)\n : TE.left(response);\n\nfunction getJson<I>(x: Response): TE.TaskEither<Response, I> {\n const task: T.Task<I> = () => x.json();\n return TE.fromTask(task);\n}\n\nexport const request = <I>(\n url: string | Request,\n request: RequestInit = {}\n): TE.TaskEither<Response, I> =>\n pipe(\n safeRequest(url, request),\n TE.chain(processResponce),\n TE.chain((x) => getJson<I>(x))\n );\n\nconst initRequestSemigroup = mergeInitRequests;\n\nexport const makeRequest = <T>(path: string, init: RequestInit) => ([\n apiPath,\n options,\n]: RequestWithPath): TE.TaskEither<BasicError<Response>, T> => {\n const url = new URL(path, apiPath);\n const fullOptions = initRequestSemigroup.concat(options, init);\n\n return pipe(\n request<T>(url.toString(), fullOptions),\n TE.mapLeft(basicErrorFromResponse)\n );\n};\n","import * as E from \"fp-ts/Either\";\nimport { pipe } from \"fp-ts/function\";\n\ninterface Sized {\n length: number;\n}\n\nexport const isEmpty = (x: Sized): boolean => x.length === 0;\n\nconst checkEmpty = <T extends Sized>(x: T): E.Either<string, T> =>\n isEmpty(x) ? E.left(\"entity is empty\") : E.right(x);\n\nexport const existAndNotEmpty = <T extends Sized>(x: T): E.Either<string, T> =>\n pipe(x, E.fromNullable(\"entity not exist\"), E.chain(checkEmpty));\n","import { pipe } from \"fp-ts/function\";\nimport * as E from \"fp-ts/lib/Either\";\nimport { BasicError, invalidTokenError } from \"../../error\";\nimport { existAndNotEmpty } from \"../collections/collectionsUtils\";\n\nexport const createBearerHeaders = (token: string): Headers =>\n new Headers({\n Authorization: `Bearer ${token}`,\n });\n\nexport const checkToken = (\n token: string\n): E.Either<BasicError<string>, string> =>\n pipe(\n token,\n existAndNotEmpty,\n E.mapLeft(() => invalidTokenError)\n );\n\nexport const processBearerToken = (\n token: string\n): E.Either<BasicError<string>, Headers> =>\n pipe(token, checkToken, E.map(createBearerHeaders));\n","import { sequenceT } from \"fp-ts/lib/Apply\";\nimport { Apply } from \"fp-ts/lib/Either\";\n\nexport const sequenceToEither = sequenceT(Apply);\n","export const imageFormFromFile = (file: File): FormData => {\n const body = new FormData();\n body.append(\"image\", file);\n return body;\n};\n","import { pipe } from \"fp-ts/lib/function\";\nimport { ValueObject } from \"../network/ion/ValueObject\";\nimport { Link } from \"../network/ion/Link\";\nimport { Form } from \"../network/ion/Form\";\nimport { makeRequest } from \"../network/request\";\nimport { createInitPostRequest, getApiPath } from \"../network/utils\";\nimport { Recommendation } from \"../recommendation/recommendation\";\nimport * as E from \"fp-ts/Either\";\nimport * as TE from \"fp-ts/TaskEither\";\nimport * as O from \"fp-ts/Option\";\nimport { RectangleAlt } from \"../geometry/RectangleAlt\";\nimport { Eq } from \"fp-ts/lib/Eq\";\nimport { BasicError } from \"../error\";\nimport { processBearerToken } from \"../utils/token/tokenUtils\";\nimport { sequenceToEither } from \"../utils/either\";\nimport { imageFormFromFile } from \"../Image/form\";\n\nexport interface SearchSessionFilters {\n readonly [key: string]: Link[];\n}\n\nexport interface SearchSessionFilter {\n name: string;\n filters: Link[];\n}\n\nexport const readFilters = (\n filters: SearchSessionFilters\n): SearchSessionFilter[] =>\n Object.entries(filters).map(([name, filters]) => {\n return { name, filters };\n });\n\ntype HasFilters = {\n readonly filters: ValueObject<SearchSessionFilters>;\n};\n\nexport type DetectedObject = {\n class: string;\n score: number;\n rectangle: RectangleAlt;\n};\n\nexport const detectedObjectEq: Eq<DetectedObject> = {\n equals: (x: DetectedObject, y: DetectedObject) =>\n x.class === y.class &&\n x.score === y.score &&\n x.rectangle.left === y.rectangle.left &&\n x.rectangle.top === y.rectangle.top &&\n x.rectangle.height === y.rectangle.height &&\n x.rectangle.width === y.rectangle.width,\n};\n\ntype ContainsDetectedObjects = {\n readonly detectedObjects: ValueObject<DetectedObject>[];\n};\n\ntype ContainsRectangleSearch = {\n readonly searchArea: Form;\n};\n\ntype ContainsHiresImageUpload = {\n readonly uploadHighResolutionImage: Form;\n};\n\nexport type SearchSession = ValueObject<Recommendation[]> &\n HasFilters &\n Partial<ContainsDetectedObjects> &\n ContainsRectangleSearch &\n ContainsHiresImageUpload;\n\nexport const searchSessionClient = (\n initialData: RequestInit,\n campaignId: O.Option<string> = O.none\n): TE.TaskEither<BasicError<Response | string>, SearchSession> => {\n const searchUrl = \"search/session\";\n\n const requestUrl = pipe(\n campaignId,\n O.fold(\n () => searchUrl,\n (campaignId) => `${searchUrl}?campaign-id=${campaignId}`\n )\n );\n\n return pipe(\n sequenceToEither(getApiPath(), createInitPostRequest),\n TE.fromEither,\n TE.chainW(makeRequest<SearchSession>(requestUrl, initialData))\n );\n};\n\nexport type ObjectsDetectedEvent = CustomEvent<ValueObject<DetectedObject>[]>;\n\nexport const makeRequestFromFile = (\n token: string,\n file: File\n): E.Either<BasicError<string>, RequestInit> =>\n pipe(\n sequenceToEither(\n processBearerToken(token),\n E.right(imageFormFromFile(file))\n ),\n E.map(([headers, body]) => {\n return {\n headers,\n body,\n };\n })\n );\n","import { Link } from \"./Link\";\n\nenum ObjectMemberName {\n eform = \"eform\",\n etype = \"etype\",\n form = \"form\",\n href = \"href\",\n method = \"method\",\n accepts = \"accepts\",\n produces = \"produces\",\n rel = \"rel\",\n type = \"type\",\n value = \"value\",\n}\n\ntype MemberObject = {\n [key in ObjectMemberName]: unknown;\n};\n\nexport type Valueable<T> = {\n readonly value: T;\n};\n\ntype Linked = {\n readonly links: {\n [link: string]: Link;\n };\n};\n\nexport type ValueObject<T> = Valueable<T> &\n Partial<MemberObject> &\n Partial<Linked>;\n\nexport const foldValueObject = <T>(i: ValueObject<T>): T => {\n switch (i.type) {\n case \"array\": {\n return (i.value as any).map(foldValueObject);\n }\n default: {\n return i.value;\n }\n }\n};\n","import { ValueObject } from \"./ValueObject\";\nimport * as O from \"fp-ts/Option\";\nimport * as TE from \"fp-ts/TaskEither\";\nimport { pipe } from \"fp-ts/function\";\nimport { getApiPath, RequestMethod, createRequestFromMethod } from \"../utils\";\nimport { makeRequest } from \"../request\";\nimport { sequenceToEither } from \"../../utils/either\";\n\nexport interface IonLinkParams {\n readonly [param: string]: string;\n}\n\nexport type Link = {\n href: string;\n // for backward compatibility\n readonly method?: RequestMethod;\n // for backward compatibility\n readonly name?: string;\n};\n\nexport const getLink = (\n item: ValueObject<unknown>,\n path: string\n): O.Option<Link> =>\n pipe(\n item.links,\n O.fromNullable,\n O.chain((linksObject) => O.fromNullable(linksObject[path]))\n );\n\nexport const linkRequest = <T>(link: Link) => (data: RequestInit) =>\n pipe(\n sequenceToEither(getApiPath(), createRequestFromMethod(link.method)),\n TE.fromEither,\n TE.chainW(makeRequest<ValueObject<T>>(link.href, data))\n );\n","import {\n Point,\n fromRectangle,\n pointSumSemigroup,\n pointProductSemigroup,\n} from \"./Point\";\nimport { Handler, HandlerDirection } from \"../cropper/Handler\";\nimport { Sized, sizedDivSemigroup } from \"./Sized\";\nimport { RectangleAlt } from \"./RectangleAlt\";\n\nexport type Rectangle = Point & Sized;\n\ninterface RectangleTransform {\n (x: Rectangle, y: Handler): Rectangle;\n}\n\nexport const move = (origin: Rectangle, position: Point): Rectangle => {\n const originPosition = fromRectangle(origin);\n const newPosition = pointSumSemigroup.concat(originPosition, position);\n\n return {\n ...newPosition,\n width: origin.width,\n height: origin.height,\n };\n};\n\nconst transformNorthEast: RectangleTransform = (origin, handler) => {\n const newPosition = pointSumSemigroup.concat(fromRectangle(origin), {\n x: 0,\n y: handler.position.y,\n });\n\n return {\n ...newPosition,\n width: origin.width + handler.position.x,\n height: origin.height - handler.position.y,\n };\n};\n\nexport const transformNorthWest = (\n origin: Rectangle,\n handler: Handler\n): Rectangle => {\n const newPosition = pointSumSemigroup.concat(\n fromRectangle(origin),\n handler.position\n );\n\n return {\n ...newPosition,\n width: origin.width - handler.position.x,\n height: origin.height - handler.position.y,\n };\n};\n\nconst transformSouthEast: RectangleTransform = (origin, handler) => {\n return {\n ...origin,\n width: origin.width + handler.position.x,\n height: origin.height + handler.position.y,\n };\n};\n\nconst transformSouthWest = (origin: Rectangle, handler: Handler): Rectangle => {\n const newPosition = pointSumSemigroup.concat(fromRectangle(origin), {\n x: handler.position.x,\n y: 0,\n });\n\n return {\n ...newPosition,\n width: origin.width - handler.position.x,\n height: origin.height + handler.position.y,\n };\n};\n\nexport const transform: RectangleTransform = (origin, handler) => {\n switch (handler.direction) {\n case HandlerDirection.NorthEast:\n return transformNorthEast(origin, handler);\n case HandlerDirection.NorthWest:\n return transformNorthWest(origin, handler);\n case HandlerDirection.SouthEast:\n return transformSouthEast(origin, handler);\n case HandlerDirection.SouthWest:\n return transformSouthWest(origin, handler);\n }\n};\n\nexport const fromImage = (image: HTMLImageElement): Rectangle => {\n return {\n x: 0,\n y: 0,\n width: image.width,\n height: image.height,\n };\n};\n\nexport const fromNaturalImage = (image: HTMLImageElement): Rectangle => {\n return {\n x: 0,\n y: 0,\n width: image.naturalWidth,\n height: image.naturalHeight,\n };\n};\n\nexport const getScaleRange = (source: Rectangle, target: Rectangle): Point => {\n const difference = sizedDivSemigroup.concat(target, source);\n return {\n x: difference.width,\n y: difference.height,\n };\n};\n\nexport const scaleSelection = (\n source: Rectangle,\n sourceSelection: Rectangle,\n target: Rectangle\n): Rectangle => {\n const sourcePosition = fromRectangle(source);\n const scale = getScaleRange(source, target);\n const newPosition = pointProductSemigroup.concat(sourcePosition, scale);\n\n return {\n ...newPosition,\n width: sourceSelection.width * scale.x,\n height: sourceSelection.height * scale.y,\n };\n};\n\nexport const fromAlt = (r: RectangleAlt): Rectangle => {\n return {\n x: r.left,\n y: r.top,\n ...r,\n };\n};\n\nexport const scaleWithSized = (s: Sized) => (r: Rectangle): Rectangle => {\n return {\n x: r.x * s.width,\n y: r.y * s.height,\n width: r.width * s.width,\n height: r.height * s.height,\n };\n};\n\nexport const divideOnSized = (s: Sized) => (r: Rectangle): Rectangle => {\n return {\n x: r.x / s.width,\n y: r.y / s.height,\n width: r.width / s.width,\n height: r.height / s.height,\n };\n};\n\nexport const center = (r: Rectangle): Point => {\n return {\n x: r.x + r.width * 0.5,\n y: r.y + r.height * 0.5,\n };\n};\n","import * as E from \"fp-ts/Either\";\nimport * as TE from \"fp-ts/TaskEither\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { Valueable } from \"./ValueObject\";\nimport { Link } from \"./Link\";\nimport { ValueObject } from \"./ValueObject\";\nimport { getApiPath } from \"../utils\";\nimport { makeRequest } from \"../request\";\nimport { sequenceToEither } from \"../../utils/either\";\nimport { BasicError } from \"../../error\";\n\ntype FormRelation = \"form\" | \"edit-form\" | \"create-form\" | \"query-form\";\n\nenum FormMemberName {\n desc = \"desc\",\n eform = \"eform\",\n enabled = \"enabled\",\n etype = \"etype\",\n form = \"form\",\n label = \"label\",\n max = \"max\",\n maxlength = \"maxlength\",\n maxsize = \"maxsize\",\n min = \"min\",\n minlength = \"minlength\",\n minsize = \"minsize\",\n mutable = \"mutable\",\n name = \"name\",\n options = \"options\",\n pattern = \"pattern\",\n placeholder = \"placeholder\",\n required = \"required\",\n secret = \"secret\",\n type = \"type\",\n value = \"value\",\n visible = \"visible\",\n}\n\ntype FormMemberObject = {\n [key in FormMemberName]: unknown;\n};\n\ntype FormField = Partial<FormMemberObject>;\n\nexport const checkFormFields = (\n f: FormField[],\n data: Object\n): E.Either<string, Object> => {\n const fields = f.map((x) => x.name) as string[];\n const keys = Object.keys(data);\n const diff = fields.filter((x) => !keys.includes(x));\n\n return diff.length === 0\n ? E.right(data)\n : E.left(`Data should contains fields: ${diff.join(\", \")}`);\n};\n\nexport type FormType = {\n rel: FormRelation[];\n};\n\nexport type Form = Valueable<FormField[]> & Link & FormType;\n\nexport const requestFromForm = (\n form: Form,\n data: Object\n): E.Either<string, [string, RequestInit]> =>\n pipe(\n checkFormFields(form.value, data),\n E.map((checkedData) =>\n form.rel.includes(\"query-form\")\n ? transformGetForm(form, checkedData)\n : transformSendForm(form, checkedData)\n )\n );\n\nconst transformGetForm = (form: Form, data: Object): [string, RequestInit] => {\n const params = new URLSearchParams(Object.entries(data));\n const url = `${form.href}?${params.toString()}`;\n\n return [url, { method: \"GET\" }];\n};\n\nconst transformSendForm = (form: Form, data: Object): [string, RequestInit] => [\n form.href,\n {\n body: JSON.stringify(data),\n method: form.method,\n headers: new Headers({\n \"Content-Type\": \"application/ion+json\",\n }),\n },\n];\n\nexport const formRequest = <T>(form: Form, data: Object = {}) => (\n payload: RequestInit\n) =>\n pipe(\n sequenceToEither(\n getApiPath(),\n pipe(\n requestFromForm(form, data),\n E.mapLeft(\n (error: string): BasicError<string> => {\n return { kind: \"app\", inner: error };\n }\n )\n )\n ),\n TE.fromEither,\n TE.chainW((initialData) => {\n const apiPath = initialData[0];\n const [formUrl, initObject] = initialData[1];\n\n return makeRequest<ValueObject<T>>(\n formUrl,\n initObject\n )([apiPath, payload]);\n })\n );\n","import { Valueable } from \"./ValueObject\";\n\ntype IonFileData = {\n name: string;\n mediaType: string;\n};\n\nexport type IonFile = Valueable<string> & IonFileData;\n\nexport const fileToB64 = async (f: File): Promise<string> =>\n new Promise<string>((resolve) => {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n resolve(reader.result as string);\n });\n\n reader.readAsDataURL(f);\n });\n\nexport const fromFile = async (f: File): Promise<IonFile> => {\n return {\n name: f.name,\n mediaType: f.type,\n value: await fileToB64(f),\n };\n};\n","import { sequenceT } from \"fp-ts/lib/Apply\";\nimport { Apply, some, none, Option } from \"fp-ts/lib/Option\";\n\nexport const sequenceToOption = sequenceT(Apply);\n\nexport const checkEmpryString = (x: string): Option<string> =>\n x.length > 0 ? some(x) : none;\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { fromEquals } from './Eq';\nimport { fromEitherK as fromEitherK_ } from './FromEither';\nimport { dual, identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport * as N from './number';\nimport { fromCompare } from './Ord';\nimport * as RNEA from './ReadonlyNonEmptyArray';\nimport { separated } from './Separated';\nimport { filterE as filterE_, wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero';\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether a `ReadonlyArray` is empty.\n *\n * @example\n * import { isEmpty } from 'fp-ts/ReadonlyArray'\n *\n * assert.strictEqual(isEmpty([]), true)\n *\n * @category refinements\n * @since 2.5.0\n */\nexport var isEmpty = function (as) { return as.length === 0; };\n/**\n * Test whether a `ReadonlyArray` is non empty.\n *\n * @category refinements\n * @since 2.5.0\n */\nexport var isNonEmpty = RNEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexport var prepend = RNEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @since 2.11.0\n */\nexport var prependW = RNEA.prependW;\n/**\n * Append an element to the end of a `ReadonlyArray`, creating a new `ReadonlyNonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexport var append = RNEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @since 2.11.0\n */\nexport var appendW = RNEA.appendW;\n/**\n * Return a `ReadonlyArray` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/ReadonlyArray'\n *\n * const double = (n: number): number => n * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n *\n * @category constructors\n * @since 2.5.0\n */\nexport var makeBy = function (n, f) { return (n <= 0 ? empty : RNEA.makeBy(f)(n)); };\n/**\n * Create a `ReadonlyArray` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n *\n * @category constructors\n * @since 2.5.0\n */\nexport var replicate = function (n, a) { return makeBy(n, function () { return a; }); };\nexport function fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : empty); };\n}\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * @category conversions\n * @since 2.11.0\n */\nexport var fromOption = function (ma) { return (_.isNone(ma) ? empty : [ma.value]); };\n/**\n * Transforms an `Either` to a `ReadonlyArray`.\n *\n * @category conversions\n * @since 2.11.0\n */\nexport var fromEither = function (e) { return (_.isLeft(e) ? empty : [e.right]); };\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(as) : onEmpty();\n };\n};\n/**\n * @category pattern matching\n * @since 2.11.0\n */\nexport var match = matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(RNEA.head(as), RNEA.tail(as)) : onEmpty();\n };\n};\n/**\n * Break a `ReadonlyArray` into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/ReadonlyArray'\n *\n * const len: <A>(as: ReadonlyArray<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchLeft = matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexport var foldLeft = matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(RNEA.init(as), RNEA.last(as)) : onEmpty();\n };\n};\n/**\n * Break a `ReadonlyArray` into its initial elements and the last element.\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchRight = matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.5.0\n */\nexport var foldRight = matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category sequencing\n * @since 2.7.0\n */\nexport var chainWithIndex = function (f) {\n return function (as) {\n if (isEmpty(as)) {\n return empty;\n }\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\n/**\n * Same as `reduce` but it carries over the intermediate steps.\n *\n * @example\n * import { scanLeft } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.5.0\n */\nexport var scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.5.0\n */\nexport var scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\n/**\n * Calculate the number of elements in a `ReadonlyArray`.\n *\n * @since 2.10.0\n */\nexport var size = function (as) { return as.length; };\n/**\n * Test whether an array contains a particular index\n *\n * @since 2.5.0\n */\nexport var isOutOfBound = RNEA.isOutOfBound;\nexport function lookup(i, as) {\n return as === undefined ? function (as) { return lookup(i, as); } : isOutOfBound(i, as) ? _.none : _.some(as[i]);\n}\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.5.0\n */\nexport var head = function (as) { return (isNonEmpty(as) ? _.some(RNEA.head(as)) : _.none); };\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.5.0\n */\nexport var last = function (as) { return (isNonEmpty(as) ? _.some(RNEA.last(as)) : _.none); };\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.5.0\n */\nexport var tail = function (as) {\n return isNonEmpty(as) ? _.some(RNEA.tail(as)) : _.none;\n};\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.5.0\n */\nexport var init = function (as) {\n return isNonEmpty(as) ? _.some(RNEA.init(as)) : _.none;\n};\n/**\n * Keep only a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeLeft(2)), [1, 2])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeLeft(4)), input)\n * assert.strictEqual(pipe(input, RA.takeLeft(-1)), input)\n *\n * @since 2.5.0\n */\nexport var takeLeft = function (n) {\n return function (as) {\n return isOutOfBound(n, as) ? as : n === 0 ? empty : as.slice(0, n);\n };\n};\n/**\n * Keep only a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.takeRight(2)), [2, 3])\n *\n * // out of bounds\n * assert.strictEqual(pipe(input, RA.takeRight(4)), input)\n * assert.strictEqual(pipe(input, RA.takeRight(-1)), input)\n *\n * @since 2.5.0\n */\nexport var takeRight = function (n) {\n return function (as) {\n return isOutOfBound(n, as) ? as : n === 0 ? empty : as.slice(-n);\n };\n};\nexport function takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n var len = out.length;\n return len === as.length ? as : len === 0 ? empty : out;\n };\n}\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nexport function spanLeft(predicate) {\n return function (as) {\n var _a = splitAt(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\n/**\n * Drop a max number of elements from the start of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropLeft(2)), [3])\n * assert.strictEqual(pipe(input, RA.dropLeft(0)), input)\n * assert.strictEqual(pipe(input, RA.dropLeft(-1)), input)\n *\n * @since 2.5.0\n */\nexport var dropLeft = function (n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? as : n >= as.length ? empty : as.slice(n, as.length);\n };\n};\n/**\n * Drop a max number of elements from the end of an `ReadonlyArray`, creating a new `ReadonlyArray`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const input: ReadonlyArray<number> = [1, 2, 3]\n * assert.deepStrictEqual(pipe(input, RA.dropRight(2)), [1])\n * assert.strictEqual(pipe(input, RA.dropRight(0)), input)\n * assert.strictEqual(pipe(input, RA.dropRight(-1)), input)\n *\n * @since 2.5.0\n */\nexport var dropRight = function (n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? as : n >= as.length ? empty : as.slice(0, as.length - n);\n };\n};\nexport function dropLeftWhile(predicate) {\n return function (as) {\n var i = spanLeftIndex(as, predicate);\n return i === 0 ? as : i === as.length ? empty : as.slice(i);\n };\n}\n/**\n * Find the first index for which a predicate holds\n *\n * @example\n * import { findIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.5.0\n */\nexport var findIndex = function (predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\nexport function findFirst(predicate) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\n/**\n * Find the first element returned by an option based selector function\n *\n * @example\n * import { findFirstMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the first person that has an age\n * assert.deepStrictEqual(findFirstMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Mary'))\n *\n * @since 2.5.0\n */\nexport var findFirstMap = function (f) {\n return function (as) {\n for (var i = 0; i < as.length; i++) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\nexport function findLast(predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(as[i]);\n }\n }\n return _.none;\n };\n}\n/**\n * Find the last element returned by an option based selector function\n *\n * @example\n * import { findLastMap } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string\n * readonly age?: number\n * }\n *\n * const persons: ReadonlyArray<Person> = [{ name: 'John' }, { name: 'Mary', age: 45 }, { name: 'Joey', age: 28 }]\n *\n * // returns the name of the last person that has an age\n * assert.deepStrictEqual(findLastMap((p: Person) => (p.age === undefined ? none : some(p.name)))(persons), some('Joey'))\n *\n * @since 2.5.0\n */\nexport var findLastMap = function (f) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n var out = f(as[i]);\n if (_.isSome(out)) {\n return out;\n }\n }\n return _.none;\n };\n};\n/**\n * Returns the index of the last element of the list which matches the predicate\n *\n * @example\n * import { findLastIndex } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: ReadonlyArray<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n *\n * @since 2.5.0\n */\nexport var findLastIndex = function (predicate) {\n return function (as) {\n for (var i = as.length - 1; i >= 0; i--) {\n if (predicate(as[i])) {\n return _.some(i);\n }\n }\n return _.none;\n };\n};\n/**\n * Insert an element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { insertAt } from 'fp-ts/ReadonlyArray'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.5.0\n */\nexport var insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(RNEA.unsafeInsertAt(i, a, as));\n };\n};\n/**\n * Change the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { updateAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.5.0\n */\nexport var updateAt = function (i, a) {\n return modifyAt(i, function () { return a; });\n};\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds\n *\n * @example\n * import { deleteAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.5.0\n */\nexport var deleteAt = function (i) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as));\n };\n};\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds\n *\n * @example\n * import { modifyAt } from 'fp-ts/ReadonlyArray'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.5.0\n */\nexport var modifyAt = function (i, f) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));\n };\n};\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.5.0\n */\nexport var reverse = function (as) { return (as.length <= 1 ? as : as.slice().reverse()); };\n/**\n * Extracts from an array of `Either` all the `Right` elements. All the `Right` elements are extracted in order\n *\n * @example\n * import { rights } from 'fp-ts/ReadonlyArray'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.5.0\n */\nexport var rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\n/**\n * Extracts from an array of `Either` all the `Left` elements. All the `Left` elements are extracted in order\n *\n * @example\n * import { lefts } from 'fp-ts/ReadonlyArray'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.5.0\n */\nexport var lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.5.0\n */\nexport var sort = function (O) {\n return function (as) {\n return as.length <= 1 ? as : as.slice().sort(O.compare);\n };\n};\n// TODO: curry and make data-last in v3\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.5.0\n */\nexport var zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexport function zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return zipWith(as, bs, function (a, b) { return [a, b]; });\n}\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.5.0\n */\nexport var unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\n/**\n * Prepend an element to every member of an array\n *\n * @example\n * import { prependAll } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nexport var prependAll = function (middle) {\n var f = RNEA.prependAll(middle);\n return function (as) { return (isNonEmpty(as) ? f(as) : as); };\n};\n/**\n * Places an element in between members of an array\n *\n * @example\n * import { intersperse } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nexport var intersperse = function (middle) {\n var f = RNEA.intersperse(middle);\n return function (as) { return (isNonEmpty(as) ? f(as) : as); };\n};\n/**\n * Rotate a `ReadonlyArray` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.5.0\n */\nexport var rotate = function (n) {\n var f = RNEA.rotate(n);\n return function (as) { return (isNonEmpty(as) ? f(as) : as); };\n};\nexport function elem(E) {\n return function (a, as) {\n if (as === undefined) {\n var elemE_1 = elem(E);\n return function (as) { return elemE_1(a, as); };\n }\n var predicate = function (element) { return E.equals(element, a); };\n var i = 0;\n for (; i < as.length; i++) {\n if (predicate(as[i])) {\n return true;\n }\n }\n return false;\n };\n}\n/**\n * Remove duplicates from an array, keeping the first occurrence of an element.\n *\n * @example\n * import { uniq } from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.5.0\n */\nexport var uniq = function (E) {\n var f = RNEA.uniq(E);\n return function (as) { return (isNonEmpty(as) ? f(as) : as); };\n};\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/ReadonlyArray'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.5.0\n */\nexport var sortBy = function (ords) {\n var f = RNEA.sortBy(ords);\n return function (as) { return (isNonEmpty(as) ? f(as) : as); };\n};\n/**\n * A useful recursion pattern for processing a `ReadonlyArray` to produce a new `ReadonlyArray`, often used for \"chopping\" up the input\n * `ReadonlyArray`. Typically `chop` is called with some function that will consume an initial prefix of the `ReadonlyArray` and produce a\n * value and the tail of the `ReadonlyArray`.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = <A>(S: Eq<A>): ((as: ReadonlyArray<A>) => ReadonlyArray<ReadonlyArray<A>>) => {\n * return RA.chop(as => {\n * const { init, rest } = pipe(as, RA.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.5.0\n */\nexport var chop = function (f) {\n var g = RNEA.chop(f);\n return function (as) { return (isNonEmpty(as) ? g(as) : empty); };\n};\n/**\n * Splits a `ReadonlyArray` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.5.0\n */\nexport var splitAt = function (n) {\n return function (as) {\n return n >= 1 && isNonEmpty(as) ? RNEA.splitAt(n)(as) : isEmpty(as) ? [as, empty] : [empty, as];\n };\n};\n/**\n * Splits a `ReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the `ReadonlyArray`. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that:\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `as`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.5.0\n */\nexport var chunksOf = function (n) {\n var f = RNEA.chunksOf(n);\n return function (as) { return (isNonEmpty(as) ? f(as) : empty); };\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return fromOption(f.apply(void 0, a));\n };\n};\nexport function comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return isNonEmpty(input)\n ? flatMap(RNEA.head(input), function (a) { return go(pipe(scope, append(a)), RNEA.tail(input)); })\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : empty;\n };\n return go(empty, input);\n}\n/**\n * @since 2.11.0\n */\nexport var concatW = function (second) {\n return function (first) {\n return isEmpty(first) ? second : isEmpty(second) ? first : first.concat(second);\n };\n};\n/**\n * @since 2.11.0\n */\nexport var concat = concatW;\nexport function union(E) {\n var unionE = RNEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return isNonEmpty(first) && isNonEmpty(second) ? unionE(second)(first) : isNonEmpty(first) ? first : second;\n };\n}\nexport function intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexport function difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\nvar _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\nvar _filter = function (fa, predicate) {\n return pipe(fa, filter(predicate));\n};\nvar _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };\nvar _partition = function (fa, predicate) {\n return pipe(fa, partition(predicate));\n};\nvar _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return pipe(fa, partitionWithIndex(predicateWithIndex)); };\nvar _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); };\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\nvar _foldMap = function (M) {\n var foldMapM = foldMap(M);\n return function (fa, f) { return pipe(fa, foldMapM(f)); };\n};\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\nvar _reduceWithIndex = function (fa, b, f) {\n return pipe(fa, reduceWithIndex(b, f));\n};\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); };\n};\nvar _reduceRightWithIndex = function (fa, b, f) {\n return pipe(fa, reduceRightWithIndex(b, f));\n};\nvar _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); };\nvar _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); };\nvar _extend = function (fa, f) { return pipe(fa, extend(f)); };\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); };\n};\n/** @internal */\nexport var _chainRecDepthFirst = function (a, f) { return pipe(a, chainRecDepthFirst(f)); };\n/** @internal */\nexport var _chainRecBreadthFirst = function (a, f) { return pipe(a, chainRecBreadthFirst(f)); };\n/**\n * @category constructors\n * @since 2.5.0\n */\nexport var of = RNEA.of;\n/**\n * @since 2.7.0\n */\nexport var zero = function () { return empty; };\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nexport var altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `ReadonlyArray` concatenates the inputs into a single array.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.5.0\n */\nexport var alt = altW;\n/**\n * @since 2.5.0\n */\nexport var ap = function (fa) {\n return flatMap(function (f) { return pipe(fa, map(f)); });\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.flatMap((n) => [`a${n}`, `b${n}`])\n * ),\n * ['a1', 'b1', 'a2', 'b2', 'a3', 'b3']\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.flatMap(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) {\n return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); }));\n});\n/**\n * @category sequencing\n * @since 2.5.0\n */\nexport var flatten = /*#__PURE__*/ flatMap(identity);\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types\n * use the type constructor `F` to represent some computational context.\n *\n * @category mapping\n * @since 2.5.0\n */\nexport var map = function (f) { return function (fa) {\n return fa.map(function (a) { return f(a); });\n}; };\n/**\n * @category mapping\n * @since 2.5.0\n */\nexport var mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return separated(left, right);\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var filterMap = function (f) {\n return filterMapWithIndex(function (_, a) { return f(a); });\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var compact = /*#__PURE__*/ filterMap(identity);\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var partition = function (predicate) {\n return partitionWithIndex(function (_, a) { return predicate(a); });\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (predicateWithIndex(i, a)) {\n right.push(a);\n }\n else {\n left.push(a);\n }\n }\n return separated(left, right);\n };\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var partitionMap = function (f) {\n return partitionMapWithIndex(function (_, a) { return f(a); });\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return separated(left, right);\n };\n};\n/**\n * @category filtering\n * @since 2.5.0\n */\nexport var filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (a, i) { return predicateWithIndex(i, a); });\n };\n};\n/**\n * @since 2.5.0\n */\nexport var extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\n/**\n * @since 2.5.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * @category folding\n * @since 2.5.0\n */\nexport var foldMapWithIndex = function (M) {\n return function (f) {\n return function (fa) {\n return fa.reduce(function (b, a, i) { return M.concat(b, f(i, a)); }, M.empty);\n };\n };\n};\n/**\n * @category folding\n * @since 2.5.0\n */\nexport var reduce = function (b, f) {\n return reduceWithIndex(b, function (_, b, a) { return f(b, a); });\n};\n/**\n * @category folding\n * @since 2.5.0\n */\nexport var foldMap = function (M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (f) { return foldMapWithIndexM(function (_, a) { return f(a); }); };\n};\n/**\n * @category folding\n * @since 2.5.0\n */\nexport var reduceWithIndex = function (b, f) { return function (fa) {\n var len = fa.length;\n var out = b;\n for (var i = 0; i < len; i++) {\n out = f(i, out, fa[i]);\n }\n return out;\n}; };\n/**\n * @category folding\n * @since 2.5.0\n */\nexport var reduceRight = function (b, f) {\n return reduceRightWithIndex(b, function (_, a, b) { return f(a, b); });\n};\n/**\n * @category folding\n * @since 2.5.0\n */\nexport var reduceRightWithIndex = function (b, f) { return function (fa) {\n return fa.reduceRight(function (b, a, i) { return f(i, a, b); }, b);\n}; };\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\n/**\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of(zero()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return pipe(as, append(a)); }; }), fa);\n });\n };\n};\n/**\n * @category sequencing\n * @since 2.6.3\n */\nexport var traverseWithIndex = function (F) {\n return function (f) {\n return reduceWithIndex(F.of(zero()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, a));\n });\n };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\n/**\n * @since 2.6.6\n */\nexport var unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\n/**\n * @category type lambdas\n * @since 2.5.0\n */\nexport var URI = 'ReadonlyArray';\n/**\n * @category instances\n * @since 2.5.0\n */\nexport var getShow = function (S) { return ({\n show: function (as) { return \"[\".concat(as.map(S.show).join(', '), \"]\"); }\n}); };\n/**\n * @category instances\n * @since 2.5.0\n */\nexport var getSemigroup = function () { return ({\n concat: function (first, second) { return (isEmpty(first) ? second : isEmpty(second) ? first : first.concat(second)); }\n}); };\n/**\n * Returns a `Monoid` for `ReadonlyArray<A>`.\n *\n * @example\n * import { getMonoid } from 'fp-ts/ReadonlyArray'\n *\n * const M = getMonoid<number>()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.5.0\n */\nexport var getMonoid = function () { return ({\n concat: getSemigroup().concat,\n empty: empty\n}); };\n/**\n * Derives an `Eq` over the `ReadonlyArray` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/ReadonlyArray'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.5.0\n */\nexport var getEq = function (E) {\n return fromEquals(function (xs, ys) { return xs.length === ys.length && xs.every(function (x, i) { return E.equals(x, ys[i]); }); });\n};\n/**\n * Derives an `Ord` over the `ReadonlyArray` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/ReadonlyArray'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n *\n * @category instances\n * @since 2.5.0\n */\nexport var getOrd = function (O) {\n return fromCompare(function (a, b) {\n var aLen = a.length;\n var bLen = b.length;\n var len = Math.min(aLen, bLen);\n for (var i = 0; i < len; i++) {\n var ordering = O.compare(a[i], b[i]);\n if (ordering !== 0) {\n return ordering;\n }\n }\n return N.Ord.compare(aLen, bLen);\n });\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getUnionMonoid = function (E) { return ({\n concat: getUnionSemigroup(E).concat,\n empty: empty\n}); };\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * RA.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.5.0\n */\nexport var chainFirst = \n/*#__PURE__*/ chainFirst_(Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Unfoldable = {\n URI: URI,\n unfold: unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexport var guard = /*#__PURE__*/ guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alternative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n alt: _alt,\n zero: zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Filterable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var FilterableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: sequence,\n traverseWithIndex: _traverseWithIndex\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainRecDepthFirst = function (f) {\n return function (a) {\n var todo = __spreadArray([], f(a), true);\n var out = [];\n while (todo.length > 0) {\n var e = todo.shift();\n if (_.isLeft(e)) {\n todo.unshift.apply(todo, f(e.left));\n }\n else {\n out.push(e.right);\n }\n }\n return out;\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var ChainRecDepthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainRecBreadthFirst = function (f) {\n return function (a) {\n var initial = f(a);\n var todo = [];\n var out = [];\n function go(e) {\n if (_.isLeft(e)) {\n f(e.left).forEach(function (v) { return todo.push(v); });\n }\n else {\n out.push(e.right);\n }\n }\n for (var _i = 0, initial_1 = initial; _i < initial_1.length; _i++) {\n var e = initial_1[_i];\n go(e);\n }\n while (todo.length > 0) {\n go(todo.shift());\n }\n return out;\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var ChainRecBreadthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap,\n chainRec: _chainRecBreadthFirst\n};\nvar _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);\nvar _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Witherable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * Filter values inside a context.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as T from 'fp-ts/Task'\n *\n * const filterE = RA.filterE(T.ApplicativePar)\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * [-1, 2, 3],\n * filterE((n) => T.of(n > 0))\n * )(),\n * [2, 3]\n * )\n * }\n * test()\n *\n * @since 2.11.0\n */\nexport var filterE = /*#__PURE__*/ filterE_(Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexport var unsafeInsertAt = RNEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexport var unsafeUpdateAt = function (i, a, as) {\n return isNonEmpty(as) ? RNEA.unsafeUpdateAt(i, a, as) : as;\n};\n/**\n * @category unsafe\n * @since 2.5.0\n */\nexport var unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\n/**\n * @category conversions\n * @since 2.5.0\n */\nexport var toArray = function (as) { return as.slice(); };\n/**\n * @category conversions\n * @since 2.5.0\n */\nexport var fromArray = function (as) { return (isEmpty(as) ? empty : as.slice()); };\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * An empty array\n *\n * @since 2.5.0\n */\nexport var empty = RNEA.empty;\nexport function every(predicate) {\n return function (as) { return as.every(predicate); };\n}\n/**\n * Check if a predicate holds true for any array member.\n *\n * @example\n * import { some } from 'fp-ts/ReadonlyArray'\n * import { pipe } from 'fp-ts/function'\n *\n * const isPositive = (n: number): boolean => n > 0\n *\n * assert.deepStrictEqual(pipe([-1, -2, 3], some(isPositive)), true)\n * assert.deepStrictEqual(pipe([-1, -2, -3], some(isPositive)), false)\n *\n * @since 2.9.0\n */\nexport var some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexport var exists = some;\n/**\n * Places an element in between members of a `ReadonlyArray`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/ReadonlyArray'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexport var intercalate = function (M) {\n var intercalateM = RNEA.intercalate(M);\n return function (middle) { return match(function () { return M.empty; }, intercalateM(middle)); };\n};\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ bind_(Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.5.0\n */\nexport var chain = flatMap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `ReadonlyNonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexport var range = RNEA.range;\n/**\n * Use [`prepend`](#prepend) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexport var cons = RNEA.cons;\n/**\n * Use [`append`](#append) instead.\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexport var snoc = RNEA.snoc;\n/**\n * Use [`prependAll`](#prependall) instead.\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexport var prependToAll = prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `RA.Functor` instead of `RA.readonlyArray`\n * (where `RA` is from `import RA from 'fp-ts/ReadonlyArray'`)\n *\n * @category zone of death\n * @since 2.5.0\n * @deprecated\n */\nexport var readonlyArray = {\n URI: URI,\n compact: compact,\n separate: separate,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: zero,\n unfold: unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n","import { apFirst as apFirst_, apS as apS_, apSecond as apSecond_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { fromEitherK as fromEitherK_ } from './FromEither';\nimport { dual, identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_, let as let__ } from './Functor';\nimport * as _ from './internal';\nimport * as NEA from './NonEmptyArray';\nimport * as RA from './ReadonlyArray';\nimport { separated } from './Separated';\nimport { filterE as filterE_, wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero';\n// -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n/**\n * Test whether an array is empty\n *\n * @example\n * import { isEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isEmpty([]), true)\n * assert.strictEqual(isEmpty(['a']), false)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isEmpty = function (as) { return as.length === 0; };\n/**\n * Test whether an array is non empty narrowing down the type to `NonEmptyArray<A>`\n *\n * @example\n * import { isNonEmpty } from 'fp-ts/Array'\n *\n * assert.strictEqual(isNonEmpty([]), false)\n * assert.strictEqual(isNonEmpty(['a']), true)\n *\n * @category refinements\n * @since 2.0.0\n */\nexport var isNonEmpty = NEA.isNonEmpty;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Prepend an element to the front of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { prepend } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prepend(1)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexport var prepend = NEA.prepend;\n/**\n * Less strict version of [`prepend`](#prepend).\n *\n * @example\n * import { prependW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([2, 3, 4], prependW(\"a\")), [\"a\", 2, 3, 4]);\n *\n * @since 2.11.0\n */\nexport var prependW = NEA.prependW;\n/**\n * Append an element to the end of a `Array`, creating a new `NonEmptyArray`.\n *\n * @example\n * import { append } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], append(4)), [1, 2, 3, 4])\n *\n * @since 2.10.0\n */\nexport var append = NEA.append;\n/**\n * Less strict version of [`append`](#append).\n *\n * @example\n * import { appendW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], appendW(\"d\")), [1, 2, 3, \"d\"]);\n *\n * @since 2.11.0\n */\nexport var appendW = NEA.appendW;\n/**\n * Return a `Array` of length `n` with element `i` initialized with `f(i)`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { makeBy } from 'fp-ts/Array'\n *\n * const double = (i: number): number => i * 2\n * assert.deepStrictEqual(makeBy(5, double), [0, 2, 4, 6, 8])\n * assert.deepStrictEqual(makeBy(-3, double), [])\n * assert.deepStrictEqual(makeBy(4.32164, double), [0, 2, 4, 6])\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var makeBy = function (n, f) { return (n <= 0 ? [] : NEA.makeBy(f)(n)); };\n/**\n * Create a `Array` containing a value repeated the specified number of times.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { replicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(replicate(3, 'a'), ['a', 'a', 'a'])\n * assert.deepStrictEqual(replicate(-3, 'a'), [])\n * assert.deepStrictEqual(replicate(2.985647, 'a'), ['a', 'a'])\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var replicate = function (n, a) { return makeBy(n, function () { return a; }); };\nexport function fromPredicate(predicate) {\n return function (a) { return (predicate(a) ? [a] : []); };\n}\n// -------------------------------------------------------------------------------------\n// conversions\n// -------------------------------------------------------------------------------------\n/**\n * Create an array from an `Option`. The resulting array will contain the content of the\n * `Option` if it is `Some` and it will be empty if the `Option` is `None`.\n *\n * @example\n * import { fromOption } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(option.some(\"a\"), fromOption),[\"a\"])\n * assert.deepStrictEqual(pipe(option.none, fromOption),[])\n *\n * @category conversions\n * @since 2.11.0\n */\nexport var fromOption = function (ma) { return (_.isNone(ma) ? [] : [ma.value]); };\n/**\n * Create an array from an `Either`. The resulting array will contain the content of the\n * `Either` if it is `Right` and it will be empty if the `Either` is `Left`.\n *\n * @example\n * import { fromEither } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe(either.right(\"r\"), fromEither), [\"r\"]);\n * assert.deepStrictEqual(pipe(either.left(\"l\"), fromEither), []);\n *\n * @category conversions\n * @since 2.11.0\n */\nexport var fromEither = function (e) { return (_.isLeft(e) ? [] : [e.right]); };\n/**\n * Less strict version of [`match`](#match).\n *\n * The `W` suffix (short for **W**idening) means that the handler return types will be merged.\n *\n * @example\n * import { matchW } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcherW = matchW(\n * () => \"No elements\",\n * (as) => as.length\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcherW), 4);\n * assert.deepStrictEqual(pipe([], matcherW), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var matchW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(as) : onEmpty();\n };\n};\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` and returns the result.\n *\n * @example\n * import { match } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const matcher = match(\n * () => \"No elements\",\n * (as) => `Found ${as.length} element(s)`\n * );\n * assert.deepStrictEqual(pipe([1, 2, 3, 4], matcher), \"Found 4 element(s)\");\n * assert.deepStrictEqual(pipe([], matcher), \"No elements\");\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var match = matchW;\n/**\n * Less strict version of [`matchLeft`](#matchleft). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchLeftW } from 'fp-ts/Array'\n *\n * const f = matchLeftW(\n * () => 0,\n * (head: string, tail: string[]) => `Found \"${head}\" followed by ${tail.length} elements`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found \"a\" followed by 2 elements');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var matchLeftW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(NEA.head(as), NEA.tail(as)) : onEmpty();\n };\n};\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its first element and remaining elements.\n *\n * @example\n * import { matchLeft } from 'fp-ts/Array'\n *\n * const len: <A>(as: Array<A>) => number = matchLeft(() => 0, (_, tail) => 1 + len(tail))\n * assert.strictEqual(len([1, 2, 3]), 3)\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchLeft = matchLeftW;\n/**\n * Alias of [`matchLeft`](#matchleft).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var foldLeft = matchLeft;\n/**\n * Less strict version of [`matchRight`](#matchright). It will work when `onEmpty` and\n * `onNonEmpty` have different return types.\n *\n * @example\n * import { matchRightW } from 'fp-ts/Array'\n *\n * const f = matchRightW(\n * () => 0,\n * (head: string[], tail: string) => `Found ${head.length} elements folllowed by \"${tail}\"`\n * );\n * assert.strictEqual(f([\"a\", \"b\", \"c\"]), 'Found 2 elements folllowed by \"c\"');\n * assert.strictEqual(f([]), 0);\n *\n * @category pattern matching\n * @since 2.11.0\n */\nexport var matchRightW = function (onEmpty, onNonEmpty) {\n return function (as) {\n return isNonEmpty(as) ? onNonEmpty(NEA.init(as), NEA.last(as)) : onEmpty();\n };\n};\n/**\n * Takes an array, if the array is empty it returns the result of `onEmpty`, otherwise\n * it passes the array to `onNonEmpty` broken into its initial elements and the last element.\n *\n * @example\n * import { matchRight } from 'fp-ts/Array'\n *\n * const len: <A>(as: Array<A>) => number = matchRight(\n * () => 0,\n * (head, _) => 1 + len(head)\n * );\n * assert.strictEqual(len([1, 2, 3]), 3);\n *\n * @category pattern matching\n * @since 2.10.0\n */\nexport var matchRight = matchRightW;\n/**\n * Alias of [`matchRight`](#matchright).\n *\n * @category pattern matching\n * @since 2.0.0\n */\nexport var foldRight = matchRight;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * Same as [`chain`](#chain), but passing also the index to the iterating function.\n *\n * @example\n * import { chainWithIndex, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (index: number, x: string) => replicate(2, `${x}${index}`);\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], chainWithIndex(f)), [\"a0\", \"a0\", \"b1\", \"b1\", \"c2\", \"c2\"]);\n *\n * @category sequencing\n * @since 2.7.0\n */\nexport var chainWithIndex = function (f) {\n return function (as) {\n var out = [];\n for (var i = 0; i < as.length; i++) {\n out.push.apply(out, f(i, as[i]));\n }\n return out;\n };\n};\n/**\n * Same as `reduce` but it carries over the intermediate steps\n *\n * @example\n * import { scanLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanLeft(10, (b, a: number) => b - a)([1, 2, 3]), [10, 9, 7, 4])\n *\n * @since 2.0.0\n */\nexport var scanLeft = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[0] = b;\n for (var i = 0; i < len; i++) {\n out[i + 1] = f(out[i], as[i]);\n }\n return out;\n };\n};\n/**\n * Fold an array from the right, keeping all intermediate results instead of only the final result\n *\n * @example\n * import { scanRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(scanRight(10, (a: number, b) => b - a)([1, 2, 3]), [4, 5, 7, 10])\n *\n * @since 2.0.0\n */\nexport var scanRight = function (b, f) {\n return function (as) {\n var len = as.length;\n var out = new Array(len + 1);\n out[len] = b;\n for (var i = len - 1; i >= 0; i--) {\n out[i] = f(as[i], out[i + 1]);\n }\n return out;\n };\n};\n/**\n * Calculate the number of elements in a `Array`.\n *\n * @example\n * import { size } from 'fp-ts/Array'\n *\n * assert.strictEqual(size([\"a\",\"b\",\"c\"]),3)\n *\n * @since 2.10.0\n */\nexport var size = function (as) { return as.length; };\n/**\n * Test whether an array contains a particular index\n *\n * @example\n * import { isOutOfBound } from 'fp-ts/Array'\n *\n * assert.strictEqual(isOutOfBound(1,[\"a\",\"b\",\"c\"]),false)\n * assert.strictEqual(isOutOfBound(-1,[\"a\",\"b\",\"c\"]),true)\n * assert.strictEqual(isOutOfBound(3,[\"a\",\"b\",\"c\"]),true)\n *\n * @since 2.0.0\n */\nexport var isOutOfBound = NEA.isOutOfBound;\n// TODO: remove non-curried overloading in v3\n/**\n * This function provides a safe way to read a value at a particular index from an array.\n * It returns a `none` if the index is out of bounds, and a `some` of the element if the\n * index is valid.\n *\n * @example\n * import { lookup } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(1)), some(2))\n * assert.deepStrictEqual(pipe([1, 2, 3], lookup(3)), none)\n *\n * @since 2.0.0\n */\nexport var lookup = RA.lookup;\n/**\n * Get the first element in an array, or `None` if the array is empty\n *\n * @example\n * import { head } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(head([1, 2, 3]), some(1))\n * assert.deepStrictEqual(head([]), none)\n *\n * @since 2.0.0\n */\nexport var head = RA.head;\n/**\n * Get the last element in an array, or `None` if the array is empty\n *\n * @example\n * import { last } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(last([1, 2, 3]), some(3))\n * assert.deepStrictEqual(last([]), none)\n *\n * @since 2.0.0\n */\nexport var last = RA.last;\n/**\n * Get all but the first element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { tail } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(tail([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(tail([]), none)\n *\n * @since 2.0.0\n */\nexport var tail = function (as) { return (isNonEmpty(as) ? _.some(NEA.tail(as)) : _.none); };\n/**\n * Get all but the last element of an array, creating a new array, or `None` if the array is empty\n *\n * @example\n * import { init } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(init([1, 2, 3]), some([1, 2]))\n * assert.deepStrictEqual(init([]), none)\n *\n * @since 2.0.0\n */\nexport var init = function (as) { return (isNonEmpty(as) ? _.some(NEA.init(as)) : _.none); };\n/**\n * Keep only a max number of elements from the start of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeLeft(2)([1, 2, 3, 4, 5]), [1, 2]);\n * assert.deepStrictEqual(takeLeft(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeLeft(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeLeft(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nexport var takeLeft = function (n) {\n return function (as) {\n return isOutOfBound(n, as) ? copy(as) : as.slice(0, n);\n };\n};\n/**\n * Keep only a max number of elements from the end of an `Array`, creating a new `Array`.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { takeRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(takeRight(2)([1, 2, 3, 4, 5]), [4, 5]);\n * assert.deepStrictEqual(takeRight(7)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n * assert.deepStrictEqual(takeRight(0)([1, 2, 3, 4, 5]), []);\n * assert.deepStrictEqual(takeRight(-1)([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5]);\n *\n * @since 2.0.0\n */\nexport var takeRight = function (n) {\n return function (as) {\n return isOutOfBound(n, as) ? copy(as) : n === 0 ? [] : as.slice(-n);\n };\n};\nexport function takeLeftWhile(predicate) {\n return function (as) {\n var out = [];\n for (var _i = 0, as_1 = as; _i < as_1.length; _i++) {\n var a = as_1[_i];\n if (!predicate(a)) {\n break;\n }\n out.push(a);\n }\n return out;\n };\n}\nvar spanLeftIndex = function (as, predicate) {\n var l = as.length;\n var i = 0;\n for (; i < l; i++) {\n if (!predicate(as[i])) {\n break;\n }\n }\n return i;\n};\nexport function spanLeft(predicate) {\n return function (as) {\n var _a = splitAt(spanLeftIndex(as, predicate))(as), init = _a[0], rest = _a[1];\n return { init: init, rest: rest };\n };\n}\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the start.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropLeft } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropLeft(2)([1, 2, 3]), [3]);\n * assert.deepStrictEqual(dropLeft(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropLeft(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropLeft(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nexport var dropLeft = function (n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(n, as.length);\n };\n};\n/**\n * Creates a new `Array` which is a copy of the input dropping a max number of elements from the end.\n *\n * **Note**. `n` is normalized to a non negative integer.\n *\n * @example\n * import { dropRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(dropRight(2)([1, 2, 3]), [1]);\n * assert.deepStrictEqual(dropRight(5)([1, 2, 3]), []);\n * assert.deepStrictEqual(dropRight(0)([1, 2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(dropRight(-2)([1, 2, 3]), [1, 2, 3]);\n *\n * @since 2.0.0\n */\nexport var dropRight = function (n) {\n return function (as) {\n return n <= 0 || isEmpty(as) ? copy(as) : n >= as.length ? [] : as.slice(0, as.length - n);\n };\n};\nexport function dropLeftWhile(predicate) {\n return function (as) { return as.slice(spanLeftIndex(as, predicate)); };\n}\n/**\n * `findIndex` returns an `Option` containing the first index for which a predicate holds.\n * It returns `None` if no element satisfies the predicate.\n * Similar to [`findFirst`](#findFirst) but returning the index instead of the element.\n *\n * @example\n * import { findIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([1, 2, 3]), some(1))\n * assert.deepStrictEqual(findIndex((n: number) => n === 2)([]), none)\n *\n * @since 2.0.0\n */\nexport var findIndex = RA.findIndex;\nexport function findFirst(predicate) {\n return RA.findFirst(predicate);\n}\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array and\n * returns the first `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findFirstMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array<Person> = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove18)(persons), some(\"Mary\"));\n * assert.deepStrictEqual(findFirstMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexport var findFirstMap = RA.findFirstMap;\nexport function findLast(predicate) {\n return RA.findLast(predicate);\n}\n/**\n * Given a selector function which takes an element and returns an option,\n * this function applies the selector to each element of the array starting from the\n * end and returns the last `Some` result. Otherwise it returns `None`.\n *\n * @example\n * import { findLastMap } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface Person {\n * readonly name: string;\n * readonly age: number;\n * }\n *\n * const persons: Array<Person> = [\n * { name: \"John\", age: 16 },\n * { name: \"Mary\", age: 45 },\n * { name: \"Joey\", age: 28 },\n * ];\n *\n * const nameOfPersonAbove18 = (p: Person) => (p.age <= 18 ? none : some(p.name));\n * const nameOfPersonAbove70 = (p: Person) => (p.age <= 70 ? none : some(p.name));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove18)(persons), some(\"Joey\"));\n * assert.deepStrictEqual(findLastMap(nameOfPersonAbove70)(persons), none);\n *\n * @since 2.0.0\n */\nexport var findLastMap = RA.findLastMap;\n/**\n * Returns the index of the last element of the list which matches the predicate.\n * It returns an `Option` containing the index or `None` if not found.\n *\n * @example\n * import { findLastIndex } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * interface X {\n * readonly a: number\n * readonly b: number\n * }\n * const xs: Array<X> = [{ a: 1, b: 0 }, { a: 1, b: 1 }]\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 1)(xs), some(1))\n * assert.deepStrictEqual(findLastIndex((x: { readonly a: number }) => x.a === 4)(xs), none)\n *\n * @since 2.0.0\n */\nexport var findLastIndex = RA.findLastIndex;\n/**\n * This function takes an array and makes a new array containing the same elements.\n *\n * @since 2.0.0\n */\nexport var copy = function (as) { return as.slice(); };\n/**\n * Insert an element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { insertAt } from 'fp-ts/Array'\n * import { some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(insertAt(2, 5)([1, 2, 3, 4]), some([1, 2, 5, 3, 4]))\n *\n * @since 2.0.0\n */\nexport var insertAt = function (i, a) {\n return function (as) {\n return i < 0 || i > as.length ? _.none : _.some(unsafeInsertAt(i, a, as));\n };\n};\n/**\n * Change the element at the specified index, creating a new array,\n * or returning `None` if the index is out of bounds.\n *\n * @example\n * import { updateAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(updateAt(1, 1)([1, 2, 3]), some([1, 1, 3]))\n * assert.deepStrictEqual(updateAt(1, 1)([]), none)\n *\n * @since 2.0.0\n */\nexport var updateAt = function (i, a) { return modifyAt(i, function () { return a; }); };\n/**\n * Delete the element at the specified index, creating a new array, or returning `None` if the index is out of bounds.\n *\n * @example\n * import { deleteAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(deleteAt(0)([1, 2, 3]), some([2, 3]))\n * assert.deepStrictEqual(deleteAt(1)([]), none)\n *\n * @since 2.0.0\n */\nexport var deleteAt = function (i) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeDeleteAt(i, as));\n };\n};\n/**\n * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out\n * of bounds.\n *\n * @example\n * import { modifyAt } from 'fp-ts/Array'\n * import { some, none } from 'fp-ts/Option'\n *\n * const double = (x: number): number => x * 2\n * assert.deepStrictEqual(modifyAt(1, double)([1, 2, 3]), some([1, 4, 3]))\n * assert.deepStrictEqual(modifyAt(1, double)([]), none)\n *\n * @since 2.0.0\n */\nexport var modifyAt = function (i, f) {\n return function (as) {\n return isOutOfBound(i, as) ? _.none : _.some(unsafeUpdateAt(i, f(as[i]), as));\n };\n};\n/**\n * Reverse an array, creating a new array\n *\n * @example\n * import { reverse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reverse([1, 2, 3]), [3, 2, 1])\n *\n * @since 2.0.0\n */\nexport var reverse = function (as) { return (isEmpty(as) ? [] : as.slice().reverse()); };\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Right` elements in the same order.\n *\n * @example\n * import { rights } from 'fp-ts/Array'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(rights([right(1), left('foo'), right(2)]), [1, 2])\n *\n * @since 2.0.0\n */\nexport var rights = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Right') {\n r.push(a.right);\n }\n }\n return r;\n};\n/**\n * Takes an `Array` of `Either` and produces a new `Array` containing\n * the values of all the `Left` elements in the same order.\n *\n * @example\n * import { lefts } from 'fp-ts/Array'\n * import { left, right } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(lefts([right(1), left('foo'), right(2)]), ['foo'])\n *\n * @since 2.0.0\n */\nexport var lefts = function (as) {\n var r = [];\n for (var i = 0; i < as.length; i++) {\n var a = as[i];\n if (a._tag === 'Left') {\n r.push(a.left);\n }\n }\n return r;\n};\n/**\n * Sort the elements of an array in increasing order, creating a new array\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(sort(N.Ord)([3, 2, 1]), [1, 2, 3])\n *\n * @since 2.0.0\n */\nexport var sort = function (O) {\n return function (as) {\n return as.length <= 1 ? copy(as) : as.slice().sort(O.compare);\n };\n};\n/**\n * Apply a function to pairs of elements at the same index in two arrays, collecting the results in a new array. If one\n * input array is short, excess elements of the longer array are discarded.\n *\n * @example\n * import { zipWith } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(zipWith([1, 2, 3], ['a', 'b', 'c', 'd'], (n, s) => s + n), ['a1', 'b2', 'c3'])\n *\n * @since 2.0.0\n */\nexport var zipWith = function (fa, fb, f) {\n var fc = [];\n var len = Math.min(fa.length, fb.length);\n for (var i = 0; i < len; i++) {\n fc[i] = f(fa[i], fb[i]);\n }\n return fc;\n};\nexport function zip(as, bs) {\n if (bs === undefined) {\n return function (bs) { return zip(bs, as); };\n }\n return zipWith(as, bs, function (a, b) { return [a, b]; });\n}\n/**\n * The function is reverse of `zip`. Takes an array of pairs and return two corresponding arrays\n *\n * @example\n * import { unzip } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(unzip([[1, 'a'], [2, 'b'], [3, 'c']]), [[1, 2, 3], ['a', 'b', 'c']])\n *\n * @since 2.0.0\n */\nexport var unzip = function (as) {\n var fa = [];\n var fb = [];\n for (var i = 0; i < as.length; i++) {\n fa[i] = as[i][0];\n fb[i] = as[i][1];\n }\n return [fa, fb];\n};\n/**\n * Creates a new `Array`, prepending an element to every member of the input `Array`.\n *\n * @example\n * import { prependAll } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(prependAll(9)([1, 2, 3, 4]), [9, 1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.10.0\n */\nexport var prependAll = function (middle) {\n var f = NEA.prependAll(middle);\n return function (as) { return (isNonEmpty(as) ? f(as) : []); };\n};\n/**\n * Creates a new `Array` placing an element in between members of the input `Array`.\n *\n * @example\n * import { intersperse } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intersperse(9)([1, 2, 3, 4]), [1, 9, 2, 9, 3, 9, 4])\n *\n * @since 2.9.0\n */\nexport var intersperse = function (middle) {\n var f = NEA.intersperse(middle);\n return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };\n};\n/**\n * Creates a new `Array` rotating the input `Array` by `n` steps.\n *\n * @example\n * import { rotate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(rotate(2)([1, 2, 3, 4, 5]), [4, 5, 1, 2, 3])\n *\n * @since 2.0.0\n */\nexport var rotate = function (n) {\n var f = NEA.rotate(n);\n return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };\n};\n// TODO: remove non-curried overloading in v3\n/**\n * Test if a value is a member of an `Array`. Takes a `Eq<A>` as a single\n * argument which returns the function to use to search for a value of type `A` in\n * an `Array<A>`.\n *\n * @example\n * import { elem } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(2)), true)\n * assert.strictEqual(pipe([1, 2, 3], elem(N.Eq)(0)), false)\n *\n * @since 2.0.0\n */\nexport var elem = RA.elem;\n/**\n * Creates a new `Array` removing duplicate elements, keeping the first occurrence of an element,\n * based on a `Eq<A>`.\n *\n * @example\n * import { uniq } from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n *\n * assert.deepStrictEqual(uniq(N.Eq)([1, 2, 1]), [1, 2])\n *\n * @since 2.0.0\n */\nexport var uniq = function (E) {\n var f = NEA.uniq(E);\n return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };\n};\n/**\n * Sort the elements of an array in increasing order, where elements are compared using first `ords[0]`, then `ords[1]`,\n * etc...\n *\n * @example\n * import { sortBy } from 'fp-ts/Array'\n * import { contramap } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Person {\n * readonly name: string\n * readonly age: number\n * }\n * const byName = pipe(S.Ord, contramap((p: Person) => p.name))\n * const byAge = pipe(N.Ord, contramap((p: Person) => p.age))\n *\n * const sortByNameByAge = sortBy([byName, byAge])\n *\n * const persons = [{ name: 'a', age: 1 }, { name: 'b', age: 3 }, { name: 'c', age: 2 }, { name: 'b', age: 2 }]\n * assert.deepStrictEqual(sortByNameByAge(persons), [\n * { name: 'a', age: 1 },\n * { name: 'b', age: 2 },\n * { name: 'b', age: 3 },\n * { name: 'c', age: 2 }\n * ])\n *\n * @since 2.0.0\n */\nexport var sortBy = function (ords) {\n var f = NEA.sortBy(ords);\n return function (as) { return (isNonEmpty(as) ? f(as) : copy(as)); };\n};\n/**\n * A useful recursion pattern for processing an array to produce a new array, often used for \"chopping\" up the input\n * array. Typically chop is called with some function that will consume an initial prefix of the array and produce a\n * value and the rest of the array.\n *\n * @example\n * import { Eq } from 'fp-ts/Eq'\n * import * as A from 'fp-ts/Array'\n * import * as N from 'fp-ts/number'\n * import { pipe } from 'fp-ts/function'\n *\n * const group = <A>(S: Eq<A>): ((as: Array<A>) => Array<Array<A>>) => {\n * return A.chop(as => {\n * const { init, rest } = pipe(as, A.spanLeft((a: A) => S.equals(a, as[0])))\n * return [init, rest]\n * })\n * }\n * assert.deepStrictEqual(group(N.Eq)([1, 1, 2, 3, 3, 4]), [[1, 1], [2], [3, 3], [4]])\n *\n * @since 2.0.0\n */\nexport var chop = function (f) {\n var g = NEA.chop(f);\n return function (as) { return (isNonEmpty(as) ? g(as) : []); };\n};\n/**\n * Splits an `Array` into two pieces, the first piece has max `n` elements.\n *\n * @example\n * import { splitAt } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(splitAt(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4, 5]])\n *\n * @since 2.0.0\n */\nexport var splitAt = function (n) {\n return function (as) {\n return n >= 1 && isNonEmpty(as) ? NEA.splitAt(n)(as) : isEmpty(as) ? [copy(as), []] : [[], copy(as)];\n };\n};\n/**\n * Splits an array into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of\n * the array. Note that `chunksOf(n)([])` is `[]`, not `[[]]`. This is intentional, and is consistent with a recursive\n * definition of `chunksOf`; it satisfies the property that\n *\n * ```ts\n * chunksOf(n)(xs).concat(chunksOf(n)(ys)) == chunksOf(n)(xs.concat(ys)))\n * ```\n *\n * whenever `n` evenly divides the length of `xs`.\n *\n * @example\n * import { chunksOf } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(chunksOf(2)([1, 2, 3, 4, 5]), [[1, 2], [3, 4], [5]])\n *\n * @since 2.0.0\n */\nexport var chunksOf = function (n) {\n var f = NEA.chunksOf(n);\n return function (as) { return (isNonEmpty(as) ? f(as) : []); };\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromOptionK = function (f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return fromOption(f.apply(void 0, a));\n };\n};\nexport function comprehension(input, f, g) {\n if (g === void 0) { g = function () { return true; }; }\n var go = function (scope, input) {\n return isNonEmpty(input)\n ? flatMap(NEA.head(input), function (a) { return go(pipe(scope, append(a)), NEA.tail(input)); })\n : g.apply(void 0, scope) ? [f.apply(void 0, scope)]\n : [];\n };\n return go([], input);\n}\n/**\n * @since 2.11.0\n */\nexport var concatW = function (second) {\n return function (first) {\n return isEmpty(first) ? copy(second) : isEmpty(second) ? copy(first) : first.concat(second);\n };\n};\n/**\n * @since 2.11.0\n */\nexport var concat = concatW;\nexport function union(E) {\n var unionE = NEA.union(E);\n return function (first, second) {\n if (second === undefined) {\n var unionE_1 = union(E);\n return function (second) { return unionE_1(second, first); };\n }\n return isNonEmpty(first) && isNonEmpty(second)\n ? unionE(second)(first)\n : isNonEmpty(first)\n ? copy(first)\n : copy(second);\n };\n}\nexport function intersection(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var intersectionE_1 = intersection(E);\n return function (ys) { return intersectionE_1(ys, xs); };\n }\n return xs.filter(function (a) { return elemE(a, ys); });\n };\n}\nexport function difference(E) {\n var elemE = elem(E);\n return function (xs, ys) {\n if (ys === undefined) {\n var differenceE_1 = difference(E);\n return function (ys) { return differenceE_1(ys, xs); };\n }\n return xs.filter(function (a) { return !elemE(a, ys); });\n };\n}\nvar _map = function (fa, f) { return pipe(fa, map(f)); };\n/* istanbul ignore next */\nvar _mapWithIndex = function (fa, f) { return pipe(fa, mapWithIndex(f)); };\nvar _ap = function (fab, fa) { return pipe(fab, ap(fa)); };\n/* istanbul ignore next */\nvar _filter = function (fa, predicate) { return pipe(fa, filter(predicate)); };\n/* istanbul ignore next */\nvar _filterMap = function (fa, f) { return pipe(fa, filterMap(f)); };\n/* istanbul ignore next */\nvar _partition = function (fa, predicate) {\n return pipe(fa, partition(predicate));\n};\n/* istanbul ignore next */\nvar _partitionMap = function (fa, f) { return pipe(fa, partitionMap(f)); };\n/* istanbul ignore next */\nvar _partitionWithIndex = function (fa, predicateWithIndex) { return pipe(fa, partitionWithIndex(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _partitionMapWithIndex = function (fa, f) { return pipe(fa, partitionMapWithIndex(f)); };\n/* istanbul ignore next */\nvar _alt = function (fa, that) { return pipe(fa, alt(that)); };\nvar _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n var foldMapM = foldMap(M);\n return function (fa, f) { return pipe(fa, foldMapM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };\n/* istanbul ignore next */\nvar _reduceWithIndex = function (fa, b, f) {\n return pipe(fa, reduceWithIndex(b, f));\n};\n/* istanbul ignore next */\nvar _foldMapWithIndex = function (M) {\n var foldMapWithIndexM = foldMapWithIndex(M);\n return function (fa, f) { return pipe(fa, foldMapWithIndexM(f)); };\n};\n/* istanbul ignore next */\nvar _reduceRightWithIndex = function (fa, b, f) {\n return pipe(fa, reduceRightWithIndex(b, f));\n};\n/* istanbul ignore next */\nvar _filterMapWithIndex = function (fa, f) { return pipe(fa, filterMapWithIndex(f)); };\n/* istanbul ignore next */\nvar _filterWithIndex = function (fa, predicateWithIndex) { return pipe(fa, filterWithIndex(predicateWithIndex)); };\n/* istanbul ignore next */\nvar _extend = function (fa, f) { return pipe(fa, extend(f)); };\n/* istanbul ignore next */\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) { return pipe(ta, traverseF(f)); };\n};\n/* istanbul ignore next */\nvar _traverseWithIndex = function (F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (ta, f) { return pipe(ta, traverseWithIndexF(f)); };\n};\nvar _chainRecDepthFirst = RA._chainRecDepthFirst;\nvar _chainRecBreadthFirst = RA._chainRecBreadthFirst;\n/**\n * Given an element of the base type, `of` builds an `Array` containing just that\n * element of the base type (this is useful for building a `Monad`).\n *\n * @example\n * import { of } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(of(\"a\"), [\"a\"]);\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var of = NEA.of;\n/**\n * Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)\n *\n * @since 2.7.0\n */\nexport var zero = function () { return []; };\n/**\n * `map` can be used to turn functions `(a: A) => B` into functions `(fa: Array<A>) => Array<B>`.\n * In practice it applies the base function to each element of the array and collects the\n * results in a new array.\n *\n * @example\n * import { map } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => n * 2;\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [2, 4, 6]);\n *\n * @category mapping\n * @since 2.0.0\n */\nexport var map = function (f) { return function (fa) { return fa.map(function (a) { return f(a); }); }; };\n/**\n * @example\n * import { ap, map, of } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * // a curried function with 3 input parameteres\n * const f = (s1: string) => (n: number) => (s2: string) => s1 + n + s2;\n *\n * // let's use `ap` to iterate `f` over an array for each input parameter\n * assert.deepStrictEqual(pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"])), [\n * \"a1😀\", \"a1😫\", \"a1😎\",\n * \"a2😀\", \"a2😫\", \"a2😎\",\n * \"b1😀\", \"b1😫\", \"b1😎\",\n * \"b2😀\", \"b2😫\", \"b2😎\",\n * ]);\n *\n * // given Array implements the Applicative interface with the `of` method,\n * // we can write exactly the same thing in a more symmetric way\n * // using `of` on `f` and `ap` on each array in input\n * assert.deepStrictEqual(\n * pipe(of(f), ap([\"a\", \"b\"]), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"])),\n * pipe([\"a\", \"b\"], map(f), ap([1, 2]), ap([\"😀\", \"😫\", \"😎\"]))\n * );\n *\n * @since 2.0.0\n */\nexport var ap = function (fa) {\n return flatMap(function (f) { return pipe(fa, map(f)); });\n};\n/**\n * Composes computations in sequence, using the return value of one computation to\n * determine the next computation.\n *\n * In other words it takes a function `f` that produces an array from a single element of\n * the base type `A` and returns a new function which applies `f` to each element of the\n * input array (like [`map`](#map)) and, instead of returning an array of arrays, concatenates the\n * results into a single array (like [`flatten`](#flatten)).\n *\n * @example\n * import { flatMap, map, replicate } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (n: number) => replicate(n, `${n}`);\n * assert.deepStrictEqual(pipe([1, 2, 3], map(f)), [[\"1\"], [\"2\", \"2\"], [\"3\", \"3\", \"3\"]]);\n * assert.deepStrictEqual(pipe([1, 2, 3], flatMap(f)), [\"1\", \"2\", \"2\", \"3\", \"3\", \"3\"]);\n *\n * @category sequencing\n * @since 2.14.0\n */\nexport var flatMap = /*#__PURE__*/ dual(2, function (ma, f) {\n return pipe(ma, chainWithIndex(function (i, a) { return f(a, i); }));\n});\n/**\n * Takes an array of arrays of `A` and flattens them into an array of `A`\n * by concatenating the elements of each array in order.\n *\n * @example\n * import { flatten } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(flatten([[\"a\"], [\"b\", \"c\"], [\"d\", \"e\", \"f\"]]), [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]);\n *\n * @category sequencing\n * @since 2.5.0\n */\nexport var flatten = /*#__PURE__*/ flatMap(identity);\n/**\n * Same as [`map`](#map), but the iterating function takes both the index and the value\n * of the element.\n *\n * @example\n * import { mapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * const f = (i: number, s: string) => `${s} - ${i}`;\n * assert.deepStrictEqual(pipe([\"a\", \"b\", \"c\"], mapWithIndex(f)), [\"a - 0\", \"b - 1\", \"c - 2\"]);\n *\n * @category mapping\n * @since 2.0.0\n */\nexport var mapWithIndex = function (f) { return function (fa) {\n return fa.map(function (a, i) { return f(i, a); });\n}; };\n/**\n * Maps an array with an iterating function that takes the index and the value of\n * each element and returns an `Option`. It keeps only the `Some` values discarding\n * the `None`s.\n *\n * Same as [`filterMap`](#filterMap), but with an iterating function which takes also\n * the index as input.\n *\n * @example\n * import { filterMapWithIndex } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (i: number, s: string) => (i % 2 === 1 ? option.some(s.toUpperCase()) : option.none);\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMapWithIndex(f)), [\"NO\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var filterMapWithIndex = function (f) {\n return function (fa) {\n var out = [];\n for (var i = 0; i < fa.length; i++) {\n var optionB = f(i, fa[i]);\n if (_.isSome(optionB)) {\n out.push(optionB.value);\n }\n }\n return out;\n };\n};\n/**\n * Maps an array with an iterating function that returns an `Option`\n * and it keeps only the `Some` values discarding the `None`s.\n *\n * @example\n * import { filterMap } from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n * import { option } from \"fp-ts\";\n *\n * const f = (s: string) => s.length === 1 ? option.some(s.toUpperCase()) : option.none;\n * assert.deepStrictEqual(pipe([\"a\", \"no\", \"neither\", \"b\"], filterMap(f)), [\"A\", \"B\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var filterMap = function (f) {\n return filterMapWithIndex(function (_, a) { return f(a); });\n};\n/**\n * Compact an array of `Option`s discarding the `None` values and\n * keeping the `Some` values. It returns a new array containing the values of\n * the `Some` options.\n *\n * @example\n * import { compact } from 'fp-ts/Array'\n * import { option } from \"fp-ts\";\n *\n * assert.deepStrictEqual(compact([option.some(\"a\"), option.none, option.some(\"b\")]), [\"a\", \"b\"]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var compact = /*#__PURE__*/ filterMap(identity);\n/**\n * Separate an array of `Either`s into `Left`s and `Right`s, creating two new arrays:\n * one containing all the left values and one containing all the right values.\n *\n * @example\n * import { separate } from 'fp-ts/Array'\n * import { either } from \"fp-ts\";\n *\n * assert.deepStrictEqual(separate([either.right(\"r1\"), either.left(\"l1\"), either.right(\"r2\")]), {\n * left: [\"l1\"],\n * right: [\"r1\", \"r2\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var separate = function (fa) {\n var left = [];\n var right = [];\n for (var _i = 0, fa_1 = fa; _i < fa_1.length; _i++) {\n var e = fa_1[_i];\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return separated(left, right);\n};\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `filter` creates a new `Array` containing the elements of the original\n * `Array` for which the iterating function is `true`.\n *\n * @example\n * import { filter } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(filter(isString)([\"a\", 1, {}, \"b\", 5]), [\"a\", \"b\"]);\n * assert.deepStrictEqual(filter((x:number) => x > 0)([-3, 1, -2, 5]), [1, 5]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var filter = function (predicate) {\n return function (as) {\n return as.filter(predicate);\n };\n};\n/**\n * Given an iterating function that is a `Predicate` or a `Refinement`,\n * `partition` creates two new `Array`s: `right` containing the elements of the original\n * `Array` for which the iterating function is `true`, `left` containing the elements\n * for which it is false.\n *\n * @example\n * import { partition } from 'fp-ts/Array'\n * import { isString } from \"fp-ts/lib/string\";\n *\n * assert.deepStrictEqual(partition(isString)([\"a\", 1, {}, \"b\", 5]), { left: [1, {}, 5], right: [\"a\", \"b\"] });\n * assert.deepStrictEqual(partition((x: number) => x > 0)([-3, 1, -2, 5]), { left: [-3, -2], right: [1, 5] });\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var partition = function (predicate) {\n return partitionWithIndex(function (_, a) { return predicate(a); });\n};\n/**\n * Same as [`partition`](#partition), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionWithIndex } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(partitionWithIndex((index, x: number) => index < 3 && x > 0)([-2, 5, 6, 7]), {\n * left: [-2, 7],\n * right: [5, 6],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var partitionWithIndex = function (predicateWithIndex) {\n return function (as) {\n var left = [];\n var right = [];\n for (var i = 0; i < as.length; i++) {\n var b = as[i];\n if (predicateWithIndex(i, b)) {\n right.push(b);\n }\n else {\n left.push(b);\n }\n }\n return separated(left, right);\n };\n};\n/**\n * Given an iterating function that returns an `Either`,\n * `partitionMap` applies the iterating function to each element and it creates two `Array`s:\n * `right` containing the values of `Right` results, `left` containing the values of `Left` results.\n *\n * @example\n * import { partitionMap } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfString = <B>(x: B): Either<B, string> =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMap(upperIfString)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7],\n * right: [ 'HELLO', 'WORLD' ],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var partitionMap = function (f) { return partitionMapWithIndex(function (_, a) { return f(a); }); };\n/**\n * Same as [`partitionMap`](#partitionMap), but passing also the index to the iterating function.\n *\n * @example\n * import { partitionMapWithIndex } from 'fp-ts/Array'\n * import { Either, left, right } from \"fp-ts/lib/Either\";\n *\n * const upperIfStringBefore3 = <B>(index: number, x: B): Either<B, string> =>\n * index < 3 && typeof x === \"string\" ? right(x.toUpperCase()) : left(x);\n * assert.deepStrictEqual(partitionMapWithIndex(upperIfStringBefore3)([-2, \"hello\", 6, 7, \"world\"]), {\n * left: [-2, 6, 7, \"world\"],\n * right: [\"HELLO\"],\n * });\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var partitionMapWithIndex = function (f) {\n return function (fa) {\n var left = [];\n var right = [];\n for (var i = 0; i < fa.length; i++) {\n var e = f(i, fa[i]);\n if (e._tag === 'Left') {\n left.push(e.left);\n }\n else {\n right.push(e.right);\n }\n }\n return separated(left, right);\n };\n};\n/**\n * Less strict version of [`alt`](#alt).\n *\n * The `W` suffix (short for **W**idening) means that the return types will be merged.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.altW(() => ['a', 'b'])\n * ),\n * [1, 2, 3, 'a', 'b']\n * )\n *\n * @category error handling\n * @since 2.9.0\n */\nexport var altW = function (that) {\n return function (fa) {\n return fa.concat(that());\n };\n};\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * In case of `Array` concatenates the inputs into a single array.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.alt(() => [4, 5])\n * ),\n * [1, 2, 3, 4, 5]\n * )\n *\n * @category error handling\n * @since 2.0.0\n */\nexport var alt = altW;\n/**\n * Same as [`filter`](#filter), but passing also the index to the iterating function.\n *\n * @example\n * import { filterWithIndex } from 'fp-ts/Array';\n *\n * const f = (index: number, x: number) => x > 0 && index <= 2;\n * assert.deepStrictEqual(filterWithIndex(f)([-3, 1, -2, 5]), [1]);\n *\n * @category filtering\n * @since 2.0.0\n */\nexport var filterWithIndex = function (predicateWithIndex) {\n return function (as) {\n return as.filter(function (b, i) { return predicateWithIndex(i, b); });\n };\n};\n/**\n * Given an iterating function that takes `Array<A>` as input, `extend` returns\n * an array containing the results of the iterating function applied to the whole input\n * `Array`, then to the input `Array` without the first element, then to the input\n * `Array` without the first two elements, etc.\n *\n * @example\n * import { extend } from 'fp-ts/Array'\n *\n * const f = (a: string[]) => a.join(\",\");\n * assert.deepStrictEqual(extend(f)([\"a\", \"b\", \"c\"]), [\"a,b,c\", \"b,c\", \"c\"]);\n *\n * @since 2.0.0\n */\nexport var extend = function (f) { return function (wa) {\n return wa.map(function (_, i) { return f(wa.slice(i)); });\n}; };\n/**\n * `duplicate` returns an array containing the whole input `Array`,\n * then to the input `Array` dropping the first element, then to the input\n * `Array` dropping the first two elements, etc.\n *\n * @example\n * import { duplicate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(duplicate([\"a\", \"b\", \"c\"]), [[\"a\", \"b\", \"c\"], [\"b\", \"c\"], [\"c\"]]);\n *\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/ extend(identity);\n/**\n * Map and fold an `Array`.\n * Map the `Array` passing each value to the iterating function.\n * Then fold the results using the provided `Monoid`.\n *\n * @example\n * import { foldMap } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (s: string) => s.toUpperCase()\n * assert.deepStrictEqual(foldMap(monoid)(f)([\"a\", \"b\", \"c\"]), \"ABC\");\n *\n * @category folding\n * @since 2.0.0\n */\nexport var foldMap = RA.foldMap;\n/**\n * Same as [`foldMap`](#foldMap) but passing also the index to the iterating function.\n *\n * @example\n * import { foldMapWithIndex } from 'fp-ts/Array'\n *\n * const monoid = { concat: (a: string, b: string) => a + b, empty: \"\" };\n * const f = (index:number, s: string) => `${s.toUpperCase()}(${index})`\n * assert.deepStrictEqual(foldMapWithIndex(monoid)(f)([\"a\", \"b\", \"c\"]), \"A(0)B(1)C(2)\");\n *\n * @category folding\n * @since 2.0.0\n */\nexport var foldMapWithIndex = RA.foldMapWithIndex;\n/**\n * Reduces an `Array`.\n *\n * `reduce` executes the supplied iterating function on each element of the array,\n * in order, passing in the element and the return value from the calculation on the preceding element.\n *\n * The first time that the iterating function is called there is no \"return value of the\n * previous calculation\", the initial value is used in its place.\n *\n * @example\n * import { reduce } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduce(5, (acc: number, cur: number) => acc * cur)([2, 3]), 5 * 2 * 3);\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduce = RA.reduce;\n/**\n * Same as [`reduce`](#reduce) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, acc: string, cur: unknown) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"A1B2\");\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduceWithIndex = RA.reduceWithIndex;\n/**\n * Same as [`reduce`](#reduce) but applied from the end to the start.\n *\n * *Note*: the iterating function in this case takes the accumulator as the last argument.\n *\n * @example\n * import { reduceRight } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(reduceRight(\"\", (cur: string, acc: string) => acc + cur)([\"a\", \"b\", \"c\"]), \"cba\");\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRight = RA.reduceRight;\n/**\n * Same as [`reduceRight`](#reduceRight) but passing also the index to the iterating function.\n *\n * @example\n * import { reduceRightWithIndex } from 'fp-ts/Array'\n *\n * const f = (index: number, cur: unknown, acc: string) =>\n * acc + (typeof cur === \"string\" ? cur.toUpperCase() + index : \"\");\n * assert.deepStrictEqual(reduceRightWithIndex(\"\", f)([2, \"a\", \"b\", null]), \"B2A1\");\n *\n * @category folding\n * @since 2.0.0\n */\nexport var reduceRightWithIndex = RA.reduceRightWithIndex;\n/**\n * Given an iterating function that returns a `HKT` (higher kinded type), `traverse`\n * applies the iterating function to each element of the `Array` and then [`sequence`](#sequence)-s\n * the results using the provided `Applicative`.\n *\n * E.g. suppose you have an `Array` and you want to format each element with a function\n * that returns a result or an error as `f = (a: A) => Either<Error, B>`, using `traverse`\n * you can apply `f` to all elements and directly obtain as a result an `Either<Error,Array<B>>`\n * i.e. an `Array<B>` if all the results are `B`, or an `Error` if some of the results\n * are `Error`s.\n *\n * @example\n * import { traverse } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (x: unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase()) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", \"b\"]), right([\"A\", \"B\"]));\n * assert.deepStrictEqual(traverse(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category traversing\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n var traverseWithIndexF = traverseWithIndex(F);\n return function (f) { return traverseWithIndexF(function (_, a) { return f(a); }); };\n};\n/**\n * `sequence` takes an `Array` where elements are `HKT<A>` (higher kinded type) and,\n * using an applicative of that `HKT`, returns an `HKT` of `Array<A>`.\n * E.g. it can turn an `Array<Either<Error, string>>` into an `Either<Error, Array<string>>`.\n *\n * `sequence` requires an `Applicative` of the `HKT` you are targeting, e.g. to turn an\n * `Array<Either<E, A>>` into an `Either<E, Array<A>>`, it needs an\n * `Applicative` for `Either`, to to turn an `Array<Option<A>>` into an `Option<Array<A>>`,\n * it needs an `Applicative` for `Option`.\n *\n * @example\n * import { sequence } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * assert.deepStrictEqual(sequence(Applicative)([right(\"a\"), right(\"b\")]), right([\"a\", \"b\"]));\n * assert.deepStrictEqual(\n * sequence(Applicative)([right(\"a\"), left(new Error(\"not a string\"))]),\n * left(new Error(\"not a string\"))\n * );\n *\n * @category traversing\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ta) {\n return _reduce(ta, F.of(zero()), function (fas, fa) {\n return F.ap(F.map(fas, function (as) { return function (a) { return pipe(as, append(a)); }; }), fa);\n });\n };\n};\n/**\n * Same as [`traverse`](#traverse) but passing also the index to the iterating function.\n *\n * @example\n * import { traverseWithIndex } from 'fp-ts/Array'\n * import { Applicative, left, right } from \"fp-ts/lib/Either\";\n *\n * const f = (index:number, x:unknown) =>\n * typeof x === \"string\" ? right(x.toUpperCase() + index) : left(new Error(\"not a string\"));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", \"b\"]), right([\"A0\", \"B1\"]));\n * assert.deepStrictEqual(traverseWithIndex(Applicative)(f)([\"a\", 5]), left(new Error(\"not a string\")));\n *\n * @category sequencing\n * @since 2.6.3\n */\nexport var traverseWithIndex = function (F) {\n return function (f) {\n return reduceWithIndex(F.of(zero()), function (i, fbs, a) {\n return F.ap(F.map(fbs, function (bs) { return function (b) { return pipe(bs, append(b)); }; }), f(i, a));\n });\n };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wither = function (F) {\n var _witherF = _wither(F);\n return function (f) { return function (fa) { return _witherF(fa, f); }; };\n};\n/**\n * @category filtering\n * @since 2.6.5\n */\nexport var wilt = function (F) {\n var _wiltF = _wilt(F);\n return function (f) { return function (fa) { return _wiltF(fa, f); }; };\n};\n/**\n * `unfold` takes a function `f` which returns an `Option` of a tuple containing an outcome\n * value and an input for the following iteration.\n * `unfold` applies `f` to the initial value `b` and then recursively to the second\n * element of the tuple contained in the returned `option` of the previous\n * calculation until `f` returns `Option.none`.\n *\n * @example\n * import { unfold } from 'fp-ts/Array'\n * import { option } from 'fp-ts'\n *\n * const f = (n: number) => {\n * if (n <= 0) return option.none;\n * const returnValue = n * 2;\n * const inputForNextRound = n - 1;\n * return option.some([returnValue, inputForNextRound] as const);\n * };\n * assert.deepStrictEqual(unfold(5, f), [10, 8, 6, 4, 2]);\n *\n * @since 2.6.6\n */\nexport var unfold = function (b, f) {\n var out = [];\n var bb = b;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var mt = f(bb);\n if (_.isSome(mt)) {\n var _a = mt.value, a = _a[0], b_1 = _a[1];\n out.push(a);\n bb = b_1;\n }\n else {\n break;\n }\n }\n return out;\n};\n/**\n * @category type lambdas\n * @since 2.0.0\n */\nexport var URI = 'Array';\n/**\n * `getShow` makes a `Show` for an `Array<A>` from a `Show` for\n * an `A`.\n *\n * @example\n * import { getShow } from 'fp-ts/Array'\n *\n * const numShow = { show: (n: number) => (n >= 0 ? `${n}` : `(${-n})`) };\n * assert.deepStrictEqual(getShow(numShow).show([-2, -1, 0, 1]), \"[(2), (1), 0, 1]\");\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getShow = RA.getShow;\n/**\n * Get a `Semigroup` based on the concatenation of `Array`s.\n * See also [`getMonoid`](#getMonoid).\n *\n * @example\n * import { getSemigroup } from 'fp-ts/Array'\n *\n * const S = getSemigroup<number>();\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 2, 3]);\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getSemigroup = function () { return ({\n concat: function (first, second) { return first.concat(second); }\n}); };\n/**\n * Returns a `Monoid` for `Array<A>` based on the concatenation of `Array`s.\n *\n * @example\n * import { getMonoid } from 'fp-ts/Array'\n *\n * const M = getMonoid<number>()\n * assert.deepStrictEqual(M.concat([1, 2], [3, 4]), [1, 2, 3, 4])\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getMonoid = function () { return ({\n concat: getSemigroup().concat,\n empty: []\n}); };\n/**\n * Derives an `Eq` over the `Array` of a given element type from the `Eq` of that type. The derived `Eq` defines two\n * arrays as equal if all elements of both arrays are compared equal pairwise with the given `E`. In case of arrays of\n * different lengths, the result is non equality.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { getEq } from 'fp-ts/Array'\n *\n * const E = getEq(S.Eq)\n * assert.strictEqual(E.equals(['a', 'b'], ['a', 'b']), true)\n * assert.strictEqual(E.equals(['a'], []), false)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getEq = RA.getEq;\n/**\n * Derives an `Ord` over the `Array` of a given element type from the `Ord` of that type. The ordering between two such\n * arrays is equal to: the first non equal comparison of each arrays elements taken pairwise in increasing order, in\n * case of equality over all the pairwise elements; the longest array is considered the greatest, if both arrays have\n * the same length, the result is equality.\n *\n * @example\n * import { getOrd } from 'fp-ts/Array'\n * import * as S from 'fp-ts/string'\n *\n * const O = getOrd(S.Ord)\n * assert.strictEqual(O.compare(['b'], ['a']), 1)\n * assert.strictEqual(O.compare(['a'], ['a']), 0)\n * assert.strictEqual(O.compare(['a'], ['b']), -1)\n *\n * @category instances\n * @since 2.0.0\n */\nexport var getOrd = RA.getOrd;\n/**\n * Get a `Semigroup` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n * See also [`getUnionMonoid`](#getUnionMonoid).\n *\n * @example\n * import { getUnionSemigroup } from 'fp-ts/Array';\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getUnionSemigroup<number>(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1, 2, 3]);\n *\n * @category instances\n * @since 2.11.0\n */\nexport var getUnionSemigroup = function (E) {\n var unionE = union(E);\n return {\n concat: function (first, second) { return unionE(second)(first); }\n };\n};\n/**\n * Get a `Monoid` based on the union of the elements of `Array`s.\n * Elements which equal according to the provided `Eq` are included\n * only once in the result.\n *\n * @example\n * import { getUnionMonoid } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const M = getUnionMonoid<number>(Eq);\n * assert.deepStrictEqual(M.concat([1, 2], [2, 3]), [1, 2, 3]);\n * assert.deepStrictEqual(M.empty,[]);\n *\n * @category instances\n * @since 2.11.0\n */\nexport var getUnionMonoid = function (E) { return ({\n concat: getUnionSemigroup(E).concat,\n empty: []\n}); };\n/**\n * Get a `Semigroup` based on the intersection of the elements of `Array`s.\n * Only elements present in the two arrays which are equal according to the\n * provided `Eq` are included in the result.\n *\n * @example\n * import { getIntersectionSemigroup } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getIntersectionSemigroup<number>(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [2]);\n *\n * @category instances\n * @since 2.11.0\n */\nexport var getIntersectionSemigroup = function (E) {\n var intersectionE = intersection(E);\n return {\n concat: function (first, second) { return intersectionE(second)(first); }\n };\n};\n/**\n * Get a `Magma` for `Array` where the `concat` function is the differnce between\n * the first and the second array, i.e. the result contains all the elements of the\n * first array for which their is no equal element in the second array according\n * to the `Eq` provided.\n *\n *\n * @example\n * import { getDifferenceMagma } from 'fp-ts/Array'\n * import { Eq } from 'fp-ts/number';\n *\n * const S = getDifferenceMagma<number>(Eq);\n * assert.deepStrictEqual(S.concat([1, 2], [2, 3]), [1]);\n *\n * @category instances\n * @since 2.11.0\n */\nexport var getDifferenceMagma = function (E) {\n var differenceE = difference(E);\n return {\n concat: function (first, second) { return differenceE(second)(first); }\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Functor = {\n URI: URI,\n map: _map\n};\n/**\n * Given an input an `Array` of functions, `flap` returns an `Array` containing\n * the results of applying each function to the given input.\n *\n * @example\n * import { flap } from 'fp-ts/Array'\n *\n * const funs = [\n * (n: number) => `Double: ${n * 2}`,\n * (n: number) => `Triple: ${n * 3}`,\n * (n: number) => `Square: ${n * n}`,\n * ];\n * assert.deepStrictEqual(flap(4)(funs), ['Double: 8', 'Triple: 12', 'Square: 16']);\n *\n * @category mapping\n * @since 2.10.0\n */\nexport var flap = /*#__PURE__*/ flap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var FunctorWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * @since 2.5.0\n */\nexport var apFirst = /*#__PURE__*/ apFirst_(Apply);\n/**\n * Combine two effectful actions, keeping only the result of the second.\n *\n * @since 2.5.0\n */\nexport var apSecond = /*#__PURE__*/ apSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * @example\n * import * as A from 'fp-ts/Array'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => ['a', 'b'])\n * ),\n * [1, 1, 2, 2, 3, 3]\n * )\n * assert.deepStrictEqual(\n * pipe(\n * [1, 2, 3],\n * A.chainFirst(() => [])\n * ),\n * []\n * )\n *\n * @category sequencing\n * @since 2.0.0\n */\nexport var chainFirst = \n/*#__PURE__*/ chainFirst_(Chain);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Unfoldable = {\n URI: URI,\n unfold: unfold\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var Zero = {\n URI: URI,\n zero: zero\n};\n/**\n * @category do notation\n * @since 2.11.0\n */\nexport var guard = /*#__PURE__*/ guard_(Zero, Pointed);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alternative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n alt: _alt,\n zero: zero\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Compactable = {\n URI: URI,\n compact: compact,\n separate: separate\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Filterable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var FilterableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var FoldableWithIndex = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var TraversableWithIndex = {\n URI: URI,\n map: _map,\n mapWithIndex: _mapWithIndex,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverse: _traverse,\n sequence: sequence,\n traverseWithIndex: _traverseWithIndex\n};\nvar _wither = /*#__PURE__*/ witherDefault(Traversable, Compactable);\nvar _wilt = /*#__PURE__*/ wiltDefault(Traversable, Compactable);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Witherable = {\n URI: URI,\n map: _map,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainRecDepthFirst = RA.chainRecDepthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var ChainRecDepthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap,\n chainRec: _chainRecDepthFirst\n};\n/**\n * @category sequencing\n * @since 2.11.0\n */\nexport var chainRecBreadthFirst = RA.chainRecBreadthFirst;\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var ChainRecBreadthFirst = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: flatMap,\n chainRec: _chainRecBreadthFirst\n};\n/**\n * Filter values inside a context.\n *\n * @since 2.11.0\n */\nexport var filterE = /*#__PURE__*/ filterE_(Witherable);\n/**\n * @category instances\n * @since 2.11.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n};\n/**\n * @category lifting\n * @since 2.11.0\n */\nexport var fromEitherK = /*#__PURE__*/ fromEitherK_(FromEither);\n// -------------------------------------------------------------------------------------\n// unsafe\n// -------------------------------------------------------------------------------------\n/**\n * @category unsafe\n * @since 2.0.0\n */\nexport var unsafeInsertAt = NEA.unsafeInsertAt;\n/**\n * @category unsafe\n * @since 2.0.0\n */\nexport var unsafeUpdateAt = function (i, a, as) {\n return isNonEmpty(as) ? NEA.unsafeUpdateAt(i, a, as) : [];\n};\n/**\n * @category unsafe\n * @since 2.0.0\n */\nexport var unsafeDeleteAt = function (i, as) {\n var xs = as.slice();\n xs.splice(i, 1);\n return xs;\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * `every` tells if the provided predicate holds true for every element in the `Array`.\n *\n * @example\n * import { every } from 'fp-ts/Array'\n *\n * assert.equal(every((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(every((x: number) => x >= 0)([-1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nexport var every = RA.every;\n/**\n * `some` tells if the provided predicate holds true at least for one element in the `Array`.\n *\n * @example\n * import { some } from 'fp-ts/Array'\n *\n * assert.equal(some((x: number) => x >= 0)([1, 2, 3]), true);\n * assert.equal(some((x: number) => x >= 10)([1, 2, 3]), false);\n *\n * @since 2.9.0\n */\nexport var some = function (predicate) {\n return function (as) {\n return as.some(predicate);\n };\n};\n/**\n * Alias of [`some`](#some)\n *\n * @since 2.11.0\n */\nexport var exists = some;\n/**\n * Places an element in between members of an `Array`, then folds the results using the provided `Monoid`.\n *\n * @example\n * import * as S from 'fp-ts/string'\n * import { intercalate } from 'fp-ts/Array'\n *\n * assert.deepStrictEqual(intercalate(S.Monoid)('-')(['a', 'b', 'c']), 'a-b-c')\n *\n * @since 2.12.0\n */\nexport var intercalate = RA.intercalate;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @category do notation\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/ of(_.emptyRecord);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/ bindTo_(Functor);\nvar let_ = /*#__PURE__*/ let__(Functor);\nexport { \n/**\n * @category do notation\n * @since 2.13.0\n */\nlet_ as let };\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/ bind_(Chain);\n/**\n * @category do notation\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/ apS_(Apply);\n// -------------------------------------------------------------------------------------\n// legacy\n// -------------------------------------------------------------------------------------\n/**\n * Alias of `flatMap`.\n *\n * @category legacy\n * @since 2.0.0\n */\nexport var chain = flatMap;\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * Use `NonEmptyArray` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var range = NEA.range;\n/**\n * Use a new `[]` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var empty = [];\n/**\n * Use `prepend` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var cons = NEA.cons;\n/**\n * Use `append` instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var snoc = NEA.snoc;\n/**\n * Use `prependAll` instead\n *\n * @category zone of death\n * @since 2.9.0\n * @deprecated\n */\nexport var prependToAll = prependAll;\n/**\n * This instance is deprecated, use small, specific instances instead.\n * For example if a function needs a `Functor` instance, pass `A.Functor` instead of `A.array`\n * (where `A` is from `import A from 'fp-ts/Array'`)\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nexport var array = {\n URI: URI,\n compact: compact,\n separate: separate,\n map: _map,\n ap: _ap,\n of: of,\n chain: flatMap,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n mapWithIndex: _mapWithIndex,\n partitionMapWithIndex: _partitionMapWithIndex,\n partitionWithIndex: _partitionWithIndex,\n filterMapWithIndex: _filterMapWithIndex,\n filterWithIndex: _filterWithIndex,\n alt: _alt,\n zero: zero,\n unfold: unfold,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n reduceWithIndex: _reduceWithIndex,\n foldMapWithIndex: _foldMapWithIndex,\n reduceRightWithIndex: _reduceRightWithIndex,\n traverseWithIndex: _traverseWithIndex,\n extend: _extend,\n wither: _wither,\n wilt: _wilt\n};\n","import { Either, fromOption } from \"fp-ts/lib/Either\";\nimport { BasicError } from \"../error\";\nimport { findFirstMap } from \"fp-ts/Array\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { none, some } from \"fp-ts/lib/Option\";\n\nconst SUPPORTED_FILE_TYPES = [\"jpg\", \"jpeg\", \"png\", \"webp\"];\n\nconst unsupportedFileTypeError: BasicError<string> = {\n kind: \"client\",\n inner: \"File format not supported\",\n};\n\nexport const checkImageType = (\n file: File\n): Either<BasicError<string>, File> => {\n const fileType = file.type.split(\"/\")[1];\n const supportedFileType = findFirstMap((supportedType: string) =>\n supportedType === fileType ? some(file) : none\n )(SUPPORTED_FILE_TYPES);\n\n return pipe(\n supportedFileType,\n fromOption(() => unsupportedFileTypeError)\n );\n};\n","import { BasicError } from \"../error\";\n\nexport const fileDoesntExistError: BasicError<string> = {\n kind: \"app\",\n inner: \"File doesnt exist\",\n};\n","import { Task } from \"fp-ts/Task\";\n\nexport const fromFile = (f: File): Promise<HTMLImageElement> =>\n new Promise((resolve, _) => {\n const reader = new FileReader();\n const image = new Image();\n\n reader.onload = (e: ProgressEvent<FileReader>) => {\n image.src = e.target.result as string;\n image.onload = () => {\n resolve(image);\n };\n };\n\n reader.readAsDataURL(f);\n });\n\nexport const imageFromFileTask =\n (f: File): Task<HTMLImageElement> =>\n () =>\n new Promise((resolve, _) => {\n const reader = new FileReader();\n const image = new Image();\n\n reader.onload = (e: ProgressEvent<FileReader>) => {\n image.src = e.target.result as string;\n };\n\n image.onload = () => resolve(image);\n\n reader.readAsDataURL(f);\n });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.copy = void 0;\nconst copy = (source, dest, sx = 0, sy = 0, sw = source.width - sx, sh = source.height - sy, dx = 0, dy = 0) => {\n sx = sx | 0;\n sy = sy | 0;\n sw = sw | 0;\n sh = sh | 0;\n dx = dx | 0;\n dy = dy | 0;\n if (sw <= 0 || sh <= 0)\n return;\n const sourceData = new Uint32Array(source.data.buffer);\n const destData = new Uint32Array(dest.data.buffer);\n for (let y = 0; y < sh; y++) {\n const sourceY = sy + y;\n if (sourceY < 0 || sourceY >= source.height)\n continue;\n const destY = dy + y;\n if (destY < 0 || destY >= dest.height)\n continue;\n for (let x = 0; x < sw; x++) {\n const sourceX = sx + x;\n if (sourceX < 0 || sourceX >= source.width)\n continue;\n const destX = dx + x;\n if (destX < 0 || destX >= dest.width)\n continue;\n const sourceIndex = sourceY * source.width + sourceX;\n const destIndex = destY * dest.width + destX;\n destData[destIndex] = sourceData[sourceIndex];\n }\n }\n};\nexports.copy = copy;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateImageFactory = (fill = [0, 0, 0, 0], channels = 4) => {\n channels = Math.floor(channels);\n if (isNaN(channels) || channels < 1) {\n throw TypeError('channels should be a positive non-zero number');\n }\n if (!('length' in fill) || fill.length < channels) {\n throw TypeError(`fill should be iterable with at least ${channels} members`);\n }\n fill = (new Uint8ClampedArray(fill)).slice(0, channels);\n const allZero = fill.every(v => v === 0);\n const createImage = (width, height, data) => {\n if (width === undefined || height === undefined) {\n throw TypeError('Not enough arguments');\n }\n width = Math.floor(width);\n height = Math.floor(height);\n if (isNaN(width) || width < 1 || isNaN(height) || height < 1) {\n throw TypeError('Index or size is negative or greater than the allowed amount');\n }\n const length = width * height * channels;\n if (data === undefined) {\n data = new Uint8ClampedArray(length);\n }\n if (data instanceof Uint8ClampedArray) {\n if (data.length !== length) {\n throw TypeError('Index or size is negative or greater than the allowed amount');\n }\n if (!allZero) {\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const index = (y * width + x) * channels;\n for (let c = 0; c < channels; c++) {\n data[index + c] = fill[c];\n }\n }\n }\n }\n return {\n get width() { return width; },\n get height() { return height; },\n get data() { return data; }\n };\n }\n throw TypeError('Expected data to be Uint8ClampedArray or undefined');\n };\n return createImage;\n};\nexports.createImage = exports.CreateImageFactory();\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filters = void 0;\nconst fixedFracBits = 14;\nconst filterValue = (x, a) => {\n if (x <= -a || x >= a)\n return 0;\n if (x == 0)\n return 0;\n // appears to do nothing?\n // if ( x > -1.19209290e-07 && x < 1.19209290e-07 ) return 1\n const xPi = x * Math.PI;\n return (Math.sin(xPi) / xPi) * Math.sin(xPi / a) / (xPi / a);\n};\nconst toFixedPoint = (value) => Math.round(value * ((1 << fixedFracBits) - 1));\nconst filters = (srcSize, destSize, scale, offset, use2) => {\n const a = use2 ? 2 : 3;\n const scaleInverted = 1 / scale;\n const scaleClamped = Math.min(1, scale); // For upscale\n // Filter window (averaging interval), scaled to src image\n const srcWindow = a / scaleClamped;\n const maxFilterElementSize = Math.floor((srcWindow + 1) * 2);\n const packedFilter = new Int16Array((maxFilterElementSize + 2) * destSize);\n let packedFilterPtr = 0;\n // For each destination pixel calculate source range and built filter values\n for (let destPixel = 0; destPixel < destSize; destPixel++) {\n // Scaling should be done relative to central pixel point\n const sourcePixel = (destPixel + 0.5) * scaleInverted + offset;\n const sourceFirst = Math.max(0, Math.floor(sourcePixel - srcWindow));\n const sourceLast = Math.min(srcSize - 1, Math.ceil(sourcePixel + srcWindow));\n const filterElementSize = sourceLast - sourceFirst + 1;\n const floatFilter = new Float32Array(filterElementSize);\n const fxpFilter = new Int16Array(filterElementSize);\n let total = 0;\n // Fill filter values for calculated range\n let index = 0;\n for (let pixel = sourceFirst; pixel <= sourceLast; pixel++) {\n const floatValue = filterValue(((pixel + 0.5) - sourcePixel) * scaleClamped, a);\n total += floatValue;\n floatFilter[index] = floatValue;\n index++;\n }\n // Normalize filter, convert to fixed point and accumulate conversion error\n let filterTotal = 0;\n for (let index = 0; index < floatFilter.length; index++) {\n const filterValue = floatFilter[index] / total;\n filterTotal += filterValue;\n fxpFilter[index] = toFixedPoint(filterValue);\n }\n // Compensate normalization error, to minimize brightness drift\n fxpFilter[destSize >> 1] += toFixedPoint(1 - filterTotal);\n //\n // Now pack filter to useable form\n //\n // 1. Trim heading and tailing zero values, and compensate shitf/length\n // 2. Put all to single array in this format:\n //\n // [ pos shift, data length, value1, value2, value3, ... ]\n //\n let leftNotEmpty = 0;\n while (leftNotEmpty < fxpFilter.length && fxpFilter[leftNotEmpty] === 0) {\n leftNotEmpty++;\n }\n let rightNotEmpty = fxpFilter.length - 1;\n while (rightNotEmpty > 0 && fxpFilter[rightNotEmpty] === 0) {\n rightNotEmpty--;\n }\n const filterShift = sourceFirst + leftNotEmpty;\n const filterSize = rightNotEmpty - leftNotEmpty + 1;\n packedFilter[packedFilterPtr++] = filterShift; // shift\n packedFilter[packedFilterPtr++] = filterSize; // size\n packedFilter.set(fxpFilter.subarray(leftNotEmpty, rightNotEmpty + 1), packedFilterPtr);\n packedFilterPtr += filterSize;\n }\n return packedFilter;\n};\nexports.filters = filters;\n/*\n Adapted to typescript from pica: https://github.com/nodeca/pica\n\n (The MIT License)\n\n Copyright (C) 2014-2017 by Vitaly Puzrin\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n//# sourceMappingURL=filters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convolve = void 0;\nconst fixedFracBits = 14;\nconst convolve = (source, dest, sw, sh, dw, filters) => {\n let srcOffset = 0;\n let destOffset = 0;\n // For each row\n for (let sourceY = 0; sourceY < sh; sourceY++) {\n let filterPtr = 0;\n // Apply precomputed filters to each destination row point\n for (let destX = 0; destX < dw; destX++) {\n // Get the filter that determines the current output pixel.\n const filterShift = filters[filterPtr++];\n let srcPtr = (srcOffset + (filterShift * 4)) | 0;\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n // Apply the filter to the row to get the destination pixel r, g, b, a\n for (let filterSize = filters[filterPtr++]; filterSize > 0; filterSize--) {\n const filterValue = filters[filterPtr++];\n r = (r + filterValue * source[srcPtr]) | 0;\n g = (g + filterValue * source[srcPtr + 1]) | 0;\n b = (b + filterValue * source[srcPtr + 2]) | 0;\n a = (a + filterValue * source[srcPtr + 3]) | 0;\n srcPtr = (srcPtr + 4) | 0;\n }\n // Bring this value back in range. All of the filter scaling factors\n // are in fixed point with fixedFracBits bits of fractional part.\n //\n // (!) Add 1/2 of value before clamping to get proper rounding. In other\n // case brightness loss will be noticeable if you resize image with white\n // border and place it on white background.\n //\n dest[destOffset] = (r + (1 << 13)) >> fixedFracBits;\n dest[destOffset + 1] = (g + (1 << 13)) >> fixedFracBits;\n dest[destOffset + 2] = (b + (1 << 13)) >> fixedFracBits;\n dest[destOffset + 3] = (a + (1 << 13)) >> fixedFracBits;\n destOffset = (destOffset + sh * 4) | 0;\n }\n destOffset = ((sourceY + 1) * 4) | 0;\n srcOffset = ((sourceY + 1) * sw * 4) | 0;\n }\n};\nexports.convolve = convolve;\n/*\n Adapted to typescript from pica: https://github.com/nodeca/pica\n\n (The MIT License)\n\n Copyright (C) 2014-2017 by Vitaly Puzrin\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n//# sourceMappingURL=convolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lanczos2 = exports.lanczos = void 0;\nconst copy_1 = require(\"@rgba-image/copy\");\nconst create_image_1 = require(\"@rgba-image/create-image\");\nconst filters_1 = require(\"./filters\");\nconst convolve_1 = require(\"./convolve\");\nconst resize = (source, dest, use2 = false) => {\n const xRatio = dest.width / source.width;\n const yRatio = dest.height / source.height;\n const filtersX = filters_1.filters(source.width, dest.width, xRatio, 0, use2);\n const filtersY = filters_1.filters(source.height, dest.height, yRatio, 0, use2);\n const tmp = new Uint8ClampedArray(dest.width * source.height * 4);\n convolve_1.convolve(source.data, tmp, source.width, source.height, dest.width, filtersX);\n convolve_1.convolve(tmp, dest.data, source.height, dest.width, dest.height, filtersY);\n};\nconst lanczos = (source, dest, sx = 0, sy = 0, sw = source.width - sx, sh = source.height - sy, dx = 0, dy = 0, dw = dest.width - dx, dh = dest.height - dy) => {\n sx = sx | 0;\n sy = sy | 0;\n sw = sw | 0;\n sh = sh | 0;\n dx = dx | 0;\n dy = dy | 0;\n dw = dw | 0;\n dh = dh | 0;\n if (sw <= 0 || sh <= 0 || dw <= 0 || dh <= 0)\n return;\n if (sx === 0 && sy === 0 && sw === source.width && sh === source.height && dx === 0 && dy === 0 && dw === dest.width && dh === dest.height) {\n resize(source, dest);\n return;\n }\n /*\n this is more expensive than the way we do in other rgba-lib functions, but\n I don't understand the pica code that I based this on well enough to work\n out how to use regions without doing crops first\n \n however copy is pretty fast compared to lanczos, so the difference is slight\n */\n const croppedSource = create_image_1.createImage(sw, sh);\n const croppedDest = create_image_1.createImage(dw, dh);\n copy_1.copy(source, croppedSource, sx, sy);\n resize(croppedSource, croppedDest);\n copy_1.copy(croppedDest, dest, 0, 0, croppedDest.width, croppedDest.height, dx, dy);\n};\nexports.lanczos = lanczos;\nconst lanczos2 = (source, dest, sx = 0, sy = 0, sw = source.width - sx, sh = source.height - sy, dx = 0, dy = 0, dw = dest.width - dx, dh = dest.height - dy) => {\n sx = sx | 0;\n sy = sy | 0;\n sw = sw | 0;\n sh = sh | 0;\n dx = dx | 0;\n dy = dy | 0;\n dw = dw | 0;\n dh = dh | 0;\n if (sw <= 0 || sh <= 0 || dw <= 0 || dh <= 0)\n return;\n if (sx === 0 && sy === 0 && sw === source.width && sh === source.height && dx === 0 && dy === 0 && dw === dest.width && dh === dest.height) {\n resize(source, dest, true);\n return;\n }\n /*\n this is more expensive than the way we do in other rgba-lib functions, but\n I don't understand the pica code that I based this on well enough to work\n out how to use regions without doing crops first\n \n however copy is pretty fast compared to lanczos, so the difference is slight\n */\n const croppedSource = create_image_1.createImage(sw, sh);\n const croppedDest = create_image_1.createImage(dw, dh);\n copy_1.copy(source, croppedSource, sx, sy);\n resize(croppedSource, croppedDest, true);\n copy_1.copy(croppedDest, dest, 0, 0, croppedDest.width, croppedDest.height, dx, dy);\n};\nexports.lanczos2 = lanczos2;\n//# sourceMappingURL=index.js.map","import { Ord as OrdNumber } from \"fp-ts/lib/number\";\nimport { Ord, contramap } from \"fp-ts/lib/Ord\";\nimport { sort } from \"fp-ts/lib/Array\";\n\ntype ImageWidth = \"width\";\ntype ImageHeight = \"height\";\n\nexport type ImageDimension = {\n readonly kind: ImageWidth | ImageHeight;\n readonly size: number;\n};\n\nconst makeWidth = (size: number): ImageDimension => {\n return {\n kind: \"width\",\n size,\n };\n};\n\nconst makeHeight = (size: number): ImageDimension => {\n return {\n kind: \"height\",\n size,\n };\n};\n\ntype ImageDimensions = ImageDimension[];\n\nconst ordBySize: Ord<ImageDimension> = contramap((s: ImageDimension) => s.size)(\n OrdNumber\n);\nconst ordByKind: Ord<ImageDimension> = {\n equals: (x, y) => x.kind === y.kind,\n compare: (x, y) => {\n return x.kind === y.kind ? 0 : x.kind === \"width\" ? -1 : 1;\n },\n};\n\nconst sortDimentionsBySize = sort(ordBySize);\nconst sortDimentionsByKind = sort(ordByKind);\n\nconst getDimentionsRatio = (sortedDimensions: ImageDimensions): number => {\n const [smallest, largest] = sortedDimensions;\n return smallest.size / largest.size;\n};\n\nexport const scaleByLargestSide =\n (toSize: number) =>\n (dimensions: ImageDimensions): ImageDimensions => {\n const sortedDimensions = sortDimentionsBySize(dimensions);\n const ratio = getDimentionsRatio(sortedDimensions);\n\n const newSmallestSide: ImageDimension = {\n ...sortedDimensions[0],\n size: toSize * ratio,\n };\n\n const newLargestSide: ImageDimension = {\n ...sortedDimensions[1],\n size: toSize,\n };\n\n return sortDimentionsByKind([newLargestSide, newSmallestSide]);\n };\n\nexport const dimensionsFromImage = (\n image: HTMLImageElement\n): ImageDimensions => {\n const { naturalWidth, naturalHeight } = image;\n return [makeWidth(naturalWidth), makeHeight(naturalHeight)];\n};\n","import { lanczos } from \"@rgba-image/lanczos\";\nimport {\n dimensionsFromImage,\n ImageDimension,\n scaleByLargestSide,\n} from \"./sizing\";\n\nconst createCanvasWithContext = (): [\n HTMLCanvasElement,\n CanvasRenderingContext2D\n] => {\n const canvas = document.createElement(\"canvas\");\n const contenx = canvas.getContext(\"2d\");\n\n return [canvas, contenx];\n};\n\nconst imageDataFromImage = (image: HTMLImageElement): ImageData => {\n const { naturalWidth, naturalHeight } = image;\n const [canvas, context] = createCanvasWithContext();\n\n canvas.width = naturalWidth;\n canvas.height = naturalHeight;\n\n context.drawImage(image, 0, 0);\n\n return context.getImageData(0, 0, naturalWidth, naturalHeight);\n};\n\nexport const resizeImage = (width: number, i: HTMLImageElement): string => {\n const scale = scaleByLargestSide(width);\n const [destinationCanvas, destinationContext] = createCanvasWithContext();\n const imageDimensions = dimensionsFromImage(i);\n const [destinationWidth, destinationHeight] = scale(imageDimensions).map(\n (d: ImageDimension) => d.size\n );\n\n const destinationImageData = new ImageData(\n destinationWidth,\n destinationHeight\n );\n\n const originImageData = imageDataFromImage(i);\n\n destinationCanvas.width = destinationWidth;\n destinationCanvas.height = destinationHeight;\n\n lanczos(originImageData, destinationImageData);\n\n destinationContext.putImageData(destinationImageData, 0, 0);\n\n return destinationCanvas.toDataURL();\n};\n","import { Task } from \"fp-ts/Task\";\n\nexport const toFile = async (b64data: string): Promise<File> => {\n const request = await fetch(b64data);\n const blob = await request.blob();\n\n return new File([blob], \"image\", {\n type: blob.type,\n lastModified: Date.now(),\n });\n};\n\nexport const convertB64toFileTask = (b64data: string): Task<File> => () =>\n new Promise(async (resolve, _) => {\n const request = await fetch(b64data);\n const blob = await request.blob();\n const file = new File([blob], \"image\", {\n type: blob.type,\n lastModified: Date.now(),\n });\n\n resolve(file);\n });\n","export const imageToB64 = (i: HTMLImageElement): string => {\n const canvas = document.createElement(\"canvas\");\n const { naturalWidth, naturalHeight } = i;\n const ctx = canvas.getContext(\"2d\");\n\n canvas.width = naturalWidth;\n canvas.height = naturalHeight;\n\n ctx.drawImage(i, 0, 0, naturalWidth, naturalHeight);\n\n return canvas.toDataURL();\n};\n","import * as O from \"fp-ts/lib/Option\";\nimport * as E from \"fp-ts/lib/Either\";\nimport * as T from \"fp-ts/lib/Task\";\nimport { checkImageType } from \"../Image/error\";\nimport { pipe } from \"fp-ts/lib/function\";\nimport { fileDoesntExistError } from \"../file\";\nimport { imageFromFileTask } from \"../Image/fromFile\";\nimport { resizeImage } from \"../Image/resizeImage\";\nimport { convertB64toFileTask } from \"../Image/toFile\";\nimport { imageToB64 } from \"../Image/imageToB64\";\n\nexport const checkFileWithExtention = (file: File) =>\n pipe(\n file,\n O.fromNullable,\n E.fromOption(() => fileDoesntExistError),\n E.chain(checkImageType)\n );\n\nconst optionalResize = (image: HTMLImageElement, size: number) =>\n image.naturalWidth > size ? resizeImage(size, image) : imageToB64(image);\n\nexport const resizeFileTo = (size: number) => (file: File) =>\n pipe(\n file,\n imageFromFileTask,\n T.map((image) => optionalResize(image, size)),\n T.chain(convertB64toFileTask)\n );\n","import { createStore } from \"@stencil/store\";\nimport * as O from \"fp-ts/lib/Option\";\nimport * as E from \"fp-ts/Either\";\nimport * as TE from \"fp-ts/TaskEither\";\nimport { pipe } from \"fp-ts/function\";\nimport { Recommendation } from \"../recommendation/recommendation\";\nimport {\n readFilters,\n SearchSession,\n SearchSessionFilter,\n DetectedObject,\n searchSessionClient,\n} from \"../searchSession/searchSession\";\nimport { foldValueObject, ValueObject } from \"../network/ion/ValueObject\";\nimport { Link, linkRequest, getLink } from \"../network/ion/Link\";\nimport { divideOnSized, Rectangle } from \"../geometry/Rectangle\";\nimport { Form, formRequest } from \"../network/ion/Form\";\nimport * as F from \"../network/ion/File\";\nimport { Handler, fromRectangle } from \"../cropper/Handler\";\nimport { sequenceToOption } from \"../utils/option/option\";\nimport { processBearerToken } from \"../utils/token/tokenUtils\";\nimport { BasicError } from \"../error\";\nimport { sequenceToEither } from \"../utils/either\";\nimport { imageFormFromFile } from \"../Image/form\";\nimport { checkFileWithExtention, resizeFileTo } from \"./file-processing\";\nimport { imageFromFileTask } from \"../Image/fromFile\";\n\nconst RESIZED_IMAGE_WIDTH = 500;\nconst makeAuthorizedRequest = (\n token: string\n): E.Either<BasicError<string>, RequestInit> =>\n pipe(\n token,\n processBearerToken,\n E.map((headers: Headers) => {\n return {\n headers,\n };\n })\n );\n\ntype ImageSearchStore = {\n token?: string;\n campaignId: O.Option<string>;\n results: Recommendation[];\n filters: SearchSessionFilter[];\n resetCategoryLink?: Link;\n activeIonLink?: Link;\n cropperHandlers: Handler[];\n selectedCropper?: number;\n rectangleSearchForm?: Form;\n detectedObjects: ValueObject<DetectedObject>[];\n detectedObject?: ValueObject<DetectedObject>;\n objectDetectionInProgress: boolean;\n imageWidth: number;\n\n image: O.Option<HTMLImageElement>;\n imageUrl: O.Option<string>;\n imageBounds: O.Option<Rectangle>;\n searchArea: O.Option<Rectangle>;\n\n resultsComponents: HTMLElement[];\n\n serverError: boolean;\n loading: boolean;\n};\n\nconst { state, onChange } = createStore<ImageSearchStore>({\n campaignId: O.none,\n results: [],\n filters: [],\n cropperHandlers: [],\n detectedObjects: [],\n objectDetectionInProgress: false,\n\n imageWidth: RESIZED_IMAGE_WIDTH,\n\n image: O.none,\n imageUrl: O.none,\n imageBounds: O.none,\n searchArea: O.none,\n\n resultsComponents: [],\n\n serverError: false,\n loading: false,\n});\n\nconst updateState = async (response: SearchSession) => {\n state.results = response.value;\n state.filters = readFilters(foldValueObject(response.filters));\n state.rectangleSearchForm = response.searchArea;\n state.resetCategoryLink = response.links?.clearFilters;\n state.loading = false;\n};\n\nconst makeLinkRequest = <T>(\n link: Link\n): TE.TaskEither<BasicError<Response | string>, ValueObject<T>> => {\n return pipe(\n makeAuthorizedRequest(state.token),\n TE.fromEither,\n TE.chainW(linkRequest<T>(link))\n );\n};\n\nconst detectObjects = async (data: SearchSession) => {\n state.objectDetectionInProgress = true;\n\n const error: BasicError<string> = {\n kind: \"server\",\n inner: \"Can not get a link for objects detection\",\n };\n\n await pipe(\n getLink(data, \"detectedObjects\"),\n TE.fromOption(() => error),\n TE.chain(makeLinkRequest),\n TE.map(\n (objects: ValueObject<ValueObject<DetectedObject>[]>) =>\n (state.detectedObjects = foldValueObject(objects))\n )\n )();\n\n state.objectDetectionInProgress = false;\n};\n\nexport const uploadHiresFile = async (\n sessionResponse: SearchSession,\n file: File\n) => {\n const ionFile: F.IonFile = await F.fromFile(file);\n const formPayload = {\n image: ionFile,\n };\n\n const form = sessionResponse.uploadHighResolutionImage;\n\n await pipe(\n makeAuthorizedRequest(state.token),\n TE.fromEither,\n TE.chainW(formRequest<void>(form, formPayload))\n )();\n};\n\nexport const makeRectangularSearchRequest = async () => {\n state.loading = true;\n pipe(\n sequenceToOption(state.imageBounds, state.searchArea),\n O.map(async ([bounds, searchArea]) => {\n const scaled = divideOnSized(bounds)(searchArea);\n const searchRectangle = {\n width: scaled.width,\n height: scaled.height,\n left: scaled.x,\n top: scaled.y,\n };\n\n return await pipe(\n makeAuthorizedRequest(state.token),\n TE.fromEither,\n TE.chainW(formRequest(state.rectangleSearchForm, searchRectangle)),\n TE.map(updateState)\n )();\n })\n );\n};\n\nexport const uploadFile = (\n file: File\n): TE.TaskEither<BasicError<string | Response>, SearchSession> => {\n state.loading = true;\n\n const fileForm = imageFormFromFile(file);\n\n const tokenWithFile = sequenceToEither(\n processBearerToken(state.token),\n E.right(fileForm)\n );\n\n return pipe(\n tokenWithFile,\n E.map(([headers, body]): RequestInit => {\n return {\n headers,\n body,\n };\n }),\n TE.fromEither,\n TE.chain((request) => searchSessionClient(request, state.campaignId)),\n TE.map((sessionResponse) => {\n updateState(sessionResponse);\n detectObjects(sessionResponse);\n state.loading = false;\n return sessionResponse;\n }),\n TE.mapLeft((error) => {\n state.serverError = true;\n state.loading = false;\n return error;\n })\n );\n};\n\nexport const imageSearchState = state;\n\nonChange(\"activeIonLink\", async (newLink: Link) => {\n state.loading = true;\n const link = newLink ? newLink : state.resetCategoryLink;\n\n await pipe(\n makeAuthorizedRequest(state.token),\n TE.fromEither,\n TE.chainW(linkRequest(link)),\n TE.map(updateState),\n TE.mapLeft((error) => {\n return {\n kind: \"network error\",\n inner: error,\n };\n })\n )();\n});\n\nonChange(\"searchArea\", (newSearchArea: O.Option<Rectangle>) => {\n pipe(\n newSearchArea,\n O.map((area) => {\n state.cropperHandlers = fromRectangle(area);\n })\n );\n});\n\nonChange(\"serverError\", () => {\n state.loading = false;\n});\n\nconst setSelectedImage = (image: HTMLImageElement) => {\n imageSearchState.image = O.some(image);\n imageSearchState.imageUrl = O.some(image.src);\n};\n\nexport const processSelectedFile = async (file: File) => {\n const originFile = checkFileWithExtention(file);\n\n const fileResizer = resizeFileTo(RESIZED_IMAGE_WIDTH);\n\n const resizeFileTask = pipe(\n originFile,\n TE.fromEither,\n TE.chainTaskK(fileResizer)\n );\n\n const session = await pipe(resizeFileTask, TE.chain(uploadFile))();\n\n pipe(\n sequenceToEither(session, originFile),\n E.map(([sessionObject, file]) => uploadHiresFile(sessionObject, file))\n );\n\n await pipe(\n resizeFileTask,\n TE.chainTaskK(imageFromFileTask),\n TE.map(setSelectedImage)\n )();\n\n return session;\n};\n"],"version":3}
|