{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/core/WarningErrorTable.vue?b325","webpack:///src/components/core/WarningErrorTable.vue","webpack:///./src/components/core/WarningErrorTable.vue?eaa6","webpack:///./src/components/core/WarningErrorTable.vue","webpack:///./src/store/contacts.js","webpack:///./src/mixins/cncTurningLinearDimensionsTableValues.js","webpack:///./src/components/core/PartViewerDrawer.vue?287c","webpack:///./src/components/core/PartCard.vue?f0ea","webpack:///src/components/core/PartCard.vue","webpack:///./src/components/core/PartCard.vue?9004","webpack:///./src/components/core/PartCard.vue","webpack:///./src/components/core/OrderItemsTable.vue?c01f","webpack:///./src/utils/vuex.js","webpack:///./src/components/core/RangPriceMoqLabel.vue?5777","webpack:///./src/components/core/VersionManager.vue?acad","webpack:///src/components/core/VersionManager.vue","webpack:///./src/components/core/VersionManager.vue?e1e3","webpack:///./src/components/core/VersionManager.vue?f69d","webpack:///./src/components/core/RangPriceMoq.vue?b8ec","webpack:///./src/components/core/PartCardSkeleton.vue?cb68","webpack:///./src/components/core/PartCardSkeleton.vue","webpack:///./src/store/company.js","webpack:///./src/components/core/TimeField.vue?2a8f","webpack:///src/components/core/TimeField.vue","webpack:///./src/components/core/TimeField.vue?4ec7","webpack:///./src/components/core/TimeField.vue","webpack:///./src/components/core/RfqPartCard.vue?848c","webpack:///src/components/core/RfqPartCard.vue","webpack:///./src/components/core/RfqPartCard.vue?05a3","webpack:///./src/components/core/RfqPartCard.vue","webpack:///./src/components/core/OrderShippingAddress.vue?127a","webpack:///./src/components/form/Role.vue?546b","webpack:///src/components/form/Role.vue","webpack:///./src/components/form/Role.vue?2600","webpack:///./src/components/form/Role.vue","webpack:///./src/store/internal-products.js","webpack:///./src/plugins/simulateLodash.js","webpack:///./src/components/core/VersionManager.vue?9804","webpack:///./src/components/core/HardwareProductGroup.vue?4825","webpack:///src/components/core/HardwareProductGroup.vue","webpack:///./src/components/core/HardwareProductGroup.vue?ec20","webpack:///./src/components/core/HardwareProductGroup.vue?adc1","webpack:///./src/components/core/FooterButtonActions.vue?0379","webpack:///src/components/core/FooterButtonActions.vue","webpack:///./src/components/core/FooterButtonActions.vue?6df9","webpack:///./src/components/core/FooterButtonActions.vue?c1a6","webpack:///./src/App.vue?2338","webpack:///./src/components/form/Email.vue?e71a","webpack:///src/components/form/Email.vue","webpack:///./src/components/form/Email.vue?4d11","webpack:///./src/components/form/Email.vue","webpack:///./src/store/my-products.js","webpack:///./src/store/finishes.js","webpack:///./src/components/core/Snack.vue?0dc5","webpack:///./src/store/user.js","webpack:///./src/store/countries.js","webpack:///./src/components/core/RangPriceMoq.vue?118a","webpack:///src/components/core/RangPriceMoq.vue","webpack:///./src/components/core/RangPriceMoq.vue?249d","webpack:///./src/components/core/RangPriceMoq.vue?2598","webpack:///./src/store/delivery-options.js","webpack:///./src/store/customers.js","webpack:///./src/views/Dashboard.vue?ca9f","webpack:///./src/components/form/Forwarder.vue?301b","webpack:///src/components/form/Forwarder.vue","webpack:///./src/components/form/Forwarder.vue?ac8a","webpack:///./src/components/form/Forwarder.vue","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?83ae","webpack:///src/components/core/WelcomeScreenUploadFileBanner.vue","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?7ac2","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?0a81","webpack:///./src/views/OnBoarding.vue?22c9","webpack:///./src/components/form/Address.vue?7387","webpack:///src/components/form/Address.vue","webpack:///./src/components/form/Address.vue?c2f0","webpack:///./src/components/form/Address.vue","webpack:///./src/components/core/HardwareProductGroup.vue?3406","webpack:///./src/components/core/BagItemsList.vue?8895","webpack:///src/components/core/BagItemsList.vue","webpack:///./src/components/core/BagItemsList.vue?9345","webpack:///./src/components/core/BagItemsList.vue","webpack:///./src/components/core/HardwareThumbnailViewer.vue?7060","webpack:///src/components/core/HardwareThumbnailViewer.vue","webpack:///./src/components/core/HardwareThumbnailViewer.vue?9d5a","webpack:///./src/components/core/HardwareThumbnailViewer.vue?d5d0","webpack:///./src/store/my-parts.js","webpack:///./src/components/core/ModelViewer.vue?686c","webpack:///src/components/core/ModelViewer.vue","webpack:///./src/components/core/ModelViewer.vue?656d","webpack:///./src/components/core/ModelViewer.vue?af46","webpack:///./src/utils/log.js","webpack:///./src/components/core/Dialog.vue?6afe","webpack:///src/components/core/Dialog.vue","webpack:///./src/components/core/Dialog.vue?629c","webpack:///./src/components/core/Dialog.vue","webpack:///./src/rights.js","webpack:///./src/store/app.js","webpack:///./src/store/customBag.js","webpack:///./src/store/temp-rfqs.js","webpack:///./src/components/core/SvgViewer.vue?4ac0","webpack:///src/components/core/SvgViewer.vue","webpack:///./src/components/core/SvgViewer.vue?b602","webpack:///./src/components/core/SvgViewer.vue","webpack:///./src/components/core/PartsDesignDataTable.vue?440d","webpack:///src/components/core/PartsDesignDataTable.vue","webpack:///./src/components/core/PartsDesignDataTable.vue?f683","webpack:///./src/components/core/PartsDesignDataTable.vue?7d99","webpack:///./src/store/forwarders.js","webpack:///./src/components/core/UploadCardBodyRadio.vue?ed52","webpack:///src/components/core/UploadCardBodyRadio.vue","webpack:///./src/components/core/UploadCardBodyRadio.vue?076f","webpack:///./src/components/core/UploadCardBodyRadio.vue","webpack:///./src/components/core/UploadSvgDrawing.vue?227d","webpack:///src/components/core/UploadSvgDrawing.vue","webpack:///./src/components/core/UploadSvgDrawing.vue?fcdf","webpack:///./src/components/core/UploadSvgDrawing.vue","webpack:///./src/components/core/RangPriceMoqLabel.vue?7650","webpack:///src/components/core/RangPriceMoqLabel.vue","webpack:///./src/components/core/RangPriceMoqLabel.vue?a871","webpack:///./src/components/core/RangPriceMoqLabel.vue?a2f1","webpack:///./src/store/temp-parts.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/components/core/HardwareThumbnailViewer.vue?5894","webpack:///./src/views/Dashboard.vue?e3a1","webpack:///./src/mixins/companyNumberToInt.js","webpack:///src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?ae5e","webpack:///./src/views/Dashboard.vue?dcae","webpack:///./src/views/Login.vue?3311","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?5d79","webpack:///./src/views/Login.vue?2f5f","webpack:///./src/views/Logout.vue?8e12","webpack:///src/views/Logout.vue","webpack:///./src/views/Logout.vue?1261","webpack:///./src/views/Logout.vue?e2a2","webpack:///./src/views/OnBoarding.vue?cf40","webpack:///src/views/OnBoarding.vue","webpack:///./src/views/OnBoarding.vue?2424","webpack:///./src/views/OnBoarding.vue?e329","webpack:///./src/views/Confirmation.vue?29c9","webpack:///src/views/Confirmation.vue","webpack:///./src/views/Confirmation.vue?bc7d","webpack:///./src/views/Confirmation.vue","webpack:///./src/views/ForgottenPassword.vue?bf8a","webpack:///src/views/ForgottenPassword.vue","webpack:///./src/views/ForgottenPassword.vue?f74f","webpack:///./src/views/ForgottenPassword.vue?68b4","webpack:///./src/views/ResetPassword.vue?e66a","webpack:///src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?4b47","webpack:///./src/views/ResetPassword.vue?2ca5","webpack:///./src/views/SignUp.vue?348c","webpack:///src/views/SignUp.vue","webpack:///./src/views/SignUp.vue?d073","webpack:///./src/views/SignUp.vue?10a1","webpack:///./src/views/PageNotFound.vue?f89d","webpack:///src/views/PageNotFound.vue","webpack:///./src/views/PageNotFound.vue?dcc1","webpack:///./src/views/PageNotFound.vue","webpack:///./src/views/SignUpSendEmail.vue?04b5","webpack:///src/views/SignUpSendEmail.vue","webpack:///./src/views/SignUpSendEmail.vue?8ee8","webpack:///./src/views/SignUpSendEmail.vue","webpack:///./src/views/ResetPasswordSendEmail.vue?e151","webpack:///./src/views/ResetPasswordSendEmail.vue","webpack:///./src/views/ResetPasswordSuccess.vue?00a8","webpack:///./src/views/ResetPasswordSuccess.vue","webpack:///./src/router.js","webpack:///./src/components/core/FooterButtonActions.vue?0f61","webpack:///./src/components/core/UploadPartCard.vue?2edf","webpack:///./src/store/index.js","webpack:///./src/components/core/EditOrderDropDownInformation.vue?34c7","webpack:///src/components/core/EditOrderDropDownInformation.vue","webpack:///./src/components/core/EditOrderDropDownInformation.vue?0b3f","webpack:///./src/components/core/EditOrderDropDownInformation.vue","webpack:///./src/store/roles.js","webpack:///./src/plugins/feathers-client.js","webpack:///./src/directives/index.js","webpack:///./src/components/core/InstantQuoteGuideLine.vue?2e72","webpack:///./src/components/core/filter/Filter.vue?0fe1","webpack:///src/components/core/filter/Filter.vue","webpack:///./src/components/core/filter/Filter.vue?926b","webpack:///./src/components/core/filter/Filter.vue?4bf0","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/views/SignUp.vue?223a","webpack:///./src/components/core/PartAnalysisTable.vue?df18","webpack:///src/components/core/PartAnalysisTable.vue","webpack:///./src/components/core/PartAnalysisTable.vue?bf71","webpack:///./src/components/core/PartAnalysisTable.vue","webpack:///./src/components/core/UploadPartCard.vue?5641","webpack:///src/components/core/UploadPartCard.vue","webpack:///./src/components/core/UploadPartCard.vue?093b","webpack:///./src/components/core/UploadPartCard.vue?c379","webpack:///./src/components/core/WelcomeScreenReferral.vue?833f","webpack:///src/components/core/WelcomeScreenReferral.vue","webpack:///./src/components/core/WelcomeScreenReferral.vue?6aba","webpack:///./src/components/core/WelcomeScreenReferral.vue","webpack:///./src/store/rfqs.js","webpack:///./src/components/form/Phone.vue?1645","webpack:///src/components/form/Phone.vue","webpack:///./src/components/form/Phone.vue?c7f3","webpack:///./src/components/form/Phone.vue","webpack:///./src/store sync nonrecursive .js$","webpack:///./src/mixins/form-rules.js","webpack:///./src/directives sync \\.js$","webpack:///./src/App.vue?6a44","webpack:///./src/mixins/swupdate.js","webpack:///src/App.vue","webpack:///./src/App.vue?60d0","webpack:///./src/App.vue?5a89","webpack:///./src/components/index.js","webpack:///./src/plugins/datadog-rum.js","webpack:///./src/main.js","webpack:///./src/views/ForgottenPassword.vue?ff74","webpack:///./src/components/core/FinishColor.vue?ea32","webpack:///./src/shared/types/paymentStatuses.js","webpack:///./src/components/form/User.vue?758d","webpack:///./src/mixins/roles.js","webpack:///src/components/form/User.vue","webpack:///./src/components/form/User.vue?5d16","webpack:///./src/components/form/User.vue","webpack:///./src/store/promo-codes.js","webpack:///./src/components/core/filter/Main.vue?1ed8","webpack:///./src/components/core/filter/Main.vue","webpack:///./src/components/core/Main.vue?24a1","webpack:///./src/components/core/HardwareDrawingTable.vue?8333","webpack:///./src/store/hardware-products.js","webpack:///./src/components/core/ProductDrawingTable.vue?a95a","webpack:///src/components/core/ProductDrawingTable.vue","webpack:///./src/components/core/ProductDrawingTable.vue?9f52","webpack:///./src/components/core/ProductDrawingTable.vue?44b6","webpack:///./src/components/core/StlFileUpload.vue?ee94","webpack:///src/components/core/StlFileUpload.vue","webpack:///./src/components/core/StlFileUpload.vue?c78e","webpack:///./src/components/core/StlFileUpload.vue","webpack:///./src/store/shipping-addresses.js","webpack:///./src/components/core/filter/Filter.vue?c3a7","webpack:///./src/components/core/MyPartPdfViewer.vue?802c","webpack:///src/components/core/MyPartPdfViewer.vue","webpack:///./src/components/core/MyPartPdfViewer.vue?6948","webpack:///./src/components/core/MyPartPdfViewer.vue","webpack:///./src/components/core/Main.vue?3ef8","webpack:///./src/mixins/service.js","webpack:///./src/mixins/table.js","webpack:///src/components/core/Main.vue","webpack:///./src/components/core/Main.vue?cf66","webpack:///./src/components/core/Main.vue?7b2e","webpack:///./src/components/core/TechnicalDrawingPdf.vue?24fd","webpack:///src/components/core/TechnicalDrawingPdf.vue","webpack:///./src/components/core/TechnicalDrawingPdf.vue?fd33","webpack:///./src/components/core/TechnicalDrawingPdf.vue","webpack:///./src/components/core/ModelViewer.vue?d923","webpack:///./src/utils/types.js","webpack:///./src/components/core/ThumbnailViewer.vue?d50e","webpack:///./src/components/core/FinishColor.vue?3ad9","webpack:///src/components/core/FinishColor.vue","webpack:///./src/components/core/FinishColor.vue?533f","webpack:///./src/components/core/FinishColor.vue?2a80","webpack:///./src/store/payments.js","webpack:///./src/components/core/filter/CheckboxGroup.vue?212d","webpack:///src/components/core/filter/CheckboxGroup.vue","webpack:///./src/components/core/filter/CheckboxGroup.vue?55f2","webpack:///./src/components/core/filter/CheckboxGroup.vue","webpack:///./src/store/orders.js","webpack:///./src/utils/logger.js","webpack:///./src/components/core/CompactPartCard.vue?3df4","webpack:///src/components/core/CompactPartCard.vue","webpack:///./src/components/core/CompactPartCard.vue?5dcd","webpack:///./src/components/core/CompactPartCard.vue","webpack:///./src/store/account-statements.js","webpack:///./src/store/regions.js","webpack:///./src/store/auth.js","webpack:///./src/constants/taxes.js","webpack:///./src/mixins/currencyFormatter.js","webpack:///./src/components/core/Ownerships.vue?0e7d","webpack:///src/components/core/Ownerships.vue","webpack:///./src/components/core/Ownerships.vue?41fe","webpack:///./src/components/core/Ownerships.vue?3c1e","webpack:///./src/components/core/WelcomeScreenUploadFileBanner.vue?4eac","webpack:///./src/constants/countries.js","webpack:///./src/mixins/modelable.js","webpack:///./src/components/core/PdfViewer.vue?5ace","webpack:///src/components/core/PdfViewer.vue","webpack:///./src/components/core/PdfViewer.vue?3fa8","webpack:///./src/components/core/PdfViewer.vue","webpack:///./src/components/core/ProductOption.vue?3c28","webpack:///./src/components/core/CustomBagPriceMoqTable.vue?9c53","webpack:///src/components/core/CustomBagPriceMoqTable.vue","webpack:///./src/components/core/CustomBagPriceMoqTable.vue?3e99","webpack:///./src/components/core/CustomBagPriceMoqTable.vue","webpack:///./src/components/core/PaymentDialog.vue?60ea","webpack:///src/components/core/PaymentDialog.vue","webpack:///./src/components/core/PaymentDialog.vue?fe50","webpack:///./src/components/core/PaymentDialog.vue","webpack:///./src/components/core/UploadPartHeader.vue?a364","webpack:///src/components/core/UploadPartHeader.vue","webpack:///./src/components/core/UploadPartHeader.vue?b446","webpack:///./src/components/core/UploadPartHeader.vue","webpack:///./src/components/core/DrawingConsultancyPdf.vue?ca16","webpack:///src/components/core/DrawingConsultancyPdf.vue","webpack:///./src/components/core/DrawingConsultancyPdf.vue?7618","webpack:///./src/components/core/DrawingConsultancyPdf.vue","webpack:///./src/mixins/filter.js","webpack:///./src/components/core/DfmTable.vue?c5f5","webpack:///src/components/core/DfmTable.vue","webpack:///./src/components/core/DfmTable.vue?31e9","webpack:///./src/components/core/DfmTable.vue","webpack:///./src/components/core/Avatar.vue?56fe","webpack:///src/components/core/Avatar.vue","webpack:///./src/components/core/Avatar.vue?3437","webpack:///./src/components/core/Avatar.vue","webpack:///./src/components/core/PartsDesignDataTable.vue?e282","webpack:///./src/components/core/ManufacturingProcessTable.vue?289a","webpack:///src/components/core/ManufacturingProcessTable.vue","webpack:///./src/components/core/ManufacturingProcessTable.vue?d8e3","webpack:///./src/components/core/ManufacturingProcessTable.vue","webpack:///./src/components/core/HardwareDrawingTable.vue?398f","webpack:///src/components/core/HardwareDrawingTable.vue","webpack:///./src/components/core/HardwareDrawingTable.vue?4541","webpack:///./src/components/core/HardwareDrawingTable.vue?d075","webpack:///./src/components/core/NoContent.vue?7a07","webpack:///src/components/core/NoContent.vue","webpack:///./src/components/core/NoContent.vue?df49","webpack:///./src/components/core/NoContent.vue","webpack:///./src/components/core/filter/SwitchGroup.vue?c0ae","webpack:///src/components/core/filter/SwitchGroup.vue","webpack:///./src/components/core/filter/SwitchGroup.vue?8cbd","webpack:///./src/components/core/filter/SwitchGroup.vue","webpack:///./src/mixins/update-entity.js","webpack:///./src/components/core/ProductDrawingTable.vue?b37e","webpack:///./src/mixins/model.js","webpack:///./src/components/core/DrawingEngineFilesUpload.vue?2ab1","webpack:///src/components/core/DrawingEngineFilesUpload.vue","webpack:///./src/components/core/DrawingEngineFilesUpload.vue?8d7d","webpack:///./src/components/core/DrawingEngineFilesUpload.vue","webpack:///./src/components/core/filter/RangeSlider.vue?8a2a","webpack:///src/components/core/filter/RangeSlider.vue","webpack:///./src/components/core/filter/RangeSlider.vue?f308","webpack:///./src/components/core/filter/RangeSlider.vue","webpack:///./src/components/core/WelcomeScreenPromotionCountdownBanner.vue?aeea","webpack:///src/components/core/WelcomeScreenPromotionCountdownBanner.vue","webpack:///./src/components/core/WelcomeScreenPromotionCountdownBanner.vue?3c55","webpack:///./src/components/core/WelcomeScreenPromotionCountdownBanner.vue","webpack:///./src/App.vue?244e","webpack:///./src/components/core/Snack.vue?c00f","webpack:///src/components/core/Snack.vue","webpack:///./src/components/core/Snack.vue?adec","webpack:///./src/components/core/Snack.vue?463a","webpack:///./src/components/core/PriceMoqTable.vue?c661","webpack:///src/components/core/PriceMoqTable.vue","webpack:///./src/components/core/PriceMoqTable.vue?c38a","webpack:///./src/components/core/PriceMoqTable.vue","webpack:///./src/components/core/ProductOptionReadOnly.vue?2c5f","webpack:///src/components/core/ProductOptionReadOnly.vue","webpack:///./src/components/core/ProductOptionReadOnly.vue?7aee","webpack:///./src/components/core/ProductOptionReadOnly.vue","webpack:///./src/components/core/HomeHero.vue?bd41","webpack:///./src/components/core/ProcessLimitationsTable.vue?90d7","webpack:///src/components/core/ProcessLimitationsTable.vue","webpack:///./src/components/core/ProcessLimitationsTable.vue?03d5","webpack:///./src/components/core/ProcessLimitationsTable.vue","webpack:///./src/components/core/BagCard.vue?aa6a","webpack:///src/components/core/BagCard.vue","webpack:///./src/components/core/BagCard.vue?2e5b","webpack:///./src/components/core/BagCard.vue","webpack:///./src/mixins/editForm.js","webpack:///./src/store/order-lines.js","webpack:///./src/store/payment-results.js","webpack:///./src/components/core/SearchBar.vue?d843","webpack:///src/components/core/SearchBar.vue","webpack:///./src/components/core/SearchBar.vue?0e98","webpack:///./src/components/core/SearchBar.vue","webpack:///./src/components/core/RfqPartsTable.vue?745b","webpack:///./src/components/core/ThumbnailViewer.vue?fa01","webpack:///src/components/core/ThumbnailViewer.vue","webpack:///./src/components/core/ThumbnailViewer.vue?5d9f","webpack:///./src/components/core/ThumbnailViewer.vue?d090","webpack:///./src/components/core/HomeHero.vue?aa3a","webpack:///./src/components/core/HomeHero.vue?ce40","webpack:///./src/components/core/Promotional.vue?a7c2","webpack:///src/components/core/Promotional.vue","webpack:///./src/components/core/Promotional.vue?fd33","webpack:///./src/components/core/Promotional.vue","webpack:///./src/views/Login.vue?e169","webpack:///./src/components/core/PurchaseOrdersPdf.vue?ea98","webpack:///src/components/core/PurchaseOrdersPdf.vue","webpack:///./src/components/core/PurchaseOrdersPdf.vue?db76","webpack:///./src/components/core/PurchaseOrdersPdf.vue","webpack:///./src/views/ResetPassword.vue?fa4f","webpack:///./src/store/csi-analysis.js","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?1d07","webpack:///./src/locales/index.js","webpack:///./src/plugins/i18n.js","webpack:///./src/store/referrals.js","webpack:///./src/components/core/PartDesignTable.vue?c39a","webpack:///src/components/core/PartDesignTable.vue","webpack:///./src/components/core/PartDesignTable.vue?aae4","webpack:///./src/components/core/PartDesignTable.vue?7d42","webpack:///./src/store/packaging-tools.js","webpack:///./src/components/core/RfqPartsTable.vue?b476","webpack:///src/components/core/RfqPartsTable.vue","webpack:///./src/components/core/RfqPartsTable.vue?f01e","webpack:///./src/components/core/RfqPartsTable.vue?0195","webpack:///./src/components/core/TableUnitPricing.vue?e231","webpack:///./src/components/core/RFQCardTransition.vue?6368","webpack:///src/components/core/RFQCardTransition.vue","webpack:///./src/components/core/RFQCardTransition.vue?fb22","webpack:///./src/components/core/RFQCardTransition.vue","webpack:///./src/store/materials.js","webpack:///./src/components/core/Ownerships.vue?9f2b","webpack:///./src/store/parts.js","webpack:///./src/components/core/PartViewerDrawer.vue?dd72","webpack:///src/components/core/PartViewerDrawer.vue","webpack:///./src/components/core/PartViewerDrawer.vue?8274","webpack:///./src/components/core/PartViewerDrawer.vue?57c7","webpack:///./src/mixins/address-formatter.js","webpack:///./src/views/Logout.vue?a6b3","webpack:///./src/components/core/PdfCanvas.vue?4fbe","webpack:///src/components/core/PdfCanvas.vue","webpack:///./src/components/core/PdfCanvas.vue?a822","webpack:///./src/components/core/PdfCanvas.vue?d604","webpack:///./src/components/core/PriceMoqTableUnitPriceVariation.vue?cefe","webpack:///src/components/core/PriceMoqTableUnitPriceVariation.vue","webpack:///./src/components/core/PriceMoqTableUnitPriceVariation.vue?2a4d","webpack:///./src/components/core/PriceMoqTableUnitPriceVariation.vue","webpack:///./src/mixins/form.js","webpack:///./src/components/core/ProductOption.vue?1baa","webpack:///src/components/core/ProductOption.vue","webpack:///./src/components/core/ProductOption.vue?f014","webpack:///./src/components/core/ProductOption.vue?ca1b","webpack:///./src/components/core/OrderItemsTable.vue?7739","webpack:///src/components/core/OrderItemsTable.vue","webpack:///./src/components/core/OrderItemsTable.vue?a4b6","webpack:///./src/components/core/OrderItemsTable.vue?c0d6","webpack:///./src/store/thumbnails.js","webpack:///./src/store/hardware-categories.js","webpack:///./src/components/core/RFQCardActions.vue?6ad9","webpack:///src/components/core/RFQCardActions.vue","webpack:///./src/components/core/RFQCardActions.vue?4d70","webpack:///./src/components/core/RFQCardActions.vue","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?10d7","webpack:///src/components/core/WelcomeScreenOrderStepsBanner.vue","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?3afb","webpack:///./src/components/core/WelcomeScreenOrderStepsBanner.vue?1857","webpack:///./src/components/core/PdfCanvas.vue?db6c","webpack:///./src/components/core/RfqCardSkeleton.vue?9ce6","webpack:///./src/components/core/RfqCardSkeleton.vue","webpack:///./src/components/core/InstantQuoteGuideLine.vue?cd13","webpack:///src/components/core/InstantQuoteGuideLine.vue","webpack:///./src/components/core/InstantQuoteGuideLine.vue?9254","webpack:///./src/components/core/InstantQuoteGuideLine.vue?54ac","webpack:///./src/components/core/PartDesignTable.vue?ff89","webpack:///./src/components/core/filter/RadioGroup.vue?3d72","webpack:///src/components/core/filter/RadioGroup.vue","webpack:///./src/components/core/filter/RadioGroup.vue?75f4","webpack:///./src/components/core/filter/RadioGroup.vue","webpack:///./src/components/core/ProductPriceMoqTable.vue?2364","webpack:///src/components/core/ProductPriceMoqTable.vue","webpack:///./src/components/core/ProductPriceMoqTable.vue?79e5","webpack:///./src/components/core/ProductPriceMoqTable.vue","webpack:///./src/components/core/MyPartPdf.vue?5a81","webpack:///src/components/core/MyPartPdf.vue","webpack:///./src/components/core/MyPartPdf.vue?6265","webpack:///./src/components/core/MyPartPdf.vue","webpack:///./src/components/core/OrderShippingAddress.vue?793b","webpack:///src/components/core/OrderShippingAddress.vue","webpack:///./src/components/core/OrderShippingAddress.vue?9135","webpack:///./src/components/core/OrderShippingAddress.vue?e486","webpack:///./src/components/core/TableUnitPricing.vue?a449","webpack:///src/components/core/TableUnitPricing.vue","webpack:///./src/components/core/TableUnitPricing.vue?82f2","webpack:///./src/components/core/TableUnitPricing.vue?6afe","webpack:///./src/components/core/RFQPartsPanel.vue?fec9","webpack:///src/components/core/RFQPartsPanel.vue","webpack:///./src/components/core/RFQPartsPanel.vue?3dd7","webpack:///./src/components/core/RFQPartsPanel.vue","webpack:///./src/components sync \\.vue$"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","_v","_s","$t","_","analysisData","scopedSlots","_u","fn","_l","item","field","class","icon","style","color","getTextColor","proxy","staticRenderFns","props","part","computed","tableData","CsiAnalysis","getFromStore","Item","isEmpty","filter","datum","Category","icons","map","row","index","methods","split","pop","component","VCard","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","VIcon","VSimpleTable","servicePath","Model","BaseModel","plugin","makeServicePlugin","service","feathersClient","store","makeServiceStore","cncTurningLinearDimensions","vm","deviations","fine","medium","coarse","isRemovePending","on","$event","partViewerPart","isPartViewerActive","CustItemName","deleteDialog","display","partToDelete","Machine","getRoughnessName","getRoughnessValue","_e","FactoryName","materialTranslation","MaterialFinishOptionStr","MaterialFinishStr","materialFinishOptionTranslation","materialFinishTranslation","materialSeriesTranslation","toleranceTranslation","defaultQuantity","ReqQty","Math","min","PriceMOQ","Qty","includes","preventDefault","nativeOn","qtyOfPart","updateValue","model","callback","$$v","_n","expression","isExpired","currencySymbol","calculatePrice","multiply","ref","_g","_b","PortalUserId","moment","ExpireDate","format","currentUser","isSavePending","refreshMyPartPrice","isPartPresentInCurrentOrder","stopPropagation","removeToOrder","need2dDrawing","TwoDFile","needSvg","SvgFile","addToOrder","arguments","currentOrder","canAddItem","remove","cancelDelete","domProps","$set","default","context","root","company","defaultQty","MyProduct","Roughness","sortByQuantity","priceMoq","JSON","parse","sort","a","b","moq","Price","priceRange","parsedData","first","last","diff","itemRowBackground","spliceItem","orderItems","indexOf","priceMOQ","findPrice","find","parseInt","max","currentPart","items","findIndex","_id","need2d","CustFileName","toUpperCase","VBtn","VCardActions","VCol","VContainer","VRow","VSheet","VSpacer","VTextField","VTooltip","reset","defaults","state","assign","setStorage","payload","currentState","Vue","set","v","isObject","stringify","localStorage","setItem","label","width","itemText","itemValue","$attrs","$emit","mixins","Number","String","Function","itemDisabled","VSelect","VSkeletonLoader","region","CurrCode","directives","rawName","invalidTime","invalidTimeMessage","onBlur","$listeners","menuPicker","$i18n","locale","$refs","menu","save","time","watch","newValue","isValid","pickerTime","relatedTarget","classList","contains","validate","VMenu","VTimePicker","onClickButton","highlight","revision","Revision","user","isAlreadyInMyParts","myPart","saveToMyParts","CustItemDesc","materialThicknessTranslation","roughnessName","customerPriceRange","Array","searchValue","filterPart","ExistsInMyProducts","LaserEngraving","MyPart","escapedStringRegEx","escapeRegExp","re","RegExp","replace","localValue","rightsWithDescriptions","_t","originalFormDataChanged","loading","Boolean","rights","right","VCardText","VCardTitle","VCheckbox","VToolbar","clone","cloneDeep","sortBy","omit","compact","isEqual","isString","isFunction","isNumber","isNaN","isUndefined","defaultsDeep","upperFirst","camelCase","uniqBy","uniqueId","mapValues","groupBy","pick","debounce","merge","intersection","isExpanded","productGroup","isDrawingsDialogOpen","productOption","attributeTypes","fieldType","options","selectedOptions","id","isPositiveInteger","reqQty","abs","trunc","customBagId","selectedProduct","drawingsDialogTableHeaders","productOptions","optionsProduct","sensibleDefaults","dropdown","checkbox","plainText","forEach","getFormElementFromFieldType","VExpandTransition","VImg","button","action","text","buttons","VExpandXTransition","notEmptyRules","validEmail","isDisabled","pattern","test","ExpiryDate","Date","MaterialStr","MaterialSeriesStr","materialSeriesShortened","trim","_qtyOfPart","_defaultQuantity","i18n","MaterialStrChs","MaterialThicknessStr","MaterialThicknessStrChs","MaterialSeriesStrChs","MaterialFinishStrChs","MaterialFinishOptionStrChs","Tolerance","replaceAll","firstName","lastName","JobTitle","officeMobile","officePhone","password","OkToSendDesignTips","OkToSendManufacturingTips","instantQuote","rfqs","myParts","orders","placeOrder","accountStatement","userManagement","companyManagement","forwarderManagement","passwordChanges","supportUser","isAdmin","eula","accepted","validationDate","isVerified","isAvatarLoading","isAvatarIsHidden","previewAvatarUrl","hasCsiData","department","refCode","hooks","after","preferUpdate","internalItems","price","Part","now","unitPrice","parseFloat","toFixed","finalPrice","isAddressValid","isRequired","countryLabels","getPlaceholder","country","postalCode","countries","city","zip","forwarderForm","resetValidation","zone","regions","phone","isEmail","chineseForm","englishForm","fields","placeholder","chineseJson","englishJson","fetchedCountries","Country","findInStore","fetchedRegions","Regions","Company","unfilteredCountries","labels","fc","Code","AddressFormatter","DEFAULT_FORM_LAYOUT","formatString","province","formatCountryProvince","countryCode","fieldName","$te","VForm","userCanQuote","onActionButtonClicked","$router","VDivider","disableName","addressForm","users","addressType","getProductDescription","height","isLoaded","hasError","thumbnailUri","imageId","required","VFadeTransition","isUnfolded","$vuetify","breakpoint","isMeshLoaded","uploadProgress","isMeshUploaded","round","viewerId","isSvgLoaded","meshUrl","viewport","isInteractive","isSvgUploaded","cameraTarget","scene","mesh","controls","viewport3d","modelViewer","host","fileName","DrawingRowPointer","toLowerCase","accessToken","showFlat","machine","onResize","cleanUpThreeJs","ASPECT","NEAR","FAR","box","center","getCenter","child","material","baseMaterial","side","geometry","edges","line","position","x","y","z","scale","TrackballControls","rotateSpeed","zoomSpeed","noZoom","noPan","staticMoving","dynamicDampingFactor","keys","renderer","camera","aspect","updateProjectionMatrix","setSize","handleResize","offset","speed","boundingBox","setFromObject","size","getSize","maxDim","fov","PI","distanceToMesh","tan","cos","sin","minZ","cameraToFarEdge","far","lookAt","children","baseNode","firstChild","dispose","forceContextLoss","intensity","directionalLight","add","castShadow","shadow","left","top","bottom","near","mapSize","bias","addShadowedLight","animate","requestAnimationFrame","update","fitCameraToObject","VBtnToggle","VProgressCircular","VSlideXTransition","LEVEL","SUCCESS","INFO","WARNING","ERROR","isLoading","$slots","actions","types","custom","acknowledgement","confirmation","isOkDisabled","okButtonText","isCancelDisabled","cancelButtonText","validator","values","VDialog","getDefaultLanguage","localLanguage","navigator","userLanguage","language","title","sidebarBackgroundColor","version","process","messages","userAvatarUrl","setLocale","$FeathersVuex","commit","translationDate","localeCn","localeEn","vuetify","framework","lang","current","userId","rootState","auth","api","User","app","namespaced","getters","appVersion","currentOrderItemsCount","mutations","clearAll","SET_IMAGE","SET_COLOR","SET_LOCALE","PUSH_SNACK","stateIn","POP_SNACK","ACKNOWLEDGE_SNACK_BY_ID","SET_CURRENT_ORDER","order","SET_USER_AVATAR_URL","url","setColor","setImage","img","toggleLocale","pushSnack","snack","popSnack","acknowledgeSnackById","initCurrentOrder","models","Order","clearCurrentOrder","setUserAvatarUrl","bagName","barCode","description","qty","currency","reduce","total","SubTotal","symbol","bagTotal","addItem","currentId","BagItem","removeItem","isCsi","csiRfqId","extend","tempRfqIdInProgress","getTempRfqIdInProgress","setTempRfqIdInProgress","filePath","partDesignData","units","valueCHS","option","VRadio","VRadioGroup","isSvgRemoved","isSVGDownload","buttonAttrs","buttonIconAttrs","isFileAdded","isSvgUploadPending","isSvgUploadInProgress","uploadSvg","removeSVG","previewSVGUrl","svgReady","showSvgRemoveDialog","myDropZone","svgPageHeight","svgPageWidth","dropzoneOptions","paramName","headers","Authorization","thumbnailWidth","maxFilesize","maxFiles","parallelUploads","acceptedFiles","autoProcessQueue","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictMaxFilesExceeded","clickable","previewTemplate","template","file","removeAllFiles","addFile","val","svgUrl","resizeObserver","ResizeObserver","rfqViewerContainer","getBoundingClientRect","ratio","observe","VNavigationDrawer","VOverlay","tempRfqId","csiLineNumber","uniqueFileName","RevisionNumber","Material","MaterialSeries","MaterialThickness","MaterialFinish","MaterialFinishOption","RawMaterial","DrawingNumber","CsiAnalysisData","AnalysisData","SecondaryAnalysisData","Status","shouldStartPreliminaryAnalysis","shouldStartFinalAnalysis","shouldCalculateCostWithoutFinalAnalysis","shouldUploadFilesToCsi","EstimateLineStatus","isDrawingUploaded","isDrawingUploadedCsi","isDrawingUploadedMsg","isManufacturable","isManufacturableMsg","isPreliminaryAnalysisInProgress","isPreliminaryAnalysisCompleted","isPreliminaryAnalysisCompletedMsg","isMainAnalysisInProgress","isMainAnalysisCompleted","isMainAnalysisCompletedMsg","isThumbnailUploaded","isThumbnailUploadedMsg","isObjUploaded","isObjUploadedCsi","isObjUploadedMsg","isDxfUploaded","isDxfUploadedCsi","isDxfUploadedMsg","isMeshUploadedCsi","isMeshUploadedMsg","isThicknessCalculated","isThicknessCalculatedMsg","CsiErrorParam","executionTime","Threads","Countersinks","Counterbores","MaterialCategory","params","shouldShowNotification","startsWith","use","Vuetify","iconfont","locales","en","fr","theme","themes","light","primary","tertiary","accent","info","success","warning","dark","secondary","newSignUpPromoCode","expandVideoTutorials","tutorial","tutorialDialog","isActive","duration","isVideoLoaderShow","link","convertCustomerNumberToInt","customerNumber","intValue","multiplier","char","companyNumberToInt","showReferralBanner","showPromotionCountdownBanner","tutorials","langList","currentLang","loginSubmit","isLoginFormValid","isPasswordVisible","isAuthenticatePending","authenticating","navLang","working","validation","invitationMail","userData","passwordStrength","getColor","confirmPassword","statePending","isFormValid","submit","force","token","email","onBoardingUser","confirmationPassword","FirstName","LastName","ContactEmail","isPasswordValid","ln","pass","score","letters","variations","digits","lower","upper","nonWords","variationCount","check","invitationAccount","createUser","onBoardingAccount","form","accountAlreadyExist","verifyAccount","go","emailSubmit","isSendResetPwdPending","isResetPwdLongPending","passwordSubmit","_k","keyCode","getCountryCodes","dialCode","onInput","userDepartments","valid","emailId","Mastutrack","lead","dataLayer","enhanced_conversion_data","$route","Router","router","base","routes","path","Dashboard","Login","SignUp","Logout","PageNotFound","SignUpSendEmail","ResetPasswordSendEmail","ResetPasswordSuccess","OnBoarding","Confirmation","ForgottenPassword","ResetPassword","meta","requiredPermission","beforeEach","to","from","next","jwtToken","getItem","isJwtExpired","resolved","matched","query","sessionId","$store","dispatch","isOnLoginPage","ddlogger","logger","debug","route","author","isArray","some","req","Store","level","nbrCountries","Vuex","FeathersVuex","requireModule","require","appModules","acc","mod","plugins","resetStore","byServicePath","namespace","resetStores","product","myItem","ProductCode","CustItemRevision","inactive","errorHandler","availablePathsWithoutJwt","location","errorMessage","notifyViaSnackbar","method","notificationMessage","socket","io","transports","feathers","configure","socketio","authClient","storage","patch","feathersVuex","serverAlias","idField","makeAuthPlugin","CoreModel","clients","start","performance","constructor","createdById","perfMetric","rest","requireComponent","section","getFilter","Map","filterType","filterTypes","has","VList","VListItem","VListItemAction","VListItemContent","VListItemTitle","VSubheader","webpackContext","webpackContextResolve","status","currentErrorMessage","we","ErrorAndWarningCodeMapping","isGuideLineVisible","currentUploadStatus","isEngineDetectionError","showReRunAsTurningButton","retryUpload","fileSize","uploadThumbnail","isMeshVisible","infoLabels","odooErrorMessage","checkErrorMessage","errorFormat","checkTranslation","removeLinklabel","Param1","isSheetMetalMachine","is2dModel","checkThickness","detectedThickness","checkOuterDia","detectedOuterDia","calculateCostOk","arePartOptionsValid","isCalculatingCost","isErrorDetected","maxLength","containAlphabetsNumbersHyphensUnderscoreSpace","isZeroOrGreaterInteger","resetPartFormFields","chinaFactoryId","mexicoFactoryId","materials","RowPointer","Description","MaterialStrCHS","DescriptionCHS","MaterialThicknessValue","MaterialDimensions","finishes","isFinishesFindPending","finish","legalFinishes","lf","partOptions","MaterialFinishStrCHS","minReqQty","noOfHoles","addCountersinks","series","getTranslationSeries","MaterialSeriesStrCHS","getTranslationFinish","addThreads","addCounterbores","isDebugModeEnabled","thicknesses","generateThicknessFromCode","selectedThickness","MaterialThicknessStrCHS","SheetLength","SheetWidth","roughnessValues","toleranceValues","canCalculateCost","errorArray","needPdf","isMainAnalysisEverCalled","addCustomDataToEngineResponse","customThreadCountToAdd","isPatchPending","twoDNestingResultSvgUrl","BEND_ERROR_CODE","components","fullScreen","200","201","202","203","401","301","302","303","304","410","413","414","415","402","411","412","420","322","323","321","451","450","416","417","418","306","307","500","501","502","503","504","505","506","507","508","509","419","timer","currentTime","isMexicoQuotationAllowed","thickness","major_dia","errorAndWarning","EandW","isTurningMachine","cncItems","IsHidden","Process","OutDia","cncSeries","uniqueParentRowPointers","Set","ParentRowPointer","$in","cncMaterials","uniqueMaterialsRowPointers","FactoryId","$sort","additionalQuery","InDia","Finish","f","endsWith","isSvgUploadedMsg","returnData","reqQtyPriceIndex","bends","holes","threads","countersink","counterbore","laserEngraved","laserEngravedDepth","bendsInfoLabel","holesInfoLabel","threadCount","accumulator","threadsInfoLabel","supportedThreads","th","unsupportedThreads","threadLabel","join","countersinkInfoLabel","counterboreInfoLabel","laserEngravedInfoLabel","chamfer","chamfersInfoLabel","internalFillets","externalFillets","filletsInfoLabel","millings","millingsInfoLabel","threadsOnXAxis","threadsOnYAxis","sheetMetalInfoLabels","turningInfoLabels","laserEngraving","isSheetMetalPart","OriginalThreadsFound","errorsAndWarnings","isOdooError","msg","message_cn","prms","parameters_cn","parameters","newParameters","match","isSvgNestedUploadedCsi","updatedAt","createdAtString","createdAt","timeDifference","threeMinutesInMilliseconds","isOlderThanThreeMinutes","isStatusIncomplete","clearTimer","errors","immediate","fetchFinishes","selectClosestAvailableThickness","newMsg","oldMsg","newVal","currentErrors","setInterval","translation","words","word","string","errorValue","errorTitle","bulletError","errorElt","materialSelector","selectedItems","finishSelector","thicknessId","$nextTick","canvas","image","fd","FormData","append","uploadUrl","body","thicknessValue","toString","padStart","generateCodeFromThickness","matchedThickness","closestToDetected","errorCode","customDataToAddForm","threadToAdd","countersinks","counterbores","clearInterval","VAlert","VProgressLinear","dialog","isCreatePending","cancelReferralDialog","isReferralValid","referral","Referral","CreateDate","isPositiveIntegerOrFloat","maxlen","maxlength","isPhoneNumberIsValid","refreshApp","updateExists","isFindHardwareCategoriesPending","hardwareCategories","isHardwareShopMenuExpanded","timestamp","category","hover","emailDialogIsActive","enabled","cleanFeedback","userCommentFeedback","errorFileName","feedbackUploadFile","uploader","click","onFileChanged","bytesToSize","totalSizeInMb","selectedFile","filename","removeFile","isSendEmailPending","sendFeedBackEmail","refreshing","registration","created","addEventListener","updateAvailable","once","serviceWorker","reload","log","detail","waiting","postMessage","isExeFile","maxFileSize","menuItemState","createUserFeedBack","HardwareCategory","HardwareProduct","links","restrictedFileExtensions","fullPath","isLogin","isLogout","loggedInUser","deep","newUser","fullName","setLiveChatUser","$feathers","autoLoadGeographicData","bytes","decimals","k","dm","sizes","floor","pow","comment","fileArray","getElementById","currentFiles","files","extensionFile","totalFileSize","sizeLimitInBytes","reader","FileReader","onloadend","readFile","readAsDataURL","VApp","VBadge","VHover","VListGroup","VMain","VTextarea","componentConfig","componentName","datadogRum","init","applicationId","clientToken","site","sampleRate","sessionReplaySampleRate","trackResources","trackLongTasks","trackInteractions","startSessionReplayRecording","dayjs","relativeTime","config","productionTip","AsyncComputed","VueCompositionAPI","mask","vueFeathers","VueTelInputVuetify","h","App","$mount","PAYMENT_STATUS","freeze","INITIATED","IN_PROGRESS","SUCCEEDED","FAILED","roles","mapState","rolesLoading","mapGetters","getRole","findRoles","mapActions","fetchRoles","removeRole","getRoleName","getRoleInactive","isColorPickerActive","contact","findContacts","ContactId","filteredItems","getReadOnlyProduct","productGroupId","productGroupKey","productQuery","customBag","forceUpdateField","currentOption","optionsFilter","productValue","productReadOnlyOptions","productCheckBoxOptions","res","reverse","selectedOption","ids","fil","isStlRemoved","showStlRemoveDialog","removeSTL","isStlUploadPending","isSTLDownload","stlUrl","stlReady","previewSTLUrl","renameFile","getNewUuid","isPdfRemoved","isPDFDownload","pdfUri","pdfPageHeight","pdfPageWidth","isPdfAlreadyUpload","isPdfUploadPending","logoutFromCompany","avatarUrl","factoryName","getFullYear","modelName","storeState","storeGetters","list","storeGetter","storeDispatch","args","getById","fetch","generateQuery","sortKey","sortDesc","$skip","limit","page","$limit","search","local","aggregateFields","instancePaths","stringFields","searchFields","searchAggregate","searchFieldsPaths","servicePaths","serviceStringFields","$or","localField","foreignField","as","project","displayName","filterField","filterValue","substr","removeDoc","tabs","removeTab","docIds","menuItems","itemKey","loadingText","selected","hovered","hideSearch","entity","localQuery","remoteQuery","searchDelay","currentPage","currentLimit","currentTotal","currentEntity","currentSortKey","currentSortDesc","currentSelected","currentHovered","currentSearch","currentFilter","currentQuery","currentRemoteQuery","currentLocalQuery","delayedSearch","delayedSearchTimeout","refresh","mounted","needAppBarExtension","preferenceMenuOptions","categoriesInStore","productInStore","VAppBar","VFooter","VListItemSubtitle","VToolbarItems","VToolbarTitle","isPdfUploadInProgress","uploadPdf","removePDF","previewPDFUrl","pdfReady","showPdfRemoveDialog","pdfUrl","OrderItem","drawingConsultancyPdf","CustomBag","PropertiesFG","PropertiesHWBag","OrderLine","UnitPrice","precision","getPriceMoq","pricemoq","categoryId","maxDiscountRange","nextPriceRange","disabled","getContrast","content","hexcolor","hex","g","yiq","VAvatar","paymentUrl","activePayment","isPaymentDialogOpen","isQrCodeDialogOpen","setActivePayment","payment","setIsPaymentDialogOpen","setIsQrCodeDialogOpen","initPayment","paymentData","cancelActivePayment","handleEvents","patched","utils","provider","URL","redirectUrl","pathname","orderNo","orderFactoryId","factoryId","expediteOption","shippingAddress","forwarder","promoCodeObject","PaymentTransaction","OrderDate","formattedOrderDate","_formattedOrderDate","ShipmentDate","formattedShipmentDate","_formattedShipmentDate","RequestDate","formattedRequestDate","_formattedRequestDate","newItems","getFactoryId","deleteCount","Total","grandTotal","discount","PromoType","orderItemsTotal","PromoMinOrderAmount","PromoDiscountAmount","PromoRate","PromoMaxOrderAmount","discountOrderAmount","expediteFees","subtract","discountAmount","TaxRate1","isCanadaProvinceTaxApplicable","IncludeTaxInPrice","orderSubtotal","taxPercentage","estimatedTax","estimatedGstTax","estimatedQstTax","estimatedPstTax","estimatedHstTax","includeTaxOnExpedite","isMexicoOrder","taxRate","getGstTaxRate","getQstTaxRate","getPstTaxRate","getHstTaxRate","orderItem","canAddHardwareProduct","canAddCustomBag","datadogLogs","env","forwardErrorsToLogs","onThumbClick","partMaterial","getThickness","getOuterDiameter","getSeries","getRoughness","getFinish","findMaterials","diameter","userService","login","strategy","canadaProvinceTaxes","AB","gst","BC","pst","MB","NB","hst","NL","NS","ON","PE","QC","qst","SK","NT","NU","YT","formatCurrency","amount","allowNone","maximumFractionDigits","minimumFractionDigits","toLocaleString","alignLeft","avatar","small","large","createdBy","updatedBy","countriesAllowForMexicoQuotation","isPDFDownloadPending","downloadPdf","loadedPages","itemHeight","containerRef","pdf","viewerHeight","PDFjs","pdfCdn","pdfWorkerCdn","pageCount","pageBuffer","numPages","overflow","initPDF","async","loadingTask","getDocument","reportName","byte","blob","Blob","createObjectURL","download","saveDocument","saveByteArray","VChip","VVirtualScroll","bracket","quantity","isMexicoPayment","isIntBankTransferPending","generatePaymentUrl","goToComfirmationPage","PaymentTerms","openBalance","container","partNo","expanded","VListItemAvatar","displayBorder","hideAvatar","imgLoad","imgSrcUrl","fontSize","initial","imgSrc","urlPreview","isImgLoading","isContactsFindPending","encodeURIComponent","isTurningPart","optionVmodel","drawingTableHeaders","filteredProduct","productId","findTranslation","downloadDrawingFiles","specFile2d","specFile3d","productSelected","isDownloadPending","optionHeader","labelChs","align","productOptionsId","pquery","currentColumn","textChs","filterQuery","fromEntries","entries","optionValue","opt","VDataTable","VSwitch","updateEntity","tab","newEntity","handler","upload","generateUrl","internalProduct","uploadedFiles","VRangeSlider","remainingTime","days","hours","minutes","seconds","expiryTime","showBanner","targetTime","toDate","updateCountdown","countdownInterval","timeDiff","isOpen","multi","param1","Param2","param2","odooErrorData","VSnackbar","itemProduct","currentCategoryId","products","currentCategory","BarCode","Items","currentProduct","removeBag","parentTab","embedded","paths","updateDisabled","defaultValue","modifiedFunction","recomputeOriginalData","isTabModified","isEmbedded","creationMode","originalData","isDataModified","setTabModified","modified","isUpdateDisabled","cloneOriginalData","updateTab","entityId","updateData","CoNum","CoLine","Quantity","ThumbnailItemId","CreatedByUserName","DueDate","merchant_transaction_id","partLookupKey","fileUrl","extension","fileType","VCarousel","VCarouselItem","loadLocaleMessages","VueI18n","fallbackLocale","appMessages","stlFile","spacing","unitWeight","maxWeight","maxTime","engineResult","partsTableHeaders","parts","komacutLine","nbrOfPart","loadingParts","isLoadingPartsRfqId","rfqId","partsIdInStore","filteredPartItems","getAllMissingPart","displayAll","onClickChild","isSvgPending","is2dDrawingPending","addEstimateToOrder","isCardView","orderId","EstimateID","queryFilter","estimateLine","pricePerMoq","roughnessValue","computedExpanded","toggleExpanded","toggleaction","offsetTop","scrollTop","isSidePanelOpen","activeTab","analysisDataRankOne","Value","isAnalysisPending","isMountedPending","modelViewerHeight","modelViewerWidth","largeInspector","isLoadingSidePanelValues","estimateLineStatus","Rank","is2dSvgNestedUploaded","documentElement","overflowY","removeEventListener","innerWidth","innerHeight","VTab","VTabItem","VTabs","VTabsItems","formatAddressText","address","addressFields","onIntersect","threshold","pageWidth","pageHeight","margin","baseRatio","getPage","pageNumber","Intersect","ModelableMixin","originalFormData","HideDrawingsLink","HidePriceMOQ","ShowUploadFile","drawingConsultancyPdfBlobUrl","HideAddToBag","canOrder","minQty","pQuery","priceProduct","priceTable","maxQty","orderLines","nbrOfOrder","orderLinesTableHeaders","open3DViewer","getThumbnailUrl","orderline","orderLine","isLoadingPartsOrderId","orderIdInStore","ProductType","escapedSearchValue","productCode","rfq","createdByEmail","guideLineList","processQueue","pdfViewerHeight","ShipToId","openAddressFormDialog","addressModal","isShippingAddressCreatePending","isShippingAddressPatchPending","saveAddress","tempOrder","isOrderCreatePending","ShippingAddress","customerPriceRangeText","range","findParts"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,mBAAqB,qBAAqB,mBAAqB,qBAAqB,gBAAkB,kBAAkB,WAAa,aAAa,QAAU,UAAU,iBAAmB,mBAAmB,cAAgB,gBAAgB,mBAAqB,qBAAqB,SAAW,WAAW,iBAAmB,mBAAmB,cAAgB,gBAAgB,QAAU,UAAU,SAAW,WAAW,OAAS,SAAS,KAAO,OAAO,qBAAuB,uBAAuB,QAAU,UAAU,oBAAsB,sBAAsB,cAAgB,gBAAgB,iBAAmB,mBAAmB,eAAiB,kBAAkB9B,IAAUA,GAAW,IAAM,CAAC,mBAAqB,WAAW,mBAAqB,WAAW,gBAAkB,WAAW,WAAa,WAAW,QAAU,WAAW,iBAAmB,WAAW,cAAgB,WAAW,mBAAqB,WAAW,SAAW,WAAW,iBAAmB,WAAW,cAAgB,WAAW,QAAU,WAAW,SAAW,WAAW,OAAS,WAAW,KAAO,WAAW,qBAAuB,WAAW,QAAU,WAAW,oBAAsB,WAAW,cAAgB,WAAW,iBAAmB,WAAW,eAAiB,YAAYA,GAAW,MAIrxC,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,mBAAqB,EAAE,gBAAkB,EAAE,WAAa,EAAE,QAAU,EAAE,cAAgB,EAAE,mBAAqB,EAAE,SAAW,EAAE,iBAAmB,EAAE,cAAgB,EAAE,QAAU,EAAE,SAAW,EAAE,OAAS,EAAE,KAAO,EAAE,qBAAuB,EAAE,QAAU,EAAE,oBAAsB,EAAE,cAAgB,EAAE,iBAAmB,EAAE,eAAiB,GACnVR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,mBAAqB,qBAAqB,mBAAqB,qBAAqB,gBAAkB,kBAAkB,WAAa,aAAa,QAAU,UAAU,iBAAmB,mBAAmB,cAAgB,gBAAgB,mBAAqB,qBAAqB,SAAW,WAAW,iBAAmB,mBAAmB,cAAgB,gBAAgB,QAAU,UAAU,SAAW,WAAW,OAAS,SAAS,KAAO,OAAO,qBAAuB,uBAAuB,QAAU,UAAU,oBAAsB,sBAAsB,cAAgB,gBAAgB,iBAAmB,mBAAmB,eAAiB,kBAAkBxC,IAAUA,GAAW,IAAM,CAAC,mBAAqB,WAAW,mBAAqB,WAAW,gBAAkB,WAAW,WAAa,WAAW,QAAU,WAAW,iBAAmB,WAAW,cAAgB,WAAW,mBAAqB,WAAW,SAAW,WAAW,iBAAmB,WAAW,cAAgB,WAAW,QAAU,WAAW,SAAW,WAAW,OAAS,WAAW,KAAO,WAAW,qBAAuB,WAAW,QAAU,WAAW,oBAAsB,WAAW,cAAgB,WAAW,iBAAmB,WAAW,eAAiB,YAAYA,GAAW,OAC7vCyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,oFC1QT,IAAI+F,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,qBAAqB,CAACA,EAAG,oBAAoB,CAACA,EAAG,2BAA2B,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,kBAAkBC,YAAY,CAAC,iBAAiB,QAAQ,CAACH,EAAG,SAAS,CAACG,YAAY,CAAC,MAAQ,QAAQC,MAAM,CAAC,KAAO,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAIX,EAAIY,EAAElC,IAAIsB,EAAIa,aAAa,GAAI,WAAW,MAAM,KAAKT,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAIa,aAAaf,MAAM,IAAI,SAASoB,EAAKhI,GAAG,OAAOkH,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,MAAMC,MAAM,CAAE,KAASlI,EAAI,IAAM,IAAM,CAACkH,EAAG,KAAK,CAACE,YAAY,oCAAoCC,YAAY,CAAC,MAAQ,YAAY,CAACH,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKG,MAAM,OAAOrB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKC,QAAQ,MAAM,GAAGf,EAAG,KAAK,CAACE,YAAY,mCAAmCC,YAAY,CAAC,aAAa,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,OAAOgB,MAAM,CAAE,CAAEC,MAAOvB,EAAIwB,aAAaN,EAAKpC,UAAY,CAACkB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKpC,QAAQ,cAAa,KAAK2C,OAAM,QAAW,IAAI,IAAI,IAAI,IACnuCC,EAAkB,G,msBCmDtB,MAAM,EAAN,uBAEA,OACE3D,KAAM,oBACN4D,MAAO,CACLC,KAAMvI,QAERwI,SAAU,CACR,eACE,IAAIC,EAAY,GACZ7B,KAAK2B,OACPE,EAAYlB,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,KAGpEH,EADElB,EAAEsB,QAAQJ,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,oCACA,CAAU,MAAV,uCAAU,MAAV,KACA,CAAU,MAAV,sCAAU,MAAV,KACA,CAAU,MAAV,oCAAU,MAAV,MAGoBA,EAAUK,OAAOC,GAA4B,OAAnBA,EAAMC,UACpD,2DACA,6BACA,SAAU,MAAV,gCAAU,MAAV,gBAEM,MAAMC,EAAQ,CACpB,oBACA,YACA,oBAGM,OAAOR,EAAUS,IAAI,CAACC,EAAKC,IAAU,EAA3C,0BAGEC,QAAS,CACP,aAAa5D,GAEX,OADAA,EAAQA,EAAM6D,MAAM,KAAKC,MACjB9D,GACN,IAAK,OACL,IAAK,MACH,MAAO,QACT,IAAK,OACL,IAAK,KACH,MAAO,MACT,QACE,MAAO,OClGyV,I,sHCOtW+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAACC,QAAA,KAAMC,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,KAAiBC,QAAA,KAAMC,eAAA,Q,uLC1BxH,MAAMC,EAAc,WAEdC,GAAK,IAAG,cAAsBC,OAGX,0BACrB,MAAO,KAJA,gBACU,WADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,6DCrB1B,QACbzB,SAAU,CACRiC,2BAA4BC,GAAM,CAChC,CACEC,WAAa,OAAMD,EAAGpD,GAAG,wDAAwDoD,EAAGpD,GAAG,yDACvFsD,KAAM,QACNC,OAAQ,OACRC,OAAQ,QAEV,CACEH,WAAa,GAAED,EAAGpD,GAAG,4DAA4DoD,EAAGpD,GAAG,wDAAwDoD,EAAGpD,GAAG,yDACrJsD,KAAM,QACNC,OAAQ,OACRC,OAAQ,QAEV,CACEH,WAAa,GAAED,EAAGpD,GAAG,4DAA4DoD,EAAGpD,GAAG,wDAAwDoD,EAAGpD,GAAG,0DACrJsD,KAAM,QACNC,OAAQ,OACRC,OAAQ,QAEV,CACEH,WAAa,GAAED,EAAGpD,GAAG,6DAA6DoD,EAAGpD,GAAG,wDAAwDoD,EAAGpD,GAAG,2DACtJsD,KAAM,QACNC,OAAQ,OACRC,OAAQ,QAEV,CACEH,WAAa,GAAED,EAAGpD,GAAG,8DAA8DoD,EAAGpD,GAAG,wDAAwDoD,EAAGpD,GAAG,2DACvJsD,KAAM,QACNC,OAAQ,OACRC,OAAQ,QAEV,CACEH,WAAa,GAAED,EAAGpD,GAAG,8DAA8DoD,EAAGpD,GAAG,wDAAwDoD,EAAGpD,GAAG,4DACvJsD,KAAM,QACNC,OAAQ,OACRC,OAAQ,Y,oCCrChB,W,2CCAA,IAAIpE,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,YAAY,yEAAyEE,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,YAAY,QAAQ,OAAS,OAAO,QAAUR,EAAI4B,KAAKwC,gBAAgB,UAAU,oBAAoB,QAAS,IAAQ,CAAChE,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,GAAG,UAAU,uCAAuC,CAACJ,EAAG,QAAQ,CAACE,YAAY,4BAA4BE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,uBAAuB+D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIuE,eAAiBvE,EAAI4B,KAAM5B,EAAIwE,oBAAqB,KAAS,CAACpE,EAAG,wBAAwB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,KAAK,MAAQ,GAAG,OAAS,GAAG,UAAU,qBAAqB,qBAAoB,MAAS,GAAGxB,EAAG,QAAQ,CAACE,YAAY,QAAQC,YAAY,CAAC,SAAW,WAAW,IAAM,QAAQ,MAAQ,QAAQC,MAAM,CAAC,KAAO,GAAG,UAAU,GAAG,MAAQ,UAAU,UAAU,oCAAoC6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIuE,eAAiBvE,EAAI4B,KAAM5B,EAAIwE,oBAAqB,KAAS,CAACxE,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,GAAG,MAAQ,KAAK,CAACR,EAAIS,GAAG,wBAAwB,IAAI,GAAGL,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,aAAa,UAAU,CAACJ,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACF,EAAG,OAAO,CAACE,YAAY,gBAAgBC,YAAY,CAAC,YAAY,OAAO,cAAc,OAAOC,MAAM,CAAC,UAAU,oBAAoB,MAAQR,EAAI4B,KAAK6C,eAAe,CAACzE,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK6C,cAAc,WAAWrE,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,IAAI,aAAa,UAAU,CAACJ,EAAG,QAAQ,CAACE,YAAY,2BAA2BE,MAAM,CAAC,MAAQ,GAAG,QAAUR,EAAI4B,KAAKwC,gBAAgB,MAAQ,UAAU,KAAO,GAAG,UAAU,8BAA8BC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI0E,aAAaC,SAAU,EACz7D3E,EAAI0E,aAAaE,aAAe5E,EAAI4B,QAAS,CAACxB,EAAG,SAAS,CAACJ,EAAIS,GAAG,mBAAmB,IAAI,IAAI,GAAGL,EAAG,QAAQ,CAAuB,YAArBJ,EAAI4B,KAAKiD,QAAuBzE,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,OAAOP,EAAG,OAAO,CAACA,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,2BAA2B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI8E,mBAAmB1E,EAAG,MAAMJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI+E,mBAAmB,WAAW/E,EAAIgF,KAAK5E,EAAG,QAAQ,CAACE,YAAY,gCAAgCE,MAAM,CAAC,OAA8B,YAArBR,EAAI4B,KAAKiD,QAAwB,EAAG,EAAE,KAAO,MAAM,CAACzE,EAAG,UAAU,CAACE,YAAY,gCAAgCE,MAAM,CAAC,OAAS,OAAO,MAAQ,QAAQ,MAAQ,YAAY,CAACJ,EAAG,OAAO,CAACE,YAAY,+CAA+C,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,OAAOP,EAAG,OAAO,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,UAAU,qCAAqC,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKqD,aAAa,UAAU,IAAI,IAAI,IAAI,GAAG7E,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,QAAQ,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,YAAY,oBAAoB,CAACH,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,OAAOP,EAAG,OAAO,CAACE,YAAY,gBAAgBE,MAAM,CAAC,UAAU,wBAAwB,MAAQR,EAAI4B,KAAKsD,sBAAsB,CAAClF,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKsD,qBAAqB,WAAW9E,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,MAAM,CAACE,YAAY,wCAAwCC,YAAY,CAAC,YAAY,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,sBAAsB,MAAQR,EAAI4B,KAAKuD,yBAA2BnF,EAAI4B,KAAKwD,oBAAoB,CAACpF,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKyD,iCAAmCrF,EAAI4B,KAAK0D,2BAA2B,WAAWlF,EAAG,QAAQ,CAACE,YAAY,iBAAiBE,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,sBAAsB,CAACI,MAAM,CAAC,KAAOR,EAAI4B,SAAS,IAAI,GAAGxB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,MAAM,CAACE,YAAY,yCAAyC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOP,EAAG,OAAO,CAACE,YAAY,gBAAgBC,YAAY,CAAC,YAAY,mBAAmBC,MAAM,CAAC,UAAU,sBAAsB,MAAQR,EAAI4B,KAAK2D,4BAA4B,CAACvF,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK2D,2BAA2B,WAAWnF,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,aAAa,QAAQ,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,OAAOP,EAAG,OAAO,CAACA,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,4BAA4B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK4D,sBAAsB,WAAWpF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,QAAQ,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACE,YAAY,iBAAiBC,YAAY,CAAC,MAAQ,oBAAoBC,MAAM,CAAC,IAAMR,EAAI4B,KAAK6D,gBAAgB,IAAM,QAAQ,UAAU,wBAAwB,MAAQzF,EAAIW,GAAG,uBAAuB,KAAO,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAI0D,GAAG,CAAC,KAAO,SAASC,GAAQtE,EAAI0F,OAASC,KAAKC,IAAI7L,MAAM4L,KAAM3F,EAAI4B,KAAKiE,SAAStD,KAAI,SAAUhE,GAAK,OAAOA,EAAEuH,QAAW9F,EAAI0F,OAASC,KAAKC,IAAI7L,MAAM4L,KAAM3F,EAAI4B,KAAKiE,SAAStD,KAAI,SAAUhE,GAAK,OAAOA,EAAEuH,QAAW9F,EAAI0F,OAAS1F,EAAI0F,QAAS,QAAU,SAASpB,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,mBAAmBC,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAKsE,UAAYlG,EAAImG,YAAY7B,KAAU8B,MAAM,CAACtH,MAAOkB,EAAU,OAAEqG,SAAS,SAAUC,GAAMtG,EAAI0F,OAAO1F,EAAIuG,GAAGD,IAAME,WAAW,aAAa,GAAGpG,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,aAAa,QAAQ,KAAO,MAAM,CAACJ,EAAG,UAAU,CAACE,YAAY,wBAAwBE,MAAM,CAAC,OAAS,OAAO,MAAQR,EAAIyG,YAAc,UAAW,YAAY,CAACrG,EAAG,OAAO,CAACE,YAAY,qCAAqC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAkC,CAAC+F,eAAgB1G,EAAI0G,kBAAkB,OAAOtG,EAAG,OAAO,CAACE,YAAY,OAAOgB,MAAM,CAAEtB,EAAIyG,YAAc,CAAC,MAAS,WAAa,CAAC,MAAS,KAAMjG,MAAM,CAAC,UAAU,6BAA6B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI2G,eAAe3G,EAAI4B,MAAMgF,SAAS5G,EAAI0F,SAAS,UAAU,IAAI,GAAyB,YAArB1F,EAAI4B,KAAKiD,QAAuBzE,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACG,YAAY,CAAC,OAAS,SAAS,CAACP,EAAIS,GAAG,UAAU,GAAGT,EAAIgF,MAAM,GAAG5E,EAAG,iBAAiB,CAACE,YAAY,6BAA6BC,YAAY,CAAC,OAAS,QAAQC,MAAM,CAAC,UAAU,8BAA8B,CAACJ,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQ,GAAG,UAAU,oCAAoCM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACxsJ,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChC,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,SAASE,MAAM,CAAC,MAAQ,UAAU,UAAU,6BAA6B,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,qCAAqC,CAACL,EAAG,OAAO,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKoF,cAAc,OAAO5G,EAAG,MAAMA,EAAG,OAAO,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAG,UAAUT,EAAIU,GAAGV,EAAI4B,KAAKK,MAAM,OAAO7B,EAAG,MAAMA,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,iCAAiC,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIyG,YAAc,mBAAqBzG,EAAIW,GAAG,sBAAsB,KAAKX,EAAIU,GAAGV,EAAIiH,OAAOjH,EAAI4B,KAAKsF,YAAYC,OAAO,eAAe,SAAS/G,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAAEN,EAAW,QAAEI,EAAG,0BAA0B,CAACI,MAAM,CAAC,KAAOR,EAAI4B,QAAQ5B,EAAIgF,KAAMhF,EAAiB,cAAEI,EAAG,6BAA6B,CAACI,MAAM,CAAC,KAAOR,EAAI4B,QAAQ5B,EAAIgF,MAAM,GAAG5E,EAAG,YAAaJ,EAAIY,EAAElC,IAAIsB,EAAIoH,YAAa,YAAcpH,EAAIY,EAAElC,IAAIsB,EAAIoH,YAAa,CAAC,SAAU,eAAgB,CAAEpH,EAAIyG,UAAUzG,EAAI4B,MAAO,CAACxB,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAUR,EAAI4B,KAAKyF,cAAc,MAAQ,UAAU,UAAU,6BAA6BhD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIsH,mBAAmBtH,EAAI4B,SAAS,CAACxB,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,qBAAqBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIjB,EAAE,+BAA+B,MAAM,IAAI,CAAEiB,EAAIuH,4BAA4BvH,EAAI4B,MAAO,CAACxB,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,UAAU,iCAAiC6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIyH,cAAczH,EAAI4B,SAAS,CAAC5B,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,QAAQ,CAAEX,EAAI0H,gBAAkB1H,EAAI4B,KAAK+F,UAAY3H,EAAI4H,UAAY5H,EAAI4B,KAAKiG,QAASzH,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACzwD,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChC,MAAO,CAACJ,EAAG,MAAMJ,EAAI8G,GAAG,GAAGzC,GAAI,CAACjE,EAAG,QAAQJ,EAAI+G,GAAG,CAACzG,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,UAAU,yBAAyB,SAAW,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,WAAW/N,MAAM,KAAMgO,cAAc,QAAQvH,GAAM,GAAO,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,QAAQ,OAAO,MAAK,EAAM,aAAa,CAAEX,EAAiB,cAAEI,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,OAAOP,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6CAA6C,SAAUX,EAAIgI,eAAiBhI,EAAIgI,aAAaC,WAAWjI,EAAI4B,MAAOxB,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACtrB,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChC,MAAO,CAACJ,EAAG,MAAMJ,EAAI8G,GAAG,GAAGzC,GAAI,CAACjE,EAAG,QAAQJ,EAAI+G,GAAG,CAACzG,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,UAAU,yBAAyB,SAAWR,EAAIgI,eAAiBhI,EAAIgI,aAAaC,WAAWjI,EAAI4B,OAAOyC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,WAAW/N,MAAM,KAAMgO,cAAc,QAAQvH,GAAM,GAAO,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,QAAQ,OAAO,MAAK,EAAM,aAAa,CAACP,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wDAAwD,SAASP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,UAAU,0BAA0B6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,WAAW/N,MAAM,KAAMgO,cAAc,CAAC/H,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,UAAUX,EAAIgF,MAAM,GAAIhF,EAAsB,mBAAEI,EAAG,0BAA0B,CAACI,MAAM,CAAC,UAAUR,EAAIwE,mBAAmB,KAAOxE,EAAI4B,MAAMyC,GAAG,CAAC,eAAiB,SAASC,GAAQtE,EAAIwE,oBAAqB,MAAUxE,EAAIgF,KAAMhF,EAAI0E,aAAoB,QAAEtE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,UAAU,kBAAkB,iBAAiBR,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI0E,aAAaC,SAAU,EAAO3E,EAAI4B,KAAKsG,SAAUlI,EAAIyH,cAAczH,EAAI4B,OAAO,eAAe5B,EAAImI,cAAcrH,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,WAAW,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUE,MAAM,CAAC,UAAU,qBAAqB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAMiC,EAAI0E,aAAaE,aAAaH,yBAA0BhD,OAAM,IAAO,MAAK,EAAM,WAAW2E,MAAM,CAACtH,MAAOkB,EAAI0E,aAAoB,QAAE2B,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI0E,aAAc,UAAW4B,IAAME,WAAW,0BAA0BxG,EAAIgF,MAAM,IACz5DtD,EAAkB,G,giCCyXtB,MAAM,EAAN,qCAEA,oCACEC,MAAO,CAILC,KAAM,CACJ1F,KAAM7C,OACNiP,QAAS,SAKb,MAAM3G,EAAO4G,GACX,MAAMxJ,EAAIwJ,EAAQC,KAAK7H,GAEjB8H,EAAU,OAApB,cAAoB,CAApB,uBAEUrB,EAAc,OAAxB,cAAwB,CAAxB,wCAEU7C,EAAiB,OAA3B,SAA2B,CAA3B,IAEUC,EAAqB,OAA/B,SAA+B,EAA/B,GAEUkC,EAAiB,OAA3B,cAA2B,CAA3B,yCAEUgC,EAAa,OAAvB,cAAuB,CAAvB,gDAEUhD,EAAS,OAAnB,SAAmB,CAAnB,SAEUhB,EAAe,OAAzB,SAAyB,CAAzB,CACMC,SAAS,EACTC,aAAc,IAAI+D,IAIdX,EAAe,OAAzB,cAAyB,CAAzB,+CAEUlD,EAAmB,OAA7B,cAA6B,CAA7B,KACM,OAAQnD,EAAMC,KAAKgH,WACjB,IAAK,MACH,OAAOL,EAAQC,KAAK7H,GAAG,qCACzB,IAAK,MACH,OAAO4H,EAAQC,KAAK7H,GAAG,uCACzB,IAAK,MACH,OAAO4H,EAAQC,KAAK7H,GAAG,mCACzB,IAAK,MACH,OAAO4H,EAAQC,KAAK7H,GAAG,oCACzB,QACE,MAAO,SAIPoE,EAAoB,OAA9B,cAA8B,CAA9B,KACM,OAAQpD,EAAMC,KAAKgH,WACjB,IAAK,MACH,OAAOL,EAAQC,KAAK7H,GAAG,sCACzB,IAAK,MACH,OAAO4H,EAAQC,KAAK7H,GAAG,wCACzB,IAAK,MACH,OAAO4H,EAAQC,KAAK7H,GAAG,oCACzB,IAAK,MACH,OAAO4H,EAAQC,KAAK7H,GAAG,qCACzB,QACE,MAAO,MAIPkI,EAAiBjH,IACrB,GAAIA,EAAKiE,SAAU,CACjB,MAAMiD,EAAWC,KAAKC,MAAMpH,EAAKiE,UACjC,OAAOiD,EAASG,KAAK,CAACC,EAAGC,IAAMA,EAAErD,IAAMoD,EAAEpD,KAAKvD,IAAI6G,GAAO,EAAjE,KACA,GADA,IAEUC,MAAO,IAAjB,sCAGM,MAAO,IAGHC,EAAa1H,IACjB,IACE,MAAM2H,EAAa3H,EAAKiE,SAClB2D,EAAQD,EAAW,GACnBE,EAAOF,EAAW3G,MACxB,MAAO,GAAG,IAAlB,iFACA,SACQ,OAAO2F,EAAQC,KAAK7H,GAAG,4BAIrB8F,EAAY,IAAMQ,SAASyC,KAAK/H,EAAMC,KAAKsF,WAAY,QAAU,EAEjEI,EAAV,iCACA,SACA,OACA,sBAEA,iFAEA,aAPA,sDAUUqC,EAAoB/H,GAAQ,KAAtC,gCAEUuG,EAAe,KACnBzD,EAAa5F,MAAM6F,SAAU,EAC7BD,EAAa5F,MAAM8F,aAAe,IAAI+D,GAGlCb,EAAV,gCAEA,kEACA,6CAHA,qDAMUL,EAAgB7F,IAChBoG,EAAalJ,OACfkJ,EAAalJ,MAAM8K,WAAW5B,EAAalJ,MAAM+K,WAAWC,QAAQlI,GAAO,IAIzE+E,EAAiB,OAA3B,cAA2B,CAA3B,QACM,IAAK/E,EAAKiE,SACR,OAAO,IAAf,oBAGM,IAAIiD,EAEFA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAEhB,IAAIjE,EAAKiE,UAGtB,MAAMkE,EAAW,IAAIjB,GAAUG,KAAK,CAAC,EAA3C,sCAEYe,EAAYD,EAASE,KAAK,IAAtC,8DAEM,OAAKD,EAIE,IAAb,0BAHe,IAAf,sBAMU7D,EAAc,IAAM9J,GACpB6N,SAAS7N,EAAME,OAAOuC,MAAO,KAAOoL,SAAS7N,EAAME,OAAOqJ,IAAK,IAC1DvJ,EAAME,OAAOqJ,IAElBsE,SAAS7N,EAAME,OAAO4N,IAAK,IAAMD,SAAS7N,EAAME,OAAOuC,MAAO,IACzDzC,EAAME,OAAO4N,IAEf9N,EAAME,OAAOuC,MAGhByI,EAA8B,OAAxC,cAAwC,CAAxC,QACM,GAA2B,OAAvBS,EAAalJ,MACf,OAAO,EAGT,MAAMsL,EAAcpC,EAAalJ,MAAMuL,MAAMC,UAAUpJ,GAAQA,EAAKqJ,MAAQ3I,EAAK2I,KAEjF,OAAwB,IAAjBH,IAGH1C,EAAgB,OAA1B,cAA0B,CAA1B,KACM,MAAM8C,EAAS5J,EAAElC,IAAIiD,EAAMC,KAAM,4BAAwB5D,GACzD,YAAeA,IAAXwM,EACKA,EAEqB,gBAAvB7I,EAAMC,KAAKiD,SAAwF,QAA3DlD,EAAMC,KAAK6I,aAAa9H,MAAM,KAAKC,MAAM8H,gBAGpF9C,EAAU,OAApB,cAAoB,CAApB,iEAEI,MAAO,CACLiB,iBACApB,gBACAK,aACAK,eACAwB,oBACArC,qBACAb,YACA6C,aACA5E,eACAiC,iBACAD,iBACAU,cACAG,8BACAxI,IACA2J,aACAhD,SACAlB,qBACAD,iBACA4B,cACArB,mBACAC,oBACA2C,gBACAE,UACAI,mBC3kB2V,I,qKCO7VnF,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAehC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAaC,OAAA,KAAKC,aAAA,KAAW3H,QAAA,KAAM4H,OAAA,KAAKC,SAAA,KAAOC,UAAA,KAAQC,aAAA,KAAWC,WAAA,Q,oCCjC3G,W,iJCEO,MAAMC,EAAQC,GAAYC,IAC/BjS,OAAOkS,OAAOD,EAAOD,GAAY,KAwCtBG,EAAahM,GAAY,CAAC8L,EAAOG,KAC5C,MAAMC,EAAeJ,EACrBK,aAAIC,IAAIF,EAAclM,EAAUiM,GAChC,IAAII,EAAIJ,EACJ7K,EAAEkL,SAASL,KACbI,EAAI9C,KAAKgD,UAAUN,IAErBO,aAAaC,QAAQzM,EAAUqM,K,oCClDjC,W,2CCAA,IAAI9L,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIkM,YAAY9L,EAAG,QAAQ,CAACE,YAAY,yBAAyBE,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,WAAWJ,EAAI+G,GAAG,CAACzG,YAAY,iBAAiBgB,MAAM,CAAG,YAAatB,EAAImM,OAAS3L,MAAM,CAAC,MAAQR,EAAIqK,MAAM,YAAYrK,EAAIoM,SAAS,aAAapM,EAAIqM,UAAU,mBAAmB,oBAAoB,eAAe,GAAG,MAAQ,GAAG,KAAO,IAAIjG,MAAM,CAACtH,MAAOkB,EAAQ,KAAEqG,SAAS,SAAUC,GAAMtG,EAAIpH,KAAK0N,GAAKE,WAAW,SAAS,WAAWxG,EAAIsM,QAAO,KAAS,GAAGlM,EAAG,QAAQ,CAACE,YAAY,8BAA8BE,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,kBAAkB,CAACnM,EAAG,SAAS,CAACJ,EAAIS,GAAG,eAAe,IAAI,IAAI,IAAI,IAC/6BiB,EAAkB,G,YCsCtB,GACE8K,OAAQ,CACV,QAGE7K,MAAO,CACL7C,MAAO2N,OACPP,MAAOQ,OACPrC,MAAO,CAAX,2BACI+B,SAAU,CAACM,OAAQC,UACnBN,UAAW,CAACK,OAAQC,UACpBC,aAAc,CAACF,OAAQC,UACvBR,MAAOO,SCnD4V,I,yGCQnW7J,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKE,OAAA,KAAK1H,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,Q,oCC5BnD,W,6DCAA,IAAI9M,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,YAAY,QAAQ,QAAS,IAAQ,CAACJ,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,cAAcC,YAAY,CAAC,YAAY,QAAQ,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,QAAQ,OAAS,OAAO,MAAQ,UAAUJ,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,OAAO,OAAS,WAAW,GAAGJ,EAAG,QAAQ,CAACA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,WAAWJ,EAAG,oBAAoB,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAO,QAAQ,OAAS,OAAO,MAAQ,YAAY,IAAI,GAAGJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,WAAWJ,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,GAAGJ,EAAG,QAAQ,CAACA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,WAAWJ,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,IAAI,GAAGJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,WAAWJ,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,GAAGJ,EAAG,QAAQ,CAACA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,WAAWJ,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,IAAI,IAAI,GAAGJ,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,OAAO,OAAS,WAAW,IAAI,IAC5lDkB,EAAkB,G,qHCAlBtE,EAAS,GAKTyF,EAAY,eACdzF,EACA2C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAACC,QAAA,KAAM8H,aAAA,OAAaC,OAAA,KAAKC,aAAA,KAAWC,OAAA,KAAK+B,kBAAA,KAAgB7B,UAAA,Q,uLCzBtF,MAAM5H,EAAc,UAEdC,GAAK,IAAG,cAAsBC,OAGX,0BACrB,MAAO,GAIW,qBAAC3K,GACfA,EAAKmU,SACPnU,EAAKmU,OAASnU,EAAKmU,OAAOpK,MAAM,KAAKC,OAIvB,qBAChB,MAAyB,QAAlB3C,KAAK+M,SAAqB,IAAM,MAfhC,gBACU,WADV,GAmBI,cACbxJ,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,kEC/BzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACyG,IAAI,OAAOrG,MAAM,CAAC,0BAAyB,EAAM,eAAeR,EAAIpH,KAAK,WAAa,mBAAmB,YAAY,QAAQ,YAAY,KAAK,WAAW,GAAG,kBAAkB,IAAIyL,GAAG,CAAC,qBAAqB,SAASC,GAAQtE,EAAIpH,KAAK0L,GAAQ,sBAAsB,SAASA,GAAQtE,EAAIpH,KAAK0L,IAASxD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACpc,IAAIxC,EAAKwC,EAAIxC,GACb,MAAO,CAACjE,EAAG,eAAeJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACkG,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAM,QAAU0H,WAAW,YAAYhG,MAAM,CAAC,cAAc,oBAAoB,KAAO,QAAQ,MAAQR,EAAImN,YAAY,iBAAiBnN,EAAIoN,oBAAoB/I,GAAG,CAAC,KAAOrE,EAAIqN,QAAQjH,MAAM,CAACtH,MAAOkB,EAAQ,KAAEqG,SAAS,SAAUC,GAAMtG,EAAIpH,KAAK0N,GAAKE,WAAW,SAAS,eAAexG,EAAIsM,QAAO,GAAOjT,OAAOkS,OAAO,GAAIvL,EAAIsN,WAAYjJ,UAAW+B,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAIuN,WAAWjH,GAAKE,WAAW,eAAe,CAAExG,EAAc,WAAEI,EAAG,gBAAgBJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACvG,MAAM,CAAC,OAAS,OAAO,OAASR,EAAIwN,MAAMC,QAAQpJ,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOtE,EAAI0N,MAAMC,KAAKC,KAAK5N,EAAIpH,QAAQwN,MAAM,CAACtH,MAAOkB,EAAQ,KAAEqG,SAAS,SAAUC,GAAMtG,EAAIpH,KAAK0N,GAAKE,WAAW,SAAS,gBAAgBxG,EAAIsM,QAAO,GAAOtM,EAAIsN,aAAatN,EAAIgF,MAAM,IAC70BtD,EAAkB,G,YCsCtB,GACE8K,OAAQ,CACV,QAGE7K,MAAO,CACL7C,MAAO,CAAX,yBAGE,OACE,MAAO,CACL+O,KAAM,GACNN,YAAY,EACZJ,aAAa,EACbC,wBAAoBpP,IAIxB8P,MAAO,CACL,KAAKC,GACH,GAAInN,EAAEsB,QAAQ6L,GACZ,OAGF,MAAMhP,EAAIkI,OAAO8G,EAAU,SAAS,GAChChP,EAAEiP,YACJ/N,KAAKgO,WAAalP,EAAEoI,OAAO,WAI/B,WAAW4G,GACT9N,KAAKrH,KAAOmV,IAIhB,UACE9N,KAAKgO,WAAahO,KAAKrH,MAGzB8J,QAAS,CACP,SAASlI,GACP,GAAIoG,EAAEsB,QAAQ1H,GACZ,OAGF,MAAMuE,EAAIkI,OAAOzM,EAAG,SAAS,GAC7ByF,KAAKkN,aAAepO,EAAEiP,UACtB/N,KAAKmN,mBAAqBnN,KAAKkN,YAAclN,KAAKU,GAAG,0BAAuB3C,GAG9E,OAAO3B,GACL,IAAI0C,EAAI1C,EAAM6R,cACd,MAAOnP,EAAG,CACR,GAAIA,EAAEoP,WAAapP,EAAEoP,UAAUC,SAAS,kBACtC,MAEFrP,EAAIA,EAAEnC,WAEHmC,IACHkB,KAAKsN,YAAa,GAEpBtN,KAAKyN,MAAMC,KAAKC,KAAK3N,KAAKrH,MAC1BqH,KAAKoO,SAASpO,KAAKrH,SCvGyU,I,qECO9ViK,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACyL,QAAA,KAAMpD,aAAA,KAAWqD,cAAA,Q,2CCzB/C,IAAIxO,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,iBAAiBE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQ,gBAAgB,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,QAAQ,YAAY,SAASC,MAAM,CAAC,KAAO,IAAI,UAAU,yBAAyB6D,GAAG,CAAC,MAAQrE,EAAIwO,gBAAgB,CAACpO,EAAG,wBAAwB,CAACE,YAAY,YAAYE,MAAM,CAAC,KAAOR,EAAI4B,KAAK,kBAAkB,OAAO,MAAQ,GAAG,OAAS,GAAG,UAAU,gBAAgBxB,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,UAAU,GAAG,MAAQ,UAAU,UAAU,sBAAsB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,GAAG,MAAQ,KAAK,CAACR,EAAIS,GAAG,wBAAwB,IAAI,GAAGL,EAAG,QAAQ,CAACE,YAAY,iBAAiBE,MAAM,CAAC,UAAU,0BAA0B,CAACJ,EAAG,QAAQ,CAACE,YAAY,oBAAoBE,MAAM,CAAC,UAAU,uCAAuC,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,IAAI,UAAU,qBAAqB,CAACJ,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUzO,EAAI4B,KAAK6C,kBAAkBzE,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kBAAmB,CAAC+N,SAAU1O,EAAI4B,KAAK+M,YAAY,OAAOvO,EAAG,QAAQ,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,MAAM,CAAER,EAAIY,EAAElC,IAAIsB,EAAI4O,KAAM,YAAc5O,EAAIY,EAAElC,IAAIsB,EAAI4O,KAAM,CAAC,SAAU,YAAaxO,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,SAAWR,EAAI6O,mBAAmB,QAAU7O,EAAI8O,OAAOzH,cAAc,MAAQ,UAAU,UAAU,mBAAmBhD,GAAG,CAAC,MAAQrE,EAAI+O,gBAAgB,CAAE/O,EAAsB,mBAAEI,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,OAAO,CAACP,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,oBAAoBL,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,SAAS,GAAGX,EAAIgF,KAAMhF,EAAiB,cAAEI,EAAG,6BAA6B,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAOR,EAAI4B,KAAK,eAAe,CAAE,OAAS,GAAO,oBAAoB,CAAEN,MAAO,sBAAuBtB,EAAIgF,KAAMhF,EAAW,QAAEI,EAAG,0BAA0B,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAOR,EAAI4B,KAAK,eAAe,CAAE,OAAS,GAAO,oBAAoB,CAAEN,MAAO,sBAAuBtB,EAAIgF,MAAM,IAAI,GAAG5E,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAU,uCAAuC,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKoN,cAAc,OAAO5O,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAU,uCAAuC,CAACJ,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,WAAWC,MAAM,CAAC,UAAU,wBAAwB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2BP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,iBAAiB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUzO,EAAI4B,KAAKsD,2BAAiD,gBAArBlF,EAAI4B,KAAKiD,QAA2BzE,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,WAAWC,MAAM,CAAC,UAAU,yBAAyB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,kBAAkB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUzO,EAAI4B,KAAKqN,oCAAoC7O,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,WAAWC,MAAM,CAAC,UAAU,yBAAyB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,kBAAkB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUzO,EAAIkP,qBAAqB9O,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,WAAWC,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,eAAe4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUzO,EAAI4B,KAAK2D,iCAAiCnF,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,WAAWC,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,eAAe4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAWzO,EAAI4B,KAAK0D,iCAAkClF,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,WAAWC,MAAM,CAAC,UAAU,0BAA0B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,oBAAoB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK4D,sBAAsB,SAASpF,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,QAAQ,MAAQ,UAAU,MAAQ,SAASC,MAAM,CAAC,UAAU,4BAA4B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,OAAOP,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKqD,aAAa,UAAU,IAAI,GAAG7E,EAAG,QAAQ,CAACE,YAAY,iBAAiBC,YAAY,CAAC,YAAY,QAAQ,QAAU,OAAO,cAAc,UAAUC,MAAM,CAAC,KAAO,IAAI,UAAU,0BAA0B,CAACJ,EAAG,uBAAuB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,SAAS,IAAI,IAAI,IACrhKF,EAAkB,G,+sBCmLtB,MAAM,EAAN,kBAEA,OACE3D,KAAM,cACN4D,MAAO,CACLC,KAAMvI,OACN8V,mBAAoBC,MACpBC,YAAa3C,OACb4C,WAAY,CAAhB,4BAEE,OACE,MAAO,CACLR,OAAQ,KAGZjN,SAAU,EAAZ,OACA,kCACA,iCAFA,IAGIgN,mBAAoB9K,GAAMA,EAAGnC,KAAK2N,mBAClC3H,QAAS7D,GAA0B,gBAApBA,EAAGnC,KAAKiD,SAAwD,MAA3Bd,EAAGnC,KAAK4N,eAC5D9H,cAAe3D,IACb,MAAMyG,EAAS5J,EAAElC,IAAIqF,EAAGnC,KAAM,4BAAwB5D,GACtD,YAAeA,IAAXwM,EACKA,EAEkB,gBAApBzG,EAAGnC,KAAKiD,SAAqF,QAAxDd,EAAGnC,KAAK6I,aAAa9H,MAAM,KAAKC,MAAM8H,eAEpFwE,cAAenL,IACb,OAAQA,EAAGnC,KAAKgH,WACd,IAAK,MACH,OAAO7E,EAAGpD,GAAG,8BACf,IAAK,MACH,OAAOoD,EAAGpD,GAAG,gCACf,IAAK,MACH,OAAOoD,EAAGpD,GAAG,4BACf,IAAK,MACH,OAAOoD,EAAGpD,GAAG,6BACf,QACE,MAAO,UAIf,UAEE8O,EAAOxF,KAAK,CAAhB,YAEEvH,QAAS,CACP,gBACEzC,KAAKsM,MAAM,iBAAkBtM,KAAK2B,OAEpC,gBACE3B,KAAK6O,OAAS,IAAIW,EAAO,EAA/B,6BACMxP,KAAK6O,OAAO3P,OAAO,CAAzB,qEACQc,KAAK2B,KAAK2N,oBAAqB,KAGnC,UAAUzQ,GACR,MAAM4Q,EAAqB9O,EAAE+O,aAAa1P,KAAKoP,aACzCO,EAAK,IAAIC,OAAO,IAAIH,KAAuB,MACjD,OAAK9O,EAAEsB,QAAQjC,KAAKqP,YAMbxQ,EALEA,EAAMgR,QACrB,EACA,uDClPoW,I,6FCOhWjN,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAW3H,QAAA,KAAM4H,OAAA,Q,oCC3BzD,W,yCCAA,IAAIhL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,YAAY,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,KAAK,CAACJ,EAAG,eAAe,CAACE,YAAY,eAAe,CAACN,EAAIS,GAAG,aAAa,GAAGL,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,GAAK,IAAI,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,gBAAgByF,MAAM,CAACtH,MAAOkB,EAAI+P,WAAe,KAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,OAAQzJ,IAAME,WAAW,sBAAsB,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,2BAA2B,MAAQX,EAAIgQ,uBAAuB,YAAY,QAAQ,aAAa,QAAQ,MAAQ,GAAG,UAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,SAAW,IAAI5J,MAAM,CAACtH,MAAOkB,EAAI+P,WAAiB,OAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,SAAUzJ,IAAME,WAAW,wBAAwB,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,oBAAoByF,MAAM,CAACtH,MAAOkB,EAAI+P,WAAmB,SAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,WAAYzJ,IAAME,WAAW,0BAA0B,IAAI,IAAI,GAAGxG,EAAIiQ,GAAG,YAAY,IAAI,GAAG7P,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAY,GAAG,MAAQ,UAAU,UAAYR,EAAIkQ,yBAA2BlQ,EAAImQ,QAAQ,QAAUnQ,EAAImQ,SAAS9L,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,OAAQvM,EAAI+P,eAAe,CAAC/P,EAAIS,GAAG,aAAa,IAAI,IACniDiB,EAAkB,G,+sBC+EtB,OACE8K,OAAQ,CACV,QAGE7K,MAAO,CACLwO,QAASC,SAGXvO,SAAU,EAAZ,KACA,kCADA,IAMI,yBACE,OAAO5B,KAAKoQ,OAAO9N,IAAI+N,IAAS,CAAtC,0CChG6V,I,qKCOzVzN,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAiBhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAa2F,UAAA,OAAUC,WAAA,OAAWC,YAAA,KAAU5F,OAAA,KAAKC,aAAA,KAAWC,OAAA,KAAK8B,UAAA,KAAQ5B,UAAA,KAAQC,aAAA,KAAWwF,WAAA,Q,uLChCrI,MAAMrN,EAAc,oBAEdC,GAAK,IAAG,cAA8BC,OAGnB,0BACrB,MAAO,GAGW,qBAAC3K,GACnB,OAAOA,IARA,gBACU,mBADV,GAYI,cACb4K,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,kCCxBzC,+mBA8Be,QACb5E,QACAkN,QACA+E,UACAC,cACAC,WACApH,SACAqH,SACA5I,WACA6I,YACA7O,YACA8O,YACAC,aACAC,eACAC,aACAC,UACAC,gBACAvF,aACAwF,iBACAC,eACAC,cACAC,WACAC,aACAC,cACAC,YACAC,SACAlC,kBACAmC,cACAC,WACAC,oB,oCC3DF,W,2CCAA,IAAIjS,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,SAAS,CAACG,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,QAAS,GAAO6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIiS,YAAcjS,EAAIiS,cAAc,CAAC7R,EAAG,cAAc,CAACG,YAAY,CAAC,QAAU,OAAO,wBAAwB,iCAAiC,CAACH,EAAG,QAAQ,CAACG,YAAY,CAAC,aAAa,QAAQ,aAAa,OAAOC,MAAM,CAAC,IAAM,gDAAgD,aAAa,OAAO,YAAY,UAAUJ,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkS,aAA4B,UAAflS,EAAIyN,OAAqB,cAAgB,mBAAmB,OAAOrN,EAAG,MAAM,CAACE,YAAY,cAAc,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkS,aAA4B,UAAflS,EAAIyN,OAAqB,cAAgB,mBAAmB,SAAUzN,EAAc,WAAEI,EAAG,SAAS,CAACG,YAAY,CAAC,aAAa,SAASC,MAAM,CAAC,UAAU,KAAK,CAACR,EAAIS,GAAG,wBAAwBL,EAAG,SAAS,CAACG,YAAY,CAAC,aAAa,SAASC,MAAM,CAAC,UAAU,KAAK,CAACR,EAAIS,GAAG,0BAA0B,GAAGL,EAAG,sBAAsB,CAAEJ,EAAc,WAAEI,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACG,YAAY,CAAC,QAAU,OAAO,IAAM,OAAO,cAAc,SAAS,YAAY,SAAS,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAY,GAAG,KAAO,GAAG,MAAQ,UAAU,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,kBAAkBxH,EAAImS,sBAAuB,KAAQ,CAAC/R,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,eAAe,GAAGT,EAAIiB,GAAIjB,EAAkB,gBAAE,SAASoS,GAAe,MAAO,CAAgD,aAA9CA,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,WAAW,CAAChB,IAAK,YAAegT,EAAgB,GAAG7R,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,MAAQ4R,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,YAAa,MAAQ2E,EAAcG,QAAQ,YAA2B,UAAfvS,EAAIyN,OAAqB,OAAS,UAAU,SAAW,GAAG,eAAe,IAAIpJ,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIwS,gBAAgBJ,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIwS,gBAAiBJ,EAAcK,GAAInM,IAAME,WAAW,uCAAsF,aAA9C4L,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,aAAa,CAAChB,IAAK,YAAegT,EAAgB,GAAG7R,YAAY,CAAC,YAAY,QAAQ,cAAc,IAAI,aAAa,KAAKC,MAAM,CAAC,MAAQ4R,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,YAAa,eAAe,IAAIpJ,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIwS,gBAAgBJ,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIwS,gBAAiBJ,EAAcK,GAAInM,IAAME,WAAW,uCAAuCxG,EAAIgF,KAAoD,aAA9CoN,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,MAAM,CAAChB,IAAK,aAAgBgT,EAAgB,GAAG7R,YAAY,CAAC,QAAU,OAAO,iBAAiB,SAAS,YAAY,QAAQ,aAAa,YAAY,CAACH,EAAG,MAAM,CAACE,YAAY,UAAUC,YAAY,CAAC,MAAQ,uBAAuB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAG0R,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,aAAa,OAAOrN,EAAG,MAAM,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAG0R,EAAcG,QAAQ,GAAkB,UAAfvS,EAAIyN,OAAqB,OAAS,YAAY,SAASzN,EAAIgF,UAAS,GAAG5E,EAAG,cAAc,CAACE,YAAY,OAAOC,YAAY,CAAC,QAAU,OAAO,IAAM,OAAO,cAAc,WAAW,CAACH,EAAG,eAAe,CAACE,YAAY,SAASC,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,UAAU,wBAAwB,MAAQR,EAAIW,GAAG,+BAA+B,MAAQ,CAACX,EAAI0S,mBAAmB,KAAO,SAAS,eAAe,GAAG,SAAW,IAAIrO,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,kBAAkB,MAAQ,SAAS1B,GAAQA,EAAOkD,oBAAqBvB,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI2S,OAAShN,KAAKwE,IAAIxE,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QAAS,KAAMsH,MAAM,CAACtH,MAAOkB,EAAU,OAAEqG,SAAS,SAAUC,GAAMtG,EAAI2S,OAAO3S,EAAIuG,GAAGD,IAAME,WAAW,YAAYpG,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,iBAAiB,SAAS,kBAAkB,SAAS,cAAc,QAAQ,mBAAmB,UAAU,gBAAgB,MAAM,aAAa,UAAU,QAAU,QAAQ,CAACH,EAAG,MAAM,CAACE,YAAY,aAAaC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,uBAAuBL,EAAG,MAAM,CAACJ,EAAIS,GAAG,cAAcL,EAAG,QAAQ,CAACI,MAAM,CAAC,SAAW,GAAG,UAAU,GAAG,MAAQ,UAAU,UAAYR,EAAI8S,cAAgB9S,EAAI+S,gBAAgB,UAAU,4BAA4B1O,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIuM,MAAM,aAAcvM,EAAI+S,oBAAoB,CAAC/S,EAAIS,GAAG,yBAAyBL,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIuM,MAAM,mBAAmB,CAACvM,EAAIS,GAAG,qBAAqB,IAAI,GAAGT,EAAIgF,MAAM,IAAI,IAAI,IAC7kJtD,EAAkB,G,+sBC6ItB,OACE3D,KAAM,uBAENyO,OAAQ,CACV,QAIE7K,MAAO,CAAC,eAAgB,iBAAkB,2BAA4B,eAEtE,OACE,MAAO,CACL6Q,gBAAiB,GACjBP,YAAY,EACZU,OAAQ,EACRR,sBAAsB,IAI1BtQ,SAAU,EAAZ,KACA,kCADA,IAIImR,2BAA4BjP,GAAMA,EAAGkP,eACzC,SACM,KAAN,yCACM,GAAN,QAIIF,gBAAiB,KAAM,EAEvBG,eAAgBnP,GAAMA,EAAGkP,eAAe1Q,IAAIgQ,GAAWA,EAAQA,WAWjE,UACE,MAAMY,EAAmB,CACvBC,SAAU,GACVC,UAAU,EACVC,UAAW,IAGbrT,KAAKgT,eAAeM,QAAQnB,IAC1BnS,KAAKoI,KACX,qBACA,KACA,4CACA,mEACA,qCAKE3F,QAAS,CACP8Q,4BAA6BlB,IAC3B,OAAQA,GACN,IAAK,WACH,MAAO,aACT,IAAK,WACH,MAAO,aACT,IAAK,YACH,MAAO,IACT,QACE,MAAO,OCrN4V,I,yJCQzWzP,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAahC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM2N,YAAA,KAAU3F,aAAA,KAAW2I,kBAAA,OAAkBtQ,QAAA,KAAMuQ,OAAA,KAAK7G,UAAA,KAAQ3B,aAAA,Q,2CChCnG,IAAInL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,wBAAwB,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,SAAW,QAAQ,OAAS,OAAO,KAAO,QAAQ,UAAU,MAAMP,EAAIiB,GAAIjB,EAAW,SAAE,SAAS2T,EAAOlR,GAAO,OAAOrC,EAAG,QAAQJ,EAAI+G,GAAG,CAAC3H,IAAIqD,EAAMnC,YAAY,OAAOE,MAAM,CAAC,UAAY,IAAI6D,GAAG,CAAC,MAAQsP,EAAOC,SAAS,QAAQD,EAAOhS,OAAM,GAAO,CAAC3B,EAAIS,GAAG,IAAIT,EAAIU,GAAGiT,EAAOE,MAAM,UAAS,MAC5anS,EAAkB,G,YCqBtB,gCACE3D,KAAM,sBACN4D,MAAO,CACLmS,QAAS1E,SCzB+V,I,qECQxWvM,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKoJ,mBAAA,U,oCCzBnC,W,2CCAA,IAAIhU,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,gBAAgB,YAAcX,EAAIW,GAAG,iCAAiC,MAAQ,CAACX,EAAIgU,cAAehU,EAAIiU,YAAY,SAAWjU,EAAIkU,YAAY7P,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,YAAYnG,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAI+P,WAAWzJ,GAAKE,WAAW,iBAAiB,IAAI,IAAI,IAC1gB9E,EAAkB,G,YCmBtB,GACE8K,OAAQ,CACV,QAGE7K,MAAO,CACLuS,WAAY9D,SAGd,OACE,MAAO,CACL4D,cAAelV,KAArB,qBACMmV,WAAYnV,IAEV,MAAMqV,EAAU,uJAChB,OAAOA,EAAQC,KAAKtV,IAAU,sBCnCwT,I,qECO1V+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKE,OAAA,KAAKG,aAAA,Q,mMCjBxC,MAAM7H,EAAc,cACdC,GAAK,IAAG,cAAwBC,OAGb,0BACrB,MAAO,CACL2C,UAAW,EACXT,gBAAiB,GAID,qBAAC7M,GAOnB,OANIA,EAAKyb,aACPzb,EAAKyb,WAAa,IAAIC,KAAK1b,EAAKyb,aAE9Bzb,EAAK2b,aAAe3b,EAAK4b,oBAC3BvU,KAAKwU,wBAA0B7b,EAAK4b,kBAAkB1E,QAAQlX,EAAK2b,YAAa,IAAIG,QAE/E9b,EAGI,gBAEX,OAAOqH,KAAK0U,WAGD,cAAC7V,GAERA,GAASmB,KAAKwF,gBAEhBxF,KAAK0U,WAAa1U,KAAKwF,gBAIzBxF,KAAK0U,WAAa7V,EAGD,sBAEjB,OAAOmB,KAAK2U,iBAGK,oBAAC9V,GAElBmB,KAAK2U,iBAAmB9V,EAGH,0BACrB,MAAuB,UAAhB+V,OAAKpH,OAAqBxN,KAAKsU,YAActU,KAAK6U,eAG3B,mCAC9B,MAAuB,UAAhBD,OAAKpH,OAAqBxN,KAAK8U,qBAAuB9U,KAAK+U,wBAGvC,gCAC3B,MAAuB,UAAhBH,OAAKpH,OAAqBxN,KAAKwU,wBAA0BxU,KAAKgV,qBAG1C,gCAC3B,MAAuB,UAAhBJ,OAAKpH,OAAqBxN,KAAKmF,kBAAkB0K,QAAQ,KAAM,IAAM7P,KAAKiV,qBAAqBpF,QAAQ,KAAM,IAGnF,sCACjC,MAAuB,UAAhB+E,OAAKpH,OAAqBxN,KAAKkF,wBAAwB2K,QAAQ,KAAM,IAAM7P,KAAKkV,2BAA2BrF,QAAQ,KAAM,IAG1G,2BACtB,OAAK7P,KAAKmV,UAIHP,OAAK9V,EAAG,+BAA8BkB,KAAKmV,UAAUtF,QAAQ,YAAa,IAAI4E,QAH5E,IAME,gBACX,QAAIzU,KAAKwK,cACyE,QAAzExK,KAAKwK,aAAa9H,MAAM,KAAKC,MAAMyS,WAAW,IAAK,IAAI3K,gBA5EzD,gBACU,aADV,GAkFI,cACblH,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,uLC/FzC,MAAMD,EAAc,WAEdC,GAAK,IAAG,cAAqBC,OAGV,0BACrB,MAAO,KAJA,gBACU,UADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,oCCrBzC,W,iMCGA,MAAMD,EAAc,QAEdC,GAAK,IAAG,cAAmBC,OAGR,0BACrB,MAAO,CACL+R,UAAW,GACXC,SAAU,GACVC,SAAU,GACVC,aAAc,GACdC,YAAa,GACbC,SAAU,GACVC,mBAAoB,KACpBC,0BAA2B,KAE3BjC,OAAQ,qBACRvD,OAAQ,CACNyF,cAAc,EACdC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,YAAY,EACZC,kBAAkB,EAClBC,gBAAgB,EAChBC,mBAAmB,EACnBC,qBAAqB,EACrBC,iBAAiB,EACjBC,aAAa,GAEfC,SAAS,EACThJ,OAAQoH,OAAKpH,OACbiJ,KAAM,CACJC,UAAU,EACVC,eAAgB,IAElBC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAkB,GAClBC,YAAY,EACZC,WAAY,GACZC,QAAS,IAID,eACV,MAAQ,GAAElX,KAAKqV,aAAarV,KAAKsV,aA7C1B,gBACU,QADV,GAiDI,cACb/R,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAAa+T,MAAM,CACjDC,MAAO,CACL3Y,IAAK,CACH6J,IACEA,EAAQtO,OAAOgd,YAAa,EACrB1O,OAKfjF,QACAgU,cAAc,IAGhB1T,MAAOC,eAAiB,CAAER,cAAaC,Y,uLCpEzC,MAAMD,EAAc,YAEdC,GAAK,IAAG,cAAsBC,OAGX,0BACrB,MAAO,KAJA,gBACU,WADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,2CCrBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,sCAAsC,gBAAgB,GAAG,OAAS,GAAG,WAAW,GAAG,KAAO,GAAG,UAAU,WAAWM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACxU,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,UAAUJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,8CAA8CC,YAAY,CAAC,gBAAgB,OAAOC,MAAM,CAAC,IAAM,IAAI,YAAY,QAAQ,aAAa,OAAO,MAAQR,EAAIyG,UAAUzG,EAAI4B,MAAQ,UAAY,UAAU,UAAU,iCAAiC,UAAUpB,GAAM,GAAO6D,GAAI,CAAErE,EAAIyG,YAAa,CAACrG,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,2BAA2BC,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,SAASP,EAAG,MAAM,CAACE,YAAY,SAAS,CAAEN,EAAIyG,YAAarG,EAAG,OAAO,CAACE,YAAY,0EAA0EC,YAAY,CAAC,MAAQ,UAAU,YAAY,UAAUP,EAAIgF,KAAK5E,EAAG,OAAO,CAACE,YAAY,oDAAoDc,MAAM,CAAE,SAAYpB,EAAIyG,UAAUzG,EAAI4B,MAAO,YAAe5B,EAAIyG,UAAUzG,EAAI4B,OAAQrB,YAAY,CAAC,YAAY,QAAQC,MAAM,CAAC,UAAU,6BAA6B,CAACJ,EAAG,OAAO,CAACE,YAAY,wBAAwBC,YAAY,CAAC,YAAY,OAAO,cAAc,QAAQ,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIsJ,WAAWtJ,EAAIuX,gBAAgB,YAAY,CAACnX,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,2BAA2BC,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,SAASP,EAAG,MAAM,CAACE,YAAY,iDAAiD,CAACF,EAAG,OAAO,CAACE,YAAY,oDAAoDc,MAAM,CAAE,SAAYpB,EAAIyG,UAAUzG,EAAI4B,MAAO,YAAe5B,EAAIyG,UAAUzG,EAAI4B,OAAQrB,YAAY,CAAC,YAAY,QAAQC,MAAM,CAAC,UAAU,6BAA6B,CAACJ,EAAG,OAAO,CAACE,YAAY,wBAAwBC,YAAY,CAAC,YAAY,OAAO,cAAc,QAAQ,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIsJ,WAAWtJ,EAAIuX,gBAAgB,SAAWvX,EAAIyG,UAAUzG,EAAI4B,MAA0b5B,EAAIgF,KAAvb5E,EAAG,OAAO,CAACE,YAAY,sFAAsFc,MAAM,CAAE,SAAYpB,EAAIyG,UAAUzG,EAAI4B,MAAO,YAAe5B,EAAIyG,UAAUzG,EAAI4B,OAAQrB,YAAY,CAAC,YAAY,OAAO,mBAAmB,UAAU,MAAQ,mBAAmB,MAAQ,OAAO,cAAc,mBAAmBe,MAAM,CAAEtB,EAAIyG,UAAUzG,EAAI4B,MAAQ,CAAC,mBAAoB,WAAa,CAAC,mBAAoB,kBAA4B,SAAS,CAACxB,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,mBAAmB,QAAQ,UAAU,YAAY,CAACH,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmCP,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,MAAQ,cAAc,wBAAwB,4BAA4B,CAACP,EAAIiB,GAAIjB,EAAI6I,eAAe7I,EAAIuX,gBAAgB,SAASrW,EAAKuB,GAAO,MAAO,CAACrC,EAAG,OAAO,CAAChB,IAAK,OAASqD,EAAOlC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAK4E,KAAK,KAAK9F,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAAChB,IAAK,SAAWqD,GAAQ,CAACzC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAuB,CAAC6W,MAAOtW,EAAKmI,SAAS,YAAW,QAAQ,IACn3F3H,EAAkB,G,giCCgHtB,MAAM,EAAN,gCAEA,oCACEC,MAAO,CAILC,KAAM,CACJ1F,KAAM7C,OACNiP,QAAS,SAKb,MAAM3G,EAAO4G,GACX,MAAMxJ,EAAIwJ,EAAQC,KAAK7H,GAEjB8H,EAAU,OAApB,cAAoB,CAApB,uBAEUrB,EAAc,OAAxB,cAAwB,CAAxB,wCAEUV,EAAiB,OAA3B,cAA2B,CAA3B,yCAEUhC,EAAe,OAAzB,SAAyB,CAAzB,CACMC,SAAS,EACTC,aAAc,IAAI6S,IAGdF,EAAgB,OAA1B,cAA0B,CAA1B,IACU5V,EAAMC,KACDD,EAAMC,KAER,CAAb,wBAGUoG,EAAe,OAAzB,cAAyB,CAAzB,0CAEUa,EAAiBjH,IACrB,IAAKA,EACH,MAAO,GAGT,GAAIA,EAAKiE,SAAU,CACjB,IAAIiD,EAOJ,OALEA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAEhB,IAAIjE,EAAKiE,UAGfiD,EAASG,KAAK,CAACC,EAAGC,IAAMA,EAAErD,IAAMoD,EAAEpD,KAAKvD,IAAI6G,GAAO,EAAjE,KACA,GADA,IAEUC,MAAO,IAAjB,kDAIM,GAAIzH,EAAKmI,SAAU,CACjB,IAAIjB,EAOJ,OALEA,EAD2B,kBAAlBlH,EAAKmI,SACHhB,KAAKC,MAAMpH,EAAKmI,UAEhB,IAAInI,EAAKmI,UAGfjB,EAASG,KAAK,CAACC,EAAGC,IAAMA,EAAErD,IAAMoD,EAAEpD,KAAKvD,IAAI6G,GAAO,EAAjE,KACA,GADA,IAEUC,MAAO,IAAjB,kDAGM,MAAO,IAGHC,EAAa1H,IACjB,GAAI,EAAV,oEACQ,IAAIkH,EAEFA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAErC,6BACqB,IAAIjE,EAAKmI,UAET,IAAInI,EAAKiE,UAEtB,MAAM0D,EAAaT,EACbU,EAAQD,EAAW,GACnBE,EAAOF,EAAW3G,MACxB,MAAO,GAAG6G,EAAKJ,SAAS3C,EAAe5H,WAAW0K,EAAMH,QAAQ3C,EAAe5H,SAEjF,OAAOyJ,EAAQC,KAAK7H,GAAG,cAGnB8F,EAAY,IAAMQ,SAASyC,KAAK/H,EAAMC,MAAQD,EAAMC,KAAKsF,WAAavF,EAAMC,KAAKsF,WAAaoN,KAAKoD,MAAO,QAAU,EAEpHpQ,EAAV,iCACA,SACA,OACA,sBAEA,iFAGA,aARA,sDAWUqC,EAAoB/H,GAAQ,KAAtC,gCAEUuG,EAAe,KACnBzD,EAAa5F,MAAM6F,SAAU,EAC7BD,EAAa5F,MAAM8F,aAAe,IAAI6S,GAGlC3P,EAAV,iCAEA,kEACA,uCAHA,sDAMUL,EAAgB7F,IAChBoG,EAAalJ,QACfkJ,EAAalJ,MAAMuL,MAAQrC,EAAalJ,MAAMuL,MAAMlI,OAAOjB,GAAQA,EAAKqJ,MAAQ3I,EAAK2I,OAInF5D,EAAiB,OAA3B,cAA2B,CAA3B,QACM,IAAK/E,EAAKiE,SACR,OAAO,IAAf,oBAGM,IAAIiD,EAEFA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAEhB,IAAIjE,EAAKiE,UAGtB,MAAMmE,EAAYlB,EAASmB,KAAK,IAAtC,uCAEM,IAAKD,EAAW,CACd,MAAM2N,EAAYhS,KAAKC,OAAOkD,EAASvG,IAAIhE,GAAKA,EAAEuH,MAE5C0R,EAA6C,IAArCI,WAAWD,EAAUE,QAAQ,IAAe,IAAO7N,EAAUX,MACrEyO,EAAa,IAA3B,gCACQ,OAAO,IAAf,iDAIM,MAAMN,EAAmD,IAA3CI,WAAW5N,EAAUX,MAAMwO,QAAQ,IAAe,IAAO7N,EAAUX,MAC3EyO,EAAa,IAAzB,gCAEM,OAAO,IAAb,wDAGUvQ,EAA8B,OAAxC,cAAwC,CAAxC,QACM,GAA2B,OAAvBS,EAAalJ,MACf,OAAO,EAGT,MAAMsL,EAAcpC,EAAalJ,MAAMuL,MAAMC,UAAUpJ,GAAQA,EAAKqJ,MAAQ3I,EAAK2I,KAEjF,OAAwB,IAAjBH,IAGT,MAAO,CACLvB,iBACApB,gBACAK,aACAK,eACAwB,oBACArC,qBACAb,YACA6C,aACA5E,eACAiC,iBACAD,iBACAU,cACAG,8BACAgQ,gBACAxY,QCrS+V,I,iFCQjW8D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACiI,aAAA,KAAWwD,QAAA,KAAMtD,SAAA,Q,qLCvB/C,MAAM3H,EAAc,mBAEdC,GAAK,IAAG,cAA6BC,OAGlB,0BACrB,MAAO,KAJA,gBACU,kBADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,qLClBzC,MAAMD,EAAc,YAEdC,GAAK,IAAG,cAAuBC,OAGV,0BACrB,MAAO,KAJF,gBACY,YADZ,GAQI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,6DCpBzC,W,2CCAA,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACyG,IAAI,gBAAgBxC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,iBAAkBjI,KAAU8B,MAAM,CAACtH,MAAOkB,EAAkB,eAAEqG,SAAS,SAAUC,GAAMtG,EAAI+X,eAAezR,GAAKE,WAAW,mBAAmB,CAAExG,EAAS,MAAEI,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,2BAA2B,YAAcR,EAAIW,GAAG,eAAe,MAAQX,EAAIW,GAAG,eAAe,MAAQ,CAACX,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAiB,YAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,cAAewH,IAAME,WAAW,wBAAwB,IAAI,GAAGxG,EAAIiB,GAAIjB,EAAoB,kBAAE,SAASrB,EAAEzF,GAAG,OAAOkH,EAAG,QAAQ,CAAChB,IAAK,OAASlG,GAAI8G,EAAIiB,GAAG,GAAI,SAAS7C,EAAEhE,GAAG,OAAOgG,EAAG,QAAQ,CAAChB,IAAK,OAAShF,EAAGkG,YAAY,QAAQ,CAAE,CAAC,WAAY,WAAY,WAAY,YAAYyF,SAAS3H,GAAIgC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAW,iBAAmBpC,EAAI,SAAU,MAAQ4B,EAAIiY,cAAc7Z,GAAG,YAAc4B,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,MAAQ,CAAC,SAAUyN,GAAK,MAAa,aAANzN,GAAoB4B,EAAIgY,WAAWnM,KAAO,SAAW,GAAG,MAAQ,IAAIzF,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAqB,SAANpI,EAAcgC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,2BAA2B,MAAQR,EAAIiY,cAAc7Z,GAAG,YAAc4B,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,MAAQ,CAAC4B,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAqB,QAANpI,EAAagC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,kCAAkC,MAAQR,EAAIiY,cAAcG,WAAW,YAAcpY,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,MAAQ,CAAC4B,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAqB,YAANpI,EAAiBgC,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,8BAA8B,MAAQR,EAAIiY,cAAcE,QAAQ,YAAcnY,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,WAAW,MAAQnY,EAAIqY,UAAU,MAAQ,CAACrY,EAAIgY,YAAY,YAAY,OAAO,aAAa,OAAO,SAAW,GAAG,MAAQ,IAAI3T,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIlB,MAAMiO,OAAS,GACj6E/M,EAAIlB,MAAMwZ,KAAO,GACjBtY,EAAIlB,MAAMyZ,IAAM,GAChBvY,EAAI0N,MAAM8K,cAAcC,oBAAqB3X,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,iCAAiC,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKnD,aAAa,MAAK,GAAMqI,MAAM,CAACtH,MAAOkB,EAAIlB,MAAa,QAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,UAAWwH,IAAME,WAAW,mBAA0B,aAANpI,EAAkBgC,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,IAAI,UAAU,6BAA6B,MAAQR,EAAIiY,cAAcS,KAAK,SAAW1Y,EAAIY,EAAEsB,QAAQlC,EAAI2Y,SAAS,MAAQ3Y,EAAI2Y,QAAQ,YAAc3Y,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,UAAU,MAAQ,CAACnY,EAAIgY,YAAY,YAAY,OAAO,aAAa,OAAO,SAAW,GAAG,MAAQ,IAAI3T,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIlB,MAAMwZ,KAAO,GAC/tBtY,EAAIlB,MAAMyZ,IAAM,GAChBvY,EAAI0N,MAAM8K,cAAcC,oBAAqB3X,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,gCAAgC,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKnD,aAAa,MAAK,GAAMqI,MAAM,CAACtH,MAAOkB,EAAIlB,MAAY,OAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,SAAUwH,IAAME,WAAW,kBAAkBxG,EAAIgF,MAAM,MAAK,MAAK5E,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,4BAA4B,MAAQR,EAAIiY,cAAcW,MAAM,YAAc5Y,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,SAAS,SAAW,GAAG,MAAQ,IAAI/R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAW,MAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,QAASwH,IAAME,WAAW,kBAAkB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACI,MAAM,CAAC,UAAU,8BAA8B,UAAY,MAAM,MAAQR,EAAIW,GAAG,0CAA0C,YAAcX,EAAIW,GAAG,0CAA0C,SAAW,GAAG,MAAQ,IAAIyF,MAAM,CAACtH,MAAOkB,EAAIlB,MAAU,KAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,OAAQwH,IAAME,WAAW,iBAAiB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACI,MAAM,CAAC,UAAU,4BAA4B,UAAY,MAAM,MAAQR,EAAIW,GAAG,6BAA6B,YAAcX,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,SAAS,MAAQ,CAACnY,EAAI6Y,SAAS,SAAW,GAAG,MAAQ,IAAIzS,MAAM,CAACtH,MAAOkB,EAAIlB,MAAW,MAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,QAASwH,IAAME,WAAW,kBAAkB,IAAI,GAAGxG,EAAIiQ,GAAG,UAAU,KAAK,CAAC,eAAiBjQ,EAAI+X,kBAAkB,IAAI,GAAG/X,EAAIgF,MAAM,IAC/mDtD,EAAkB,G,miCCqKtB,MAAM,EAAN,+CAEA,OACE8K,OAAQ,CACV,QAGE7K,MAAO,CACL7C,MAAO,IAGT,OACE,MAAO,CACLga,YAAa,KACbC,YAAa,KACbC,OAAQ,sBACRC,YAAa,4BACblB,gBAAgB,EAChBmB,YAAa,GACbC,YAAa,KAIjBtX,SAAU,EAAZ,KACA,kCADA,IAGIuX,iBAAkB,IAAMC,EAAQC,YAAY,CAAhD,gBAEIC,eAAgB,IAAMC,EAAQF,YAAY,CAA9C,gBAEI7Q,QAAS,IAAMgR,EAAQzX,aAAa,GAEpC2W,QAAS5U,GAAMnD,EAAElC,IAAIqF,EAAI,gBAAiB,IAC9C,4DAEI2V,oBAAqB3V,GAAzB,UAA+B,EAA/B,mCAEIoU,QAASpU,GAAMA,EAAGsU,UAAUpO,KAAK7L,GAAKA,EAAEzB,OAASoH,EAAGjF,MAAMqZ,SAE1DF,cAAelU,GACTA,EAAGoU,QACEpU,EAAGoU,QAAQwB,OAEQ,IAAxB5V,EAAGsU,UAAUjf,QAAiB2K,EAAG0E,QAG9B1E,EAAGsU,UAAUpO,KAAK7L,GAAKA,EAAEzB,OAASoH,EAAG0E,QAAQ0P,SAASwB,OAFpD,GAKXtB,UAAWtU,GAAMA,EAAG2V,oBAAoBvX,OAAO/D,GAAK2F,EAAGqV,iBAAiB7W,IAAIqX,GAAMA,EAAGC,MAAM9T,SAAS3H,EAAEzB,OAEtG,mBACE,OAAO,IAAImd,EAAjB,YAGI,mBAEE,MAAMC,EAAsB,gGAK5B,IAAIC,EAAepZ,EAAElC,IAAIuB,KAAM,0BAA2B8Z,GAChE,6DAGM,MAAME,EAAWD,EAAajU,SAAS,cAAgB,aAAe,GACtEiU,EAAeA,EAAalK,QAAQ,YAAa,IACjDkK,EAAeA,EAAalK,QAAQ,aAAc,IAClDkK,EAAeA,EAAalK,QAAQ,KAAM,KAE1C,MAAMoK,EAAwBF,EAAalK,QAAQ,YAAa,sBAAsBmK,GAEtF,OAAOC,EAAsBvX,MAAM,KACzC,sBACA,QACQ,EAAR,wBACQ,EAAR,0CACA,OAKE,UAAF,iCACA,kCACA,+BACA,iDACA,mDAJA,IAOED,QAAS,CACP,eAAeyX,EAAaC,GAC1B,MAAMhb,EAAM,GAAGa,KAAKgZ,wBAAwBkB,KAAeC,IAE3D,OAAIna,KAAKoa,IAAIjb,GACJa,KAAKU,GAAGvB,GAGVa,KAAKU,GAAG,GAAGV,KAAKgZ,gCAAgCmB,QC7QqS,I,6FCO9VvX,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAACgI,OAAA,KAAKyP,QAAA,KAAMvP,OAAA,KAAK8B,UAAA,KAAQ3B,aAAA,Q,2CC3BtD,IAAInL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACG,YAAY,CAAC,QAAU,qBAAqB,mBAAmB,QAAQC,MAAM,CAAC,QAAU,GAAG,OAAS,MAAM,MAAQ,MAAM,MAAQ,UAAU,SAAW,KAAK,CAACJ,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wDAAwD,OAAOP,EAAG,QAAQ,CAACE,YAAY,YAAYC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,wCAAwCJ,EAAG,YAAY,CAACE,YAAY,qBAAqBF,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,wCAAwC,GAAGJ,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,UAAU,GAAG,UAAYR,EAAIua,cAAclW,GAAG,CAAC,MAAQrE,EAAIwa,wBAAwB,CAACxa,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+DAA+D,QAAQ,IAAI,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0DAA0D,OAAOP,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,wCAAwCJ,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,oCAAoCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sDAAsD,SAASP,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,+BAA+BC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uDAAuD,SAASP,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,+BAA+BC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yDAAyD,SAASP,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,IAAI,CAACE,YAAY,OAAOC,YAAY,CAAC,YAAY,OAAO,cAAc,QAAQ,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yDAAyD,UAAU,IAAI,IAAI,IAAI,IACpsEe,EAAkB,G,msBCgFtB,OACE3D,KAAM,gCACN8D,SAAU,EAAZ,OACA,uBAAI,aAAJ,UACA,4BAAI,uBAAJ,4BAFA,IAGI0Y,aAAc,IAAlB,iFAEE7X,QAAS,CACP,wBACEzC,KAAKwa,QAAQ/gB,KAAK,CAAxB,0EC1FsX,I,qHCQlXmJ,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAK6P,WAAA,KAAS3P,OAAA,Q,oCC7BjE,W,2CCAA,IAAIhL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACyG,IAAI,cAAcxC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,iBAAkBjI,KAAU8B,MAAM,CAACtH,MAAOkB,EAAkB,eAAEqG,SAAS,SAAUC,GAAMtG,EAAI+X,eAAezR,GAAKE,WAAW,mBAAmB,CAAExG,EAAS,MAAEI,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,yBAAyB,SAAWR,EAAI2a,YAAY,YAAc3a,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,QAAQ,MAAQnY,EAAIW,GAAG,eAAe,MAAQ,CAACX,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAiB,YAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,cAAewH,IAAME,WAAW,wBAAwB,IAAI,GAAGxG,EAAIiB,GAAIjB,EAAoB,kBAAE,SAASrB,EAAEzF,GAAG,OAAOkH,EAAG,QAAQ,CAAChB,IAAK,OAASlG,GAAI8G,EAAIiB,GAAG,GAAI,SAAS7C,EAAEhE,GAAG,OAAOgG,EAAG,QAAQ,CAAChB,IAAK,OAAShF,EAAGkG,YAAY,QAAQ,CAAE,CAAC,WAAY,WAAY,YAAYyF,SAAS3H,GAAIgC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAW,eAAiBpC,EAAI,SAAU,MAAQ4B,EAAIiY,cAAc7Z,GAAG,YAAc4B,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,MAAQ,CAAC4B,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAe,CAAC,YAAYT,SAAS3H,GAAIgC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAW,eAAiBpC,EAAI,SAAU,MAAQ4B,EAAIiY,cAAc7Z,GAAG,YAAc4B,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,SAAW,GAAG,MAAQ,IAAIgI,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAqB,SAANpI,EAAcgC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,yBAAyB,MAAQR,EAAIiY,cAAcK,KAAK,YAActY,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,MAAQ,CAAC4B,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAqB,QAANpI,EAAagC,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,gCAAgC,MAAQR,EAAIiY,cAAcG,WAAW,YAAcpY,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS/Z,GAAG,MAAQ,CAAC4B,EAAIgY,YAAY,SAAW,GAAG,MAAQ,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAMV,GAAIiI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAOV,EAAGkI,IAAME,WAAW,cAAqB,YAANpI,EAAiBgC,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,4BAA4B,MAAQR,EAAIiY,cAAcE,QAAQ,YAAcnY,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,WAAW,MAAQnY,EAAIqY,UAAU,MAAQ,CAACrY,EAAIgY,YAAY,YAAY,OAAO,aAAa,OAAO,SAAW,GAAG,MAAQ,IAAI3T,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIlB,MAAMiO,OAAS,GACjvF/M,EAAIlB,MAAMwZ,KAAO,GACjBtY,EAAIlB,MAAMyZ,IAAM,GAChBvY,EAAI0N,MAAMkN,YAAYnC,oBAAqB3X,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,+BAA+B,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKnD,aAAa,MAAK,GAAMqI,MAAM,CAACtH,MAAOkB,EAAIlB,MAAa,QAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,UAAWwH,IAAME,WAAW,mBAA0B,aAANpI,EAAkBgC,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,IAAI,UAAU,2BAA2B,MAAQR,EAAIiY,cAAcS,KAAK,SAAW1Y,EAAIY,EAAEsB,QAAQlC,EAAI2Y,SAAS,MAAQ3Y,EAAI2Y,QAAQ,YAAc3Y,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,UAAU,MAAQ,CAACnY,EAAIgY,YAAY,YAAY,OAAO,aAAa,OAAO,SAAW,GAAG,MAAQ,IAAI3T,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIlB,MAAMwZ,KAAO,GACztBtY,EAAIlB,MAAMyZ,IAAM,GAChBvY,EAAI0N,MAAMkN,YAAYnC,oBAAqB3X,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,8BAA8B,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKnD,aAAa,MAAK,GAAMqI,MAAM,CAACtH,MAAOkB,EAAIlB,MAAY,OAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,SAAUwH,IAAME,WAAW,kBAAkBxG,EAAIgF,MAAM,MAAK,MAAK5E,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,0BAA0B,MAAQR,EAAIiY,cAAcW,MAAM,YAAc5Y,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,SAAS,SAAW,GAAG,MAAQ,IAAI/R,MAAM,CAACtH,MAAOkB,EAAIlB,MAAW,MAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,QAASwH,IAAME,WAAW,kBAAkB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAAuB,IAArBN,EAAI6a,MAAMzhB,OAAcgH,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,MAAM,UAAU,0BAA0B,MAAQR,EAAIW,GAAG,6BAA6B,YAAcX,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,SAAS,MAAQ,CAACnY,EAAI6Y,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAIzS,MAAM,CAACtH,MAAOkB,EAAIlB,MAAW,MAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,QAASwH,IAAME,WAAW,iBAAiBpG,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,MAAM,UAAU,2BAA2B,MAAQR,EAAIW,GAAG,6BAA6B,YAAcX,EAAIkY,eAAelY,EAAIY,EAAElC,IAAIsB,EAAImY,QAAS,QAAS,SAAS,MAAQnY,EAAI6a,MAAM,YAAY,MAAM,aAAa,MAAM,SAAW,GAAG,MAAQ,GAAG,eAAe,IAAI/Z,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,6BAA6B,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKqJ,YAAY,MAAK,EAAM,YAAYnE,MAAM,CAACtH,MAAOkB,EAAIlB,MAAW,MAAEuH,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIlB,MAAO,QAASwH,IAAME,WAAW,kBAAkB,IAAI,GAAGxG,EAAIiQ,GAAG,UAAU,KAAK,CAAC,eAAiBjQ,EAAI+X,kBAAkB,IAAI,GAAG/X,EAAIgF,MAAM,IAC/0DtD,EAAkB,G,miCCuLtB,MAAM,EAAN,+CAEA,OACE8K,OAAQ,CACV,QAGE7K,MAAO,CACLmZ,YAAapO,OACbiO,YAAa,CACXze,KAAMkU,QACN9H,SAAS,GAEXxJ,MAAO,GACP+b,MAAO,CACL3e,KAAMkT,MACN9G,QAAS,IAAM,KAInB,OACE,MAAO,CACLwQ,YAAa,KACbC,YAAa,KACbC,OAAQ,sBACRC,YAAa,4BACblB,gBAAgB,EAChBmB,YAAa,GACbC,YAAa,KAIjBtX,SAAU,EAAZ,KACA,kCADA,IAGIuX,iBAAkB,IAAMC,EAAQC,YAAY,CAAhD,gBAEIC,eAAgB,IAAMC,EAAQF,YAAY,CAA9C,gBAEI7Q,QAAS,IAAMgR,EAAQzX,aAAa,GAEpC2W,QAAS5U,GAAMnD,EAAElC,IAAIqF,EAAI,gBAAiB,IAC9C,4DAEI2V,oBAAqB3V,GAAzB,UAA+B,EAA/B,mCAEIoU,QAASpU,GAAMA,EAAGsU,UAAUpO,KAAK7L,GAAKA,EAAEzB,OAASoH,EAAGjF,MAAMqZ,SAE1DF,cAAelU,GACTA,EAAGoU,QACEpU,EAAGoU,QAAQwB,OAEQ,IAAxB5V,EAAGsU,UAAUjf,QAAiB2K,EAAG0E,QAG9B1E,EAAGsU,UAAUpO,KAAK7L,GAAKA,EAAEzB,OAASoH,EAAG0E,QAAQ0P,SAASwB,OAFpD,GAKXtB,UAAWtU,GAAMA,EAAG2V,oBAAoBvX,OAAO/D,GAAK2F,EAAGqV,iBAAiB7W,IAAIqX,GAAMA,EAAGC,MAAM9T,SAAS3H,EAAEzB,OAEtG,mBAEE,MAAMod,EAAsB,iGAK5B,IAAIC,EAAepZ,EAAElC,IAAIuB,KAAM,0BAA2B8Z,GAG1D,MAAME,EAAWD,EAAajU,SAAS,cAAgB,aAAe,GACtEiU,EAAeA,EAAalK,QAAQ,YAAa,IACjDkK,EAAeA,EAAalK,QAAQ,aAAc,IAClDkK,EAAeA,EAAalK,QAAQ,KAAM,KAE1C,MAAMoK,EAAwBF,EAAalK,QAAQ,YAAa,sBAAsBmK,GAEtF,OAAOC,EAAsBvX,MAAM,KACzC,sBACA,QACQ,EAAR,wBACQ,EAAR,0CACA,OAKE,UAAF,iCACA,kCACA,+BACA,iDACA,iDACA,4BACA,qDACA,uDAEA,qDACA,wDAVA,IAcED,QAAS,CAKP,eAAeyX,EAAaC,GAC1B,MAAMhb,EAAM,GAAGa,KAAKgZ,eAAehZ,KAAK6a,eAAeX,KAAeC,IAEtE,OAAIna,KAAKoa,IAAIjb,GACJa,KAAKU,GAAGvB,GAGVa,KAAKU,GAAG,GAAGV,KAAKgZ,eAAehZ,KAAK6a,uBAAuBV,QC9SwR,I,6FCO5VvX,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAACgI,OAAA,KAAKyP,QAAA,KAAMvP,OAAA,KAAK8B,UAAA,KAAQ3B,aAAA,Q,oCC3BtD,W,kECAA,IAAInL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,QAAQ,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,sCAAsC,gBAAgB,GAAG,OAAS,GAAG,WAAW,GAAG,KAAO,GAAG,UAAU,UAAUM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACnU,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,UAAUJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,6DAA6DC,YAAY,CAAC,gBAAgB,OAAOC,MAAM,CAAC,IAAM,OAAO,UAAU,iCAAiC,UAAUA,GAAM,GAAO6D,GAAI,CAACjE,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,MAAMT,EAAIU,GAAGV,EAAIW,GAAG,iBAAiB,OAAOP,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,yCAAyCE,MAAM,CAAC,UAAU,6BAA6B,CAACJ,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKxI,aAAagH,EAAG,OAAO,CAACE,YAAY,sFAAsFC,YAAY,CAAC,mBAAmB,UAAU,MAAQ,mBAAmB,MAAQ,OAAO,cAAc,+BAA+B,CAACH,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,mBAAmB,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,MAAMX,EAAIU,GAAGV,EAAIW,GAAG,mBAAmBP,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,MAAQ,cAAc,wBAAwB,4BAA4B,CAACP,EAAIiB,GAAIjB,EAAQ,MAAE,SAASkB,EAAKuB,GAAO,MAAO,CAACrC,EAAG,OAAO,CAAChB,IAAK,OAASqD,EAAOlC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAK4E,KAAK,IAAI9F,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAAChB,IAAK,SAAWqD,GAAQ,CAACzC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI+a,sBAAsB7Z,EAAKe,OAAO,YAAW,QAAQ,IACx3CP,EAAkB,G,wBC6DtB,MAAM,EAAN,2BAEA,oCACEC,MAAO,CAILC,KAAM,CACJ1F,KAAMkT,MACN9G,QAAS,IAAM,KAInB,QACE,MAAMyS,EAAwBtI,GAAM,EAAxC,iDAEI,MAAO,CACLsI,4BClF+V,I,yDCOjWlY,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAACyL,QAAA,KAAMtD,SAAA,Q,2CCxBpC,IAAIjL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,YAAY,YAAYC,YAAY,CAAC,QAAU,cAAc,mBAAmB,eAAeC,MAAM,CAAC,UAAY,IAAI,MAAQR,EAAImM,MAAM,OAASnM,EAAIgb,SAAS,CAAGhb,EAAIib,SAG0Ejb,EAAIgF,KAHpE,CAAGhF,EAAIkb,SAAkJ9a,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQ,GAAG,eAAe,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC/hB,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,UAAUJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,sCAAsCE,MAAM,CAAC,MAAQ,UAAU,YAAYR,EAAImM,MAAM,OAASnM,EAAIgb,SAAS,UAAUxa,GAAM,GAAO6D,GAAI,CAACjE,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,aAAa,MAAK,EAAM,aAAa,CAACL,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,0CAHJP,EAAG,oBAAoB,CAACE,YAAY,qCAAqCE,MAAM,CAAC,MAAQR,EAAImM,MAAM,OAASnM,EAAIgb,OAAO,KAAO,YAGrE5a,EAAG,oBAAoB,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,eAAe,IAAI,QAAU,GAAG,IAAMR,EAAImb,aAAa,aAAanb,EAAIgb,OAAO,YAAYhb,EAAImM,MAAM,IAAM,aAAa9H,GAAG,CAAC,KAAO,SAASC,GAAQtE,EAAIib,UAAW,GAAM,MAAQ,SAAS3W,GAAQtE,EAAIkb,UAAW,OAAU,IAAI,IAC3mBxZ,EAAkB,G,msBC8CtB,OAIE3D,KAAM,kBACN4D,MAAO,CACLyZ,QAAS,CAAb,aACIjP,MAAO,CACLjQ,KAAMuQ,OACN4O,UAAU,GAEZL,OAAQ,CACN9e,KAAMuQ,OACN4O,UAAU,IAIdziB,KAAM,KAAM,CACVqiB,UAAU,EACVC,UAAU,IAEZrZ,SAAU,EAAZ,KACA,wCADA,IAGIsZ,aAAcpX,GACPA,EAAGqX,QAGD,qBAAqBrX,EAAGqX,cAFtB,QC5EiW,I,qHCQ5WvY,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAACC,QAAA,KAAMwY,gBAAA,OAAgB5H,OAAA,KAAK1I,SAAA,KAAO8B,kBAAA,KAAgB3B,WAAA,Q,mMCxBhF,MAAM9H,EAAc,WACdC,GAAK,IAAG,cAAqBC,OAGV,0BACrB,MAAO,CACL2C,UAAW,EACXT,gBAAiB,GAID,qBAAC7M,GACnB,GAAIA,EAAKiN,SAAU,CACjB,MAAMiD,EAAWC,KAAKC,MAAMpQ,EAAKiN,UAEjC5F,KAAK2U,iBAAmBjP,KAAKC,OAAOkD,EAASvG,IAAIhE,GAAKA,EAAEuH,MAExD7F,KAAK0U,WAAa1U,KAAK2U,sBAGvBhc,EAAKiN,SAAW,GAEhB5F,KAAK2U,iBAAmB,EAS1B,OANIhc,EAAKyb,aACPzb,EAAKyb,WAAa,IAAIC,KAAK1b,EAAKyb,aAE9Bzb,EAAK2b,aAAe3b,EAAK4b,oBAC3BvU,KAAKwU,wBAA0B7b,EAAK4b,kBAAkB1E,QAAQlX,EAAK2b,YAAa,IAAIG,QAE/E9b,EAGI,gBAEX,OAAOqH,KAAK0U,WAGD,cAAC7V,GAERA,GAASmB,KAAKwF,gBAEhBxF,KAAK0U,WAAa1U,KAAKwF,gBAIzBxF,KAAK0U,WAAa7V,EAGD,sBAEjB,OAAOmB,KAAK2U,iBAGK,oBAAC9V,GAElBmB,KAAK2U,iBAAmB9V,EAGH,0BACrB,MAAuB,UAAhB+V,OAAKpH,OAAqBxN,KAAKsU,YAActU,KAAK6U,eAG3B,mCAC9B,MAAuB,UAAhBD,OAAKpH,OAAqBxN,KAAK8U,qBAAuB9U,KAAK+U,wBAGvC,gCAC3B,MAAuB,UAAhBH,OAAKpH,OAAqBxN,KAAKwU,wBAA0BxU,KAAKgV,qBAG1C,gCAC3B,MAAuB,UAAhBJ,OAAKpH,OAAqBxN,KAAKmF,kBAAkB0K,QAAQ,KAAM,IAAM7P,KAAKiV,qBAAqBpF,QAAQ,KAAM,IAGnF,sCACjC,MAAuB,UAAhB+E,OAAKpH,OAAqBxN,KAAKkF,wBAAwB2K,QAAQ,KAAM,IAAM7P,KAAKkV,2BAA2BrF,QAAQ,KAAM,IAG1G,2BACtB,OAAK7P,KAAKmV,UAIHP,OAAK9V,EAAG,+BAA8BkB,KAAKmV,UAAUtF,QAAQ,YAAa,IAAI4E,QAH5E,MAjFF,gBACU,UADV,GAwFI,cACblR,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,kECrGzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,eAAe+D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,oBAAoB,CAAEvM,EAAkB,eAAEI,EAAG,MAAM,CAAEJ,EAAiB,cAAEI,EAAG,eAAe,CAACG,YAAY,CAAC,SAAW,WAAW,IAAM,OAAO,KAAO,MAAM,UAAY,oBAAoBC,MAAM,CAAC,UAAY,GAAG,KAAO,GAAG,WAAa,GAAG,eAAe,UAAU4F,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAIub,WAAWjV,GAAKE,WAAW,eAAe,CAACpG,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,WAAWC,MAAM,CAAC,UAAY,GAAG,OAAQ,EAAM,MAAQ,CAAC,KAAK,MAAMuF,SAAS/F,EAAIwb,SAASC,WAAW1d,MAAQ,GAAK,IAAI,QAAS,EAAM,eAAe,WAAW,CAACqC,EAAG,OAAO,CAACE,YAAY,iCAAiCC,YAAY,CAAC,YAAY,UAAUH,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kBAAkB,SAAUX,EAAY,SAAEI,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,WAAWC,MAAM,CAAC,UAAY,GAAG,OAAQ,EAAK,MAAQ,CAAC,KAAK,MAAMuF,SAAS/F,EAAIwb,SAASC,WAAW1d,MAAQ,GAAK,IAAI,QAAS,EAAM,eAAe,WAAW,CAACqC,EAAG,OAAO,CAACE,YAAY,uBAAuBC,YAAY,CAAC,YAAY,UAAUH,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,gBAAgB,SAASX,EAAIgF,MAAM,GAAGhF,EAAIgF,MAAOhF,EAAI0b,cAAgB1b,EAAI4B,KAAK+Z,gBAAkB,IAAKvb,EAAG,sBAAsB,CAACI,MAAM,CAAC,OAAS,IAAI,KAAOR,EAAImM,MAAM,MAAQ,EAAE,MAAQnM,EAAI4B,KAAK+Z,eAAe,gBAAoB3b,EAAI0b,eAAgB1b,EAAI4B,KAAK+Z,gBAA8C,MAA5B3b,EAAI4B,KAAK+Z,gBAAwB,MAAQ,YAAY,EAAG3b,EAAI4b,gBAAkB5b,EAAI4B,KAAK+Z,gBAA8C,MAA5B3b,EAAI4B,KAAK+Z,eAAwBvb,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qBAAqB,OAAQX,EAAI4b,iBAAmB5b,EAAI0b,aAActb,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mBAAmB,OAAOP,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGiF,KAAKkW,MAAM7b,EAAI4B,KAAK+Z,iBAAiB,SAAW3b,EAAI0b,cAAiB1b,EAAI4B,KAAK+Z,eAA4M3b,EAAIgF,KAAhM5E,EAAG,oBAAoB,CAACgB,MAAM,CAAE,sBAAuBpB,EAAI0b,cAAelb,MAAM,CAAC,GAAM,4BAA8BR,EAAI8b,SAAU,KAAO,SAAS,MAAQ9b,EAAImM,MAAM,OAASnM,EAAIgb,UAAmB5a,EAAG,uBAAuB,CAACA,EAAG,MAAMJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACkG,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAOkB,EAAgB,aAAEwG,WAAW,iBAAiBK,IAAI,cAAcrG,MAAM,CAAC,GAAM,gBAAkBR,EAAI8b,WAAY,MAAM9b,EAAIsM,QAAO,GAAOtM,EAAIsN,gBAAgB,GAAItN,EAAiB,cAAEI,EAAG,MAAM,CAAGJ,EAAI+b,YAAyH/b,EAAIgF,KAAhH,CAAC5E,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQR,EAAImM,MAAM,OAASnM,EAAIgb,OAAO,KAAO,YAAqB5a,EAAG,oBAAoB,CAACA,EAAG,MAAMJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACF,IAAI,cAAcvG,YAAY,OAAOgB,MAAM,CAAE,YAAatB,EAAImM,MAAQ,KAAM,aAAcnM,EAAIgb,OAAS,KAAM,YAAahb,EAAImM,MAAQ,MAAO3L,MAAM,CAAC,IAAMR,EAAIgc,QAAQ,IAAM,aAAa3X,GAAG,CAAC,KAAO,SAASC,GAAQtE,EAAI+b,aAAc,KAAS,MAAM/b,EAAIsM,QAAO,GAAOtM,EAAIsN,gBAAgB,GAAGtN,EAAIgF,QACv5FtD,EAAkB,G,+iCCoHtB,OACE3D,KAAM,cACN4D,MAAO,CACLC,KAAM,CACJ1F,KAAM7C,QAER8S,MAAO,CACLjQ,KAAMuQ,OACN4O,UAAU,GAEZL,OAAQ,CACN9e,KAAMuQ,OACN4O,UAAU,GAEZY,SAAU,KACVC,cAAe9L,QAEfwL,eAAgB,CAApB,yBACIO,cAAe,CAAnB,0BAEE,OACE,MAAO,CACLC,aAAc,KACdC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVb,cAAc,EACdI,SAAU,OAAhB,OAAgB,GACVP,YAAY,EACZQ,aAAa,IAGjBla,SAAU,EAAZ,KACA,wCADA,IAEI2a,WAAYzY,GAAMA,EAAGkY,UAAYlY,EAAG2J,MAAM+O,YAC1CT,QAASjY,IACP,MAAM2Y,EAAO,+BACb,IAAIC,EAAW,GAAG5Y,EAAGnC,KAAKgb,kBAAkBC,iBAAiB9Y,EAAGwX,WAAa,WAAa,eAI1F,OAHIxX,EAAGoY,gBACLQ,EAAc5Y,EAAGnC,KAAKgb,kBAAkBC,cAA7B,QAEN,GAAGH,YAAeC,KAAY5Y,EAAG+Y,eAAe/Y,EAAGnC,KAAKK,aAEjE8a,SAAUhZ,IACR,MAAMiZ,EAAUpc,EAAElC,IAAIqF,EAAGnC,KAAM,eAAW5D,IAAc4C,EAAElC,IAAIqF,EAAGnC,KAAM,4BAAwB5D,GAC/F,MAAmB,YAAZgf,KAGXlP,MAAO,CACL,eAAJ,oCACA,UACA,SACA,gBAHA,IAMI,aAAJ,iCACA,yBACA,SACA,eAHA,IAKI,QACE7N,KAAKgd,YAEP,SACEhd,KAAKgd,aAIT,UAAF,iCACA,yBACA,SACA,gBAHA,IAME,gBACMhd,KAAKkc,eAGTlc,KAAKid,kBAEPxa,QAAS,CACP,OAAJ,iCACA,mBACA,OAEA,mBAEA,WACA,mBACA,KACA,MAEA,wEACA,8BACA,sDACA,qCAEA,gDAEA,oBACA,EACQya,EACAC,EACAC,GAGR,uBACA,oBACA,oBACA,kBAGA,sBAEA,iBAEA,iBACA,iBAGA,oBAEA,0CAKA,cAEQ,EAAR,QACA,IACU,EAAV,qBACU,EAAV,yBACU,EAAV,yBACU,EAAV,yBAEU,MAAMC,GAAM,IAAI,EAA1B,4BACgBC,EAASD,EAAIE,UAAU,IAAI,EAA3C,MAEU,EAAV,qBACU,EAAV,qBACU,EAAV,qBAEU,EAAV,kBACY,GAAIC,aAAiB,EAAjC,OACcA,EAAMC,SAAWC,EACjBF,EAAMC,SAASE,KAAO,EAApC,UAEqC5f,IAAnByf,EAAMI,UAAwB,CAChC,MAAMC,EAAQ,IAAI,EAAlC,iBACsBC,EAAO,IAAI,EAAjC,KACA,EACA,YAAkB,MAAlB,KAGgBA,EAAKC,SAASC,GAAKV,EAAOU,EAC1BF,EAAKC,SAASE,GAAKX,EAAOW,EAC1BH,EAAKC,SAASG,GAAKZ,EAAOY,EAE1BJ,EAAKK,MAAMxS,IAAI,GAAK,GAAK,IACzB,EAAhB,gBAKU,EAAV,kBACU,EAAV,eACY,EAAZ,kBAGU,EAAV,mBAEU,EAAV,4CACU,EAAV,WAEA,KACA,IACUlM,QAAQjC,MAAMA,OAhGxB,IAoGI,eACEwC,KAAKsc,SAAW,IAAI8B,EAA1B,2CACMpe,KAAKsc,SAAS+B,YAAc,GAC5Bre,KAAKsc,SAASgC,UAAY,GAC1Bte,KAAKsc,SAASiC,QAAS,EACvBve,KAAKsc,SAASkC,OAAQ,EACtBxe,KAAKsc,SAASmC,cAAe,EAC7Bze,KAAKsc,SAASoC,qBAAuB,GAErC1e,KAAKsc,SAASqC,KAAO,CAAC,GAAI,GAAI,KAEhC,WACM3e,KAAKkc,eAGJlc,KAAK4e,WAGV5e,KAAK6e,OAAOC,OAAS9e,KAAKkM,MAAQlM,KAAK+a,OAEvC/a,KAAK6e,OAAOE,yBACZ/e,KAAK4e,SAASI,QAAQhf,KAAKkM,MAAOlM,KAAK+a,QACnC/a,KAAKic,eACPjc,KAAKsc,SAAS2C,iBAGlB,kBAAkBJ,EAAQvf,EAAQ4f,EAAQC,GACxCD,EAASA,GAAU,KAEnB,MAAME,EAAc,IAAI,EAA9B,KAGMA,EAAYC,cAAc/f,GAE1B,MAAMge,EAAS8B,EAAY7B,UAAU,IAAI,EAA/C,MAEY+B,EAAOF,EAAYG,QAAQ,IAAI,EAA3C,MAGYC,EAAS9Z,KAAKwE,IAAIoV,EAAKtB,EAAGsB,EAAKrB,EAAGqB,EAAKpB,GACvCuB,EAAMZ,EAAOY,KAAO/Z,KAAKga,GAAK,KAEpC,IAAIC,EAAiBja,KAAKiN,IAAI6M,EAAS,EAAI9Z,KAAKka,IAAU,EAANH,IAEpDE,GAAkBT,EAEdC,GACFN,EAAOd,SAASC,EAAItY,KAAKma,IAAIV,GAASQ,EACtCd,EAAOd,SAASG,EAAIxY,KAAKoa,IAAIX,GAASQ,GAEtCd,EAAOd,SAASG,EAAIyB,EAGtB,MAAMI,EAAOX,EAAYzZ,IAAIuY,EACvB8B,EAAkB,EAA9B,WAEMnB,EAAOoB,IAAwB,EAAlBD,EACbnB,EAAOE,yBAEPF,EAAOqB,OAAO5C,IAEhB,iBAEE,GAAItd,KAAKoc,MACP,IAAK,IAAInjB,EAAI+G,KAAKoc,MAAM+D,SAAShnB,OAAS,EAAGF,GAAK,EAAGA,IACnD+G,KAAKoc,MAAMnU,OAAOjI,KAAKoc,MAAM+D,SAASlnB,IAI1C,MAAMmnB,EAAWpgB,KAAKuc,WACtB,GAAI6D,EACF,MAAOA,EAASC,WACdD,EAASxjB,YAAYwjB,EAASC,YAI9BrgB,KAAK4e,WACP5e,KAAK4e,SAAS0B,UAEdtgB,KAAK4e,SAAS2B,oBAEhBvgB,KAAKoc,MAAQ,KACbpc,KAAK6e,OAAS,KACd7e,KAAK4e,SAAW,KAChB5e,KAAKsc,SAAW,MAElB,iBAAiB0B,EAAGC,EAAGC,EAAG5c,EAAOkf,GAC/B,MAAMC,EAAmB,IAAI,EAAnC,UACMA,EAAiB1C,SAASpS,IAAIqS,EAAGC,EAAGC,GACpCuC,EAAiBP,OAAO,EAAG,EAAG,GAC9BlgB,KAAK6e,OAAO6B,IAAID,GAEhBA,EAAiBE,YAAa,EAE9B,MAAMviB,EAAI,EACVqiB,EAAiBG,OAAO/B,OAAOgC,MAAQziB,EACvCqiB,EAAiBG,OAAO/B,OAAOxO,MAAQjS,EACvCqiB,EAAiBG,OAAO/B,OAAOiC,IAAM1iB,EACrCqiB,EAAiBG,OAAO/B,OAAOkC,QAAU3iB,EAEzCqiB,EAAiBG,OAAO/B,OAAOmC,KAAO,EACtCP,EAAiBG,OAAO/B,OAAOoB,IAAM,EAErCQ,EAAiBG,OAAOK,QAAQ/U,MAAQ,GACxCuU,EAAiBG,OAAOK,QAAQlG,OAAS,GAEzC0F,EAAiBG,OAAOM,KAAO,GAEjC,eACMlhB,KAAK6e,SAEP7e,KAAK6e,OAAO6B,IAAI,IAAI,EAA5B,uBACQ1gB,KAAKmhB,iBAAiB,EAAG,EAAG,EAAG,SAAU,QAG7C,UAEE,GAAInhB,KAAKoc,OAASpc,KAAKohB,QAAS,CAG9B,GAFAC,sBAAsBrhB,KAAKohB,SAEvBphB,KAAKic,cACPjc,KAAKsc,SAASgF,aACxB,CAEU,MAAMnC,EAAqB,MAAb9K,KAAKoD,MACnBzX,KAAK6e,OAAOd,SAASC,EAAsB,GAAlBtY,KAAKma,IAAIV,GAClCnf,KAAK6e,OAAOd,SAASG,EAAsB,GAAlBxY,KAAKoa,IAAIX,GAElCnf,KAAKuhB,kBAAkBvhB,KAAK6e,OAAQ7e,KAAKqc,KAAM,IAAK8C,GAEtDnf,KAAK4e,SAAS9e,OAAOE,KAAKoc,MAAOpc,KAAK6e,YC5asT,I,yGCQhWjc,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK8W,aAAA,KAAWnG,gBAAA,OAAgBoG,oBAAA,KAAkB5U,kBAAA,KAAgB6U,kBAAA,U,qBC7BhG,MAAMC,EAAQ,CACZC,QAAS,UACTC,KAAM,OACNC,QAAS,UACTC,MAAO,SAGTlnB,EAAOD,QAAU,CACf+mB,U,gECRF,IAAI7hB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAIsM,OAAY,MAAElM,EAAG,WAAWJ,EAAI8G,GAAG9G,EAAI+G,GAAG,GAAG,WAAW/G,EAAIsM,QAAO,GAAOtM,EAAIsN,YAAY,CAAClN,EAAG,SAAS,CAACI,MAAM,CAAC,YAAYR,EAAIsM,OAAO,aAAa,QAAUtM,EAAIiiB,YAAY,CAAEjiB,EAAIkiB,OAAY,MAAE9hB,EAAG,eAAe,CAACE,YAAY,gDAAgD,CAACN,EAAIiQ,GAAG,SAAS7P,EAAG,QAAQ,CAACG,YAAY,CAAC,MAAQ,QAAQC,MAAM,CAAC,KAAO,GAAG,SAAW,GAAG,UAAU,uBAAuB6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,mBAAmB,CAACnM,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAIS,GAAG,kBAAkB,IAAI,GAAGT,EAAIgF,KAAMhF,EAAIkiB,OAAc,QAAE9hB,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACN,EAAIiQ,GAAG,YAAY,GAAGjQ,EAAIgF,KAAMhF,EAAIkiB,OAAOC,SAAWniB,EAAI9D,OAAS8D,EAAIoiB,MAAMC,OAAQjiB,EAAG,iBAAiB,CAACE,YAAY,4BAA4B,CAACN,EAAIiQ,GAAG,WAAU,WAAW,MAAO,CAAEjQ,EAAI9D,OAAS8D,EAAIoiB,MAAMC,OAAQ,CAAE,CAACriB,EAAIoiB,MAAME,gBAAiBtiB,EAAIoiB,MAAMG,cAAcxc,SAAS/F,EAAI9D,MAAOkE,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,QAAUR,EAAIiiB,UAAU,UAAU,mBAAmB,SAAWjiB,EAAIiiB,WAAajiB,EAAIwiB,cAAcne,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,eAAe,CAACvM,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIyiB,cAAgBziB,EAAIW,GAAG,mBAAmB,OAAOX,EAAIgF,KAAMhF,EAAI9D,OAAS8D,EAAIoiB,MAAMG,aAAcniB,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,GAAG,UAAU,uBAAuB,SAAWR,EAAIiiB,WAAajiB,EAAI0iB,iBAAiB,UAAY,IAAIre,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,mBAAmB,CAACvM,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI2iB,kBAAoB3iB,EAAIW,GAAG,kBAAkB,OAAOX,EAAIgF,MAAMhF,EAAIgF,UAAS,GAAGhF,EAAIgF,MAAM,IAAI,GAAGhF,EAAIgF,MACnoDtD,EAAkB,GCqEtB,MAAM0gB,EAAQ,CACZG,aAAc,eACdD,gBAAiB,kBACjBD,OAAQ,UAGV,OACE1gB,MAAO,CACLzF,KAAM,CACJA,KAAMwQ,OACN2O,UAAU,EACV/S,QAAS,IAAM8Z,EAAMC,OACrBO,UAAW1mB,GAAQ7C,OAAOwpB,OAAOT,GAAOrc,SAAS7J,IAEnD+lB,UAAW7R,QACXoS,aAAcpS,QACdqS,aAAc/V,OACdiW,iBAAkBjW,OAClBgW,iBAAkBtS,SAEpBxX,KAAM,KAAM,CACVwpB,WC3F2V,I,6FCO3Vvf,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAa2F,UAAA,OAAUC,WAAA,OAAWsS,UAAA,KAAQ3f,QAAA,Q,+GC7BpE,GACb,IAEA,cACA,YACA,cACA,cAEA,cACA,YACA,cACA,cAEA,iBACA,eACA,iBACA,iBAEA,eACA,aACA,eACA,eAEA,eACA,aACA,eACA,eAEA,iBACA,eACA,iBACA,iBAEA,aACA,WACA,aACA,aACA,eACA,aACA,eACA,eACA,gBACA,cACA,gBACA,iB,+/BCrCF,MAAM4f,EAAqB,KACzB,MAAMC,EACJhX,aAAayB,QACV7N,OAAOqjB,UAAUC,cACjBtjB,OAAOqjB,UAAUE,UACjB,QAEL,MAA0B,OAAlBH,GAA4C,OAAlBA,EAA0B,KAAO,SAG/D1X,EAAQ,CACZ/J,MAAO,UACP6hB,MAAO,WACPC,uBAAwB,yBACxBhT,SACA5C,OAAQsV,IACRO,QAASC,SACTC,SAAU,GACVxb,aAAc,KACdyb,cAAe,MAGXC,EAAS,oBAAG,UAAOnb,EAAP,GAAqD,IAAnCiF,EAAmC,EAAnCA,MAAOC,EAA4B,EAA5BA,OAAQkW,EAAoB,EAApBA,cACjDpb,EAAQqb,OAAO,aAAcnW,GAC7BD,EAAMC,OAASA,EACf,MAAMoW,EAA6B,OAAXpW,EAAkBqW,IAAWC,IAIrD,GAHA9c,OAAOwG,OAAOoW,GACdG,OAAQC,UAAUC,KAAKC,QAAU1W,GAE5BkW,EACH,OAGF,MAAMS,EAAS7b,EAAQ8b,UAAUC,KAAK1V,KAAKrE,IACrCqE,QAAa+U,EAAcY,IAAIC,KAAKxiB,aAAaoiB,GAEnDxV,EAAKnB,SAAWA,IAIpBmB,EAAKnB,OAASA,EACdmB,EAAKhB,WAnBQ,wDAsBA,cACbpK,OAAQ,OAGRI,MAAO,CACL6gB,IAAK,CACHC,YAAY,EAEZpZ,QAEAqZ,QAAS,CACPC,WAAYpqB,GAAKA,EAAE8oB,QACnBtb,aAAcxN,GAAKA,EAAEwN,aACrB6c,uBAAwBrqB,GACjBA,EAAEwN,cAAgD,IAAhCxN,EAAEwN,aAAaqC,MAAMjR,OAGrCoB,EAAEwN,aAAaqC,MAAMjR,OAFnB,MAMb0rB,UAAW,CACTC,SAAU3Z,eAAME,GAEhB0Z,UAAWxZ,eAAW,SACtByZ,UAAWzZ,eAAW,SAEtB0Z,WAAY1Z,eAAW,UAEvB2Z,WAAY,CAACC,EAAS3Z,KACpB2Z,EAAQ5B,SAAS9pB,KAAK+R,IAGxB4Z,UAAWD,IACTA,EAAQ5B,SAAS5gB,OAGnB0iB,wBAAyB,CAACF,EAAS3S,KACjC2S,EAAQ5B,SAASlpB,OAAO8qB,EAAQ5B,SAASjhB,IAAIpE,GAAKA,EAAEsU,IAAI3I,QAAQ2I,GAAK,IAGvE8S,kBAAmB,CAACH,EAASI,KAC3BJ,EAAQpd,aAAewd,GAGzBC,oBAAqB,CAACL,EAASM,KAC7BN,EAAQ3B,cAAgBiC,IAI5BvD,QAAS,CACPwD,SAASpd,EAAShH,GAChBgH,EAAQqb,OAAO,YAAariB,IAG9BqkB,SAASrd,EAASsd,GAChBtd,EAAQqb,OAAO,YAAaiC,IAG9BnC,UAAUnb,EAAD,GAA4C,IAAhCiF,EAAgC,EAAhCA,MAAOC,EAAyB,EAAzBA,OAAQkW,EAAiB,EAAjBA,cAClCD,EAAUnb,EAAS,CAAEiF,QAAOC,OAAQA,GAAU,QAASkW,mBAGzDmC,aAAavd,EAAD,GAAoC,IAAxBiF,EAAwB,EAAxBA,MAAOmW,EAAiB,EAAjBA,cAC7B,MAAMlW,EAAkC,OAAzBlF,EAAQ+C,MAAMmC,OAAkB,QAAU,KACzDiW,EAAUnb,EAAS,CAAEiF,QAAOC,OAAQA,GAAU,QAASkW,mBAGzDoC,UAAUxd,EAASyd,GACjBzd,EAAQqb,OAAO,aAAf,OAAkCoC,GAAlC,IAAyCvT,GAAI7R,EAAE8Q,eAGjDuU,SAAS1d,GACPA,EAAQqb,OAAO,cAQjBsC,qBAAqB3d,EAASkK,GAC5BlK,EAAQqb,OAAO,0BAA2BnR,IAG5C0T,iBAAkB5d,IACXA,EAAQoc,QAAQ3c,cACnBO,EAAQqb,OAAO,oBAAqB,IAAIwC,OAAO7B,IAAI8B,OAG9C9d,EAAQoc,QAAQ3c,cAGzBse,kBAAmB/d,IACjBA,EAAQqb,OAAO,oBAAqB,OAGtC2C,iBAAkB,CAAChe,EAASmd,KAC1Bnd,EAAQqb,OAAO,sBAAuB8B,S,kOChJhD,MAAMriB,EAAc,cAEdC,GAAK,IAAG,cAAwBC,OAGb,0BACrB,MAAO,CACL8G,MAAO,GACPmc,QAAS,GACTC,QAAS,GACTC,YAAa,GACbC,IAAK,KAIW,wBAIF,qBAChB,OAAO/lB,EAAElC,IAAI0nB,OAAO7B,IAAI9K,QAAQzX,aAAa,GAAI,iBAAkB,KAGzD,eACV,OAAO4kB,IAAS3mB,KAAKoK,MAAMwc,OAAO,CAACC,EAAO5lB,IAAS4lB,EAAMnG,IAAIzf,EAAK6lB,UAAWH,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,kBAAoB,CAAEsgB,OAAQ/mB,KAAKyG,iBAGjI,eACV,OAAOzG,KAAKgnB,SAASrgB,SAAS3G,KAAK0mB,KAGrCO,QAAQzU,EAAIkU,EAAKQ,GACf,MAAM9c,EAAQpK,KAAKoK,MAAMlI,OAAOjB,GAAQA,EAAKqJ,MAAQkI,GACjDpI,EAAMjR,OACRiR,EAAM,GAAG3E,OAASihB,EAIpB1mB,KAAKoK,MAAM3Q,KAAK,IAAI0tB,OAAQ3U,EAAIkU,EAAKQ,IAGvCE,WAAW5U,GACT,MAAMhQ,EAAQxC,KAAKoK,MAAMC,UAAUpJ,GAAQA,EAAKqJ,MAAQkI,GACxDxS,KAAKoK,MAAM/P,OAAOmI,EAAO,KAzClB,gBACU,aADV,GA6CI,cACbe,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,uLCxDzC,MAAMD,EAAc,YAEdC,GAAK,IAAG,cAAsBC,OAGX,0BACrB,MAAO,CACL+jB,OAAO,EACPC,SAAU,MANL,gBACU,WADV,GAWI,cACb/jB,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,QACAkkB,SACE,MAAO,CACLlc,MAAO,CACLmc,oBAAqB,OAEvB9C,QAAS,CACP+C,uBAAwBpc,GAASA,EAAMmc,qBAEzC3C,UAAW,CACT6C,uBAAwB,CAACrc,EAAOmH,KAC9BnH,EAAMmc,oBAAsBhV,GAAM,QAGtC0P,QAAS,OAKfve,MAAOC,eAAiB,CAAER,cAAaC,Y,2CCvCzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,cAAc,CAACA,EAAG,SAAS,CAACA,EAAG,cAAc,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMR,EAAI4nB,eAAe,IAAI,IAAI,IACzMlmB,EAAkB,GCYtB,GACE3D,KAAM,YACN4D,MAAO,CACLimB,SAAUlb,QAEZhK,QAAS,IClBuV,I,qECO9VG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACC,QAAA,KAAMyN,UAAA,OAAUzF,aAAA,Q,2CCzB9C,IAAI/K,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,qBAAqB,CAACI,MAAM,CAAC,UAAY,KAAK,CAACJ,EAAG,oBAAoB,CAACA,EAAG,2BAA2B,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAIX,EAAIY,EAAElC,IAAIsB,EAAI6nB,eAAe,GAAI,WAAW,OAAOznB,EAAG,WAAW,CAACG,YAAY,CAAC,UAAU,OAAOC,MAAM,CAAC,KAAO,GAAG,KAAO,GAAG,MAAQ,GAAG,SAAW,GAAG,SAAW,GAAG,MAAQR,EAAIW,GAAG,iBAAiB,MAAQ,CAACX,EAAIW,GAAG,iBAAkBX,EAAIW,GAAG,oBAAoB,eAAe,IAAI0D,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqB1G,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC3vB,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,OAAOE,MAAM,CAAC,UAAU,GAAG,KAAO,KAAK,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,qCAAqC,CAACL,EAAG,OAAO,CAACJ,EAAIS,GAAG,qBAAqBgB,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAS,MAAEqG,SAAS,SAAUC,GAAMtG,EAAI8nB,MAAMxhB,GAAKE,WAAW,YAAY,GAAGpG,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAI6nB,eAAe/nB,MAAM,IAAI,SAASoB,GAAM,OAAOd,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,OAAO,CAACf,EAAG,KAAK,CAACE,YAAY,oCAAoCC,YAAY,CAAC,MAAQ,YAAY,CAACH,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKG,MAAM,OAAOrB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKC,QAAQ,MAAM,GAAGf,EAAG,KAAK,CAACE,YAAY,mCAAmCC,YAAY,CAAC,aAAa,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAmB,UAAfV,EAAIyN,QAA0C,MAAlBvM,EAAK6mB,SAAoB/nB,EAAIW,GAAGO,EAAKpC,OAASoC,EAAK6mB,UAAU,cAAa,KAAKtmB,OAAM,QAAW,IAAI,IAAI,IAAI,IACvjCC,EAAkB,G,+sBCsEtB,MAAM,EAAN,uBACA,OACE3D,KAAM,kBACN4D,MAAO,CACLC,KAAMvI,QAER,OACE,MAAO,CACLyuB,MAAO,SACPhmB,UAAW,KAGfD,SAAU,EAAZ,KACA,kCADA,IAEI,iBACE,IAAIC,EAAY,GACZ7B,KAAK2B,OACPE,EAAYlB,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,KAGpEH,EADElB,EAAEsB,QAAQJ,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,sCACA,CAAU,MAAV,oDAAU,MAAV,KACA,CAAU,MAAV,yCAAU,MAAV,KACA,CAAU,MAAV,2CAAU,MAAV,KACA,CAAU,MAAV,6CAAU,MAAV,KACA,CAAU,MAAV,6CAAU,MAAV,KACA,CAAU,MAAV,wCAAU,MAAV,MAGoBA,EAAUK,OAAOC,GAA4B,OAAnBA,EAAMC,UACpD,2DACA,6BACA,SAAU,MAAV,gCAAU,MAAV,aAAU,SAAV,mBAGM,MAAMC,EAAQ,CACpB,0BACA,sBACA,gBACA,6BACA,cACA,mBAEM,OAAOR,EAAUS,IAAI,CAACC,EAAKC,IAAU,EAA3C,4BCtH6W,I,0JCQzWI,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAahC,IAAkBA,EAAW,CAACC,QAAA,KAAMC,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,KAAiBC,QAAA,KAAM0J,UAAA,KAAQzJ,eAAA,KAAa+H,WAAA,Q,uLC7B7I,MAAM9H,EAAc,aAEdC,GAAK,IAAG,cAAwBC,OAGb,0BACrB,MAAO,KAJA,gBACU,aADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,2CCrBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,OAAO,CAACE,YAAY,cAAc,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIojB,OAAO,OAAOhjB,EAAG,gBAAgB,CAACI,MAAM,CAAC,IAAM,IAAI4F,MAAM,CAACtH,MAAOkB,EAAS,MAAEqG,SAAS,SAAUC,GAAMtG,EAAIoG,MAAME,GAAKE,WAAW,UAAUxG,EAAIiB,GAAIjB,EAAQ,MAAE,SAASgoB,EAAO9uB,GAAG,OAAOkH,EAAG,UAAU,CAAChB,IAAIlG,EAAEsH,MAAM,CAAC,MAAQwnB,EAAO,MAAQA,QAAY,IAAI,IACnbtmB,EAAkB,GCiBtB,GACEC,MAAO,CACT,gBAEE/I,KAAM,KAAM,CACVwN,MAAO,MCvBiW,I,qECOxWvD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKod,SAAA,KAAOC,cAAA,Q,2CCzB1C,IAAInoB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAY,SAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQJ,EAAI+G,GAAG,CAACzG,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,UAAY,GAAG,QAAUR,EAAImoB,aAAa,MAAQ,WAAW9jB,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIooB,eAAc,KAAQ,QAAQpoB,EAAIqoB,aAAY,GAAO,CAACjoB,EAAG,SAASJ,EAAI+G,GAAG,CAACvG,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,SAASR,EAAIsoB,iBAAgB,GAAO,CAACtoB,EAAIS,GAAG,uBAAuBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,MAAM,IAAI,GAAG,CAACP,EAAG,QAAQJ,EAAI+G,GAAG,CAACvG,MAAM,CAAC,UAAY,GAAG,KAAO,GAAG,WAAaR,EAAI4B,KAAKgb,mBAAqB5c,EAAI4B,KAAKK,MAAM,QAAUjC,EAAImoB,aAAa,MAAQ,WAAW9jB,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,KAAS,QAAQ3E,EAAIqoB,aAAY,GAAO,CAACjoB,EAAG,SAASJ,EAAI+G,GAAG,CAACvG,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,SAASR,EAAIsoB,iBAAgB,GAAO,CAACtoB,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,MAAM,IAAKX,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,SAAS,kBAAkBR,EAAIuoB,YAAY,OAAQ,EAAK,iBAAiBvoB,EAAIW,GAAG,iBAAiB,aAAaX,EAAIwoB,oBAAsBxoB,EAAIyoB,uBAAuBpkB,GAAG,CAAC,WAAW,SAASC,GAAQ,OAAOtE,EAAI0oB,UAAU1oB,EAAI4B,OAAO,eAAe,SAAS0C,GAAQtE,EAAI2E,SAAU,EAAM3E,EAAI2oB,cAAc7nB,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,UAAU,GAAGX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,KAAKc,OAAM,IAAO,MAAK,EAAM,SAAS2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIooB,cAAc,UAAU,QAAQhoB,EAAG,sBAAsB,CAACG,YAAY,CAAC,mBAAmB,UAAU,UAAU,iBAAiBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAiB,cAAEqG,SAAS,SAAUC,GAAMtG,EAAIooB,cAAc9hB,GAAKE,WAAW,kBAAkB,CAACpG,EAAG,MAAM,CAACyG,IAAI,qBAAqBtG,YAAY,CAAC,OAAS,sBAAsB,CAACH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIooB,eAAc,KAAS,CAAChoB,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAIT,EAAiB,cAAEI,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAYR,EAAI4oB,cAAc,cAAc,OAAO5oB,EAAIgF,MAAM,MAAM,IACz2GtD,EAAkB,G,q/DC+HtB,OACE3D,KAAM,mBACN4D,MAAO,CACLC,KAAM,CACJ1F,KAAM7C,QAERgvB,YAAa,CACXnsB,KAAM7C,OACNiP,QAAS,QAEXggB,gBAAiB,CACfpsB,KAAM7C,OACNiP,QAAS,SAGb,OACE,MAAO,CACLugB,UAAU,EACVD,cAAe,GACfJ,oBAAoB,EACpBD,aAAa,EACbO,qBAAqB,EACrBC,WAAY,KACZC,cAAe,EACfC,aAAc,EACdtkB,SAAS,EACTwjB,cAAc,EACdC,eAAe,EACfK,uBAAuB,IAG3B5mB,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IAAM,CACrB2hB,IAAK,IACLyD,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,EACVC,gBAAiB,EACjBC,cAAe,OACfC,kBAAkB,EAClBC,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB,OAAN,WACQvqB,KAAKoE,GAAG,mBAAoBomB,IAC1BxqB,KAAKyqB,iBACLzqB,KAAK0qB,QAAQF,KAEfxqB,KAAKoE,GAAG,QAAhB,iCACA,mBADA,uDAGQpE,KAAKoE,GAAG,UAAhB,eACUN,EAAGykB,oBAAqB,EACxBzkB,EAAGY,SAAU,QACvB,wBAGQ1E,KAAKoE,GAAG,UAAW,KACjBN,EAAGykB,oBAAqB,IAG1BvoB,KAAKoE,GAAG,YAAhB,iCACA,qIACA,uCACA,kCACA,cACA,iBACA,+BACA,mBACA,oBACA,gBACA,gBAGA,+CAbA,4DAmBEyJ,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,MAGtB,OAAO6B,GACDA,GACF3qB,KAAK4oB,UAAW,EAChB5oB,KAAK2oB,cAAgB3oB,KAAK4qB,QAE1B5qB,KAAK4oB,UAAW,IAKtB,UACE,MAAMiC,EAAiB,IAAIC,eAAe,KAExC9qB,KAAKgpB,aAAehpB,KAAKyN,MAAMsd,mBAAmBC,wBAAwB9e,MAAQ,GAClF,MAAM+e,EAAQ,IAAM,GACpBjrB,KAAK+oB,cAAgB/oB,KAAKgpB,aAAeiC,IAI3C,GAFAJ,EAAeK,QAAQlrB,KAAKyN,MAAMsd,oBAE9B/qB,KAAK2B,KAAKiG,QAAS,CACrB5H,KAAK4oB,UAAW,EAChB,MAAMnM,EAAO,+BACPC,EAAW1c,KAAK2B,KAAKiG,QAC3B5H,KAAK4qB,OAAS,GAAGnO,YAAeC,KAAY1c,KAAK6c,eAAe7c,KAAK2B,KAAKK,YAC1EhC,KAAK2oB,cAAgB3oB,KAAK4qB,SAG9BnoB,QAAS,CACP,UAAJ,oCACA,2BACA,qCACA,iBACA,eACA,oCACA,sJAKA,SACA,cACA,SACA,6BAEA,SAEA,2BACA,aAEA,kCACA,gBACA,iBAvBA,IA0BI,cAAJ,oCACA,mCACA,uCACA,kCACA,gBAJA,IAMI,YAAJ,iCACA,qCACA,cACA,yBACA,mBACA,kCACA,mBANA,IAQI,WACE,MAAO,+iBC9S4V,I,yGCOrWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMioB,oBAAA,KAAkBC,WAAA,Q,2CC5B3E,IAAItrB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,sCAAsC,gBAAgB,GAAG,OAAS,GAAG,WAAW,GAAG,KAAO,GAAG,UAAU,WAAWM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACxU,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,UAAUJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,8CAA8CC,YAAY,CAAC,gBAAgB,OAAOC,MAAM,CAAC,IAAM,IAAI,YAAY,QAAQ,aAAa,OAAO,MAAQ,UAAU,UAAU,iCAAiC,UAAUA,GAAM,GAAO6D,GAAI,CAAC,CAACjE,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,uDAAuDC,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,OAAOP,EAAG,OAAO,CAACE,YAAY,iGAAiGC,YAAY,CAAC,YAAY,OAAO,mBAAmB,UAAU,MAAQ,mBAAmB,MAAQ,OAAO,cAAc,yBAAyB,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,mBAAmB,QAAQ,UAAU,YAAY,CAACH,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmCP,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,MAAQ,cAAc,wBAAwB,4BAA4B,CAACP,EAAIiB,GAAIjB,EAAI6I,eAAe7I,EAAIuX,gBAAgB,SAASrW,EAAKuB,GAAO,MAAO,CAACrC,EAAG,OAAO,CAAChB,IAAK,OAASqD,EAAOlC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAK4E,KAAK,KAAK9F,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAAChB,IAAK,SAAWqD,GAAQ,CAACzC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAuB,CAAC6W,MAAOtW,EAAKmI,SAAS,YAAW,QAAQ,IACx3C3H,EAAkB,G,giCC+DtB,MAAM,EAAN,gCAEA,oCACEC,MAAO,CAILC,KAAM,CACJ1F,KAAM7C,OACNiP,QAAS,SAKb,MAAM3G,EAAO4G,GACX,MAAMxJ,EAAIwJ,EAAQC,KAAK7H,GAEjB8H,EAAU,OAApB,cAAoB,CAApB,uBAEUrB,EAAc,OAAxB,cAAwB,CAAxB,wCAEUV,EAAiB,OAA3B,cAA2B,CAA3B,yCAEUhC,EAAe,OAAzB,SAAyB,CAAzB,CACMC,SAAS,EACTC,aAAc,IAAI6S,IAGdF,EAAgB,OAA1B,cAA0B,CAA1B,IACU5V,EAAMC,KACDD,EAAMC,KAER,CAAb,wBAGUoG,EAAe,OAAzB,cAAyB,CAAzB,0CAEUa,EAAiBjH,IACrB,IAAKA,EACH,MAAO,GAGT,GAAIA,EAAKiE,SAAU,CACjB,IAAIiD,EAOJ,OALEA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAEhB,IAAIjE,EAAKiE,UAGfiD,EAASG,KAAK,CAACC,EAAGC,IAAMA,EAAErD,IAAMoD,EAAEpD,KAAKvD,IAAI6G,GAAO,EAAjE,KACA,GADA,IAEUC,MAAO,IAAjB,kDAIM,GAAIzH,EAAKmI,SAAU,CACjB,IAAIjB,EAOJ,OALEA,EAD2B,kBAAlBlH,EAAKmI,SACHhB,KAAKC,MAAMpH,EAAKmI,UAEhB,IAAInI,EAAKmI,UAGfjB,EAASG,KAAK,CAACC,EAAGC,IAAMA,EAAErD,IAAMoD,EAAEpD,KAAKvD,IAAI6G,GAAO,EAAjE,KACA,GADA,IAEUC,MAAO,IAAjB,kDAGM,MAAO,IAGHC,EAAa1H,IACjB,GAAI,EAAV,oEACQ,IAAIkH,EAEFA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAErC,6BACqB,IAAIjE,EAAKmI,UAET,IAAInI,EAAKiE,UAEtB,MAAM0D,EAAaT,EACbU,EAAQD,EAAW,GACnBE,EAAOF,EAAW3G,MACxB,MAAO,GAAG6G,EAAKJ,SAAS3C,EAAe5H,WAAW0K,EAAMH,QAAQ3C,EAAe5H,SAEjF,OAAOyJ,EAAQC,KAAK7H,GAAG,cAGnB8F,EAAY,IAAMQ,SAASyC,KAAK/H,EAAMC,MAAQD,EAAMC,KAAKsF,WAAavF,EAAMC,KAAKsF,WAAaoN,KAAKoD,MAAO,QAAU,EAEpHpQ,EAAV,iCACA,SACA,OACA,sBAEA,iFAGA,aARA,sDAWUqC,EAAoB/H,GAAQ,KAAtC,gCAEUuG,EAAe,KACnBzD,EAAa5F,MAAM6F,SAAU,EAC7BD,EAAa5F,MAAM8F,aAAe,IAAI6S,GAGlC3P,EAAV,iCAEA,kEACA,uCAHA,sDAMUL,EAAgB7F,IAChBoG,EAAalJ,QACfkJ,EAAalJ,MAAMuL,MAAQrC,EAAalJ,MAAMuL,MAAMlI,OAAOjB,GAAQA,EAAKqJ,MAAQ3I,EAAK2I,OAInF5D,EAAiB,OAA3B,cAA2B,CAA3B,QACM,IAAK/E,EAAKiE,SACR,OAAO,IAAf,oBAGM,IAAIiD,EAEFA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAEhB,IAAIjE,EAAKiE,UAGtB,MAAMmE,EAAYlB,EAASmB,KAAK,IAAtC,uCAEM,IAAKD,EAAW,CACd,MAAM2N,EAAYhS,KAAKC,OAAOkD,EAASvG,IAAIhE,GAAKA,EAAEuH,MAE5C0R,EAA6C,IAArCI,WAAWD,EAAUE,QAAQ,IAAe,IAAO7N,EAAUX,MACrEyO,EAAa,IAA3B,gCACQ,OAAO,IAAf,iDAIM,MAAMN,EAAmD,IAA3CI,WAAW5N,EAAUX,MAAMwO,QAAQ,IAAe,IAAO7N,EAAUX,MAC3EyO,EAAa,IAAzB,gCAEM,OAAO,IAAb,wDAGUvQ,EAA8B,OAAxC,cAAwC,CAAxC,QACM,GAA2B,OAAvBS,EAAalJ,MACf,OAAO,EAGT,MAAMsL,EAAcpC,EAAalJ,MAAMuL,MAAMC,UAAUpJ,GAAQA,EAAKqJ,MAAQ3I,EAAK2I,KAEjF,OAAwB,IAAjBH,IAGT,MAAO,CACLvB,iBACApB,gBACAK,aACAK,eACAwB,oBACArC,qBACAb,YACA6C,aACA5E,eACAiC,iBACAD,iBACAU,cACAG,8BACAgQ,gBACAxY,QCpPoW,I,iFCQtW8D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACiI,aAAA,KAAWwD,QAAA,KAAMtD,SAAA,Q,uLCvB/C,MAAM3H,EAAc,aAEdC,GAAK,IAAG,cAAuBC,OAGZ,0BACrB,MAAO,CACL+nB,UAAW,KACX/D,SAAU,GACVgE,cAAe,GACfjE,OAAO,EACPkE,eAAgB,GAChB/mB,aAAc,GACduK,aAAc,MACdvE,aAAc,GACdghB,eAAgB,IAChBC,SAAU,GACVC,eAAgB,GAChBC,kBAAmB,GACnBC,eAAgB,GAChBC,qBAAsB,GACtBvX,YAAa,GACbC,kBAAmB,GACnBpP,kBAAmB,GACnBD,wBAAyB,GACzB4P,qBAAsB,GACtBgX,YAAa,GACbnP,kBAAmB,GACnBoP,cAAe,GACf/pB,KAAM,GACNgqB,gBAAiB,GACjBC,aAAc,GACdC,sBAAuB,GACvBzmB,OAAQ,EACR0mB,OAAQ,UACRC,gCAAgC,EAChCC,0BAA0B,EAC1BC,yCAAyC,EACzCC,wBAAwB,EACxB3mB,SAAU,KACVuP,UAAW,GACXxM,UAAW,GACX6jB,mBAAoB,CAClBC,mBAAmB,EACnBC,sBAAsB,EACtBC,qBAAsB,GACtBC,kBAAkB,EAClBC,oBAAqB,GACrBC,iCAAiC,EACjCC,gCAAgC,EAChCC,mCAAmC,EACnCC,0BAA0B,EAC1BC,yBAAyB,EACzBC,4BAA4B,EAC5BC,qBAAqB,EACrBC,uBAAwB,GACxBC,eAAe,EACfC,kBAAkB,EAClBC,iBAAkB,GAClBC,eAAe,EACfC,kBAAkB,EAClBC,iBAAkB,GAClBhS,gBAAgB,EAChBiS,mBAAmB,EACnBC,kBAAmB,GACnBC,uBAAuB,EACvBC,yBAA0B,GAC1BC,cAAe,IAEjBjR,QAAS,cACTkR,cAAe,GACfC,QAAS,GACTC,aAAc,GACdC,aAAc,GACdC,iBAAkB,IAIK,8BACzB,OAAOruB,KAAKuU,kBAAkB1E,QAAQ7P,KAAKsU,YAAa,IAAIG,OAG1C,uBAClB,MAAMsI,EAAUpc,EAAElC,IAAIuB,KAAM,uBAAwB,IACpD,MAAmB,gBAAZ+c,EAGQ,oBACf,MAAMA,EAAUpc,EAAElC,IAAIuB,KAAM,uBAAwB,IACpD,MAAmB,YAAZ+c,EAGI,gBACX,QAAI/c,KAAKwK,cACyE,QAAzExK,KAAKwK,aAAa9H,MAAM,KAAKC,MAAMyS,WAAW,IAAK,IAAI3K,gBA5FzD,gBACU,YADV,GAkGI,cACblH,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAAa+T,MAAM,CACjD3Z,MAAO,CACLS,IAAK,CACHqK,IACEA,EAAQgmB,OAAOC,wBAA0BjmB,EAAQ9K,MAAMK,QAAQ2wB,WAAW,aACnElmB,OAKfjF,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,oCCvHzC,gEASAqI,aAAI+iB,IAAIC,QAEO,WAAIA,OAAQ,CAEzBrsB,MAAO,CACLssB,SAAU,OAGZ1K,KAAM,CACJ2K,QAAS,CAAEC,UAAIC,WACf5K,QAAStP,OAAKpH,OAAO3N,MAAM,EAAG+U,OAAKpH,OAAO3D,QAAQ,OAGpDklB,MAAO,CACLC,OAAQ,CACNC,MAAO,CAGLC,QAAS,UAETC,SAAU,UACVC,OAAQ,UACR5xB,MAAO,UACP6xB,KAAM,UACNC,QAAS,UACTC,QAAS,WAEXC,KAAM,CACJN,QAAS,UACTO,UAAW,UACXN,SAAU,UACVC,OAAQ,UACR5xB,MAAO,UACP6xB,KAAM,UACNC,QAAS,UACTC,QAAS,gB,oCC5CjB,W,4ECAIzvB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,YAAY,CAACU,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,OAAOc,OAAM,MAAS,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,SAAS,CAACE,YAAY,8BAA8BE,MAAM,CAAC,UAAY,MAAM,CAACJ,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,IAAI,CAACgB,MAAM,CAAC,UAAW,CAAC+O,SAAUnQ,EAAI4O,KAAK0G,YAAY/U,YAAY,CAAC,MAAQ,WAAWC,MAAM,CAAC,UAAU,mBAAmB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA4B,CAAC5C,KAAMiC,EAAI4O,KAAK0G,aAAa,UAAU,IAAI,IAAI,IAAI,GAAGlV,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,2CAA2C,KAAMJ,EAAsB,mBAAEI,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,iCAAiC,KAAKJ,EAAIgF,KAAMhF,EAAgC,6BAAEI,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,iDAAiD,CAACI,MAAM,CAAC,cAAcR,EAAI2vB,mBAAmB,GAAGtb,eAAe,KAAKrU,EAAIgF,KAAK5E,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,2DAA2DC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuC,OAAOP,EAAG,MAAM,CAACE,YAAY,YAAYC,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,sCAAsCJ,EAAG,MAAM,CAACE,YAAY,qCAAqC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,KAAKP,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,mBAAmB6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI4vB,qBAAuB,KAAM,CAAC5vB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,IAAIX,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,IAAIX,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,KAAKP,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,gCAAgC,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,YAAY,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,2CAA2C,KAAKA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,qBAAqB,CAACE,YAAY,mBAAmB,CAACF,EAAG,oBAAoB,CAACA,EAAG,2BAA2B,CAACE,YAAY,cAAcC,YAAY,CAAC,mBAAmB,WAAWO,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,iBAAiBgB,OAAM,MAAS,CAACrB,EAAG,MAAM,CAACE,YAAY,WAAW,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,SAASP,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACE,YAAY,8BAA8BE,MAAM,CAAC,UAAY,MAAM,CAACJ,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,4BAA4B,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wDAAwD,WAAWP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,yBAAyB,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+DAA+D,WAAWP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,sBAAsB,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6DAA6D,WAAWP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,gCAAgC,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,WAAWP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,+BAA+B,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sDAAsD,WAAWP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wDAAwD,WAAWP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,0BAA0B,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8DAA8D,WAAWP,EAAG,QAAQ,CAACE,YAAY,aAAaE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,kCAAkCC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,8BAA8B,MAAQ,KAAK,OAAS,QAAQJ,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0DAA0D,YAAY,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,qBAAqB,CAACE,YAAY,kBAAkB8F,MAAM,CAACtH,MAAOkB,EAAwB,qBAAEqG,SAAS,SAAUC,GAAMtG,EAAI4vB,qBAAqBtpB,GAAKE,WAAW,yBAAyB,CAACpG,EAAG,oBAAoB,CAACgG,MAAM,CAACtH,MAAOkB,EAAwB,qBAAEqG,SAAS,SAAUC,GAAMtG,EAAI4vB,qBAAqBtpB,GAAKE,WAAW,yBAAyB,CAACpG,EAAG,2BAA2B,CAACE,YAAY,cAAcC,YAAY,CAAC,mBAAmB,WAAWO,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,iBAAiBgB,OAAM,MAAS,CAACrB,EAAG,MAAM,CAACE,YAAY,UAAUE,MAAM,CAAC,GAAK,mBAAmB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,SAASP,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACE,YAAY,mBAAmBE,MAAM,CAAC,UAAY,MAAM,CAACJ,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,WAAWP,EAAIiB,GAAIjB,EAAa,WAAE,SAAS6vB,GAAU,OAAOzvB,EAAG,QAAQ,CAAChB,IAAIywB,EAAShc,KAAKrT,MAAM,CAAC,KAAO,MAAM,CAAEqvB,EAAgB,QAAEzvB,EAAG,MAAM,CAACE,YAAY,gCAAgCC,YAAY,CAAC,OAAS,WAAW8D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI8vB,eAAeD,SAAWA,EAAU7vB,EAAI8vB,eAAeC,UAAW,KAAS,CAAC3vB,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,OAAS,GAAG,KAAO,GAAG,eAAe,kBAAkB,CAACR,EAAIS,GAAG,4BAA4BL,EAAG,OAAO,CAACE,YAAY,mBAAmBE,MAAM,CAAC,UAAW,cAAiBqvB,EAAShc,KAAKlR,MAAM,KAAK7C,OAAO,KAAO,CAACE,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGkvB,EAAShc,OAAO,OAAOzT,EAAG,MAAM,CAACG,YAAY,CAAC,eAAe,SAAS,CAACH,EAAG,SAAS,CAACE,YAAY,eAAeE,MAAM,CAAC,MAAQ,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,OAAO,CAACE,YAAY,eAAeC,YAAY,CAAC,cAAc,OAAO,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGkvB,EAASG,WAAW,IAAIhwB,EAAIU,GAAGV,EAAIW,GAAG,kBAAkB,QAAQ,IAAI,GAAGX,EAAIgF,UAAS,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG5E,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQ,SAAS,WAAa,IAAI6D,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAI8vB,eAAeC,UAAW,EAAM/vB,EAAIiwB,mBAAoB,IAAOnvB,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,gBAAgB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAGX,EAAI8vB,eAAeD,SAAShc,YAAYpS,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAAEN,EAAI8vB,eAAuB,SAAE1vB,EAAG,QAAQ,CAACE,YAAY,SAASC,YAAY,CAAC,aAAa,SAASC,MAAM,CAAC,UAAU,eAAe,SAAW,GAAG,QAAU,OAAO,SAAW,GAAG,MAAQ,MAAM,OAAS,QAAQ,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,IAAMR,EAAIW,GAAGX,EAAI8vB,eAAeD,SAASK,MAAM,KAAO,iBAAiBlwB,EAAIgF,SAASvD,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAI8vB,eAAuB,SAAEzpB,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI8vB,eAAgB,WAAYxpB,IAAME,WAAW,8BAA8B,IACt3Q9E,EAAkB,G,wBCDP,GACbgB,QAAS,CACPytB,2BAA2BC,GACzB,IAAIC,EAAW,EACXC,EAAa,EAGjB,IAAK,IAAIp3B,EAAIk3B,EAAeh3B,OAAS,EAAGF,GAAK,EAAGA,IAAK,CACnD,MAAMq3B,EAAOH,EAAel3B,GAG5B,IAAI,QAAQkb,KAAKmc,GAOf,MALAF,GAAYnmB,SAASqmB,EAAM,IAAMD,EAEjCA,GAAc,GAOlB,OAAOD,K,urBCoRb,OACE7jB,OAAQ,CAACgkB,GACT53B,KAAM,KAAM,CACVq3B,mBAAmB,EACnBH,eAAgB,CACdC,UAAU,EACVF,SAAU,MAEZD,0BAAsB5xB,IAExB6D,SAAU,EAAZ,KACA,uBACA,UAFA,IAII4G,QAAS,IAAM,EAAnB,iCACI+b,KAAM,IAAM,EAAhB,cACIpd,YAAarD,GAAMA,EAAGygB,KAAKxiB,aAAa+B,EAAG6K,KAAKrE,KAChDkmB,mBAAoB1sB,GACxB,WACA,4BACA,mDAEI4rB,mBAAoB,IAAM,EAA9B,qEACIe,6BAA8B3sB,GAClC,WACA,4BACA,4BAEI4sB,UAAW,IAAM,CACrB,CACM,KAAN,aACM,KAAN,kCACM,KAAN,0CACM,SAAN,OACM,SAAN,GAGA,CACM,KAAN,mBACM,KAAN,8BACM,KAAN,sCACM,SAAN,OACM,SAAN,GAEA,CACM,KAAN,2BACM,KAAN,kCACM,KAAN,0CACM,SAAN,OACM,SAAN,GAEA,CACM,KAAN,uBACM,KAAN,qCACM,KAAN,6CACM,SAAN,OACM,SAAN,GAEA,CACM,KAAN,aACM,KAAN,6BACM,KAAN,qCACM,SAAN,OACM,SAAN,GAEA,CACM,KAAN,WACM,KAAN,2CACM,KAAN,mDACM,SAAN,OACM,SAAN,GAGA,CACM,KAAN,WACM,KAAN,gBACM,KAAN,mDACM,SAAN,OACM,SAAN,GAEA,CACM,KAAN,WACM,KAAN,sBACM,KAAN,mDACM,SAAN,OACM,SAAN,MAIE,UACE,EAAJ,4BCpYmV,I,sKCQ/U9tB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,EAAAmB,EAAiB,QAchC,IAAkBA,EAAW,CAACC,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAKC,aAAA,KAAW/H,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,KAAiBC,QAAA,KAAM4H,OAAA,OCjClJ,IAAI,EAAS,WAAa,IAAI/K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,OAAS,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,kBAAkBC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,6CAA6C,CAACF,EAAG,MAAM,CAACE,YAAY,YAAYE,MAAM,CAAC,IAAM,wBAAwB,MAAQ,WAAWJ,EAAG,WAAW,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,MAAQR,EAAIyN,OAAO,MAAQzN,EAAI4wB,SAAS,aAAa,QAAQ,YAAY,QAAQ,mBAAmB,cAAc,KAAO,GAAG,KAAO,GAAG,eAAe,IAAIvsB,GAAG,CAAC,OAAS,SAAUwsB,GAAc7wB,EAAI0jB,UAAU,CAAElW,MAAOxN,EAAI6U,KAAMpH,OAAQojB,MAAkB/vB,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,eAAeL,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKgL,kBAAkB,GAAG9L,EAAG,QAAQ,CAACE,YAAY,SAAS,CAACF,EAAG,QAAQ,CAACE,YAAY,uCAAuCE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,OAAO,CAACE,YAAY,uCAAuC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOP,EAAG,OAAO,CAACE,YAAY,0BAA0BC,YAAY,CAAC,MAAQ,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,OAAOP,EAAG,SAAS,CAACyG,IAAI,YAAYvG,YAAY,OAAOC,YAAY,CAAC,MAAQ,QAAQ8D,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAO0B,iBAAwBhG,EAAI8wB,YAAY/2B,MAAM,KAAMgO,aAAa3B,MAAM,CAACtH,MAAOkB,EAAoB,iBAAEqG,SAAS,SAAUC,GAAMtG,EAAI+wB,iBAAiBzqB,GAAKE,WAAW,qBAAqB,CAACpG,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,gBAAgB,MAAQ,CAACX,EAAIgY,WAAYhY,EAAI6Y,SAAS,SAAW,GAAG,MAAQ,GAAG,UAAY,GAAG,UAAU,eAAezS,MAAM,CAACtH,MAAOkB,EAAI4O,KAAQ,IAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,MAAOtI,IAAME,WAAW,cAAcpG,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,wBAAwB,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,MAAQ,CAAChxB,EAAIgY,YAAY,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,eAAe,GAAG,UAAU,kBAAkB3T,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAI4O,KAAa,SAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,WAAYtI,IAAME,WAAW,mBAAmBpG,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,cAAc,CAACE,YAAY,+BAA+BE,MAAM,CAAC,GAAK,sBAAsB,UAAU,6BAA6B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,QAAQ,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAUR,EAAIixB,sBAAsB,UAAYjxB,EAAI+wB,kBAAoB/wB,EAAIixB,sBAAsB,MAAQ,UAAU,KAAO,UAAU,MAAQ,GAAG,MAAQ,GAAG,UAAU,iBAAiB,EAAEjxB,EAAmB,gBAAEI,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,WAA2E,IAAI,IAAI,GAAGP,EAAG,IAAI,CAACE,YAAY,sCAAsCC,YAAY,CAAC,MAAQ,oBAAoB6H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,+BAA+BP,EAAG,IAAI,CAACE,YAAY,sCAAsCC,YAAY,CAAC,aAAa,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IACvvH,EAAkB,G,miCCgItB,OACErC,KAAM,QAENyO,OAAQ,CACV,QAGE,OACE,MAAO,CACLokB,SAAU,CAChB,CAAQ,MAAR,UAAQ,MAAR,SACA,CAAQ,MAAR,KAAQ,MAAR,OAEM/b,KAAN,OACMqc,gBAAgB,EAChBtiB,KAAM,CACJrE,IAAK,GACLoL,SAAU,IAEZqb,mBAAmB,EACnBD,kBAAkB,IAItBlvB,SAAU,EAAZ,WACA,uBACA,2BAEA,uBAAI,aAAJ,UACA,kCACA,uBACA,qBAGA,sBACA,gBAKE,UACE,OAAJ,iBAAI,GACA,MAAMsvB,EAAUlO,UAAUE,SAC1B,IAAI0N,EAAcM,EAAQxuB,MAAM,KAAK,GAGrCkuB,EAAJ,OAAkB,EAAlB,aACI5wB,KAAKyjB,UAAU,CAAnB,4BAGEhhB,QAAS,EAAX,OACA,uBAAI,YAAJ,WACA,iDAFA,IAII,cAAJ,iCACA,IACA,gDAEA,8CAEA,6BAGA,aACA,iDACA,2BAEA,kCACA,2BAEA,oBAEA,SACA,iBACA,aACA,wEACA,4BAtBA,OCvL+U,I,4DCQ3U,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,IAAiB,QAYhC,IAAkB,EAAW,CAACiI,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAWwP,QAAA,KAAMnX,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,KAAQ3B,aAAA,OC/B5E,IAAI,EAAS,WAAa,IAAIlL,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,iBAAiB,CAACA,EAAG,QAAQ,CAACE,YAAY,cAAcE,MAAM,CAAC,MAAQ,SAAS,QAAU,WAAW,CAACJ,EAAG,SAAS,CAACE,YAAY,cAAcE,MAAM,CAAC,MAAQ,cAAc,KAAO,KAAK,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,WAAW,CAACJ,EAAG,OAAO,CAACE,YAAY,SAAS,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,SAASP,EAAG,cAAc,CAAEJ,EAAW,QAAEI,EAAG,sBAAsB,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,cAAgB,MAAMR,EAAIgF,KAAKhF,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIoxB,QAAUpxB,EAAIW,GAAG,2BAA6BX,EAAIW,GAAG,2BAA2B,MAAM,IAAI,IAAI,IAAI,IAC3pB,EAAkB,G,0/BCmCtB,QACE5C,KAAM,SAEN,OACE,MAAO,CACLqzB,SAAS,IAIb,UAAF,WACInzB,WAAJ,gBACM,EAAN,iBACA,WAEM,EAAN,WAEM+N,aAAaqb,WAAW,gBACxB,EAAN,mBACA,MAGE3kB,QAAS,GAAX,GACA,oCC1DgV,M,yBCQ5U,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIa,MAAiB,QAShC,IAAkB,GAAW,CAACI,QAAA,KAAMyN,UAAA,OAAUC,WAAA,OAAWkR,qBAAA,KAAkB3W,OAAA,OC5B3E,IAAI,GAAS,WAAa,IAAI/K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACG,YAAY,CAAC,aAAa,OAAO,MAAQ,UAAU,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,WAAW,CAACJ,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,IAAI,CAACE,YAAY,kBAAkB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,OAAOP,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,WAAWP,EAAG,SAAS,CAACyG,IAAI,OAAOT,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAIqxB,WAAW/qB,GAAKE,WAAW,eAAe,CAACpG,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,SAAW,GAAG,MAAQ,GAAG,UAAU,cAAc,MAAQR,EAAIW,GAAG,gBAAgB,SAAWX,EAAIsxB,eAAe,YAActxB,EAAIW,GAAG,mCAAmC,MAAQ,CAACX,EAAIgY,YAAY,SAAW,GAAG,eAAe,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIuxB,SAAY,IAAElrB,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIuxB,SAAU,MAAOjrB,IAAME,WAAW,mBAAmB,IAAI,GAAGpG,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,yBAAyB,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,MAAQ,CAAChxB,EAAIgY,YAAY,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,eAAe,GAAG,UAAU,kBAAkB3T,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAIuxB,SAAiB,SAAElrB,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIuxB,SAAU,WAAYjrB,IAAME,WAAW,wBAAwB,GAAGpG,EAAG,QAAQ,CAACE,YAAY,oBAAoBE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,mBAAmBC,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,IAAI,CAACE,YAAY,uBAAuBC,YAAY,CAAC,OAAS,MAAM,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0BAA0B,OAAOP,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACp8D,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,GAAG,MAAQ,KAAK,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,qCAAqC,CAACL,EAAG,IAAI,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuCP,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyCP,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoCP,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoCP,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoCP,EAAG,KAAK,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0CX,EAAIiB,GAAIjB,EAAS,OAAE,SAASlB,GAAO,OAAOsB,EAAG,OAAO,CAAChB,IAAIN,EAAMwB,YAAY,MAAMgB,MAAM,CAAGxC,EAAQkB,EAAIwxB,iBAAiBxxB,EAAIuxB,SAAS5b,UAAY,CAAE,mBAAmB3V,EAAIyxB,SAASzxB,EAAIwxB,iBAAiBxxB,EAAIuxB,SAAS5b,YAAc,CAAE,mBAAmB,kBAAkB,MAAM,GAAGvV,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAU,yBAAyB,MAAQR,EAAIW,GAAG,gCAAgC,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,MAAQ,CAAEhxB,EAAIuxB,SAAS5b,WAAa3V,EAAI0xB,iBAAoB1xB,EAAIW,GAAG,mCAAmC,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,eAAe,IAAI0D,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAmB,gBAAEqG,SAAS,SAAUC,GAAMtG,EAAI0xB,gBAAgBprB,GAAKE,WAAW,sBAAsB,IAAI,IAAI,GAAGpG,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAUR,EAAI2xB,aAAa,UAAY3xB,EAAI4xB,YAAY,MAAQ,UAAU,KAAO,UAAU,MAAQ,GAAG,MAAQ,GAAG,UAAU,yBAAyBvtB,GAAG,CAAC,MAAQrE,EAAI6xB,SAAS,CAAC7xB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,QAAQ,IAAI,IAAI,IACj1D,GAAkB,G,6/BCiItB,MAAM,GAAN,gBAEA,QACE5C,KAAM,aAENyO,OAAQ,CACV,QAGE,OACE,MAAO,CACLslB,MAAO,CAAC,GAAI,GAAI,GAAI,GAAI,KACxBC,MAAO,GACPL,gBAAiB,GACjBV,mBAAmB,EACnBW,cAAc,EACdK,MAAO,GACPC,eAAgB,GAChBX,gBAAgB,EAChBnhB,SAAS,EACT+hB,qBAAsB,GACtBb,YAAY,EACZ/b,UAAW,GACXC,SAAU,GACVgc,SAAU,CACRhnB,IAAK,GACL4nB,UAAW,GACXC,SAAU,GACV1c,YAAa,GACbC,SAAU,GACV0c,aAAc,MAKpBxwB,SAAU,GAAZ,MACA,kCADA,IAEI,cACE,OAAO5B,KAAKoxB,YAAcpxB,KAAKqyB,iBAEjC,kBACE,OAAOryB,KAAKuxB,iBAAiBvxB,KAAKsxB,SAAS5b,WAAa,OAG5D,UACE,MAAMwb,EAAUlO,UAAUE,SAC1B,IAAI0N,EAAcM,EAAQxuB,MAAM,KAAK,GAGrCkuB,EAAJ,OAAkB,EAAlB,aACIhc,EAAJ,cACI,MAAM,EAAV,iDACI5U,KAAK8xB,MAAQA,EACb9xB,KAAKsxB,SAAShc,SAAWvU,EACzBf,KAAKsxB,SAASjc,UAAYid,EAC1BtyB,KAAKqxB,iBAAmB7e,EACxBxS,KAAKsxB,SAAShnB,IAAMkI,GAAM,IAG5B/P,QAAS,GAAX,MACA,iDADA,IAEI,SAASovB,GACP,OAAIA,GAAS,IAAMA,EAAQ,GAClB,UAELA,GAAS,GACJ,UAEF,WAET,iBAAiBU,GACf,IAAIC,EAAQ,EACZ,IAAKD,EACH,OAAOC,EAIT,MAAMC,EAAU,GAChB,IAAK,IAAIx5B,EAAI,EAAGA,EAAIs5B,EAAKp5B,OAAQF,IAC/Bw5B,EAAQF,EAAKt5B,KAAOw5B,EAAQF,EAAKt5B,KAAO,GAAK,EAC7Cu5B,GAAS,EAAMC,EAAQF,EAAKt5B,IAI9B,MAAMy5B,EAAa,CACjBC,OAAQ,KAAKxe,KAAKoe,GAClBK,MAAO,QAAQze,KAAKoe,GACpBM,MAAO,QAAQ1e,KAAKoe,GACpBO,SAAU,KAAK3e,KAAKoe,IAGtB,IAAIQ,EAAiB,EAErB,IAAK,MAAMC,KAASN,EAClBK,IAAwC,IAAtBL,EAAWM,GAAkB,EAAI,EAIrD,OAFAR,GAAgC,IAAtBO,EAAiB,GAEpB9oB,SAASuoB,EAAO,KAEzB,kBAAJ,qCACA,kBACA,UACA,8CACA,qCACA,qDAIA,iCACA,aACA,0DACA,2BAGA,kBACA,yBACA,SACA,kBACA,4CAnBA,IAuBI,aACExyB,KAAK0xB,cAAe,EACpB1xB,KAAKsxB,SAASc,aAAepyB,KAAKsxB,SAAShnB,IAC3CtK,KAAKgyB,eAAiB,IAAIzN,GAAKvkB,KAAKsxB,UACpCtxB,KAAKgyB,eAAe9yB,SAASnC,KAAK,KAChCiD,KAAK0xB,cAAe,KAIxB,oBACM1xB,KAAK8xB,MACP9xB,KAAKizB,kBAAkBjzB,KAAK8xB,OAE5B9xB,KAAKkzB,cAGT,SACMlzB,KAAKoxB,WACPpxB,KAAKmzB,oBAELnzB,KAAKyN,MAAM2lB,KAAKhlB,eCpR4T,M,yBCQhV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,MAAiB,QAYhC,IAAkB,GAAW,CAAC1D,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAWwP,QAAA,KAAMnX,QAAA,KAAM4H,OAAA,KAAKG,aAAA,KAAWC,YAAA,OC/B/E,IAAI,GAAS,WAAa,IAAInL,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACG,YAAY,CAAC,YAAY,UAAUC,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,MAAM,CAACE,YAAY,+BAA+B,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,aAAaJ,EAAG,QAAQ,CAACE,YAAY,iDAAiDC,YAAY,CAAC,OAAS,SAAS,CAAEP,EAAW,QAAEI,EAAG,SAAS,CAACG,YAAY,CAAC,mBAAmB,eAAeC,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,eAAe,CAACE,YAAY,8BAA8B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,OAAOP,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,WAAW,CAACJ,EAAG,IAAI,CAACE,YAAY,eAAe,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,OAAOP,EAAG,iBAAiB,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,UAAY,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,aAAa,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,QAAQ,IAAI,GAAGP,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,cAAc,KAAO,KAAK,CAAER,EAAuB,oBAAEI,EAAG,eAAe,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,OAAOP,EAAG,eAAe,CAACA,EAAG,sBAAsB,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,cAAgB,MAAMR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,MAAM,GAAIX,EAAuB,oBAAEI,EAAG,iBAAiB,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,UAAY,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,aAAa,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,QAAQ,GAAGX,EAAIgF,MAAM,IAAI,IAAI,IACzuD,GAAkB,G,gUCoDtB,QACE,OACE,MAAO,CACLuqB,SAAS,EACT+D,qBAAqB,IAGzB,UACEr1B,WAAW,KACTgC,KAAKszB,iBACX,MAEE7wB,QAAS,CACP,gBAAJ,kCACA,6BACA,IACA,UACA,8CACA,0BACA,UAEA,cAEA,SACA,4BAXA,MClEsV,MCOlV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,MAAiB,QAYhC,IAAkB,GAAW,CAACiI,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAa2F,UAAA,OAAUC,WAAA,OAAW1F,aAAA,KAAW4W,qBAAA,KAAkB3W,OAAA,OC9BxG,IAAI,GAAS,WAAa,IAAI/K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,aAAa,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,kBAAkBC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,6CAA6C,CAACF,EAAG,MAAM,CAACE,YAAY,YAAYE,MAAM,CAAC,IAAM,wBAAwB,MAAQ,WAAWJ,EAAG,WAAW,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,MAAQR,EAAIyN,OAAO,MAAQzN,EAAI4wB,SAAS,aAAa,QAAQ,YAAY,QAAQ,mBAAmB,cAAc,KAAO,GAAG,KAAO,GAAG,eAAe,IAAIvsB,GAAG,CAAC,OAAS,SAAUwsB,GAAc7wB,EAAI0jB,UAAU,CAAElW,MAAOxN,EAAI6U,KAAMpH,OAAQojB,MAAkB/vB,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,eAAeL,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKgL,kBAAkB,GAAG9L,EAAG,QAAQ,CAACE,YAAY,SAAS,CAACF,EAAG,QAAQ,CAACE,YAAY,uCAAuCE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,6BAA6BC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ+Y,IAAI,MAAM,CAACpzB,EAAG,SAAS,CAACJ,EAAIS,GAAG,sBAAsBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,MAAM,IAAI,GAAGP,EAAG,OAAO,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+CAA+C,OAAOP,EAAG,OAAO,CAACE,YAAY,+BAA+BC,YAAY,CAAC,MAAQ,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,OAAOP,EAAG,SAAS,CAACyG,IAAI,YAAYvG,YAAY,OAAOC,YAAY,CAAC,MAAQ,QAAQ8D,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAO0B,iBAAwBhG,EAAIyzB,YAAY15B,MAAM,KAAMgO,aAAa3B,MAAM,CAACtH,MAAOkB,EAAoB,iBAAEqG,SAAS,SAAUC,GAAMtG,EAAI+wB,iBAAiBzqB,GAAKE,WAAW,qBAAqB,CAACpG,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,gBAAgB,MAAQ,CAACX,EAAIgY,YAAY,UAAU,iCAAiC,SAAW,GAAG,MAAQ,GAAG,UAAY,IAAI5R,MAAM,CAACtH,MAAOkB,EAAS,MAAEqG,SAAS,SAAUC,GAAMtG,EAAIgyB,MAAM1rB,GAAKE,WAAW,WAAWpG,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,UAAU,SAAWR,EAAI0zB,sBAAsB,QAAU1zB,EAAI0zB,sBAAsB,UAAU,wBAAwB,MAAQ,GAAG,MAAQ,KAAK,CAAC1zB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,QAAQ,IAAI,IAAI,GAAGP,EAAG,IAAI,CAACE,YAAY,sCAAsCC,YAAY,CAAC,aAAa,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IACvkG,GAAkB,G,6/BC0GtB,QACErC,KAAM,QAENyO,OAAQ,CACV,QAGE,OACE,MAAO,CACLwlB,MAAO,GACPjB,kBAAkB,EAClB2C,uBAAuB,EACvB9C,SAAU,CAChB,CAAQ,MAAR,UAAQ,MAAR,SACA,CAAQ,MAAR,KAAQ,MAAR,OAEM/b,KAAN,SAIEhT,SAAU,GAAZ,GACA,kCAGE,UACE,MAAMsvB,EAAUlO,UAAUE,SAC1B,IAAI0N,EAAcM,EAAQxuB,MAAM,KAAK,GAGrCkuB,EAAJ,OAAkB,EAAlB,aACI5wB,KAAKyjB,UAAU,CAAnB,4BAGEhhB,QAAS,GAAX,MACA,iDADA,IAEI,cAAJ,kCACA,IACA,iCACA,8CACA,sBACA,OACA,eAGA,2BACA,4CACA,SACA,oBAZA,OC9I2V,MCQvV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,MAAiB,QAYhC,IAAkB,GAAW,CAACiI,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAWwP,QAAA,KAAMnX,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,KAAQ3B,aAAA,OC/B5E,IAAI,GAAS,WAAa,IAAIlL,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,aAAa,SAAS,CAACH,EAAG,SAAS,CAACyG,IAAI,OAAOvG,YAAY,cAAcC,YAAY,CAAC,MAAQ,QAAQ6F,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAIqxB,WAAW/qB,GAAKE,WAAW,eAAe,CAACpG,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAaC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,cAAc,CAACF,EAAG,QAAQ,CAACE,YAAY,kCAAkCE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,WAAWJ,EAAG,OAAO,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuC,OAAOP,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,GAAGP,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,yBAAyB,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,MAAQ,CAAC,SAAUnlB,GAAK,OAAQA,GAAKA,EAAEzS,QAAU,GACxxC,SAAUyS,GAAK,MAAO,cAAcuI,KAAKvI,IACzC,SAAUA,GAAK,MAAO,WAAWuI,KAAKvI,IACtC,SAAUA,GAAK,MAAO,WAAWuI,KAAKvI,KAAO,UAAU,wBAAwB,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,eAAe,IAAIxH,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAY,SAAEqG,SAAS,SAAUC,GAAMtG,EAAI2V,SAASrP,GAAKE,WAAW,eAAe,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoC,OAAOP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAepB,EAAI2V,SAASvc,QAAU,IAAK,CAAE4G,EAAI2V,SAASvc,QAAU,EAAGgH,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,cAAcgT,KAAKpU,EAAI2V,YAAY,CAAE,cAAcvB,KAAKpU,EAAI2V,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,cAAcgT,KAAKpU,EAAI2V,YAAa,CAAE,cAAcvB,KAAKpU,EAAI2V,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,WAAWgT,KAAKpU,EAAI2V,YAAa,CAAE,WAAWvB,KAAKpU,EAAI2V,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,mCAAmCgT,KAAKpU,EAAI2V,YAAa,CAAE,WAAWvB,KAAKpU,EAAI2V,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,MAAM,MAAM,GAAGP,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,gCAAgC,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,MAAQ,CAAEhxB,EAAI2V,WAAa3V,EAAI0xB,iBAAoB1xB,EAAIW,GAAG,mCAAmC,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,UAAU,gCAAgC,eAAe,IAAI0D,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAmB,gBAAEqG,SAAS,SAAUC,GAAMtG,EAAI0xB,gBAAgBprB,GAAKE,WAAW,sBAAsB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAYR,EAAI4xB,aAAe5xB,EAAI2zB,sBAAsB,MAAQ,UAAU,MAAQ,GAAG,MAAQ,GAAG,UAAU,yBAAyB,QAAU3zB,EAAI2zB,uBAAuBtvB,GAAG,CAAC,MAAQrE,EAAI4zB,iBAAiB,CAACxzB,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuC,UAAU,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,0BAA0BC,YAAY,CAAC,SAAW,WAAW,IAAM,QAAQ,KAAO,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,IAAI,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IAAI,IACvrH,GAAkB,G,6/BCgLtB,QACErC,KAAM,eAENyO,OAAQ,CACV,QAGE,OACE,MAAO,CACL6kB,YAAY,EACZ1b,SAAU,GACVoc,MAAO,GACPL,gBAAiB,GACjBV,mBAAmB,EACnB2C,uBAAuB,IAG3B9xB,SAAU,GAAZ,MACA,kCADA,IAEI,cACE,OAAO5B,KAAKoxB,cAGhB,UACE,MAAM,EAAV,wBACIpxB,KAAK8xB,MAAQA,GAEfrvB,QAAS,CACP,iBAAJ,kCAEA,GADA,oBACA,aACA,IACA,iCACA,8CACA,sBACA,4CAEA,2BACA,yCACA,SACA,sBAGA,0BAfA,MChNuV,MCQnV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,MAAiB,QAWhC,IAAkB,GAAW,CAACiI,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAWwP,QAAA,KAAMnX,QAAA,KAAM4H,OAAA,KAAKG,aAAA,OC9BpE,IAAI,GAAS,WAAa,IAAIlL,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,aAAa,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,kBAAkBC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,6CAA6C,CAACF,EAAG,MAAM,CAACE,YAAY,YAAYE,MAAM,CAAC,IAAM,wBAAwB,MAAQ,WAAWJ,EAAG,WAAW,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,MAAQR,EAAIyN,OAAO,MAAQzN,EAAI4wB,SAAS,aAAa,QAAQ,YAAY,QAAQ,mBAAmB,cAAc,KAAO,GAAG,KAAO,GAAG,eAAe,IAAIvsB,GAAG,CAAC,OAAS,SAAUwsB,GAAc7wB,EAAI0jB,UAAU,CAAElW,MAAOxN,EAAI6U,KAAMpH,OAAQojB,MAAkB/vB,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,eAAeL,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKgL,kBAAkB,GAAG9L,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,sCAAsCE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,OAAO,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,OAAOP,EAAG,OAAO,CAACE,YAAY,0BAA0BC,YAAY,CAAC,MAAQ,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,UAAU,GAAGP,EAAG,SAAS,CAACyG,IAAI,OAAOT,MAAM,CAACtH,MAAOkB,EAAe,YAAEqG,SAAS,SAAUC,GAAMtG,EAAI4xB,YAAYtrB,GAAKE,WAAW,gBAAgB,CAACpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACG,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,SAAW,GAAG,MAAQ,GAAG,MAAQR,EAAIW,GAAG,gBAAgB,MAAQ,CAACX,EAAIgY,WAAYhY,EAAI6Y,SAAS,UAAU,cAAc,SAAW7Y,EAAIW,GAAG,sCAAsC,SAAW,IAAI0D,GAAG,CAAC,QAAU,SAASC,GAAQ,IAAIA,EAAOpI,KAAK4N,QAAQ,QAAQ9J,EAAI6zB,GAAGvvB,EAAOwvB,QAAQ,QAAQ,GAAGxvB,EAAOlF,IAAI,CAAC,IAAI,aAAe,OAAO,KAAOkF,EAAO0B,mBAAoBI,MAAM,CAACtH,MAAOkB,EAAI4O,KAAQ,IAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,MAAuB,kBAARtI,EAAkBA,EAAIoO,OAAQpO,IAAOE,WAAW,eAAe,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,SAAW,GAAG,MAAQ,GAAG,eAAe,GAAG,UAAU,mBAAmB,MAAQR,EAAIW,GAAG,oBAAoB,MAAQ,CAACX,EAAIgY,aAAa5R,MAAM,CAACtH,MAAOkB,EAAI4O,KAAc,UAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,YAA6B,kBAARtI,EAAkBA,EAAIoO,OAAQpO,IAAOE,WAAW,qBAAqB,GAAGpG,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,SAAW,GAAG,MAAQ,GAAG,eAAe,GAAG,UAAU,kBAAkB,MAAQR,EAAIW,GAAG,mBAAmB,MAAQ,CAACX,EAAIgY,aAAa5R,MAAM,CAACtH,MAAOkB,EAAI4O,KAAa,SAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,WAA4B,kBAARtI,EAAkBA,EAAIoO,OAAQpO,IAAOE,WAAW,oBAAoB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,wBAAwB,CAACI,MAAM,CAAC,UAAY,KAAK,MAAQR,EAAIW,GAAG,sBAAsB,YAAcX,EAAIW,GAAG,iCAAiC,SAAW,GAAG,MAAQ,GAAG,UAAU,cAAc,OAASX,EAAIma,YAAY,iBAAiBna,EAAI+zB,gBAAgB,MAAQ,CAAC,SAAUloB,GAAK,QAASA,GAAK7L,EAAIgO,WAAa3J,GAAG,CAAC,kBAAkB,SAAUwH,GAAI7L,EAAIma,YAActO,EAAEmoB,UAAU,QAAUh0B,EAAIi0B,SAAS7tB,MAAM,CAACtH,MAAOkB,EAAS,MAAEqG,SAAS,SAAUC,GAAMtG,EAAI4Y,MAAMtS,GAAKE,WAAW,YAAY,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,MAAQR,EAAIW,GAAG,4BAA4B,SAAW,GAAG,MAAQ,GAAG,eAAe,GAAG,UAAU,qBAAqB,MAAQ,CAACX,EAAIgY,YAAY,SAAW,IAAI5R,MAAM,CAACtH,MAAOkB,EAAI4O,KAAgB,YAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,cAAetI,IAAME,WAAW,uBAAuB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,KAAK,MAAQR,EAAIk0B,gBAAgB,MAAQl0B,EAAIW,GAAG,oDAAoD,MAAQ,CAACX,EAAIgY,YAAY,SAAW,GAAG,UAAU,mBAAmB,MAAQ,GAAG,eAAe,IAAIlX,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,cAAckF,MAAM,CAACtH,MAAOkB,EAAI4O,KAAe,WAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,aAActI,IAAME,WAAW,sBAAsB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAIqY,UAAU,MAAQrY,EAAIW,GAAG,wBAAwB,YAAY,OAAO,aAAa,OAAO,SAAW,GAAG,MAAQ,GAAG,eAAe,GAAG,UAAU,gBAAgB,MAAQ,CAACX,EAAIgY,YAAY,SAAW,IAAIlX,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,mBAAmB,CAACR,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKnD,cAAcqI,MAAM,CAACtH,MAAOkB,EAAI4O,KAAY,QAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,UAAWtI,IAAME,WAAW,mBAAmB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,yBAAyB,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,eAAe,GAAG,UAAU,iBAAiB,MAAQ,CAAC,SAAUnlB,GAAK,OAAQA,GAAKA,EAAEzS,QAAU,GAC77K,SAAUyS,GAAK,MAAO,cAAcuI,KAAKvI,IACzC,SAAUA,GAAK,MAAO,WAAWuI,KAAKvI,IACtC,SAAUA,GAAK,MAAO,mCAAmCuI,KAAKvI,MAAQxH,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAI4O,KAAa,SAAEvI,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4O,KAAM,WAAYtI,IAAME,WAAW,oBAAoB,IAAI,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoC,OAAOP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAepB,EAAI4O,KAAK+G,SAASvc,QAAU,IAAK,CAAE4G,EAAI4O,KAAK+G,SAASvc,QAAU,EAAGgH,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,cAAcgT,KAAKpU,EAAI4O,KAAK+G,YAAY,CAAE,cAAcvB,KAAKpU,EAAI4O,KAAK+G,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,cAAcgT,KAAKpU,EAAI4O,KAAK+G,YAAa,CAAE,cAAcvB,KAAKpU,EAAI4O,KAAK+G,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,WAAWgT,KAAKpU,EAAI4O,KAAK+G,YAAa,CAAE,WAAWvB,KAAKpU,EAAI4O,KAAK+G,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,GAAGP,EAAG,IAAI,CAACE,YAAY,iBAAiBc,MAAM,CAAE,cAAe,mCAAmCgT,KAAKpU,EAAI4O,KAAK+G,YAAa,CAAE,mCAAmCvB,KAAKpU,EAAI4O,KAAK+G,UAAWvV,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,iBAAiBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iBAAiBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,MAAM,KAAKP,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,gCAAgC,cAAcX,EAAIgxB,kBAAoB,UAAY,cAAc,KAAOhxB,EAAIgxB,kBAAoB,OAAS,WAAW,MAAQ,CAAChxB,EAAIgY,WAAYhY,EAAI4O,KAAK+G,WAAa3V,EAAI0xB,iBAAoB1xB,EAAIW,GAAG,mCAAmC,SAAW,GAAG,MAAQ,GAAG,SAAW,GAAG,eAAe,GAAG,UAAU,0BAA0B0D,GAAG,CAAC,eAAe,SAASC,GAAQtE,EAAIgxB,mBAAqBhxB,EAAIgxB,oBAAoB5qB,MAAM,CAACtH,MAAOkB,EAAmB,gBAAEqG,SAAS,SAAUC,GAAMtG,EAAI0xB,gBAAgBprB,GAAKE,WAAW,sBAAsB,IAAI,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,IAAI,OAAS,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAUR,EAAI4O,KAAKvH,cAAc,MAAQ,UAAU,KAAO,UAAU,MAAQ,GAAG,MAAQ,GAAG,UAAU,kBAAkBhD,GAAG,CAAC,MAAQrE,EAAImzB,aAAa,CAACnzB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,QAAQ,IAAI,GAAGP,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,oFAAoFE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,IAAI,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,WAAW,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2BP,EAAG,IAAI,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,4DAA4D,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,GAAGP,EAAG,IAAI,CAACE,YAAY,6CAA6C,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IACzvI,GAAkB,G,0gCCsUtB,MAAM,GAAN,qCACA,QACErC,KAAM,SAENyO,OAAQ,CACV,QAGE,OACE,MAAO,CACLokB,SAAU,CAChB,CAAQ,MAAR,UAAQ,MAAR,SACA,CAAQ,MAAR,KAAQ,MAAR,OAEM/b,KAAN,OACMiE,YAAa,KACbC,YAAa,KACbnK,KAAM,IAAI,GACV8iB,gBAAiB,GACjBV,mBAAmB,EACnBY,aAAa,EACb1Y,YAAa,GACbC,YAAa,GACbP,MAAO,GACPuB,YAAa,GACbnM,SAAS,IAIbnM,SAAU,GAAZ,MACA,kCADA,IAEIwX,QAAS,IAAM,EAAnB,iBACID,iBAAkBrV,GAAMA,EAAGsV,QAAQC,cAAc1gB,KACjD8gB,oBAAqB3V,GAAzB,UAA+B,EAA/B,mCACIsU,UAAWtU,GAAMA,EAAG2V,oBAAoBvX,OAAO/D,GAAK2F,EAAGqV,iBAAiB7W,IAAIqX,GAAMA,EAAGC,MAAM9T,SAAS3H,EAAEzB,OAEtGu3B,gBAAiBnwB,GAAM,CAC3B,+EACA,qEACA,qEACA,+EACA,oEACA,qEACA,mEAEIgwB,gBAAiBhwB,GAAMA,EAAGqV,iBAAiB7W,IAAInE,GAAKA,EAAEyb,QAGxD,UAAF,kCACA,2BACA,sBAGA,wBACA,gBACA,mCACA,gCACA,iDACA,iDACA,+BACA,MACA,iBACA,wBACA,6BACA,2BACA,mBACA,gCAlBA,IAsBEnX,QAAS,GAAX,SACA,qCACA,iDAFA,IAII,QAAQ1H,GACNiF,KAAK+N,QAAUhT,EAAEm5B,OAGnB,aAAJ,kCACA,wBACA,gBAEA,uBACA,+BACA,iBACA,uBACA,uDACA,gBACA,wBACA,gBACA,uBACA,4BAbA,IAkBI,UAAUC,GACRx0B,OAAOy0B,WAAWC,KAAK,CAA7B,oBC3agV,MCQ5U,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,MAAiB,QAYhC,IAAkB,GAAW,CAAC3pB,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAWwP,QAAA,KAAMnX,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,KAAQ3B,aAAA,OC/B5E,IAAI,GAAS,WAAa,IAAIlL,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,wEAAwE,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQE,MAAM,CAAC,IAAM,4BAA4B6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,SAAS0G,EAAG,IAAI,CAACE,YAAY,kCAAkC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,OAAOP,EAAG,IAAI,CAACE,YAAY,oCAAoC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,OAAOP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,gBAAgB,UAAU,GAAG,UAAY,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,QAAQ,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oBAAoB,OAAOP,EAAG,MAAM,CAACE,YAAY,QAAQE,MAAM,CAAC,IAAM,wBAAwB,MAAQ,QAAQ,OAAS,WAAW,IAC90B,GAAkB,GCgCtB,IACEzC,KAAM,gBClC8U,MCOlV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,MAAiB,QAMhC,IAAkB,GAAW,CAAC4M,OAAA,KAAKG,aAAA,OCxBnC,IAAI,GAAS,WAAa,IAAI9K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,aAAa,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAaC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,wCAAwCC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,aAAaJ,EAAG,OAAO,CAACE,YAAY,gCAAgCE,MAAM,CAAC,UAAU,uBAAuB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,OAAOP,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyCP,EAAG,SAAS,CAACE,YAAY,uDAAuDE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,2BAA2B,OAAS,cAAc,GAAGJ,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,UAAU,UAAY,GAAG,UAAU,sBAAsB6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,aAAa,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,QAAQ,IAAI,GAAGP,EAAG,IAAI,CAACE,YAAY,2CAA2CC,YAAY,CAAC,aAAa,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IACpuD,GAAkB,GCwDtB,IAEE,UACER,OAAO20B,UAAU76B,KAAK,CACpB2C,MAAO,kBACPm4B,yBAA0B,CACxBxC,MAAO/xB,KAAKw0B,OAAOlG,OAAO9b,QC/DuT,MCOrV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,MAAiB,QAUhC,IAAkB,GAAW,CAAC9H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAKC,aAAA,KAAWC,OAAA,OC5BnE,IAAI,GAAS,WAAa,IAAI/K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,aAAa,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAaC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,wCAAwCC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,aAAaJ,EAAG,OAAO,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,OAAOP,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6CAA6C,OAAOP,EAAG,SAAS,CAACE,YAAY,uDAAuDE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,2BAA2B,OAAS,cAAc,GAAGJ,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,UAAU,UAAY,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,aAAa,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,QAAQ,IAAI,GAAGP,EAAG,IAAI,CAACE,YAAY,2CAA2CC,YAAY,CAAC,aAAa,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IAC5rD,GAAkB,GCAlBhD,GAAS,GAKT,GAAY,eACdA,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,MAAiB,QAUhC,IAAkB,GAAW,CAACuN,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAKC,aAAA,KAAWC,OAAA,OC3BnE,IAAI,GAAS,WAAa,IAAI/K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,mBAAmBC,YAAY,CAAC,YAAY,SAAS,YAAY,SAAS,aAAa,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAaC,YAAY,CAAC,UAAU,KAAK,mBAAmB,QAAQ,OAAS,OAAO,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,wCAAwCC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,aAAaJ,EAAG,OAAO,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,OAAOP,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sDAAsD,OAAOP,EAAG,SAAS,CAACE,YAAY,uDAAuDE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,2BAA2B,OAAS,cAAc,GAAGJ,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,UAAU,UAAY,GAAG,UAAU,qCAAqC6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,aAAa,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,QAAQ,IAAI,GAAGP,EAAG,IAAI,CAACE,YAAY,2CAA2CC,YAAY,CAAC,aAAa,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,6CAA6C,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,GAAGP,EAAG,QAAQ,CAACE,YAAY,0CAA0CE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,qBAAqB,IAAI,IAAI,IACnvD,GAAkB,GCAlB,GAAS,GAKT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,MAAiB,QAUhC,IAAkB,GAAW,CAACuK,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAKC,aAAA,KAAWC,OAAA,O,iVCLnEY,aAAI+iB,IAAIgG,QAER,MAAMC,GAAS,IAAID,OAAO,CACxB11B,KAAM,UACN41B,KAAMrR,IACNsR,OAAQ,CACN,CACEC,KAAM,IACNjyB,UAAWkyB,EACXh3B,KAAM,aAER,CACE+2B,KAAM,SACNjyB,UAAWmyB,EACXj3B,KAAM,SAER,CACE+2B,KAAM,UACN/2B,KAAM,SACN8E,UAAWoyB,IAEb,CACEH,KAAM,UACNjyB,UAAWqyB,GACXn3B,KAAM,UAER,CACE+2B,KAAM,OACNjyB,UAAWsyB,GACXp3B,KAAM,gBAER,CACE+2B,KAAM,qBACNjyB,UAAWuyB,GACXr3B,KAAM,mBAER,CACE+2B,KAAM,4BACNjyB,UAAWwyB,GACXt3B,KAAM,0BAER,CACE+2B,KAAM,yBACNjyB,UAAWyyB,GACXv3B,KAAM,wBAER,CACE+2B,KAAM,eACNjyB,UAAW0yB,GACXx3B,KAAM,cAER,CACE+2B,KAAM,gBACNjyB,UAAW2yB,GACXz3B,KAAM,gBAER,CACE+2B,KAAM,sBACNjyB,UAAW4yB,GACX13B,KAAM,qBAER,CACE+2B,KAAM,kBACNjyB,UAAW6yB,GACX33B,KAAM,iBAER,CACE+2B,KAAM,QACN/2B,KAAM,OACN8E,UAAW,IAAM,sCACjB8yB,KAAM,CAAEC,mBAAoB,SAE9B,CACEd,KAAM,YACN/2B,KAAM,UACN8E,UAAW,IAAM,yCACjB8yB,KAAM,CAAEC,mBAAoB,iBAE9B,CACEd,KAAM,uBACN/2B,KAAM,qBACN8E,UAAW,IAAM,2CAEnB,CACEiyB,KAAM,2BACN/2B,KAAM,mBACN4D,OAAO,EACPkB,UAAW,IAAM,mDAEnB,CACEiyB,KAAM,UACN/2B,KAAM,SACN8E,UAAW,IAAM,wCACjB8yB,KAAM,CAAEC,mBAAoB,WAE9B,CACEd,KAAM,aACN/2B,KAAM,WACN4D,OAAO,EACPkB,UAAW,IAAM,0CACjB8yB,KAAM,CAAEC,mBAAoB,eAS9B,CACEd,KAAM,mBACN/2B,KAAM,iBACN4D,OAAO,EACPkB,UAAW,IAAM,gDACjB8yB,KAAM,CAAEC,mBAAoB,eAE9B,CACEd,KAAM,YACN/2B,KAAM,UACN8E,UAAW,IAAM,yCACjB8yB,KAAM,CAAEC,mBAAoB,YAE9B,CACEd,KAAM,WACN/2B,KAAM,UACN4D,OAAO,EACPkB,UAAW,IAAM,yCACjB8yB,KAAM,CAAEC,mBAAoB,gBAE9B,CACEd,KAAM,YACN/2B,KAAM,WACN8E,UAAW,IAAM,iDACjBud,SAAU,CACR,CACE0U,KAAM,UACN/2B,KAAM,UACN8E,UAAW,IAAM,kDACjB8yB,KAAM,CAAEC,mBAAoB,mBAE9B,CACEd,KAAM,UACN/2B,KAAM,kBACN8E,UAAW,IAAM,iDACjB8yB,KAAM,CAAEC,mBAAoB,sBAE9B,CACEd,KAAM,aACN/2B,KAAM,qBACN8E,UAAW,IAAM,oDACjB8yB,KAAM,CAAEC,mBAAoB,wBAE9B,CACEd,KAAM,kBACN/2B,KAAM,kBACN8E,UAAW,IAAM,kDACjB8yB,KAAM,CAAEC,mBAAoB,mBAE9B,CACEd,KAAM,UACN/2B,KAAM,qBACN8E,UAAW,IAAM,qDAEnB,CACEiyB,KAAM,UACN/2B,KAAM,qBACN8E,UAAW,IAAM,oDACjB8yB,KAAM,CAAEC,mBAAoB,sBAE9B,CACEd,KAAM,aACN/2B,KAAM,uBACN8E,UAAW,IAAM,sDACjB8yB,KAAM,CAAEC,mBAAoB,uBAIlC,CACEd,KAAM,eACN/2B,KAAM,cACN8E,UAAW,IAAM,kDACjBud,SAAU,CACR,CACE0U,KAAM,QACN/2B,KAAM,mBACN8E,UAAW,IAAM,kDACjB8yB,KAAM,CAAEC,mBAAoB,mBAE9B,CACEd,KAAM,UACN/2B,KAAM,qBACN8E,UAAW,IAAM,qDAEnB,CACEiyB,KAAM,UACN/2B,KAAM,qBACN8E,UAAW,IAAM,oDACjB8yB,KAAM,CAAEC,mBAAoB,sBAE9B,CACEd,KAAM,aACN/2B,KAAM,uBACN8E,UAAW,IAAM,sDACjB8yB,KAAM,CAAEC,mBAAoB,uBAIlC,CACEd,KAAM,SACN/2B,KAAM,mBACN8E,UAAW,IAAM,kDACjBud,SAAU,CACR,CACE0U,KAAM,mBACN/2B,KAAM,iBACN8E,UAAW,IAAM,gDAEnB,CACEiyB,KAAM,iBACN/2B,KAAM,eACN8E,UAAW,IAAM,gDAEnB,CACEiyB,KAAM,iBACN/2B,KAAM,iBACN8E,UAAW,IAAM,gDAEnB,CACEiyB,KAAM,gBACN/2B,KAAM,cACN8E,UAAW,IAAM,gDAEnB,CACEiyB,KAAM,gBACN/2B,KAAM,cACN8E,UAAW,IAAM,gDAEnB,CACEiyB,KAAM,mBACN/2B,KAAM,YACN8E,UAAW,IAAM,kDAIvB,CACEiyB,KAAM,8BACNjyB,UAAW,IAAM,qDACjB9E,KAAM,uBAER,CACE+2B,KAAM,qBACNjyB,UAAW,IAAM,4CACjB9E,KAAM,iBAeZ42B,GAAOkB,WAAP,qBAAkB,UAAOC,EAAIC,EAAMC,GACjC,MAAMC,EAAWjqB,aAAakqB,QAAQ,gBAClCD,GACEE,0BAAaF,KACfjqB,aAAaqb,WAAW,gBACxBsN,GAAOj7B,KAAK,WAKhB,MAAMw2B,EAAOyE,GAAOv5B,QAAQ06B,EAAGhB,MAC/B,GAAqC,IAAjC5E,EAAKkG,SAASC,QAAQj9B,OAExB,YADA48B,EAAK,QAIP,GAAgB,eAAZF,EAAG/3B,MAAqC,wBAAZ+3B,EAAG/3B,KAAgC,CACjE,IAAK+3B,EAAGQ,MAAMC,UAEZ,YADAP,EAAK,QAGPhqB,aAAaqb,WAAW,sBAClBsN,GAAOlQ,IAAI+R,OAAOC,SACtB,aACA,CACE7nB,KAAM,CACJrE,IAAKgZ,kCACL5N,SAAU4N,2BAIhByS,IAIF,MAAMU,EAAgB,CAAC,SAAU,QAAS,eAAgB,aAAc,oBAAqB,gBAAiB,kBAAmB,yBAA0B,wBAAwB3wB,SAAS+vB,EAAG/3B,MAC/L,IAEE,MAAMumB,QAAaqQ,GAAOlQ,IAAI+R,OAAOC,SAAS,qBAC9C,IAAI7nB,EAiBJ,GAhBIhO,EAAElC,IAAI4lB,EAAM,YAAY,KAC1B1V,EAAO+lB,GAAOlQ,IAAI+R,OAAO7R,QAAQ,aAAaL,EAAK1V,KAAKrE,KACnDqE,EAAKqI,aACRrI,QAAa+lB,GAAOlQ,IAAI+R,OAAOC,SAAS,YAAa,CAACnS,EAAK1V,KAAKrE,MAEhD,YAAZurB,EAAG/3B,aACC42B,GAAOlQ,IAAI+R,OAAOC,SAAS,mBAKvCE,QAASC,OAAOC,MAAM,aAAc,CAClCC,MAAOhB,EAAG/3B,KACVg5B,OAAQn2B,EAAElC,IAAI4lB,EAAM,WAAY,eAG9BwR,EAAGH,KAAKC,qBAAuBh1B,EAAElC,IAAIkQ,EAAM,WAAW,GAAQ,CAChE,MAAMyM,EAAWjM,MAAM4nB,QAAQlB,EAAGH,KAAKC,oBAAsBE,EAAGH,KAAKC,mBAAqB,CAACE,EAAGH,KAAKC,oBAC7FvlB,EAASzP,EAAElC,IAAIkQ,EAAM,SAAU,IACjCyM,EAASjiB,OAAS,IACfiiB,EAAS4b,KAAKC,GAAO7mB,EAAO6mB,KAAqB,cAAZpB,EAAG/3B,OAC3Co5B,aAAMV,SAAS,gBAAiB,CAC9BzQ,MAAO,CAAEloB,QAAS,cAClBs5B,MAAOxV,WAAMI,QAEf2U,QAASC,OAAOn5B,MAAM,eAAgB,CACpCq5B,MAAOhB,EAAG/3B,KACVg5B,OAAQn2B,EAAElC,IAAI4lB,EAAM,WAAY,eAElCqQ,GAAOj7B,KAAK,OAIlBs8B,IACA,MAAOh7B,GACF07B,EAGHV,IAFArB,GAAOj7B,KAAK,UAKhB,MAAM29B,EAAeF,aAAMxS,QAAQ,kBAAkBvrB,OAChDi+B,UACGF,aAAMV,SAAS,mBAEvBT,OArFF,2DAwFerB,W,kCCzXf,W,kCCAA,W,+6BCIAhpB,aAAI+iB,IAAI4I,QACR3rB,aAAI+iB,IAAI6I,QAER,MAAMC,EAAgBC,UAChBC,EAAaF,EAAc5Y,OAAOzc,OAAO2yB,GAAiB,eAATA,GAAuBvyB,IAAIuyB,GAAQ0C,EAAc1C,GAAMxsB,SAExG3O,EAAU,EAAH,GACR+9B,EAAW7Q,OAAO,CAAC8Q,EAAKC,IAAN,OAAoBD,GAAQC,EAAIh0B,OAAU,KAE3Di0B,EAAU,IAAIH,EAAWn1B,IAAIq1B,GAAOA,EAAIp0B,SAExCI,EAAQ,IAAI0zB,OAAKH,MAAM,CAC3Bx9B,UACAk+B,YAGIC,EAAa/5B,IACjB,MAAMqI,EAAQggB,OAAO7B,IAAIwT,cAAch6B,GACnCqI,EAAM4xB,WACR5xB,EAAMxC,MAAMggB,OAAUxd,EAAM4xB,UAAR,cAIlBC,EAAc,KAClBr0B,EAAMggB,OAAO,gBACbhgB,EAAMggB,OAAO,iBAGb,IAAK,MAAM7lB,KAAQ1E,OAAOulB,KAAKwH,OAAO7B,IAAIwT,eACnC,CAAC,YAAa,WAAWhyB,SAAShI,IACrC+5B,EAAW/5B,IAYF6F,gB,2CC9Cf,IAAI7D,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,GAAG,MAAQ,WAAW,CAAqC,WAAnCR,EAAIk4B,QAAQC,OAAOC,YAA0Bh4B,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,OAAO,CAACE,YAAY,wBAAwBE,MAAM,CAAC,UAAU,0BAA0B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIk4B,QAAQC,OAAO1zB,cAAgB,oBAAoB,MAAMzE,EAAIU,GAAGV,EAAIk4B,QAAQC,OAAOnpB,cAAgB,2BAA2B,OAAO5O,EAAG,OAAO,CAACE,YAAY,YAAYC,YAAY,CAAC,mBAAmB,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIk4B,QAAQC,OAAOlzB,aAAa,SAASjF,EAAIgF,KAAyC,OAAnChF,EAAIk4B,QAAQC,OAAOC,YAAsBh4B,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,OAAO,CAACE,YAAY,wBAAwBE,MAAM,CAAC,UAAU,0BAA0B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIk4B,QAAQC,OAAO1zB,cAAc,MAAMzE,EAAIU,GAAGV,EAAIW,GAAG,kBAAmB,CAAC+N,SAAU1O,EAAIk4B,QAAQC,OAAOE,oBAAoB,OAAOr4B,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIk4B,QAAQhzB,oBAAuB,KAAQlF,EAAIk4B,QAA2B,oBAAK,IAAI,IAAIl4B,EAAIU,GAAGV,EAAIk4B,QAAQ5yB,2BAA6BtF,EAAIk4B,QAAQ7yB,gCAAmC,MAAQrF,EAAIk4B,QAAQ5yB,2BAA6BtF,EAAIk4B,QAAQ7yB,iCAAoC,IAAI,IAAIrF,EAAIU,GAAGV,EAAIk4B,QAAQ3yB,0BAA6B,KAAQvF,EAAIk4B,QAAiC,0BAAK,IAAI,IAAIl4B,EAAIU,GAAGV,EAAIk4B,QAAQC,OAAOpjB,qBAAwB,KAAQ/U,EAAIk4B,QAAQC,OAA2B,qBAAK,IAAI,IAAIn4B,EAAIU,GAAGV,EAAIk4B,QAAQ1yB,qBAAwB,KAAQxF,EAAIk4B,QAA4B,qBAAK,IAAI,KAAK93B,EAAG,OAAO,CAACE,YAAY,YAAYC,YAAY,CAAC,mBAAmB,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIk4B,QAAQC,OAAOlzB,aAAa,SAASjF,EAAIgF,QAC9pDtD,EAAkB,GCgCtB,GACE3D,KAAM,mCACN4D,MAAO,CACLu2B,QAAS,CACPh8B,KAAM7C,OACNiP,QAAS,UCtCsW,I,6CCOjXzF,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAKhC,IAAkBA,EAAW,CAACkI,OAAA,Q,uLCrB9B,MAAM1H,EAAc,QAEdC,GAAK,IAAG,cAAmBC,OAGR,0BACrB,MAAO,CACLxF,KAAM,GACNsS,OAAQ,GACRioB,UAAU,KAPL,gBACU,QADV,GAYI,cACb90B,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,s3CCdzC,MAAMi1B,EAAY,oBAAG,UAAMhwB,GACzB,MAAQ9K,EAAkB8K,EAAlB9K,MAAO8wB,EAAWhmB,EAAXgmB,OAIf,GAHA7uB,QAAQjC,MAAM,eAAgBA,GAC9BiC,QAAQjC,MAAM,wBAAyBA,GAEV,MAAzBmD,EAAElC,IAAIjB,EAAO,QAAiB,CAChC,MAAM+6B,EAA2B,CAC/B,SACA,UACA,eACA,gBACA,sBACA,kBACA,qBACA,4BACA,0BAKF,OAHKA,EAAyBvB,KAAKprB,GAAKjM,OAAO64B,SAASn9B,KAAKyK,SAAS8F,MACpEjM,OAAO64B,SAASn9B,KAAO,UAElBiN,EAET,MAAMmwB,EAAe93B,EAAEkQ,KAAKrT,EAAO,QAEnC,OADAiC,QAAQjC,MAAMi7B,IACwB,IAAlCnK,EAAOC,wBAKXjrB,EAAUK,MAAM6yB,SAAS,gBAAiB,CACxCzQ,MAAO0S,EACPtB,MAAOxV,WAAMI,QANNzZ,KAzBO,sDAqCZowB,EAAiB,oBAAG,UAAMpwB,GAC9B,MAAQgmB,EAAmBhmB,EAAnBgmB,OAAQqK,EAAWrwB,EAAXqwB,OAKhB,GAJIrK,EAAOsK,sBACTtK,EAAOC,wBAAyB,IAG7BD,EAAOC,uBACV,OAAOjmB,EAET,IAAIzK,EAAUywB,EAAOsK,oBACrB,IAAK/6B,EACH,OAAQ86B,GACN,IAAK,SACL,IAAK,QACH96B,EAAU,qBACV,MACF,IAAK,SACHA,EAAU,uBACV,MACF,QACE,MASN,OAJAyF,EAAUK,MAAM6yB,SAAS,gBAAiB,CACxCzQ,MAAO,CAAEloB,WACTs5B,MAAOxV,WAAMC,UAERtZ,KA7Bc,sDAgCjBmU,EAAO6G,+BACPuV,EAASC,IAAGrc,EAAM,CAAEsc,WAAY,CAAC,eAEjCr1B,EAAiBs1B,MACpBC,UAAUC,IAASL,EAAQ,CAAEx7B,QAAS,OAEtC47B,UAAUE,IAAW,CAAEC,QAASz5B,OAAOoM,gBACvCoL,MAAM,CACLC,MAAO,CACLlY,OAAQ,CACNw5B,GAEFW,MAAO,CACLX,GAEFzwB,OAAQ,CACNywB,IAGJl7B,MAAO,CACLS,IAAK,CACHqK,IACE7I,QAAQjC,MAAM8K,IAEhBgwB,MAKR50B,EAAeD,QAAQ,cAAcpG,QAAU,IAE/C,MAAM,EAOFi8B,eAAa51B,EAAgB,CAC/B61B,YAAa,MACbC,QAAS,QARTh2B,EADF,EACEA,kBACAi2B,EAFF,EAEEA,eACWC,EAHb,EAGEp2B,UACA6iB,EAJF,EAIEA,OAEAmR,GANF,EAKEqC,QALF,EAMErC,cAMF,MAAMh0B,UAAkBo2B,EAChBx6B,SAAgB,gEACpB,MAAM06B,EAAQC,YAAYpiB,MAC1B,UACQ,cAAgB,GACtBif,OAASC,OAAOC,MAAM,SAAU,CAC9BjjB,OAAQ,SACR1X,KAAM,EAAK69B,YAAYh8B,KACvBg5B,OAAQ,EAAKiD,YACbC,WAAaH,YAAYpiB,MAAQmiB,IAEnC,MAAOp9B,GASP,MARAiD,QAAQjC,MAAMhB,GACdk6B,OAASC,OAAOn5B,MAAM,QAAS,CAC7BmW,OAAQ,SACRnW,MAAOhB,EACPP,KAAM,EAAK69B,YAAYh8B,KACvBg5B,OAAQ,EAAKiD,YACbC,WAAaH,YAAYpiB,MAAQmiB,IAE7Bp9B,EAER,OAAO,IArBa,GAwBhBmR,OAAc,8DAClB,MAAMisB,EAAQC,YAAYpiB,MAC1B,UACQ,cAAc,GACpBif,OAASC,OAAOC,MAAM,SAAU,CAC9BjjB,OAAQ,OACR1X,KAAM,EAAK69B,YAAYh8B,KACvBg5B,OAAQ,EAAKiD,YACbC,WAAaH,YAAYpiB,MAAQmiB,IAEnC,MAAOp9B,GASP,MARAiD,QAAQjC,MAAMhB,GACdk6B,OAASC,OAAOn5B,MAAM,QAAS,CAC7BmW,OAAQ,OACRnW,MAAOhB,EACPP,KAAM,EAAK69B,YAAYh8B,KACvBg5B,OAAQ,EAAKiD,YACbC,WAAaH,YAAYpiB,MAAQmiB,IAE7Bp9B,EAER,OAAO,IArBW,IAyBtB,SAASoH,EAAiB0O,EAAS2nB,GACjC,MAAO,CACL,CAAC3nB,EAAQlP,aAAT,GACEqhB,YAAY,GAERwV,GAAQ,KAeHv2B,U,8CC/Lf,MAAMw2B,EAAmB1C,UAEzB0C,EAAiBvb,OAAOrL,QAAQoJ,IACb,eAAbA,GAEJwd,EAAiBxd,M,kCCLnB,W,oECAA,IAAI5c,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,gBAAgB,CAACJ,EAAG,cAAc,CAACA,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACE,YAAY,SAAS,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAG,WAAW,QAAQ,GAAGN,EAAG,qBAAqB,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,SAAS,CAACJ,EAAIS,GAAG,kBAAkB,IAAI,IAAI,IAAI,GAAGL,EAAG,aAAaJ,EAAIiB,GAAIjB,EAAc,YAAE,SAASmC,EAAOjJ,GAAG,MAAO,CAACkH,EAAG,SAAS,CAAChB,IAAK,QAAUlG,EAAGsH,MAAM,CAAC,MAAQ,gBAAgB,CAACJ,EAAG,cAAc,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGyB,EAAOi4B,SAAS,OAAOh6B,EAAGJ,EAAIq6B,UAAUl4B,EAAOjG,MAAM8D,EAAI+G,GAAG,CAACpL,IAAI,YAAYyK,MAAM,CAACtH,MAAOqD,EAAY,MAAEkE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKlG,EAAQ,QAASmE,IAAME,WAAW,iBAAiB,YAAYrE,GAAO,KAAS,GAAKjJ,EAAI,IAAOG,OAAOulB,KAAK5e,EAAI+P,YAAY3W,OAAQgH,EAAG,YAAY,CAAChB,IAAK,WAAalG,IAAK8G,EAAIgF,UAAS,IAAI,IAC73BtD,EAAkB,GCoDtB,GACEC,MAAO,CAAC,OAAQ,UAAW,SAE3BE,SAAU,CAER,cACE,OAAO,IAAIy4B,IAAI,CACrB,0CACA,sCACA,oCACA,8CAIIvqB,WAAY,CACV,MACE,OAAO9P,KAAKnB,OAGd,IAAIA,GACFmB,KAAKsM,MAAM,QAASzN,MAK1B4D,QAAS,CACP,UAAU63B,GACR,OAAIt6B,KAAKu6B,YAAYC,IAAIF,GAChBt6B,KAAKu6B,YAAY97B,IAAI67B,GAEvB,UCnFiW,I,qKCQ1W13B,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAehC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKE,OAAA,KAAK6P,WAAA,KAASvX,QAAA,KAAMu3B,QAAA,KAAMC,YAAA,KAAUC,kBAAA,KAAgBC,iBAAA,OAAiBC,eAAA,OAAe/vB,OAAA,KAAKgwB,aAAA,Q,uBClC5H,IAAIx4B,EAAM,CACT,YAAa,OACb,eAAgB,QAIjB,SAASy4B,EAAe9D,GACvB,IAAIzkB,EAAKwoB,EAAsB/D,GAC/B,OAAO38B,EAAoBkY,GAE5B,SAASwoB,EAAsB/D,GAC9B,IAAI38B,EAAoBgE,EAAEgE,EAAK20B,GAAM,CACpC,IAAIl8B,EAAI,IAAI0B,MAAM,uBAAyBw6B,EAAM,KAEjD,MADAl8B,EAAE2B,KAAO,mBACH3B,EAEP,OAAOuH,EAAI20B,GAEZ8D,EAAepc,KAAO,WACrB,OAAOvlB,OAAOulB,KAAKrc,IAEpBy4B,EAAe5/B,QAAU6/B,EACzBngC,EAAOD,QAAUmgC,EACjBA,EAAevoB,GAAK,Q,oCCvBpB,W,oECAA,IAAI1S,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,eAAe,CAACG,YAAY,CAAC,mBAAmB,UAAU,MAAQ,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAIa,aAAa,GAAI,UAAU,OAAOT,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAIa,aAAaf,MAAM,IAAI,SAASoB,EAAKhI,GAAG,OAAOkH,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,MAAMC,MAAM,CAAC,KAASlI,EAAI,IAAM,IAAK,CAACkH,EAAG,KAAK,CAACG,YAAY,CAAC,QAAU,OAAO,cAAc,WAAW,CAACH,EAAG,MAAM,CAACE,YAAY,OAAOE,MAAM,CAAC,IAAO,QAAWU,EAAS,KAAI,OAAQ,MAAQ,OAAO,OAAS,UAAUlB,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKC,OAAO,OAAOf,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKpC,OAAO,YAAW,KAAK2C,OAAM,QAAW,IACrvBC,EAAkB,G,msBCqCtB,MAAM,EAAN,uBACA,OACE3D,KAAM,oBACN4D,MAAO,CACLC,KAAMvI,QAERwI,SAAU,CACR,eACE,IAAIC,EAAY,GAEZ7B,KAAK2B,OACPE,EAAYlB,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,KAIpEH,EADElB,EAAEsB,QAAQJ,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,8BACA,CAAU,MAAV,YAAU,MAAV,KACA,CAAU,MAAV,eAAU,MAAV,KACA,CAAU,MAAV,eAAU,MAAV,KACA,CAAU,MAAV,cAAU,MAAV,KACA,CAAU,MAAV,eAAU,MAAV,KACA,CAAU,MAAV,yBAAU,MAAV,MAGoBA,EAAUK,OAAOC,GAA4B,OAAnBA,EAAMC,UACpD,6BACA,SAAU,MAAV,cAAU,MAAV,WAGM,MAAMvE,EAAU8C,EAAElC,IAAIuB,KAAK2B,KAAM,yCAA0C,KACrEirB,EAAmBjsB,EAAElC,IAAIuB,KAAK2B,KAAM,uCAC1CE,EAAUpI,KAAK,CACbyH,MAAO,WAAP,MAAR,QAAQ,MAAR,UAEMW,EAAUpI,KAAK,CACbyH,MAAO,SAAP,MAAR,QAAQ,KAAR,QAAQ,MAAR,SAGM,MAAMmB,EAAQ,CAApB,gCACM,OAAOR,EAAUS,IAAIC,GAAO,EAAlC,6CC9E0W,I,qECOtWK,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACC,QAAA,KAAM0N,WAAA,OAAWpN,eAAA,Q,2CCzB/C,IAAIrD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,WAAW,EAAIP,EAAIk7B,OAAOtf,iBAAkB5b,EAAIk7B,OAAO/e,eAAkBnc,EAAIm7B,oBAAqB/6B,EAAG,SAAS,CAACE,YAAY,QAAQ,CAACF,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAEJ,EAAwB,qBAAEI,EAAG,UAAU,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACjjB,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACxG,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAQ,YAAY,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,mCAAmC,MAAK,EAAM,YAAY,CAACL,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,8CAA8CX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,gBAAgB,MAAMX,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,MAAM,KAAKX,EAAIgF,KAAKhF,EAAIiB,GAAIjB,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,mCAAoC,KAAK,SAASw5B,EAAG34B,GAAO,OAAOrC,EAAG,UAAU,CAAChB,IAAIqD,EAAMjC,MAAM,CAAC,MAAQ,OAAO,MAAoD,UAA5CR,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,UAAY,YAAY,CAACyD,EAAG,MAAM,CAACE,YAAY,0CAA0C,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACpxB,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACxG,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAoD,UAA5CR,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,UAAW,YAAY,SAAS6D,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,IAAIT,EAAIU,GAA+C,UAA5CV,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,2BAA6B,qBAAqB,WAAW,MAAK,IAAO,EAAEqD,EAAIq7B,2BAA2BD,EAAGz+B,MAAmByD,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,gDAA2IX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAI,UAAaX,EAAIq7B,2BAA2BD,EAAGz+B,QAAU,MAAMqD,EAAIU,GAAGV,EAAIW,GAAI,mBAAsBy6B,EAAO,OAAK,MAAM,GAAgD,UAA5Cp7B,EAAIq7B,2BAA2BD,EAAGz+B,OAAiC,MAAZy+B,EAAGz+B,KAAcyD,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oDAAoD,OAAoD,UAA5CX,EAAIq7B,2BAA2BD,EAAGz+B,MAAmByD,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,OAAoD,YAA5CX,EAAIq7B,2BAA2BD,EAAGz+B,OAAoC,QAAZy+B,EAAGz+B,KAAiByD,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,OAAOP,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,OAAOP,EAAG,IAAI,CAACE,YAAY,gCAAgC+D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIs7B,oBAAqB,KAAQ,CAACt7B,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsCP,EAAG,OAAO,CAACE,YAAY,yBAAyBC,YAAY,CAAC,YAAY,OAAO,iBAAiB,mBAAmBP,EAAuB,oBAAEI,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACr5D,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,OAAOC,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAQ,YAAY,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,oCAAoC,MAAK,EAAM,aAAa,CAACL,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,+CAA+CP,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,OAAO,CAACE,YAAY,kBAAkB,CAAEN,EAAIqa,IAAIra,EAAIm7B,qBAAsB/6B,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iBAAiB,MAAMX,EAAIU,GAAGV,EAAIW,GAAGX,EAAIm7B,sBAAsB,OAAO/6B,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iBAAiB,MAAMX,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,KAAMX,EAAI4B,KAAc,UAAExB,EAAG,IAAI,CAACE,YAAY,gCAAgC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,KAAKP,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,wDAAwD,OAAS,WAAW,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,SAASP,EAAG,IAAI,CAACE,YAAY,gCAAgC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,cAAc,KAAKX,EAAIgF,MAAM,IAAI,GAAG5E,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,oBAAoB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQR,EAAIm7B,oBAAsB,QAAU,UAAU,UAAU,KAAK,CAACn7B,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIm7B,oBAAsB,2BAA6B,0BAA0B,OAAO/6B,EAAG,MAAM,CAACE,YAAY,0CAA0C,CAACF,EAAG,OAAO,CAACgB,MAAM,CAAC,CAAE,cAAepB,EAAIm7B,qBAAuB,4BAA4B,CAACn7B,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK6I,cAAc,OAASzK,EAAIm7B,oBAAsJn7B,EAAIgF,KAArI5E,EAAG,OAAO,CAACE,YAAY,oBAAoBE,MAAM,CAAC,UAAU,kBAAkB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIu7B,qBAAqB,UAAmB,GAAIv7B,EAAuB,oBAAEI,EAAG,QAAQ,CAACE,YAAY,sBAAsBE,MAAM,CAAC,KAAO,MAAM,CAAER,EAAIw7B,wBAA0Bx7B,EAAIy7B,yBAA0B,CAACr7B,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI07B,YAAY17B,EAAI4B,KAAM,kBAAkB,CAACxB,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,CAACR,EAAIS,GAAG,kBAAkBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+CAA+C,MAAM,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI07B,YAAY17B,EAAI4B,KAAM,cAAc,CAACxB,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,CAACR,EAAIS,GAAG,kBAAkBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,MAAM,IAAI,CAACP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI07B,YAAY17B,EAAI4B,SAAS,CAACxB,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,CAACR,EAAIS,GAAG,kBAAkBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,MAAM,KAAK,GAAGX,EAAIgF,KAAK5E,EAAG,QAAQ,CAACE,YAAY,mCAAmC,CAAGN,EAAIm7B,oBAAwQn7B,EAAIgF,KAAvP5E,EAAG,OAAO,CAACE,YAAY,SAAS,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGiF,KAAKkW,MAAM7b,EAAI4B,KAAK+Z,iBAAiB,KAAK3b,EAAIU,GAAGV,EAAIW,GAAG,cAAc,IAAIX,EAAIU,GAAyB,iBAAtBV,EAAI4B,KAAK+5B,SAA8B,MAAQ37B,EAAI4B,KAAK+5B,UAAU,IAAI37B,EAAIU,GAAGV,EAAIW,GAAG,oBAAoB,OAAgBP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAASR,EAAIm7B,oBAAkC,QAAZ,WAAqB92B,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIuM,MAAM,SAAUvM,EAAI4B,SAAS,CAACxB,EAAG,SAAS,CAACJ,EAAIS,GAAG,kBAAkB,IAAI,IAAI,GAAGL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,oBAAoB,CAACI,MAAM,CAAC,MAAQR,EAAIm7B,oBAAsB,IAAMn7B,EAAI2b,eAAe,OAAS,KAAK,QAAU,GAAG,eAAiB3b,EAAIm7B,qBAA8C,MAAvBn7B,EAAI2b,eAAuB,MAAQ3b,EAAIm7B,oBAAsB,QAAU,cAAc,IAAI,IAAI,IAAI,GAAwB,YAApBn7B,EAAI4B,KAAKwqB,OAAsBhsB,EAAG,SAAS,CAACA,EAAG,yBAAyB,CAACI,MAAM,CAAC,KAAOR,EAAI4B,KAAK,uBAAuB5B,EAAImP,mBAAmB,mBAAmBnP,EAAI47B,gBAAgB,kBAAkB57B,EAAI67B,cAAc,iBAAiB,WAAc,OAAO77B,EAAIuM,MAAM,oBAAqBvM,EAAI4B,WAAa,GAAGxB,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,YAAY,WAAW,CAAGR,EAAIY,EAAEsB,QAAQlC,EAAI87B,YAGp8F97B,EAAIgF,KAH68F5E,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC/jI,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACxG,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAQ,YAAY,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,mCAAmC,MAAK,EAAM,YAAY,CAACL,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,8CAA8CX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,gBAAgB,OAAOX,EAAIiB,GAAIjB,EAAc,YAAE,SAASlB,EAAMM,EAAIqD,GAAO,OAAOrC,EAAG,OAAO,CAAChB,IAAIA,GAAK,CAAU,mBAARA,GAAsC,IAAVN,EAAasB,EAAG,OAAO,CAAE/G,OAAOulB,KAAK5e,EAAI87B,YAAY1iC,OAAS,IAAMqJ,EAAOrC,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,QAAQP,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,SAAUtH,OAAOulB,KAAK5e,EAAI87B,YAAY1iC,OAAS,IAAMqJ,EAAOrC,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAI,cAAgBvB,EAAM,CAAE,MAASN,KAAU,QAAQsB,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAI,cAAgBvB,EAAM,CAAE,MAASN,KAAU,YAAWkB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oBAAoB,MAAM,KAAeX,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,mCAAoC,IAAIO,QAAO,SAAUnH,GAAK,MAAkD,YAA3CgF,EAAIq7B,2BAA2BrgC,EAAE2B,SAA8B,OAAEyD,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQ,YAAYR,EAAIiB,GAAIjB,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,mCAAoC,IAAIO,QAAO,SAAUnH,GAAK,MAAkD,YAA3CgF,EAAIq7B,2BAA2BrgC,EAAE2B,UAAyB,SAASy+B,EAAG34B,GAAO,OAAOrC,EAAG,OAAO,CAAChB,IAAIqD,GAAO,CAACrC,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC79C,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACxG,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAoD,UAA5CR,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,UAAW,YAAY,SAAS6D,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,IAAIT,EAAIU,GAA+C,UAA5CV,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,2BAA6B,qBAAqB,WAAW,MAAK,IAAO,CAA8C,UAA5CqD,EAAIq7B,2BAA2BD,EAAGz+B,MAAmByD,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,6CAA6CP,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,gDAAgDX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAI,UAAaX,EAAIq7B,2BAA2BD,EAAGz+B,QAAU,MAAMqD,EAAIU,GAAGV,EAAIW,GAAI,mBAAsBy6B,EAAO,OAAK,MAAM,QAAO,GAAGp7B,EAAIgF,KAAKhF,EAAIiB,GAAIjB,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,mCAAoC,IAAIO,QAAO,SAAUnH,GAAK,MAAkD,UAA3CgF,EAAIq7B,2BAA2BrgC,EAAE2B,UAAuB,SAASy+B,EAAG34B,GAAO,OAAOrC,EAAG,UAAU,CAAChB,IAAIqD,EAAMjC,MAAM,CAAC,MAAoD,UAA5CR,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,UAAW,YAAY,CAACyD,EAAG,MAAM,CAACE,YAAY,0CAA0C,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACjrC,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACxG,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAoD,UAA5CR,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,UAAW,YAAY,SAAS6D,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,IAAIT,EAAIU,GAA+C,UAA5CV,EAAIq7B,2BAA2BD,EAAGz+B,MAAoB,2BAA6B,qBAAqB,WAAW,MAAK,IAAO,CAA8C,UAA5CqD,EAAIq7B,2BAA2BD,EAAGz+B,MAAmByD,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,6CAA6CP,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,gDAAgDX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAI,UAAaX,EAAIq7B,2BAA2BD,EAAGz+B,QAAU,MAAMqD,EAAIU,GAAGV,EAAIW,GAAI,mBAAsBy6B,EAAO,OAAK,KAAMp7B,EAA4B,yBAAEI,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI07B,YAAY17B,EAAI4B,KAAM,cAAc,CAACxB,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,KAAO,KAAK,CAACR,EAAIS,GAAG,kBAAkBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,MAAM,GAAGX,EAAIgF,MAAM,GAAgD,UAA5ChF,EAAIq7B,2BAA2BD,EAAGz+B,MAAmByD,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,OAAOX,EAAIgF,KAAkD,YAA5ChF,EAAIq7B,2BAA2BD,EAAGz+B,OAAoC,MAAZy+B,EAAGz+B,KAAeyD,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,OAAOX,EAAIgF,KAAkD,YAA5ChF,EAAIq7B,2BAA2BD,EAAGz+B,OAAoC,MAAZy+B,EAAGz+B,KAAeyD,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4CAA4C,OAAOX,EAAIgF,KAAK5E,EAAG,IAAI,CAACE,YAAY,gCAAgC+D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIs7B,oBAAqB,KAAQ,CAACt7B,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsCP,EAAG,OAAO,CAACE,YAAY,yBAAyBC,YAAY,CAAC,YAAY,OAAO,iBAAiB,mBAAmBP,EAAI4B,KAAK6qB,mBAA6C,2BAAErsB,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACxkE,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,OAAOC,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAQ,YAAY,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,oCAAoC,MAAK,EAAM,aAAa,CAACL,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,+CAAgDX,EAAe,YAAE,CAACI,EAAG,OAAO,CAACE,YAAY,0CAA0C,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,oBAAoBX,EAAIS,GAAG,OAAOL,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAI+7B,qBAAqB37B,EAAG,IAAI,CAACE,YAAY,OAAO+D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,qBAAqB,CAACsG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,QAASX,EAAIg8B,kBAAkBh8B,EAAIk7B,OAAO9N,4BAA6B,CAAChtB,EAAG,OAAO,CAACE,YAAY,0CAA0C,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iBAAiB,OAAOP,EAAG,MAAMA,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIi8B,YAAYj8B,EAAIk7B,OAAO9N,iCAAiC,CAAEptB,EAAIk8B,iBAAiBl8B,EAAIW,GAAGX,EAAIk7B,OAAO9N,6BAA8B,CAAChtB,EAAG,OAAO,CAACE,YAAY,0CAA0C,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,oBAAoBX,EAAIS,GAAG,MAAMT,EAAIU,GAAGV,EAAIm8B,gBAAgBn8B,EAAIW,GAAGX,EAAIk7B,OAAO9N,8BAA8B,KAAKhtB,EAAG,IAAI,CAACE,YAAY,OAAO+D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,qBAAqB,CAACsG,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,8CAA8C,CAACP,EAAG,OAAO,CAACE,YAAY,0CAA0C,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,oBAAoBX,EAAIS,GAAG,MAAMT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIk7B,OAAO9N,2BAA4B,CAACgP,OAAQp8B,EAAIk7B,OAAOjN,iBAAiB,QAAQ,GAAGjuB,EAAIgF,KAAK5E,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,wBAAwB,qBAAqB,CAACH,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,QAAQ,QAAU,OAAO,iBAAiB,SAAS,cAAc,WAAW,CAACH,EAAG,oBAAoB,CAACgB,MAAM,CAAE,UAAWpB,EAAI67B,eAAgBr7B,MAAM,CAAC,KAAOR,EAAI4B,KAAK,MAAQ,IAAI,OAAS,IAAI,mBAAmB5B,EAAIk7B,OAAOtf,eAAe,kBAAkB5b,EAAIk7B,OAAO/e,eAAe9X,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyB,WAC5iExH,EAAIuM,MAAM,oBAAqBvM,EAAI4B,OAClC7H,MAAM,KAAMgO,YAAY,YAAY/H,EAAI47B,mBAAoB57B,EAAIq8B,sBAAwBr8B,EAAI4B,KAAK06B,UAAW,CAAGt8B,EAAIk7B,OAAOpO,oBAA6J9sB,EAAIgF,KAA5I5E,EAAG,MAAM,CAACE,YAAY,wCAAwC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAgBP,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAAEN,EAAkB,eAAEI,EAAG,SAAS,CAACG,YAAY,CAAC,iBAAiB,SAASC,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,yBAAyBT,EAAIgF,KAAK5E,EAAG,OAAO,CAACkB,MAAOtB,EAAIu8B,eAAiB,CAAC,MAAQ,WAAa,IAAK,CAACv8B,EAAIS,GAAG,IAAIT,EAAIU,GAA6B,IAA1BV,EAAIw8B,kBAA0Bx8B,EAAIW,GAAG,yCAA2CX,EAAIw8B,kBAAqB,IAAMx8B,EAAIw8B,kBAAoB,KAAQ,KAAK,QAAQ,IAAMx8B,EAAIq8B,oBAAgnBr8B,EAAIgF,KAA/lB,CAAGhF,EAAIk7B,OAAOpO,oBAA4J9sB,EAAIgF,KAA3I5E,EAAG,MAAM,CAACE,YAAY,wCAAwC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,OAAgBP,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAAEN,EAAiB,cAAEI,EAAG,SAAS,CAACG,YAAY,CAAC,iBAAiB,SAASC,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,yBAAyBT,EAAIgF,KAAK5E,EAAG,OAAO,CAACkB,MAAOtB,EAAIy8B,cAAgB,CAAC,MAAQ,WAAa,IAAK,CAACz8B,EAAIS,GAAG,IAAIT,EAAIU,GAA4B,IAAzBV,EAAI08B,iBAAyB18B,EAAIW,GAAG,wCAA0CX,EAAI08B,iBAAoB,IAAM18B,EAAI08B,iBAAmB,KAAQ,KAAK,QAAQ,IAAat8B,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,UAAU,UAAU,uBAAuB6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyB,WAC39CxH,EAAIuM,MAAM,oBAAqBvM,EAAI4B,OAClC7H,MAAM,KAAMgO,cAAc,CAAC/H,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,KAAK,CAACR,EAAIS,GAAG,wBAAwB,IAAI,GAAGL,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,QAAU,OAAO,MAAQ,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,4BAA4B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK6I,cAAc,OAAOrK,EAAG,YAAYA,EAAG,MAAM,CAACE,YAAY,mCAAmCc,MAAM,CAC5a,cAAepB,EAAIk7B,OAAO/N,wBAC1BwP,gBAAkB38B,EAAIk7B,OAAO/N,0BAC5B,CAACntB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIk7B,OAAO/N,wBAA0B,gCAAkC,qCAAqC,KAAK/sB,EAAG,SAAS,CAACgB,MAAM,CAAEu7B,gBAAkB38B,EAAIk7B,OAAO/N,yBAA0B3sB,MAAM,CAAC,MAAQ,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,kBAAkB,IAAI,GAAGL,EAAG,SAAS,CAACyG,IAAI,cAAcT,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAI48B,oBAAoBt2B,GAAKE,WAAW,wBAAwB,CAACpG,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,QAAU,OAAO,wBAAwB,oBAAoB,kBAAkB,SAAS,CAACH,EAAG,eAAe,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAY,KAAK,UAAU,oBAAoB,SAAWR,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,YAAc98B,EAAIW,GAAG,4CAA4C,MAAQX,EAAIW,GAAG,iCAAiC,MAAQ,CAACX,EAAIgY,WAAWhY,EAAI+8B,UAAU,IAAI/8B,EAAIg9B,+CAA+C,SAAW,GAAG,MAAQ,IAAI34B,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIk7B,OAAO/N,yBAA0B,IAAS/mB,MAAM,CAACtH,MAAOkB,EAAI4B,KAAiB,aAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,eAAgB0E,IAAME,WAAW,uBAAuBpG,EAAG,eAAe,CAACE,YAAY,cAAcE,MAAM,CAAC,IAAM,IAAI,IAAM,KAAK,UAAU,wBAAwB,SAAWR,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,MAAQ,CAAC98B,EAAIi9B,wBAAwB,KAAO,SAAS,MAAQj9B,EAAIW,GAAG,+BAA+B,SAAW,GAAG,MAAQ,GAAG,eAAe,IAAIsF,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAK6pB,eAAiB9lB,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QACniDkB,EAAI4B,KAAK6pB,eAAiBzrB,EAAI4B,KAAK6pB,eAAiB,GAAK,GAAKzrB,EAAI4B,KAAK6pB,eACvEzrB,EAAIk7B,OAAO/N,yBAA0B,IAAS/mB,MAAM,CAACtH,MAAOkB,EAAI4B,KAAmB,eAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,iBAAkB0E,IAAME,WAAW,yBAAyBpG,EAAG,eAAe,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAY,KAAK,UAAU,2BAA2B,SAAWR,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,YAAc98B,EAAIW,GAAG,6CAA6C,MAAQ,CAACX,EAAIgY,YAAY,MAAQhY,EAAIW,GAAG,sBAAsB,SAAW,GAAG,MAAQ,GAAG,eAAe,IAAI0D,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIk7B,OAAO/N,yBAA0B,IAAS/mB,MAAM,CAACtH,MAAOkB,EAAI4B,KAAiB,aAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,eAAgB0E,IAAME,WAAW,uBAAuBpG,EAAG,gBAAgB,CAACE,YAAY,QAAQE,MAAM,CAAC,IAAM,GAAG,eAAe,IAAI6D,GAAG,CAAC,OAASrE,EAAIk9B,qBAAqBp8B,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,OAAO,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,+BAA+BL,EAAG,OAAO,CAACE,YAAY,mBAAmBC,YAAY,CAAC,MAAQ,QAAQ,mBAAmB,UAAU,OAAS,oBAAoB,gBAAgB,MAAM,QAAU,YAAY,CAACP,EAAIS,GAAG,aAAagB,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAI4B,KAAc,UAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,YAAa0E,IAAME,WAAW,mBAAmB,CAACpG,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQR,EAAIm9B,gBAAgBr8B,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,OAAO,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,aAAagB,OAAM,OAAWzB,EAA4B,yBAAEI,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQR,EAAIo9B,iBAAiBt8B,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,OAAO,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,cAAcgB,OAAM,IAAO,MAAK,EAAM,cAAczB,EAAIgF,MAAM,IAAI,GAAG5E,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,wBAAwB,yBAAyB,WAAW,SAAS,CAACH,EAAG,MAAM,CAACA,EAAG,WAAW,CAACyG,IAAI,mBAAmBvG,YAAY,OAAOE,MAAM,CAAC,UAAU,wBAAwB,MAAQR,EAAIq9B,UAAU,MAAQr9B,EAAIW,GAAG,+BAA+B,SAAWX,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,MAAQ,CAAC98B,EAAIgY,YAAY,YAA2B,UAAfhY,EAAIyN,OAAqB,cAAgB,iBAAiB,aAAa,aAAa,kBAAkB,GAAG,MAAQ,GAAG,eAAe,GAAG,SAAW,IAAIpJ,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAI4B,KAAK2S,YAAcvU,EAAIq9B,UAAUpzB,MAAK,SAAU9L,GAAK,OAAOA,EAAEm/B,aAAeh5B,KAAWi5B,YACv2Ev9B,EAAI4B,KAAK47B,eAAiBx9B,EAAIq9B,UAAUpzB,MAAK,SAAU9L,GAAK,OAAOA,EAAEm/B,aAAeh5B,KAAWm5B,eAC/Fz9B,EAAI4B,KAAK0sB,iBAAmBtuB,EAAIq9B,UAAUpzB,MAAK,SAAU9L,GAAK,OAAOA,EAAEm/B,aAAeh5B,KAAWjC,SACjGrC,EAAI4B,KAAK+pB,eAAiB,GAC1B3rB,EAAI4B,KAAK4S,kBAAoB,GAC7BxU,EAAI4B,KAAKgqB,kBAAoB,GAC7B5rB,EAAI4B,KAAK87B,uBAAyB,KAClC19B,EAAI4B,KAAKmT,qBAAuB,GAChC/U,EAAI4B,KAAKiqB,eAAiB,GAC1B7rB,EAAI4B,KAAKwD,kBAAoB,GAC7BpF,EAAI4B,KAAKkqB,qBAAuB,GAChC9rB,EAAI4B,KAAKuD,wBAA0B,GACnCnF,EAAIk7B,OAAO/N,yBAA0B,EACrCntB,EAAI4B,KAAK+7B,mBAAqB,GAC9B39B,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,QAAaO,MAAM,CAACtH,MAAOkB,EAAI4B,KAAa,SAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,WAAY0E,IAAME,WAAW,mBAAmBpG,EAAG,WAAW,CAACyG,IAAI,iBAAiBvG,YAAY,OAAOE,MAAM,CAAC,UAAU,sBAAsB,MAAQR,EAAI49B,SAAS,MAAQ,CAAC59B,EAAIgY,YAAY,SAAWhY,EAAI68B,mBAAqB78B,EAAI88B,kBAAoB98B,EAAI4B,KAAKgqB,mBAAqB5rB,EAAI69B,sBAAsB,gBAAgB,SAAUC,GAAU,OAAQ99B,EAAI+9B,cAAc9G,MAAK,SAAU+G,GAAM,OAAOA,EAAGV,aAAeQ,EAAOR,eAAkB,QAAUt9B,EAAI69B,sBAAsB,MAAQ79B,EAAIW,GAAG,6BAA6B,YAA2B,UAAfX,EAAIyN,OAAqB,cAAgB,iBAAiB,aAAa,MAAM,MAAQ,GAAG,eAAe,GAAG,SAAW,IAAIpJ,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAI0N,MAAMuwB,YAAY5vB,WACh0BrO,EAAI4B,KAAKwD,kBAAoBpF,EAAI49B,SAAS3zB,MAAK,SAAU9L,GAAK,OAAOA,EAAEoM,MAAQjG,KAAWi5B,YAC1Fv9B,EAAI4B,KAAKs8B,qBAAuBl+B,EAAI49B,SAAS3zB,MAAK,SAAU9L,GAAK,OAAOA,EAAEoM,MAAQjG,KAAWm5B,eAC7Fz9B,EAAI4B,KAAKkqB,qBAAuB,GAChC9rB,EAAI4B,KAAKuD,wBAA0B,GACnCnF,EAAIk7B,OAAO/N,yBAA0B,EACrCntB,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,QAAaO,MAAM,CAACtH,MAAOkB,EAAI4B,KAAmB,eAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,iBAAkB0E,IAAME,WAAW,yBAAyBpG,EAAG,eAAe,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAU,wBAAwB,IAAMR,EAAIm+B,UAAU,MAAQn+B,EAAIW,GAAG,+BAA+B,MAAQ,CAACX,EAAI0S,mBAAmB,SAAW1S,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,KAAO,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAIz4B,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,mBAAmBC,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAK8D,OAASC,KAAKwE,IAAIxE,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QAAS,GAAGkB,EAAIk7B,OAAO/N,yBAA0B,IAAS/mB,MAAM,CAACtH,MAAOkB,EAAI4B,KAAW,OAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,SAAU5B,EAAIuG,GAAGD,KAAOE,WAAW,iBAAkBxG,EAAwB,qBAAEI,EAAG,eAAe,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAU,4BAA4B,IAAM,IAAI,IAAMR,EAAIo+B,UAAU,MAAQp+B,EAAIW,GAAG,mCAAmC,SAAWX,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,KAAO,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAIz4B,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,mBAAmBC,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAKwsB,aAAezoB,KAAKwE,IAAIxE,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QAAS,GAAGkB,EAAIk7B,OAAO/N,yBAA0B,EAAOntB,EAAIq+B,oBAAqBj4B,MAAM,CAACtH,MAAOkB,EAAI4B,KAAiB,aAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,eAAgB5B,EAAIuG,GAAGD,KAAOE,WAAW,uBAAuBxG,EAAIgF,MAAM,GAAG5E,EAAG,MAAM,CAACA,EAAG,WAAW,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAU,sBAAsB,MAAQR,EAAIs+B,OAAO,MAAQt+B,EAAIW,GAAG,6BAA6B,MAAQ,CAACX,EAAIgY,YAAY,SAAWhY,EAAI68B,mBAAqB78B,EAAI88B,kBAAoB98B,EAAI4B,KAAK8pB,SAAS,YAA2B,UAAf1rB,EAAIyN,OAAqBzN,EAAIu+B,qBAAqB,eAAiBv+B,EAAIu+B,qBAAqB,kBAAkB,aAAa,aAAa,kBAAkB,GAAG,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAIl6B,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAI4B,KAAK4S,kBAAoBxU,EAAIs+B,OAAOr0B,MAAK,SAAU9L,GAAK,OAAOA,EAAEm/B,aAAeh5B,KAAWi5B,YAC9qEv9B,EAAI4B,KAAK48B,qBAAuBx+B,EAAIs+B,OAAOr0B,MAAK,SAAU9L,GAAK,OAAOA,EAAEm/B,aAAeh5B,KAAWm5B,eAClGz9B,EAAI4B,KAAKiqB,eAAiB,GAC1B7rB,EAAI4B,KAAKkqB,qBAAuB,GAChC9rB,EAAIk7B,OAAO/N,yBAA0B,EACrCntB,EAAI4B,KAAK+7B,mBAAqB,GAC9B39B,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,QAAaO,MAAM,CAACtH,MAAOkB,EAAI4B,KAAmB,eAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,iBAAkB0E,IAAME,WAAW,yBAAyBpG,EAAG,WAAW,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAU,8BAA8B,MAAQR,EAAIuS,QAAQ,MAAQ,CAAC,SAAU1G,GAAK,OAA8B,IAAvB7L,EAAIuS,QAAQnZ,QAAgB4G,EAAIgY,WAAWnM,KAAO,SAAW7L,EAAI68B,mBAAqB78B,EAAI88B,kBAAoB98B,EAAI4B,KAAKiqB,gBAAyC,IAAvB7rB,EAAIuS,QAAQnZ,OAAa,MAAQ4G,EAAIW,GAAG,mCAAmC,YAA2B,UAAfX,EAAIyN,OAAqBzN,EAAIy+B,qBAAqB,eAAiBz+B,EAAIy+B,qBAAqB,kBAAkB,aAAa,aAAa,MAAQ,GAAG,eAAe,GAAG,SAAW,IAAIp6B,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAI4B,KAAKuD,wBAA0BnF,EAAIuS,QAAQtI,MAAK,SAAU9L,GAAK,OAAOA,EAAEm/B,aAAeh5B,KAAWi5B,YACh2Bv9B,EAAIk7B,OAAO/N,yBAA0B,EACrCntB,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,QAAaO,MAAM,CAACtH,MAAOkB,EAAI4B,KAAyB,qBAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,uBAAwB0E,IAAME,WAAW,+BAAgCxG,EAAmB,gBAAEI,EAAG,eAAe,CAACE,YAAY,SAASE,MAAM,CAAC,UAAU,sBAAsB,IAAM,IAAI,IAAMR,EAAIo+B,UAAU,MAAQp+B,EAAIW,GAAG,8BAA8B,SAAWX,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,KAAO,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAIz4B,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,mBAAmBC,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAKusB,QAAUxoB,KAAKwE,IAAIxE,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QAAS,GAAGkB,EAAIk7B,OAAO/N,yBAA0B,EAAOntB,EAAI0+B,eAAgBt4B,MAAM,CAACtH,MAAOkB,EAAI4B,KAAY,QAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,UAAW5B,EAAIuG,GAAGD,KAAOE,WAAW,kBAAkBxG,EAAIgF,KAAMhF,EAAwB,qBAAEI,EAAG,eAAe,CAACE,YAAY,mBAAmBE,MAAM,CAAC,UAAU,4BAA4B,IAAM,IAAI,IAAMR,EAAIo+B,UAAU,MAAQp+B,EAAIW,GAAG,mCAAmC,SAAWX,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,KAAO,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAIz4B,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,mBAAmBC,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAKysB,aAAe1oB,KAAKwE,IAAIxE,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QAAS,GAAGkB,EAAIk7B,OAAO/N,yBAA0B,EAAOntB,EAAI2+B,oBAAqBv4B,MAAM,CAACtH,MAAOkB,EAAI4B,KAAiB,aAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,eAAgB5B,EAAIuG,GAAGD,KAAOE,WAAW,uBAAuBxG,EAAIgF,MAAM,GAAG5E,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,QAAQ,CAAEN,EAAIq8B,qBAAuBr8B,EAAI4+B,mBAAoBx+B,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAI4B,KAAKgqB,kBAAkB,MAAQ5rB,EAAI6+B,YAAY,MAAQ,CAAC7+B,EAAIgY,YAAY,SAAWhY,EAAI68B,oBAAsB78B,EAAI4B,KAAK+pB,gBAAkB3rB,EAAI88B,gBAAgB,MAAQ98B,EAAIW,GAAG,gCAAgC,YAA2B,UAAfX,EAAIyN,OAAqB,cAAgB,iBAAiB,aAAa,MAAM,UAAU,yBAAyB,MAAQ,GAAG,gBAAgB,GAAG,eAAe,GAAG,SAAW,IAAIpJ,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAI4B,KAAKgqB,kBAAoBtnB,EAAOiG,IACttEvK,EAAI4B,KAAK87B,uBAAyB19B,EAAI8+B,0BAA0Bx6B,EAAOuV,MACvE7Z,EAAI4B,KAAKmT,qBAAuB/U,EAAI++B,kBAAkBxB,YACtDv9B,EAAI4B,KAAKo9B,wBAA0Bh/B,EAAI++B,kBAAkBtB,eACzDz9B,EAAI4B,KAAK+7B,mBAAqB,CAC5BsB,YAAa36B,EAAO26B,YACpBC,WAAY56B,EAAO46B,YAErBl/B,EAAI4B,KAAKiqB,eAAiB,GAC1B7rB,EAAI4B,KAAKkqB,qBAAuB,GAChC9rB,EAAIk7B,OAAO/N,yBAA0B,EACrCntB,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,UAAe7F,EAAIgF,KAAMhF,EAAoB,iBAAEI,EAAG,WAAW,CAACI,MAAM,CAAC,UAAU,yBAAyB,SAAWR,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,MAAQ98B,EAAIm/B,gBAAgB,YAAY,QAAQ,aAAa,QAAQ,MAAS,GAAMn/B,EAAIW,GAAG,gCAAkC,MAAQ,CAACX,EAAIgY,YAAY,MAAQ,GAAG,eAAe,GAAG,SAAW,IAAI3T,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIk7B,OAAO/N,yBAA0B,EAC7cntB,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,QAAaO,MAAM,CAACtH,MAAOkB,EAAI4B,KAAc,UAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,YAAa0E,IAAME,WAAW,oBAAoBxG,EAAIgF,KAAK5E,EAAG,WAAW,CAACE,YAAY,YAAYE,MAAM,CAAC,UAAU,0BAA0B,cAAa,EAAM,SAAWR,EAAI68B,mBAAqB78B,EAAI88B,gBAAgB,MAAQ98B,EAAIo/B,gBAAgB,YAAY,QAAQ,aAAa,QAAQ,MAAUp/B,EAAIW,GAAG,iCAAoC,WAAY,MAAQ,CAACX,EAAIgY,YAAY,MAAQ,GAAG,eAAe,GAAG,SAAW,IAAI3T,GAAG,CAAC,OAAS,SAASC,GAAQtE,EAAIk7B,OAAO/N,yBAA0B,EACzmBntB,EAAI4B,KAAKiE,WAAW7F,EAAI4B,KAAKiE,SAAW,QAAaO,MAAM,CAACtH,MAAOkB,EAAI4B,KAAc,UAAEyE,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI4B,KAAM,YAAa0E,IAAME,WAAW,oBAAoBpG,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,KAAKM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACrR,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MACpC,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,OAAOC,YAAY,CAAC,SAAW,WAAW,IAAM,QAAQ,MAAQ,QAAQ,OAAS,WAAWC,MAAM,CAAC,MAAQ,YAAY,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,6BAA6B,CAAET,EAAuB,oBAAEI,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,2CAA2CP,EAAG,OAAO,CAACA,EAAG,iBAAiB,CAACG,YAAY,CAAC,mBAAmB,cAAc,MAAQ,WAAWC,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,6BAA6BC,YAAY,CAAC,MAAQ,WAAWC,MAAM,CAAC,QAAU,MAAM,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oEAAoE,WAAWP,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,SAASC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,QAAU,MAAM,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8DAA8D,OAAOP,EAAG,KAAK,CAACE,YAAY,SAASC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,QAAU,MAAM,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kEAAkE,SAASP,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,UAAU,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4DP,EAAG,MAAMJ,EAAIS,GAAG,KAAKT,EAAIU,GAAGV,EAAIW,GAAG,wDAAwD,QAAQP,EAAG,KAAK,CAACE,YAAY,UAAU,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8DAA8DP,EAAG,MAAMJ,EAAIS,GAAG,KAAKT,EAAIU,GAAGV,EAAIW,GAAG,0DAA0D,QAAQP,EAAG,KAAK,CAACE,YAAY,UAAU,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8DAA8DP,EAAG,MAAMJ,EAAIS,GAAG,KAAKT,EAAIU,GAAGV,EAAIW,GAAG,0DAA0D,UAAUX,EAAIiB,GAAIjB,EAA8B,4BAAE,SAASkB,EAAKuB,GAAO,OAAOrC,EAAG,KAAK,CAAChB,IAAIqD,GAAO,CAACrC,EAAG,KAAK,CAACE,YAAY,8BAA8B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAK8C,YAAY,OAAO5D,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAK+C,MAAM,OAAO7D,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKgD,QAAQ,OAAO9D,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKiD,QAAQ,aAAY,KAAK1C,OAAM,OAAUrB,EAAG,IAAI,CAACJ,EAAIS,GAAG,gEAAgE,KAAKL,EAAG,QAAQ,CAACG,YAAY,CAAC,aAAa,SAASC,MAAM,CAAC,MAAQ,UAAU,UAAU,mBAAmB,UAAYR,EAAIq/B,iBAAiB,QAAUr/B,EAAI68B,kBAAkB,SAAW,GAAG,MAAQ,IAAIx4B,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,kBAAkBxH,EAAIs/B,WAAWt/B,EAAI4B,KAAK6qB,mBAAmBW,2BAA6B,GAAIptB,EAAI4B,KAAK8F,cAAgB1H,EAAIu/B,QAASv/B,EAAIuM,MAAM,gBAAiBvM,EAAI4B,SAAS,CAAC5B,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAI4B,KAAK6qB,mBAAmB+S,yBAA2B,qCAAuC,qCAAqC,QAAQ,KAAKp/B,EAAG,MAAM,CAACA,EAAG,4CAA4C,CAACI,MAAM,CAAC,KAAOR,EAAI4B,SAAS,QAAQ,KAAKxB,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,wBAAwB,eAAe,CAACH,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,GAAG,UAAU,iBAAiB6D,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,kBAAkBxH,EAAI0E,cAAe,KAAQ,CAACtE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,kBAAkBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kBAAkB,MAAM,GAAIX,EAAW,QAAEI,EAAG,0BAA0B,CAACI,MAAM,CAAC,KAAOR,EAAI4B,QAAQ5B,EAAIgF,KAAMhF,EAAW,QAAEI,EAAG,6BAA6B,CAACI,MAAM,CAAC,KAAOR,EAAI4B,QAAQ5B,EAAIgF,MAAM,KAAMhF,EAAsB,mBAAEI,EAAG,MAAM,CAACA,EAAG,OAAO,CAACE,YAAY,4BAA4B,CAACN,EAAIS,GAAG,wCAAwCL,EAAG,SAAS,CAACyG,IAAI,sBAAsBvG,YAAY,OAAO+D,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAO0B,iBAAwBhG,EAAIy/B,8BAA8B1lC,MAAM,KAAMgO,cAAc,CAAC3H,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,OAAOE,MAAM,CAAC,IAAM,IAAI,KAAO,SAAS,MAAQ,CAACR,EAAI0S,mBAAmB,SAAW,GAAG,MAAQ,GAAG,MAAQ,gBAAgB,YAAc,uCAAuC,eAAe,IAAItM,MAAM,CAACtH,MAAOkB,EAA0B,uBAAEqG,SAAS,SAAUC,GAAMtG,EAAI0/B,uBAAuBp5B,GAAKE,WAAW,6BAA6B,GAAGpG,EAAG,QAAQ,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,SAAS,SAAWR,EAAI2/B,eAAe,QAAU3/B,EAAI2/B,eAAe,SAAW,KAAK,CAAC3/B,EAAIS,GAAG,wBAAwB,IAAI,GAAGL,EAAG,aAAaA,EAAG,MAAM,CAACJ,EAAIS,GAAG,WAAWT,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,eAAgB,eAAe,cAAcxB,EAAG,aAAaA,EAAG,MAAM,CAACJ,EAAIS,GAAG,WAAWT,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,cAAe,OAAO,cAAcxB,EAAG,aAAaA,EAAG,MAAM,CAACJ,EAAIS,GAAG,WAAWT,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAI4B,KAAM,wBAAyB,eAAe,cAAe5B,EAA2B,wBAAEI,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,YAAY,QAAQC,MAAM,CAAC,IAAMR,EAAI4/B,wBAAwB,IAAM,yBAAyB5/B,EAAIgF,MAAM,GAAGhF,EAAIgF,MAAM,GAAIhF,EAAgB,aAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,UAAU,uBAAuB,iBAAiBR,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI4B,KAAKsG,SACr9JlI,EAAI0E,cAAe,GAAQ,eAAe,SAASJ,GAAQtE,EAAI0E,cAAe,IAAQ5D,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAMiC,EAAI4B,KAAK6I,uBAAwBhJ,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAgB,aAAEqG,SAAS,SAAUC,GAAMtG,EAAI0E,aAAa4B,GAAKE,WAAW,kBAAkBxG,EAAIgF,KAAK5E,EAAG,sBAAsB,CAACE,YAAY,OAAOC,YAAY,CAAC,mBAAmB,UAAU,aAAa,qBAAqB,UAAU,kBAAkBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAsB,mBAAEqG,SAAS,SAAUC,GAAMtG,EAAIs7B,mBAAmBh1B,GAAKE,WAAW,uBAAuB,CAACpG,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,YAAY,QAAQ,aAAa,uBAAuB,CAACH,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,OAAO,CAACE,YAAY,iCAAiCC,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsCP,EAAG,MAAM,CAACE,YAAY,eAAeC,YAAY,CAAC,MAAQ,QAAQ,cAAc,iBAAiB,CAACH,EAAG,SAAS,CAACG,YAAY,CAAC,iBAAiB,YAAYC,MAAM,CAAC,KAAO,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,OAAO,CAACG,YAAY,CAAC,iBAAiB,SAAS6H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,yCAAyCP,EAAG,IAAI,CAACE,YAAY,aAAa,CAACF,EAAG,SAAS,CAACG,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,KAAO,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,yBAAyBL,EAAG,OAAO,CAACG,YAAY,CAAC,iBAAiB,OAAO6H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,IAAI,GAAGP,EAAG,QAAQ,CAACE,YAAY,wBAAwBE,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIs7B,oBAAqB,KAAS,CAACl7B,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,kBAAkB,IAAI,GAAGL,EAAG,MAAM,CAACA,EAAG,0BAA0B,QAAQ,IACjrEsB,EAAkB,G,4hECs+BtB,MAAM,EAAN,+CAEMm+B,EAAkB,IAExB,OACE9hC,KAAM,iBACNyO,OAAQ,CACV,eAEEszB,WAAY,CAAd,oCAEEn+B,MAAO,CACLi9B,mBAAoBxuB,QACpBxO,KAAMvI,OACNqiC,YAAa/uB,SACbwxB,UAAW,CAAf,wBAGE,OACE,MAAO,CACLmB,WAAY,GAEZhE,oBAAoB,EACpBO,eAAe,EACfkE,YAAY,EACZr7B,cAAc,EACdk4B,qBAAqB,EACrBvB,2BAA4B,CAC1B2E,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,UACLC,IAAK,UACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,SAEP3C,uBAAwB,KACxB4C,MAAO,KACPC,YAAa,IAAIjuB,OAIrBzS,SAAU,EAAZ,aACA,kCACA,wCACA,iDACA,2BAAI,aAAJ,UACA,2BAAI,sBAAJ,mBALA,IAOIs7B,eAAgB,IAAMjzB,SAAS,IAAnC,IACIkzB,gBAAiB,IAAMlzB,SAAS,IAApC,IAEIzB,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCwgC,yBAA0Bz+B,GAAMsU,EAApC,iCAEI6iB,OAAQn3B,GAAMA,EAAGnC,KAAK6qB,mBAEtB2S,gBAAiBr7B,GACXA,EAAGs4B,oBACE,CACf,CACU,MAAV,6CACU,MAAV,YAEA,CACU,MAAV,yCACU,MAAV,mBAIa,CACb,CACQ,MAAR,6CACQ,MAAR,YAEA,CACQ,MAAR,6CACQ,MAAR,YAEA,CACQ,MAAR,6CACQ,MAAR,aAKI8C,gBAAiBp7B,GAAM,CAC3B,CACM,MAAN,2CACM,MAAN,OAEA,CACM,MAAN,6CACM,MAAN,OAEA,CACM,MAAN,yCACM,MAAN,OAEA,CACM,MAAN,0CACM,MAAN,QAIIy4B,kBAAmBz4B,GACvB,0DAGaA,EAAGnC,KAAKsqB,aAAauW,UAFnB,EAIX,iBACE,OAAOxiC,KAAKu8B,kBAAoB,IAElCE,iBAAkB34B,GACtB,yDAGaA,EAAGnC,KAAKsqB,aAAawW,UAFnB,EAIX,gBACE,QAASziC,KAAKy8B,iBAAmB,GAAKz8B,KAAKy8B,iBAAmB,MAGhE,kBACE,MAAMiG,EAAkB/hC,EAAElC,IAAIuB,KAAK2B,KAAM,mCAAoC,IAC7E,OAAO+gC,EAAgB1L,KAAK2L,GAAyD,UAAhD3iC,KAAKo7B,2BAA2BuH,EAAMjmC,QAG7E0iC,iBAAkBt7B,IAAOA,EAAG+4B,iBAChC,wBACA,qBACA,4BACA,gCAGID,kBAAmB,IAAvB,kDAEIkC,kBAAmBh7B,GAAMA,EAAG86B,YAAY50B,KAAKlL,GAAKA,EAAEwL,MAAQxG,EAAGnC,KAAKgqB,mBAEpEjQ,eAAgB5X,GAAMnD,EAAElC,IAAIqF,EAAGnC,KAAM,iBAAkB,KAEvDy6B,oBAAqBt4B,GAAuC,gBAAjCA,EAAGnC,KAAKsqB,aAAalP,QAEhD6lB,iBAAkB9+B,GAAuC,YAAjCA,EAAGnC,KAAKsqB,aAAalP,QAE7C8lB,SAAU/+B,GAAM2nB,EAASpS,YAAY,CACnCgd,MAAO,CACLyM,UAAU,EACVC,QAAS,aACTC,OAAQ,CAAhB,yCAEA,KAEIC,UAAWn/B,IACT,MAAMo/B,EAA0B,IAAIC,IAKpC,OAHAr/B,EAAG++B,SAASvvB,QAAQrS,IAClBiiC,EAAwBxiB,IAAIzf,EAAKmiC,oBAE5B3X,EAASpS,YAAY,CAC1Bgd,MAAO,CACLgH,WAAY,CACVgG,IAAKl0B,MAAM2mB,KAAKoN,OAG5B,MAGII,aAAcx/B,IACZ,MAAMy/B,EAA6B,IAAIJ,IAIvC,OAHAr/B,EAAGm/B,UAAU3vB,QAAQrS,IACnBsiC,EAA2B7iB,IAAIzf,EAAKmiC,oBAE/B3X,EAASpS,YAAY,CAC1Bgd,MAAO,CACLgH,WAAY,CACVgG,IAAKl0B,MAAM2mB,KAAKyN,OAG5B,MAGInG,UAAWt5B,GACLA,EAAGs4B,oBACE3Q,EAASpS,YAAY,CAC1Bgd,MAAO,CACLmN,UAAW1/B,EAAGnC,KAAK6hC,UACnBJ,iBAAkB,KAClBN,UAAU,EACVC,QAAS,cAErB,KAEaj/B,EAAGw/B,aAGZjF,OAAQv6B,GACDA,EAAGnC,KAAK8pB,SAGNA,EAASpS,YAAY,CAC1Bgd,MAAO,CACLmN,UAAW1/B,EAAGnC,KAAK6hC,UACnBJ,iBAAkBt/B,EAAGnC,KAAK8pB,SAC1BqX,UAAU,EACVW,MAAO,CAAjB,WAEA,KATe,GAYX,cACE,IAAIC,EAAkB,GAStB,OARK1jC,KAAKo8B,sBACRsH,EAAkB,CAChBV,OAAQ,CAAlB,yCACUW,MAAO,KACPF,MAAO,CAAjB,iBACUL,iBAAkBpjC,KAAK2B,KAAK+pB,iBAGzB1rB,KAAK2B,KAAK+pB,eACvB,eACQ,MAAR,GACU,UAAV,oBACU,iBAAV,yBACU,UAAV,EACU,MAAV,CAAY,KAAZ,IACA,KAEA,SAGI,WACE,OAAOkY,EAAOvqB,YAAY,CACxBgd,MAAO,CACLmN,UAAWxjC,KAAK2B,KAAK6hC,UACrBJ,iBAAkBpjC,KAAK2B,KAAKgqB,qBAEtC,MAGI,gBACE,MAAMmS,EAAgB8F,EAAOvqB,YAAY,CACvCgd,MAAO,CACLmN,UAAWxjC,KAAK2B,KAAK6hC,UACrBJ,iBAAkBpjC,KAAK2B,KAAKgqB,qBAEtC,KAEM,OAAO3rB,KAAK29B,SAASz7B,OAAO2hC,GAAK/F,EAAc9zB,KAAK+zB,GAAMA,EAAGzzB,IAAIw5B,SAASD,EAAEv5B,QAG9E,UACE,OAAOtK,KAAK2B,KAAKgqB,mBAAqB3rB,KAAK2B,KAAKiqB,eACtD,eACQ,MAAR,CACU,UAAV,oBACU,iBAAV,yBAEU,UAAV,KAEA,KACA,IAGI,oBAAoB9nB,GAClB,OAAM9D,KAAKi7B,OAAOtf,gBAAkB3b,KAAKi7B,OAAO/e,gBAAkBlc,KAAK2B,KAAK+Z,gBAA+C,MAA7B1b,KAAK2B,KAAK+Z,gBAGnG1b,KAAKi7B,OAAOtf,iBAAkB3b,KAAKi7B,OAAO/e,eAAmBlc,KAAKi7B,OAAOxf,aAGpE3X,EAAGpD,GAAG,oBAAT,MAFKoD,EAAGpD,GAAG,kBAAT,MAHGoD,EAAGpD,GAAG,oBAAT,OAQXw6B,oBAAqBp3B,IACnB,MAAM,EAAZ,qGACM,OAAO6oB,GAAwBkB,GAAqBhB,GAAuBkX,GAG7E,aACE,IAAIC,EACJ,IACEA,EAAal7B,KAAKC,MAAM/I,KAAK2B,KAAKiE,UAC1C,SACQo+B,GAAa,EAEf,OAAOA,GAGT,qBACE,IAAKhkC,KAAKqJ,WACR,MAAO,GAGT,MAAM46B,EAAmBjkC,KAAKqJ,WACpC,uCAEM,OAAI46B,EAAmB,EACdjkC,KAAKqJ,WAAWxJ,OAAO,GAEzBG,KAAKqJ,WAClB,+CAGI,qBAAqBvF,GACnB,MAAM4V,EAAS,GACf,GAAI1Z,KAAK2B,KAAM,CACb,MAAMuiC,EAAQvjC,EAAElC,IAAIuB,KAAK2B,KAAM,2BAA4B,GACrDwiC,EAAQxjC,EAAElC,IAAIuB,KAAK2B,KAAM,2BAA4B,GACrDyiC,EAAUzjC,EAAElC,IAAIuB,KAAK2B,KAAM,uBAAwB,IACnD0iC,EAAc1jC,EAAElC,IAAIuB,KAAK2B,KAAM,iCAAkC,IACjE2iC,EAAc3jC,EAAElC,IAAIuB,KAAK2B,KAAM,iCAAkC,IACjE4iC,EAAgB5jC,EAAElC,IAAIuB,KAAK2B,KAAM,oCAAqC,IACtE6iC,EAAqB7jC,EAAElC,IAAIuB,KAAK2B,KAAM,8CAA0C5D,GAYtF,GAVImmC,IACFxqB,EAAO+qB,eAAiBP,GAEtBlkC,KAAK2B,KAAK06B,WAAuB,IAAV6H,IACzBxqB,EAAO+qB,eAAiBP,GAGtBC,IACFzqB,EAAOgrB,eAAiBP,GAEtBC,EAAQjrC,OACV,GAAI6G,KAAK2B,KAAKusB,QAAS,CAErB,MAAMyW,EAAcP,EAAQxd,OAAO,CAACge,EAAa3jC,IAAS2jC,EAAc3jC,EAAK,GAAI,GACjFyY,EAAOmrB,iBAAmBF,MACtC,CACY,MAAMG,EAAmBV,EAAQliC,OAAO6iC,KAAkB,IAAVA,EAAG,IAAsB,IAAVA,EAAG,KAAuB,IAAXA,EAAG,KAC3EC,EAAqBZ,EAAQliC,OAAO6iC,GAAtD,IAA4D,EAA5D,yBACkBE,EAAcH,EAAiBxiC,IAAI,IAArD,sFACgB0iC,EAAmB7rC,QACrB8rC,EAAYxrC,KAAK,GAAGurC,EAAmB7rC,UAAU2K,EAAGpD,GAAG,oBAAoBoD,EAAGpD,GAAG,yBAEnFgZ,EAAOmrB,iBAAmBI,EAAYC,KAAK,MAAMr1B,QAAQ,aAAc,IAAI/L,EAAGpD,GAAG,0BAGjF2jC,EAAYlrC,SACdugB,EAAOyrB,qBAAuBd,EAAYzd,OAAO,CAACge,EAAa3jC,IAAS2jC,EAAc3jC,EAAK,GAAI,IAE7FqjC,EAAYnrC,SACdugB,EAAO0rB,qBAAuBd,EAAY1d,OAAO,CAACge,EAAa3jC,IAAS2jC,EAAc3jC,EAAK,GAAI,IAE7FsjC,EAAcprC,SAChBugB,EAAO2rB,uBAAyBb,EAAwB7sB,WAAW6sB,GAAoB5sB,QAAQ,GAA1C,KAAmD,IAG5G,OAAO8B,GAGT,oBACE,MAAMA,EAAS,GACf,GAAI1Z,KAAK2B,KAAM,CACb,MAAMwiC,EAAQxjC,EAAElC,IAAIuB,KAAK2B,KAAM,qBAAsB,GACjDwiC,IACFzqB,EAAOgrB,eAAiBP,GAE1B,MAAMmB,EAAU3kC,EAAElC,IAAIuB,KAAK2B,KAAM,uBAAwB,GACrD2jC,IACF5rB,EAAO6rB,kBAAoBD,GAG7B,MAAME,EAAkB7kC,EAAElC,IAAIuB,KAAK2B,KAAM,gCAAiC,GACpE8jC,EAAkB9kC,EAAElC,IAAIuB,KAAK2B,KAAM,gCAAiC,IACtE6jC,GAAmBC,KACrB/rB,EAAOgsB,iBAAmBz7B,SAASu7B,EAAiB,IAAMv7B,SAASw7B,EAAiB,KAGtF,MAAME,EAAWhlC,EAAElC,IAAIuB,KAAK2B,KAAM,gCAAiC,GAC/DgkC,IACFjsB,EAAOksB,kBAAoBD,GAG7B,MAAME,EAAiBllC,EAAElC,IAAIuB,KAAK2B,KAAM,iCAAkC,GACpEmkC,EAAiBnlC,EAAElC,IAAIuB,KAAK2B,KAAM,iCAAkC,IACtEkkC,GAAkBC,KACpBpsB,EAAOmrB,iBAAmB56B,SAAS47B,EAAgB,IAAM57B,SAAS67B,EAAgB,KAItF,MAAMxB,EAAc3jC,EAAElC,IAAIuB,KAAK2B,KAAM,2BAA4B,GAC7D2iC,IACF5qB,EAAO0rB,qBAAuBd,GAGhC,MAAMD,EAAc1jC,EAAElC,IAAIuB,KAAK2B,KAAM,2BAA4B,GAKjE,OAJI0iC,IACF3qB,EAAOyrB,qBAAuBd,GAGzB3qB,GAGT,WAAW5V,GACT,OAAIA,EAAGs4B,oBACEt4B,EAAGiiC,qBAERjiC,EAAG8+B,iBACE9+B,EAAGkiC,kBAEL,IAGT,QAAQliC,GACN,MAAMmiC,EAAiBtlC,EAAElC,IAAIuB,KAAK2B,KAAM,oCAAqC,IAC7E,OAAOmC,EAAGs4B,qBAAuB6J,EAAe9sC,OAAS,GAG3D,UACE,QAAK6G,KAAK2B,KAAKukC,sBAGXlmC,KAAK2B,KAAK06B,aAAcr8B,KAAK2B,KAAKusB,QAAU,GAAKluB,KAAK2B,KAAKwsB,aAAe,GAAKnuB,KAAK2B,KAAKysB,aAAe,KAGrGpuB,KAAK2B,KAAKusB,UAAYluB,KAAK2B,KAAKwkC,uBAEzChI,UAAWr6B,GAAMnD,EAAElC,IAAIqF,EAAGnC,KAAM,2BAA4B,GAC5D,gBACE,OAAO3B,KAAK2B,KAAKukC,kBAAoBlmC,KAAK2B,KAAK06B,WAEjD,kBACE,OAAOr8B,KAAK2B,KAAKukC,kBAAoBlmC,KAAKm+B,UAAY,GAExD,uBACE,OAAOn+B,KAAK2B,KAAKukC,kBAAoBlmC,KAAK2B,KAAK06B,WAAar8B,KAAKm+B,UAAY,GAE/E,uBACE,OAAOn+B,KAAK2B,KAAKukC,kBAAoBlmC,KAAK2B,KAAK06B,WAAar8B,KAAKm+B,UAAY,GAG/E,yBACE,MAAMiI,EAAoBzlC,EAAElC,IAAIuB,KAAK2B,KAAM,mCAAoC,IAC/E,OAAOykC,EAAkBpP,KAAK/1B,GAAsB,MAAdA,EAAKvE,OAE7C,iBACE,MAAM0pC,EAAoBzlC,EAAElC,IAAIuB,KAAK2B,KAAM,mCAAoC,IAC/E,OAAOykC,EAAkBpP,KAAK/1B,GAAQA,EAAKvE,OAASkjC,IAGtD,cACE,OAAO5/B,KAAKi7B,OAAO9N,4BAA8BntB,KAAKi7B,OAAO9N,2BAA2BqB,WAAW,gBAGrG,mBACE,IAAKxuB,KAAKqmC,YACR,MAAO,GAGT,MAAM,EAAZ,kFAEYC,EAAsB,OAAhBtmC,KAAKwN,OAAkB+4B,EAAa1oC,EAE1C2oC,EAAuB,OAAhBxmC,KAAKwN,OAAkBi5B,EAAgBC,EAE9CC,EAAgB,GAEtB,IAAK,MAAM,KAAjB,oDACYx3B,MAAM4nB,QAAQl4B,GAChB8nC,EAAcxnC,GAAO,OAAON,EAAMyD,IAAI9E,GAAS,OAAOA,UAAc0nC,KAAK,WAEzEyB,EAAcxnC,GAAON,EAKzB,OAAOynC,EAAIz2B,QAAQ,WAAY,CAAC+2B,EAAOznC,SAG7C,IAAM,EAAN,YAGIwgC,wBAAyB77B,IACvB,MAAM2Y,EAAO,+BACb,GAAI3Y,EAAGm3B,OAAO4L,uBAAwB,CACpC,MAAMnqB,EAAc5Y,EAAGnC,KAAKgb,kBAAkBC,cAA7B,gBACjB,MAAO,GAAGH,YAAeC,KAAY5Y,EAAG+Y,eAAe/Y,EAAGnC,KAAKK,uBAAuB8B,EAAGnC,KAAKmlC,YAEhG,OAAO,MAGT,uBACE,MAAMC,EAAkB/mC,KAAK2B,KAAKqlC,UAC5BA,EAAY,IAAI3yB,KAAK0yB,GACrBtvB,EAAMzX,KAAKsiC,YACX2E,EAAiBxvB,EAAMuvB,EACvBE,EAA6B,KAE7BC,EAA0BF,EAAiBC,EAC3CE,IAAuBpnC,KAAKi7B,OAAOtf,gBAAkB3b,KAAKi7B,OAAO/e,eAAiBlc,KAAKk7B,qBAO7F,OANIl7B,KAAKqiC,QACF+E,IAAsBD,GACzBnnC,KAAKqnC,cAIFF,GAA2BC,GAGpC,2BACE,MAAME,EAAS3mC,EAAElC,IAAIuB,KAAK2B,KAAM,mCAAoC,IACpE,OAAO2lC,EAAOtQ,KAAKx5B,GAAS,CAAC,IAAK,KAAKsI,SAAStI,EAAMd,UAI1DmR,MAAO,CACLixB,kBAAmB,CACjByI,WAAW,EACX,QAAQ/E,GACFA,IACFxiC,KAAK2B,KAAKmT,qBAAuB0tB,EAAUlF,YAC3Ct9B,KAAK2B,KAAKo9B,wBAA0ByD,EAAUhF,eAC9Cx9B,KAAK2B,KAAKmqB,YAAc0W,EAAYA,EAAUxgC,KAAO,GACrDhC,KAAKwnC,mBAKX,sBAAuB,CACrB,UACMxnC,KAAK2B,KAAK06B,WAGdr8B,KAAKynC,oCAITvM,oBAAqB,CACnBqM,WAAW,EACX,QAAQG,EAAQC,GACRD,IAAWC,GAGjB,EAAR,2BACUh0B,OAAQ,aACRnW,MAAOkqC,EACPzrC,KAAM,WACN66B,OAAQ92B,KAAK+5B,gBAKnB,gCAAiC,CAC/BwN,WAAW,EACX,QAAQK,GACN,GAAI,+BAAZ,yCACU,GAAIA,EAAS,EAAG,CACd,MAAMC,EAAgBlnC,EAAElC,IAAIuB,KAAK2B,KAAM,mCAAoC,IACtEkmC,EAAc7Q,KAAKx5B,GAASA,EAAMd,OAASkjC,IAC9C5/B,KAAKoI,KAAKpI,KAAK2B,KAAKsqB,aAAc,sBAAuB,IACvE,EACA,CACgB,KAAhB,EACgB,QAAhB,8DAKYjsB,KAAKoI,KACjB,uBACA,sBACA,qEAQE,UACEpI,KAAKqiC,MAAQyF,YAAY,KACvB9nC,KAAKsiC,YAAc,IAAIjuB,MAC7B,MAGE,gBACErU,KAAKqnC,cAGP5kC,QAAS,EAAX,KACA,wBAAI,WAAJ,YADA,IAGI,iBAAiBslC,GACf,MAAMC,EAAQ,CAAC,UAAW,aAC1B,OAAOA,EAAMhR,KAAKiR,GAAQF,EAAYjiC,SAASmiC,KAEjD,gBAAgBC,GACd,OAAOA,EAAOr4B,QAAQ7P,KAAKU,GAAG,yCAA0C,KAE1E,kBAAkBynC,GAChB,MAAM3qC,EAAQ2qC,EAAWt4B,QAAQ,MAAO,KAAK4E,OACvC4qB,EAAa7hC,EAAMkF,MAAM,KAC/B,OAAO28B,EAAWlmC,OAAS,GAE7B,YAAYgvC,GACV,MAAM9I,EAAa8I,EAAWt4B,QAAQ,MAAO,KAAK4E,OAAO/R,MAAM,KACzD0lC,EAAapoC,KAAKU,GAAG2+B,EAAWzlC,SACtC,IAAIyuC,EAAc,GAIlB,OAHAhJ,EAAW/rB,QAAQg1B,IACjBD,GAAe,OAAOroC,KAAKU,GAAG4nC,EAAS7zB,iBAElC,GAAG2zB,QAAiBC,UAE7B,qBAAqBxpC,GACnB,OAAO+M,GAAKA,EAAE/M,GAAOgR,QAAQ7P,KAAKyN,MAAM86B,iBAAiBC,cAAc,GAAGlL,YAAa,KAEzF,qBAAqBz+B,GACnB,OAAO+M,GAAKA,EAAE/M,GAAOgR,QAAW7P,KAAKyN,MAAMg7B,eAAeD,cAAc,GAAG3pC,GAA9C,OAA4D,KAE3F,gBACE+kC,EAAO55B,KAAK,CACVqsB,MAAO,CACLmN,UAAWxjC,KAAK2B,KAAK6hC,UACrBxhC,KAAMhC,KAAK8+B,kBAAkB98B,KAC7B0mC,YAAa1oC,KAAK8+B,kBAAkBx0B,QAI1C,kBAAJ,WACM,IAAItK,KAAKi7B,OAAO7N,oBAIhB,IACEptB,KAAK2oC,UAAb,eACU,EAAV,iBACU,MAAMC,EAAS,EAAzB,sCACgBC,QAAhB,wCAEgBC,EAAK,IAAIC,SACfD,EAAGE,OAAO,OAAQH,EAAU,EAAtC,uBAAmC,QACzB,MAAMI,EAAY,2CAE5B,SACYtQ,OAAQ,OACRxP,QAAS,CACPC,cAAe,EAA7B,aAEY8f,KAAMJ,UAGlB,aACYnwC,KAAM,CACJ,0CAA0C,SAIxD,SACQ8G,QAAQjC,MAAMzC,KAGlB,0BAA0BynC,GA6CxB,MAAM2G,EAAiBzjC,KAAKkW,MAAkB,IAAZ4mB,GAC5B7P,EAASwW,EAAiB,IAAO,EAAI,EACrCzsC,EAAO,IAAIysC,EAAeC,WAAWC,SAAS1W,EAAQ,KAC5D,OAAOj2B,GAET,0BAA0BA,GAExB,MAAMysC,EAAiBxxB,WAAWjb,EAAKmD,MAAM,IAAM,IACnD,OAAOspC,GAET,kCACE,GAA+B,IAA3BnpC,KAAKu8B,oBAA2B57B,EAAEsB,QAAQjC,KAAK4+B,aAGnD,GAAI5+B,KAAKo8B,oBAAqB,CAC5B,MAAM1/B,EAAOsD,KAAKspC,0BAA0BtpC,KAAKu8B,mBAC3CgN,EAAmBvpC,KAAK4+B,YAAY50B,KAAKlL,GAAKA,EAAE8a,OAASld,GAC3D6sC,IACFvpC,KAAK2B,KAAKgqB,kBAAoB4d,EAAiBj/B,IAC/CtK,KAAK2B,KAAKmT,qBAAuBy0B,EAAiBjM,YAClDt9B,KAAK2B,KAAK+7B,mBAAqB,CAC7BuB,WAAYsK,EAAiBtK,WAC7BD,YAAauK,EAAiBvK,aAEhCh/B,KAAK2B,KAAK87B,uBAAyBz9B,KAAK6+B,0BAA0B0K,EAAiB3vB,WAE7F,CACQ,MAAM,EAAd,iBACA,QACU,MAAV,uBACU,OAAV,GAAY,aAAZ,KAEA,qBALA,gBAMQ5Z,KAAK2B,KAAKgqB,kBAAoB6d,EAAkBl/B,IAChDtK,KAAK2B,KAAKmT,qBAAuB00B,EAAkBlM,cAGvD,qBAAqBmM,GACnB,OAAO9oC,EAAElC,IAAIuB,KAAK2B,KAAM,mCAAoC,IAAIq1B,KAAK/9B,GAAKA,EAAEyD,OAAS+sC,IAGvF,gCACE,MAAMvV,EAAQl0B,KAAKyN,MAAMi8B,oBAAoBt7B,WAC7C,IAAK8lB,EACH,OAEF,MAAMyV,EAAc,SACdvF,EAAU,CAAC,CAACuF,EAAa1/B,SAASjK,KAAKy/B,uBAAwB,MACrEz/B,KAAK2B,KAAK03B,MAAM,CAAtB,mCAGI,aACE,MAAMsQ,EAAc,SACpB,IAAIvF,EAAU,GACVpkC,KAAK2B,KAAKusB,QAAU,IACtBkW,EAAU,CAAC,CAACuF,EAAa3pC,KAAK2B,KAAKusB,WAErCluB,KAAK2B,KAAKsqB,aAAe,EAA/B,8CAGI,kBACE,IAAI2d,EAAe,GACf5pC,KAAK2B,KAAKwsB,aAAe,IAC3Byb,EAAe,CAAC,CAAC,EAAG,EAAG5pC,KAAK2B,KAAKwsB,gBAEnCnuB,KAAK2B,KAAKsqB,aAAe,EAA/B,wDAGI,kBACE,IAAI4d,EAAe,GACf7pC,KAAK2B,KAAKysB,eACZyb,EAAe,CAAC,CAAC,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI7pC,KAAK2B,KAAKysB,gBAE7CpuB,KAAK2B,KAAKsqB,aAAe,EAA/B,yDAGI,aACMjsB,KAAKqiC,QACPyH,cAAc9pC,KAAKqiC,OACnBriC,KAAKqiC,MAAQ,OAIjB,sBACEriC,KAAK2B,KAAK8pB,SAAW,GACrBzrB,KAAK2B,KAAK2S,YAAc,GACxBtU,KAAK2B,KAAK47B,eAAiB,GAC3Bv9B,KAAK2B,KAAK0sB,iBAAmB,GAC7BruB,KAAK2B,KAAK+pB,eAAiB,GAC3B1rB,KAAK2B,KAAK4S,kBAAoB,GAC9BvU,KAAK2B,KAAKgqB,kBAAoB,GAC9B3rB,KAAK2B,KAAK87B,uBAAyB,KACnCz9B,KAAK2B,KAAKmT,qBAAuB,GACjC9U,KAAK2B,KAAKiqB,eAAiB,GAC3B5rB,KAAK2B,KAAKwD,kBAAoB,GAC9BnF,KAAK2B,KAAKkqB,qBAAuB,GACjC7rB,KAAK2B,KAAKuD,wBAA0B,GACpClF,KAAKi7B,OAAO/N,yBAA0B,EACtCltB,KAAK2B,KAAK+7B,mBAAqB,OCj3DkU,I,qQCQnW96B,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAsBhC,IAAkBA,EAAW,CAACmnC,SAAA,KAAOr/B,OAAA,KAAK7H,QAAA,KAAM+H,OAAA,KAAKC,aAAA,KAAW4P,WAAA,KAASJ,QAAA,KAAMnX,QAAA,KAAMioB,oBAAA,KAAkB6e,kBAAA,KAAgBhiB,SAAA,KAAOC,cAAA,KAAYnd,OAAA,KAAK8B,UAAA,KAAQzJ,eAAA,KAAa6H,UAAA,KAAQC,aAAA,KAAWC,WAAA,Q,2CCzCvL,IAAIpL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACG,YAAY,CAAC,mBAAmB,WAAWC,MAAM,CAAC,QAAU,GAAG,MAAQ,MAAM,YAAY,OAAO,OAAS,QAAQ,MAAQ,UAAU,SAAW,KAAK,CAACJ,EAAG,cAAc,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACH,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,aAAaE,MAAM,CAAC,IAAM,kDAAkDJ,EAAG,MAAM,CAACE,YAAY,sCAAsC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,OAAOP,EAAG,MAAM,CAACE,YAAY,sCAAsC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,OAAOP,EAAG,MAAM,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,OAAOP,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,MAAQ,UAAU,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,kBAAkBxH,EAAIkqC,QAAO,KAAQ,CAAClqC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yDAAyD,QAAQ,GAAGP,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0DAA0D,UAAU,GAAGP,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,iBAAiB,YAAY,MAAQ,QAAQ,WAAa,GAAG,aAAaR,EAAImqC,iBAAiB9lC,GAAG,CAAC,WAAWrE,EAAIwa,sBAAsB,eAAexa,EAAIoqC,sBAAsBtpC,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iDAAiD,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,cAAcC,YAAY,CAAC,aAAa,WAAW,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sDAAsDP,EAAG,MAAMJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qDAAqD,OAAOP,EAAG,SAAS,CAACyG,IAAI,eAAexC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,iBAAkBjI,KAAU8B,MAAM,CAACtH,MAAOkB,EAAmB,gBAAEqG,SAAS,SAAUC,GAAMtG,EAAIqqC,gBAAgB/jC,GAAKE,WAAW,oBAAoB,CAACpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,yBAAyB,YAAcR,EAAIW,GAAG,oBAAoB,MAAQX,EAAIW,GAAG,oBAAoB,MAAQ,CAACX,EAAIgY,YAAY,SAAW,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIsqC,SAAkB,UAAEjkC,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIsqC,SAAU,YAAahkC,IAAME,WAAW,yBAAyB,GAAGpG,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,KAAK,UAAU,yBAAyB,YAAcR,EAAIW,GAAG,mBAAmB,MAAQX,EAAIW,GAAG,mBAAmB,MAAQ,CAACX,EAAIgY,YAAY,SAAW,IAAI5R,MAAM,CAACtH,MAAOkB,EAAIsqC,SAAiB,SAAEjkC,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIsqC,SAAU,WAAYhkC,IAAME,WAAW,wBAAwB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAY,MAAM,UAAU,0BAA0B,YAAcR,EAAIW,GAAG,6BAA6B,MAAQX,EAAIW,GAAG,6BAA6B,MAAQ,CAACX,EAAIgY,WAAYhY,EAAI6Y,SAAS,SAAW,IAAIzS,MAAM,CAACtH,MAAOkB,EAAIsqC,SAAc,MAAEjkC,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIsqC,SAAU,QAAShkC,IAAME,WAAW,qBAAqB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,CAACR,EAAIgY,YAAY,MAAQhY,EAAIW,GAAG,oCAAoC,YAAcX,EAAIW,GAAG,oCAAoC,SAAW,IAAIyF,MAAM,CAACtH,MAAOkB,EAAIsqC,SAAgB,QAAEjkC,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIsqC,SAAU,UAAWhkC,IAAME,WAAW,uBAAuB,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoC,OAAOP,EAAG,KAAK,CAACE,YAAY,uBAAuB,CAACF,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,OAAOP,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,OAAOP,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,OAAOP,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,OAAOP,EAAG,KAAK,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,YAAY,IAAI,IAAI,IAAI,KAAKc,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAU,OAAEqG,SAAS,SAAUC,GAAMtG,EAAIkqC,OAAO5jC,GAAKE,WAAW,aAAa,IAC95I9E,EAAkB,G,uhCCsJtB,MAAM,EAAN,oBAEA,OACE3D,KAAM,wBACNyO,OAAQ,CACV,QAEE5T,KAAM,KAAM,CACVsxC,QAAQ,EACRG,iBAAiB,EACjBC,SAAU,IAAIC,IAEhB1oC,SAAU,EAAZ,SACA,uBAAI,aAAJ,UACA,4BAAI,uBAAJ,4BACA,iDAHA,IAII0Y,aAAc,IAAlB,iFAEE7X,QAAS,CACP,wBAAJ,iCACA,wCACA,UACA,wGACA,4BAJA,IAOI,uBACEzC,KAAKiqC,QAAS,EACdjqC,KAAKqqC,SAAW,IAAIC,KCnLoV,I,qHCO1W1nC,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAKyP,QAAA,KAAMvP,OAAA,KAAKG,aAAA,Q,qLC1BnE,MAAM7H,EAAc,OAEdC,GAAK,IAAG,cAAkBC,OAGP,0BACrB,MAAO,GAIW,qBAAC3K,GAOnB,OANIA,EAAKyb,aACPzb,EAAKyb,WAAa,IAAIC,KAAK1b,EAAKyb,aAE9Bzb,EAAK4xC,aACP5xC,EAAK4xC,WAAa,IAAIl2B,KAAK1b,EAAK4xC,aAE3B5xC,EAGc,0BACrB,OAAOqO,OAAOhH,KAAKuqC,YAAYrjC,OAAO,eAGjB,0BACrB,OAAOF,OAAOhH,KAAKoU,YAAYlN,OAAO,iBAvB/B,gBACU,OADV,GA2BI,cACb3D,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,2CCvCzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAM,iBAAmB0H,WAAW,qBAAqBhG,MAAM,CAAC,MAAQR,EAAIW,GAAG,iBAAiB,YAAcX,EAAIW,GAAG,kCAAkC,MAAQ,CAACX,EAAIgU,gBAAgB3P,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,YAAYnG,MAAM,CAACtH,MAAOkB,EAAIpH,KAAgB,YAAEyN,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIpH,KAAM,cAAe0N,IAAME,WAAW,uBAAuB,IAAI,IAAI,IACrmB9E,EAAkB,G,YC2BtB,GACE8K,OAAQ,CACV,QAGE,OACE,MAAO,CACLwH,cAAelV,KAArB,wBCnC8V,I,qECO1V+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKE,OAAA,KAAKG,aAAA,Q,uBCzBxC,IAAI3I,EAAM,CACT,0BAA2B,OAC3B,WAAY,OACZ,YAAa,OACb,eAAgB,OAChB,gBAAiB,OACjB,iBAAkB,OAClB,oBAAqB,OACrB,iBAAkB,OAClB,iBAAkB,OAClB,wBAAyB,OACzB,gBAAiB,OACjB,kBAAmB,OACnB,2BAA4B,OAC5B,yBAA0B,OAC1B,aAAc,OACd,yBAA0B,OAC1B,iBAAkB,OAClB,gBAAiB,OACjB,mBAAoB,OACpB,mBAAoB,OACpB,cAAe,OACf,uBAAwB,OACxB,aAAc,OACd,uBAAwB,OACxB,gBAAiB,OACjB,mBAAoB,OACpB,iBAAkB,OAClB,eAAgB,OAChB,YAAa,OACb,aAAc,OACd,0BAA2B,OAC3B,kBAAmB,OACnB,iBAAkB,OAClB,kBAAmB,OACnB,YAAa,QAId,SAASy4B,EAAe9D,GACvB,IAAIzkB,EAAKwoB,EAAsB/D,GAC/B,OAAO38B,EAAoBkY,GAE5B,SAASwoB,EAAsB/D,GAC9B,IAAI38B,EAAoBgE,EAAEgE,EAAK20B,GAAM,CACpC,IAAIl8B,EAAI,IAAI0B,MAAM,uBAAyBw6B,EAAM,KAEjD,MADAl8B,EAAE2B,KAAO,mBACH3B,EAEP,OAAOuH,EAAI20B,GAEZ8D,EAAepc,KAAO,WACrB,OAAOvlB,OAAOulB,KAAKrc,IAEpBy4B,EAAe5/B,QAAU6/B,EACzBngC,EAAOD,QAAUmgC,EACjBA,EAAevoB,GAAK,Q,kCCxDpB,gBAEe,QACb/P,QAAS,CACPsV,WAAYlZ,KAAWA,GAAS+V,OAAK9V,EAAE,8BACvC2T,kBAAmB5T,GAAS,gBAAgBsV,KAAKtV,GACjD2rC,yBAA0B3rC,GAAS,yBAAyBsV,KAAKtV,GACjEm+B,uBAAwBn+B,GAAS,gBAAgBsV,KAAKtV,GACtD+Z,QAAS/Z,GAAS,yKAAyKsV,KAAKtV,GAChMi+B,UAAU2N,GACR,OAAO7+B,IAAMA,GAAK,IAAIzS,QAAUsxC,GAAU71B,OAAK9V,EAAE,2BAA4B,CAAE4rC,UAAWD,KAE5F1N,8CAA+Cl+B,GAAS,qBAAqBsV,KAAKtV,IAAU+V,OAAK9V,EAAE,wDACnG6rC,qBAAsB9rC,GAAS,qMAAqMsV,KAAKtV,M,uBCb7O,IAAIyD,EAAM,CACT,aAAc,QAIf,SAASy4B,EAAe9D,GACvB,IAAIzkB,EAAKwoB,EAAsB/D,GAC/B,OAAO38B,EAAoBkY,GAE5B,SAASwoB,EAAsB/D,GAC9B,IAAI38B,EAAoBgE,EAAEgE,EAAK20B,GAAM,CACpC,IAAIl8B,EAAI,IAAI0B,MAAM,uBAAyBw6B,EAAM,KAEjD,MADAl8B,EAAE2B,KAAO,mBACH3B,EAEP,OAAOuH,EAAI20B,GAEZ8D,EAAepc,KAAO,WACrB,OAAOvlB,OAAOulB,KAAKrc,IAEpBy4B,EAAe5/B,QAAU6/B,EACzBngC,EAAOD,QAAUmgC,EACjBA,EAAevoB,GAAK,Q,ghBCtBhB1S,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACI,MAAM,CAAC,GAAK,YAAY,CAACJ,EAAG,cAAcA,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQ,MAAM,WAAa,GAAG,KAAO,kBAAkB,iBAAiBR,EAAIW,GAAG,6BAA6B,qBAAqBX,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAWrE,EAAI6qC,WAAW,eAAe,SAASvmC,GAAQtE,EAAI8qC,cAAe,IAAQhqC,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,OAAOc,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAgB,aAAEqG,SAAS,SAAUC,GAAMtG,EAAI8qC,aAAaxkC,GAAKE,WAAW,kBAAkBpG,EAAG,uBAAuBA,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,OAAO,KAAO,WAAW,CAAER,EAAwB,qBAAEI,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,gBAAgB,GAAGA,EAAG,MAAM,CAACE,YAAY,eAAe,CAAEN,EAAqB,kBAAEI,EAAG,sBAAsB,CAACE,YAAY,2BAA2BE,MAAM,CAAC,GAAK,oBAAoB,MAAQ,QAAQ,IAAM,GAAG,UAAY,GAAG,eAAe,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,UAAU,OAAO,SAAW,sBAAsB,IAAM,OAAO,MAAQ,SAASC,MAAM,CAAC,IAAM,mBAAmB,MAAQ,OAAO,OAAS,QAAQ6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,SAAS0G,EAAG,MAAM,CAACE,YAAY,eAAeC,YAAY,CAAC,aAAa,SAASC,MAAM,CAAC,IAAM,wBAAwB,MAAQ,QAAQ,OAAS,SAAS6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,SAAS0G,EAAG,QAAQ,CAACE,YAAY,sBAAsBE,MAAM,CAAC,GAAK,eAAe,MAAQ,MAAM,MAAQ,UAAU,UAAU,GAAG,UAAU,qBAAqB,UAAYR,EAAIua,cAAclW,GAAG,CAAC,MAAQrE,EAAIwa,wBAAwB,CAACxa,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,OAAQX,EAAI+qC,iCAAmE,IAAhC/qC,EAAIgrC,mBAAmB5xC,OAAYgH,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,MAAQ,KAAK,CAACJ,EAAG,eAAe,CAACE,YAAY,aAAac,MAAM,CAAC,gBAAiBpB,EAAI+qC,iCAAmE,IAAhC/qC,EAAIgrC,mBAAmB5xC,QAAYiL,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIirC,4BAA8BjrC,EAAIirC,6BAA6BnqC,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,WAAW,MAAO,CAACZ,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,SAAS,CAACH,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,QAAQ,MAAQ,MAAM,OAAS,SAAS,IAAI,KAAKiB,OAAM,IAAO,MAAK,EAAM,YAAY,CAACzB,EAAIiB,GAAG,GAAI,SAAS3B,GAAG,MAAO,CAACc,EAAG,cAAc,CAAChB,IAAIE,EAAEgB,YAAY,YAAYC,YAAY,CAAC,OAAS,OAAO,eAAe,SAAS,CAACH,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,QAAQ,YAAY,MAAM,OAAS,SAAS,IAAI,GAAGJ,EAAG,YAAY,CAAChB,IAAK,WAAaE,EAAGgB,YAAY,QAAQC,YAAY,CAAC,MAAQ,gBAAe,GAAGH,EAAG,YAAY,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,OAAQkB,EAAIirC,2BAA4BzkC,WAAW,gCAAgClG,YAAY,UAAU,GAAGF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,MAAQ,KAAK,CAACJ,EAAG,eAAe,CAACE,YAAY,aAAac,MAAM,CAAC,gBAAiBpB,EAAI+qC,iCAAiC1mC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIirC,4BAA8BjrC,EAAIirC,6BAA6BnqC,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,WAAW,MAAO,CAAmC,IAAjChB,EAAIgrC,mBAAmB5xC,OAAagH,EAAG,sBAAsB,CAACiE,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIya,QAAQ/gB,KAAK,CACl6Go7B,KAAM,uBACNwB,MAAO,CAAE4U,UAAW52B,KAAKoD,YACrB,CAACtX,EAAG,oBAAoB,CAACE,YAAY,oEAAoEC,YAAY,CAAC,YAAY,QAAQC,MAAM,CAAC,UAAU,yBAAyB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,QAAQ,GAAGX,EAAIgF,OAAOvD,OAAM,IAAO,MAAK,EAAM,aAAa,CAAkC,IAAhCzB,EAAIgrC,mBAAmB5xC,OAAY,CAAC4G,EAAIiB,GAAG,GAAI,SAAS3B,GAAG,MAAO,CAACc,EAAG,cAAc,CAAChB,IAAIE,EAAEgB,YAAY,YAAYC,YAAY,CAAC,OAAS,OAAO,eAAe,SAAS,CAACH,EAAG,sBAAsB,CAACJ,EAAIS,GAAG,UAAUL,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,QAAQ,YAAY,MAAM,OAAS,SAAS,IAAI,GAAGJ,EAAG,YAAY,CAAChB,IAAK,WAAaE,EAAGgB,YAAY,QAAQC,YAAY,CAAC,MAAQ,gBAAeP,EAAIgF,KAAKhF,EAAIiB,GAAIjB,EAAsB,oBAAE,SAASmrC,GAAU,MAAO,CAAC/qC,EAAG,cAAc,CAAChB,IAAI+rC,EAAS14B,GAAGnS,YAAY,YAAYC,YAAY,CAAC,OAAS,OAAO,eAAe,QAAQC,MAAM,CAAC,UAAY2qC,EAASptC,KAAK8e,cAAcnI,OAAOW,WAAW,IAAK,KAAQ,mBAAoB,GAAK,CAAEtX,KAAM,mBAAoBwwB,OAAQ,CAAE9b,GAAI04B,EAAS14B,KAAO,KAAO,KAAK,CAACrS,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGyqC,EAAwB,OAAfnrC,EAAIyN,OAAkB,UAAY,SAAS,QAAQ,IAAI,GAAGrN,EAAG,YAAY,CAAChB,IAAK,WAAc+rC,EAAW,GAAG7qC,YAAY,QAAQC,YAAY,CAAC,MAAQ,gBAAe,GAAGH,EAAG,YAAY,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,OAAQkB,EAAIirC,2BAA4BzkC,WAAW,gCAAgClG,YAAY,UAAU,KAAKmB,OAAM,GAAM,CAACrC,IAAI,SAAS4B,GAAG,WAAW,MAAO,CAACZ,EAAG,UAAU,CAACU,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,SAAS6F,GAC1hD,IAAIukC,EAAQvkC,EAAIukC,MAClC,MAAO,CAAChrC,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,oCAAoCc,MAAM,CAAE,WAAYgqC,GAAQ7qC,YAAY,CAAC,MAAQ,SAAS8D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIqrC,qBAAsB,KAAQ,CAACjrC,EAAG,MAAM,CAACE,YAAY,SAASE,MAAM,CAAC,IAAM,0BAA0BJ,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,OAAOP,EAAG,OAAO,CAACE,YAAY,uCAAuC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,WAAWP,EAAG,IAAI,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,cAAcT,EAAIU,GAAGV,EAAIsjB,SAAS,aAAa,MAAK,EAAM,gBAAgB7hB,OAAM,IAAO,MAAK,EAAM,aAAa,CAACrB,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,aAAa,QAAQ,OAAS,SAAS,CAACH,EAAG,SAAS,CAACE,YAAY,qBAAqBC,YAAY,CAAC,OAAS,QAAQ,MAAQ,UAAU,CAAEP,EAA0B,uBAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,UAAU,oCAAoC,GAAK,eAAe,CAACJ,EAAG,UAAU,CAACI,MAAM,CAAC,UAAU,yCAAyC,KAAO,GAAG,QAAU,GAAG,MAAQ,QAAQ,QAAUR,EAAI6kB,yBAAyB,CAACzkB,EAAG,oBAAoB,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,KAAK,CAACR,EAAIS,GAAG,6BAA6BL,EAAG,OAAO,CAACG,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,MAAM,IAAI,GAAGX,EAAIgF,KAAKhF,EAAIiB,GAAIjB,EAAS,OAAE,SAASkwB,EAAKh3B,GAAG,OAAOkH,EAAG,cAAc,CAAChB,IAAIlG,EAAEsH,MAAM,CAAC,UAAU0vB,EAAKhkB,MAAM2Q,cAAgB,QAAQ,UAAYqT,EAAKob,QAAQ,GAAKpb,EAAK4F,KAAK,CAAC11B,EAAG,oBAAoB,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,GAAK,eAAe,IAAM0vB,EAAK1zB,IAAI,YAAY,KAAK,aAAa,QAAQ4D,EAAG,OAAO,CAACG,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAGT,EAAIU,GAAGwvB,EAAKhkB,WAAW,MAAM,OAAM,IAAI,KAAKlM,EAAIgF,KAAK5E,EAAG,SAAS,CAACE,YAAY,cAAcC,YAAY,CAAC,iBAAiB,SAAS,CAACH,EAAG,aAAa,CAACA,EAAG,gBAAgB,IAAI,IAAI,KAAKA,EAAG,WAAW,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,MAAM,WAAa,IAAI4F,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAIqrC,oBAAoB/kC,GAAKE,WAAW,wBAAwB,CAACpG,EAAG,MAAM,CAACE,YAAY,iCAAiCC,YAAY,CAAC,mBAAmB,UAAU,CAACH,EAAG,QAAQ,CAACE,YAAY,cAAcE,MAAM,CAAC,MAAQ,GAAG,KAAO,GAAG,MAAQ,IAAI6D,GAAG,CAAC,MAAQrE,EAAIurC,gBAAgB,CAACnrC,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,kBAAkB,IAAI,GAAGL,EAAG,SAAS,CAACE,YAAY,2CAA2CC,YAAY,CAAC,gBAAgB,OAAO,eAAe,QAAQC,MAAM,CAAC,UAAY,MAAM,CAACJ,EAAG,eAAe,CAACE,YAAY,oCAAoC,CAACF,EAAG,OAAO,CAACE,YAAY,gCAAgC,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwBP,EAAG,cAAc,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kBAAkB,OAAOP,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,qCAAqC,SAAW,GAAG,YAAcX,EAAIW,GAAG,qCAAqC,eAAe,IAAIyF,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAIwrC,oBAAoBllC,GAAKE,WAAW,yBAA0BxG,EAAa,UAAEI,EAAG,IAAI,CAACE,YAAY,sCAAsC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,MAAMX,EAAIU,GAAGV,EAAIyrC,eAAe,OAAQzrC,EAAe,YAAEI,EAAG,IAAI,CAACE,YAAY,sCAAsC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4BAA4B,OAAOP,EAAG,IAAI,CAACE,YAAY,4CAA4C,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qBAAqB,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,MAAQ,qBAAqB,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,SAAW,GAAG,MAAQ,UAAU,SAA6C,IAAlCR,EAAI0rC,mBAAmBtyC,QAA4C,KAA5B4G,EAAIwrC,qBAA4BnnC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI0N,MAAMi+B,SAASC,WAAY,CAAC5rC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,OAAOP,EAAG,QAAQ,CAACyG,IAAI,WAAWvG,YAAY,SAASE,MAAM,CAAC,GAAK,WAAW,KAAO,OAAO,SAAW,WAAW,OAAS,OAAO6D,GAAG,CAAC,OAASrE,EAAI6rC,iBAAoD,IAAlC7rC,EAAI0rC,mBAAmBtyC,OAAcgH,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,gBAAgB,MAAMX,EAAIU,GAAGV,EAAI8rC,YAAY9rC,EAAI+rC,cAAe,IAAI,OAAO/rC,EAAIgF,MAAM,GAAG5E,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAAoC,IAAlCR,EAAI0rC,mBAAmBtyC,OAAcgH,EAAG,OAAO,CAACE,YAAY,0CAA0C,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0BAA0B,OAAOX,EAAIiB,GAAIjB,EAAsB,oBAAE,SAASgsC,EAAavpC,GAAO,MAAO,CAACrC,EAAG,MAAM,CAAChB,IAAIqD,GAAO,CAACrC,EAAG,IAAI,CAACE,YAAY,6CAA6CC,YAAY,CAAC,MAAQ,qBAAqB,CAACH,EAAG,OAAO,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,oBAAoBC,MAAM,CAAC,MAAQwrC,EAAaC,WAAW,CAACjsC,EAAIS,GAAGT,EAAIU,GAAGsrC,EAAaC,aAAa7rC,EAAG,SAAS,CAACE,YAAY,SAASE,MAAM,CAAC,MAAQ,GAAG,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIksC,WAAWF,EAAarQ,SAAUl5B,MAAW,CAACzC,EAAIS,GAAG,kBAAkB,UAAS,IAAI,GAAGL,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,SAAWR,EAAImsC,oBAAkD,KAA5BnsC,EAAIwrC,oBAA2B,QAAUxrC,EAAImsC,mBAAmB,MAAQ,UAAU,MAAQ,IAAI9nC,GAAG,CAAC,MAAQrE,EAAIosC,oBAAoB,CAACpsC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0BAA0B,QAAQ,IAAI,IAAI,IACn2Ke,EAAkB,G,8ECNP,GACb9I,OACE,MAAO,CAELyzC,YAAY,EACZC,aAAc,KACdxB,cAAc,IAIlByB,UAEE9wC,SAAS+wC,iBAAiB,YAAavsC,KAAKwsC,gBAAiB,CAAEC,MAAM,IAGrEzpB,UAAU0pB,cAAcH,iBAAiB,mBAAoB,KACvDvsC,KAAKosC,aAGTpsC,KAAKosC,YAAa,EAElBzsC,OAAO64B,SAASmU,aAIpBlqC,QAAS,CACP+pC,gBAAgBpwC,GACdqD,QAAQmtC,IAAIxwC,GAEZ4D,KAAKqsC,aAAejwC,EAAMywC,OAC1B7sC,KAAK6qC,cAAe,GAItBD,aACE5qC,KAAK6qC,cAAe,EAEf7qC,KAAKqsC,cAAiBrsC,KAAKqsC,aAAaS,SAI7C9sC,KAAKqsC,aAAaS,QAAQC,YAAY,CAAE9wC,KAAM,oB,m/BC0XpD,OACE6B,KAAM,MAENyO,OAAQ,CACV,GAGE,OACE,MAAO,CACLy+B,4BAA4B,EAC5Bc,cAAe,EACfkB,WAAW,EACXC,aAAa,EACbzB,cAAe,GACfC,mBAAoB,GACpBjhB,KAAM,GACN+gB,oBAAqB,GACrB2B,cAAe,GACfhB,oBAAoB,EACpBd,qBAAqB,EACrB+B,mBAAoB,OAIxBvrC,SAAU,EAAZ,uBACA,sBACA,sEAEA,sCACI,gCAAJ,mBAEA,sCACI,wBAAJ,mBAEA,4BAAI,kBAAJ,SACA,0BAAI,gBAAJ,SACA,4BAAI,uBAAJ,4BACA,uBAAI,SAAJ,UACA,wCACA,kDAfA,IAgBIwX,QAAS,IAAM,EAAnB,iBACIG,QAAS,IAAM,EAAnB,iBACI6zB,iBAAkB,IAAM,EAA5B,0BACIC,gBAAiB,IAAM,EAA3B,0BACA,uBAAI,aAAJ,UApBA,IAsBItC,mBAAoBjnC,GAAMA,EAAGspC,iBAAiB/zB,cAAc1gB,KAC5D6P,QAAS,IAAM,EAAnB,iCAEI8R,aAAc,IAAlB,+EAEI,MAAM,GAAV,qBACM,MAAMgzB,EAAQ,CACpB,CACQ,GAAR,QACQ,IAAR,gBACQ,MAAR,sBACQ,QAAR,+BAEA,CACQ,GAAR,UACQ,IAAR,kBACQ,MAAR,wBACQ,QAAR,iCAEA,CACQ,GAAR,YACQ,IAAR,mBACQ,MAAR,yBACQ,QAAR,kCAEA,CACQ,GAAR,mBACQ,IAAR,4BACQ,MAAR,kCACQ,SAAR,IAaM,OAAOA,GAGTC,yBAA0B,IAAM,CACpC,MACA,MACA,MACA,OACA,aACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,aACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGI,UACE,MAAgC,WAAzBvtC,KAAKw0B,OAAOgZ,UAGrB,WACE,MAAgC,YAAzBxtC,KAAKw0B,OAAOgZ,UAGrB,uBAME,OAAOxtC,KAAKytC,SAAWztC,KAAK0tC,UAAY,CAC9C,SACA,WACA,YACA,iBACA,kBACA,wBACA,oBACA,YACA,8BACA,4BACA,wDAGI,oBACE,MACN,8BACA,iCACA,4CAME7/B,MAAO,CACL8/B,aAAc,CACZC,MAAM,EACN,QAAQC,GACFA,IACF,EAAV,cACYr7B,GAAIq7B,EAAQvjC,IACZwjC,SAAUD,EAAQC,WAGpBnuC,OAAOouC,gBAAgBF,EAAQvjC,IAAKtK,KAAK6c,iBAMjD,UACE7c,KAAKmtC,mBAAqBntC,KAAKguC,UAAUvqC,QAAQ,YACjDzD,KAAK2oC,UAAU,KACb3oC,KAAKuN,MAAMC,OAASxN,KAAKwN,SAE3BxN,KAAKiuC,yBACL,MAAMrqB,EAAkC,OAAhB5jB,KAAKwN,OAAkB,EAAnD,MACIxG,OAAOwG,OAAOoW,IAsDhBnhB,QAAS,EAAX,KACA,qCADA,IAGI,YAAYyrC,EAAOC,GACjB,GAAc,IAAVD,EACF,MAAO,UAET,MAAME,EAAI,IACJC,EAAKF,EAAW,EAAI,EAAIA,EACxBG,EAAQ,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Dr1C,EAAIyM,KAAK6oC,MAAM7oC,KAAKknC,IAAIsB,GAASxoC,KAAKknC,IAAIwB,IAEhD,MAAO,GAAGz2B,YAAYu2B,EAAQxoC,KAAK8oC,IAAIJ,EAAGn1C,IAAI2e,QAAQy2B,OAAQC,EAAMr1C,MAEtE,WAAWyiC,EAAUl5B,GACnBxC,KAAKitC,aAAc,EACnBjtC,KAAK8rC,eAAiB7hC,SAASyxB,EAAU,IACzC17B,KAAKyrC,mBAAmBpxC,OAAOmI,EAAO,IAGxC,oBAAJ,iCACA,wBACA,UACA,4BACA,CACYisC,QAAS,EAArB,oBACYC,UAAW,EAAvB,qBAGA,SACA,iBAEA,oBAZA,IAeI,gBACE1uC,KAAKyrC,mBAAqB,GAC1BzrC,KAAKurC,oBAAsB,GAC3BvrC,KAAKorC,qBAAsB,EAC3BprC,KAAKksC,oBAAqB,EAC1BlsC,KAAKwrC,cAAgB,GACrBxrC,KAAKgtC,WAAY,EACjBhtC,KAAKitC,aAAc,EACnBjtC,KAAK8rC,cAAgB,EACrBtwC,SAASmzC,eAAe,YAAY9vC,MAAQ,IAG9C,cAAc9D,GACZ,MAAM6zC,EAAe7zC,EAAEuB,OAAOuyC,MAC9B7uC,KAAKgtC,WAAY,EACjBhtC,KAAKitC,aAAc,EACnBjtC,KAAKwrC,cAAgB,GAErB,IAAK,IAAIvyC,EAAI,EAAGA,EAAI,EAAI+G,KAAKyrC,mBAAmBtyC,OAAQF,IAAK,CAC3D,MAAMuxB,EAAOokB,EAAa31C,GAEpB61C,EAAgBtkB,EAAOA,EAAK1sB,KAAK4E,MAAM,KAAKC,MAAQ,GAE1D,GAAI3C,KAAKutC,yBAAyBznC,SAASgpC,EAAclyB,eAIvD,OAHA5c,KAAKwrC,cAAgBhhB,EAAK1sB,KAC1BkC,KAAKgtC,WAAY,OACjBxxC,SAASmzC,eAAe,YAAY9vC,MAAQ,IAI9C,MAAMqvC,EAAQ1jB,EAAOA,EAAKlL,KAAO,EAC3ByvB,EAAgB/uC,KAAK8rC,cAAgBoC,EACrCc,EAAmB,MACzB,GAAID,EAAgBC,EAGlB,OAFAhvC,KAAKitC,aAAc,OACnBzxC,SAASmzC,eAAe,YAAY9vC,MAAQ,IAG9CmB,KAAK8rC,cAAgBiD,EAErB,MAAME,EAAS,IAAIC,WACnBD,EAAOE,UAAY,KACjB,MAAMC,EAAWH,EAAOj1C,OACxBgG,KAAKyrC,mBAAmBhyC,KAAK,CAAvC,0CAEY+wB,GACFykB,EAAOI,cAAc7kB,GAGzBhvB,SAASmzC,eAAe,YAAY9vC,MAAQ,IAG9C,yBAAJ,iCACA,2CACA,OACA,2BAGA,2CACA,OACA,6BARA,IAYI,kBAAkB8P,GAChB,OAAIhO,EAAElC,IAAIkQ,EAAM,WAAW,IAAUhO,EAAElC,IAAIkQ,EAAM,4BAA4B,GACpE,oBAEF,wBAGT,wBACE3O,KAAKwa,QAAQ/gB,KAAK,SAASuG,KAAKynB,4BC9wBwR,I,0SCS1T7kB,GAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,GAAAmB,GAAiB,QA0BhC,IAAkBA,GAAW,CAAC0sC,OAAA,KAAKC,SAAA,KAAO7kC,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUC,WAAA,OAAW3F,OAAA,KAAKiY,UAAA,KAAQpI,WAAA,KAAS+0B,SAAA,KAAOtsC,QAAA,KAAMuQ,OAAA,KAAKgnB,QAAA,KAAMgV,aAAA,KAAW/U,YAAA,KAAUE,iBAAA,OAAiBC,eAAA,OAAe6U,QAAA,KAAMvkB,oBAAA,KAAkBrgB,QAAA,KAAK+B,mBAAA,KAAgB8iC,aAAA,O,oEC3C1N,MAAMzV,GAAmB1C,UAEzB0C,GAAiBvb,OAAOrL,QAAQoJ,IAC9B,MAAMkzB,EAAkB1V,GAAiBxd,GAEnCmzB,EAAgBlvC,QAAE2Q,WACtB3Q,QAAE4Q,UAAUmL,EAAS7M,QAAQ,QAAS,IAAIA,QAAQ,SAAU,MAG9DnE,aAAI9I,UAAUitC,EAAeD,EAAgBvnC,SAAWunC,KCV1DE,OAAWC,KAAK,CACdC,cAAe1sB,uCACf2sB,YAAa3sB,sCACb4sB,KAAM,gBACNzsC,QAAU,qBAGV0sC,WAAY,IACZC,wBAAyB,IACzBC,gBAAgB,EAChBC,gBAAgB,EAChBC,mBAAmB,IAGrBT,OAAWU,8B,8BCUXC,IAAMlpB,OAAOmpB,KACb/wC,OAAOgB,EAAIA,QACXhB,OAAOqH,OAASypC,IAEhB/kC,aAAIilC,OAAOC,eAAgB,EAG3BllC,aAAIrS,UAAUsH,EAAIA,QAClB+K,aAAIrS,UAAU2N,OAASypC,IAEvB/kC,aAAI+iB,IAAIoiB,QACRnlC,aAAI+iB,IAAIqiB,KACRplC,aAAI+iB,IAAIsiB,KACRrlC,aAAI+iB,IAAIuiB,IAAattC,SAErB+sC,IAAMjjC,OAAOoH,QAAKpH,QAUlB9B,aAAI+iB,IAAIwiB,OAAoB,CAC1BltB,kBAGF,IAAIrY,aAAI,CACNgpB,eACA9f,aACAjR,oBACAogB,gBACAjkB,OAAQoxC,GAAKA,EAAEC,MACdC,OAAO,S,kCC7DV,W,oCCAA,W,qBCAA,MAAMC,EAAiBj4C,OAAOk4C,OAAO,CACnCC,UAAW,YACXC,YAAa,aACbC,UAAW,YACXC,OAAQ,WAGV72C,EAAOD,QAAU,CACfy2C,mB,2CCRF,IAAIvxC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,YAAY,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,KAAK,CAACJ,EAAG,eAAe,CAACE,YAAY,eAAe,CAACN,EAAIS,GAAG,aAAa,GAAGL,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,GAAK,IAAI,KAAO,OAAO,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,gBAAgBR,EAAI+P,WAAWxF,IAAI,mBAAmB,oBAAoBnE,MAAM,CAACtH,MAAOkB,EAAI+P,WAAgB,MAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,QAASzJ,IAAME,WAAW,uBAAuB,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,eAAe,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAM,iBAAmB0H,WAAW,qBAAqBhG,MAAM,CAAC,MAAQR,EAAIW,GAAG,iBAAiB,YAAcX,EAAIW,GAAG,mCAAmCyF,MAAM,CAACtH,MAAOkB,EAAI+P,WAAsB,YAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,cAAezJ,IAAME,WAAW,6BAA6B,IAAI,GAAGpG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,oBAAoB,YAAcX,EAAIW,GAAG,qBAAqByF,MAAM,CAACtH,MAAOkB,EAAI+P,WAAoB,UAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,YAAazJ,IAAME,WAAW,2BAA2B,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,GAAK,MAAM,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,mBAAmB,YAAcX,EAAIW,GAAG,oBAAoByF,MAAM,CAACtH,MAAOkB,EAAI+P,WAAmB,SAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,WAAYzJ,IAAME,WAAW,0BAA0B,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,GAAK,IAAI,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,mBAAmB,YAAcX,EAAIW,GAAG,uCAAuCyF,MAAM,CAACtH,MAAOkB,EAAI+P,WAAmB,SAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,WAAYzJ,IAAME,WAAW,0BAA0B,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAAER,EAAW,QAAEI,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAIW,GAAG,0BAA0B,MAAQX,EAAI4xC,MAAM,YAAY,OAAO,aAAa,MAAM,gBAAgB,WAAW,MAAQ,GAAG,UAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,SAAW,IAAIxrC,MAAM,CAACtH,MAAOkB,EAAI+P,WAAkB,QAAE1J,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI+P,WAAY,UAAWzJ,IAAME,WAAW,wBAAwBxG,EAAIgF,MAAM,IAAI,IAAI,GAAGhF,EAAIiQ,GAAG,YAAY,IAAI,GAAG7P,EAAG,iBAAiB,CAACA,EAAG,YAAYA,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAY,GAAG,MAAQ,UAAU,UAAYR,EAAIkQ,yBAA2BlQ,EAAImQ,QAAQ,QAAUnQ,EAAImQ,SAAS9L,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI4N,UAAU,CAAC5N,EAAIS,GAAG,aAAa,IAAI,IAC5rFiB,EAAkB,G,msBCCP,OACbG,SAAU,EAAF,KACHgwC,eAAS,QAAS,CACnBC,aAAc,mBAGbC,eAAW,QAAS,CACrBH,MAAO,OACPI,QAAS,MACTC,UAAW,UAIfvvC,QAAS,EAAF,KACFwvC,eAAW,QAAS,CACrBC,WAAY,OACZC,WAAY,YAHT,IAMLC,YAAY5/B,GACV,OAAO7R,EAAElC,IAAIuB,KAAK+xC,QAAQv/B,GAAK,OAAQ,MAGzC6/B,gBAAgB7/B,GACd,OAAO7R,EAAElC,IAAIuB,KAAK+xC,QAAQv/B,GAAK,YAAY,O,2tBCgHjD,OACEjG,OAAQ,CACV,EACA,OACA,QAGE7K,MAAO,CACLwO,QAASC,SAGX,OACE,MAAO,CACLmiC,qBAAqB,IAIzB1wC,SAAU,EAAZ,KACA,2BACI,aAAJ,UAEA,uBACA,UAIEa,QAAS,EAAX,KACA,sBACA,eAFA,IAII,UACEzC,KAAKkyC,cAGP,OACE,MAAMK,EAAUvyC,KAAKwyC,aAAa,CAAxC,mDACUD,EAAQp5C,OAAS,GAAKo5C,EAAQ,GAAGE,WACnCzyC,KAAK8P,WAAW2iC,UAAYF,EAAQ,GAAGE,UACvCzyC,KAAKsM,MAAM,OAAQtM,KAAK8P,aAChC,oBACQ9P,KAAK8lB,UAAU,CACbC,MAAO,CAAjB,oDACUoR,MAAO,EAAjB,iBAGQn3B,KAAKsM,MAAM,OAAQtM,KAAK8P,gBCvL6T,I,yJCOzVlN,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAgBhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAa2F,UAAA,OAAUC,WAAA,OAAW3F,OAAA,KAAKC,aAAA,KAAWC,OAAA,KAAK8B,UAAA,KAAQ5B,UAAA,KAAQC,aAAA,KAAWwF,WAAA,Q,uLC/B3H,MAAMrN,EAAc,cAEdC,GAAK,IAAG,cAAwBC,SAA3B,gBACY,aADZ,GAII,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,2CChBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,gBAAgB,CAACJ,EAAG,cAAc,CAACA,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACE,YAAY,SAAS,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAG,WAAW,QAAQ,GAAGN,EAAG,qBAAqB,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,SAAS,CAACiE,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,mBAAmB,CAACvM,EAAIS,GAAG,kBAAkB,IAAI,IAAI,IAAI,GAAGL,EAAG,YAAY,CAACE,YAAY,SAASF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,gBAAgB,CAACR,EAAIiQ,GAAG,YAAY,IAAI,IAAI,IAChkBvO,EAAkB,G,6ICAlBtE,EAAS,GAKTyF,EAAY,eACdzF,EACA2C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAchC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKE,OAAA,KAAK6P,WAAA,KAASvX,QAAA,KAAMu3B,QAAA,KAAMC,YAAA,KAAUC,kBAAA,KAAgBC,iBAAA,OAAiBC,eAAA,OAAe/vB,OAAA,Q,oCC/BvH,W,oCCAA,W,uLCGA,MAAM1H,EAAc,oBACdC,GAAK,IAAG,cAA8BC,OAGjB,0BACrB,MAAO,KAJF,gBACY,mBADZ,GAQI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,2CCnBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAY,GAAG,KAAO,GAAG,MAAQ,UAAU,UAAU,GAAG,MAAQ,SAAS6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,uBAAuB,CAACnM,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,eAAe,IAAI,GAAGT,EAAIiB,GAAIjB,EAAkB,gBAAE,SAASoS,EAAc3P,GAAO,MAAO,CAAgD,aAA9C2P,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,YAAegT,EAAgB,IAAI,CAAChS,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQ4R,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,YAAa,MAAQzN,EAAI2yC,cAAclwC,GAAO,OAAS,GAAG,YAA2B,UAAfzC,EAAIyN,OAAqB,OAAS,UAAU,aAAa,KAAK,SAAW,GAAG,eAAe,IAAIpJ,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIwS,gBAAgBJ,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIwS,gBAAiBJ,EAAcK,GAAInM,IAAME,WAAW,wCAAwC,GAAkD,aAA9C4L,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,YAAegT,EAAgB,GAAG9R,YAAY,QAAQ,CAACF,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ4R,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,YAAa,aAAa2E,EAAcG,QAAQ,GAAGE,GAAG,cAAcL,EAAcG,QAAQ,GAAGE,GAAG,eAAe,IAAIpO,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIwS,gBAAgBJ,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIwS,gBAAiBJ,EAAcK,GAAInM,IAAME,WAAW,wCAAwC,GAAGxG,EAAIgF,KAAoD,aAA9CoN,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,aAAgBgT,EAAgB,IAAI,CAAChS,EAAG,MAAM,CAACE,YAAY,UAAUC,YAAY,CAAC,MAAQ,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAG0R,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,aAAa,OAAOrN,EAAG,MAAM,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4yC,mBAAkC,UAAf5yC,EAAIyN,OAAqB,OAAS,YAAY,SAASzN,EAAIgF,UAAS,GAAG5E,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,eAAe,CAACE,YAAY,OAAOC,YAAY,CAAC,YAAY,OAAO,QAAU,2BAA2BC,MAAM,CAAC,OAAS,OAAO,UAAU,wBAAwB,MAAQR,EAAIW,GAAG,+BAA+B,MAAQ,CAACX,EAAI0S,mBAAmB,KAAO,SAAS,eAAe,GAAG,SAAW,IAAIrO,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,kBAAkB,MAAQ,SAAS1B,GAAQA,EAAOkD,oBAAqBvB,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI2S,OAAShN,KAAKwE,IAAIxE,KAAKiN,IAAIjN,KAAKkN,MAAMvO,EAAO/H,OAAOuC,QAAS,KAAMsH,MAAM,CAACtH,MAAOkB,EAAU,OAAEqG,SAAS,SAAUC,GAAMtG,EAAI2S,OAAO3S,EAAIuG,GAAGD,IAAME,WAAW,YAAYpG,EAAG,UAAU,CAACE,YAAY,yCAAyCE,MAAM,CAAC,MAAQ,UAAU,OAAS,OAAO,MAAQ,UAAU,CAACJ,EAAG,IAAI,CAACE,YAAY,kBAAkBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,uBAAuBL,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAI2G,sBAAsB,KAAKvG,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,SAAW,GAAG,UAAU,GAAG,MAAQ,UAAU,UAAYR,EAAI+S,iBAAiB1O,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIuM,MAAM,aAAcvM,EAAI+S,oBAAoB,CAAC/S,EAAIS,GAAG,yBAAyBL,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,UAAU,GAAG,UAAYR,EAAI+S,iBAAiB1O,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,gBAAgB,CAAC9H,EAAIS,GAAG,qBAAqB,IAAI,IAAI,IAClkHiB,EAAkB,G,uhCCqItB,OACE3D,KAAM,gBAENyO,OAAQ,CACV,QAGE7K,MAAO,CACLkxC,eAAgB,CACd32C,KAAMwQ,OACNpE,QAAS,IAEXwqC,gBAAiB,CACf52C,KAAMwQ,OACNpE,QAAS,IAEX2K,eAAgB,CACd/W,KAAMkT,MACN9G,QAAS,IAAM,IAEjByqC,aAAc,CACZ72C,KAAM7C,OACNiP,QAAS,SAIb,OACE,MAAO,CACL6J,sBAAsB,EACtBK,gBAAiB,GACjBG,OAAQ,EACRqgC,UAAW,GACXC,iBAAkB3+B,KAAKoD,QAI3B7V,SAAU,EAAZ,KACA,kCADA,IAEIyrC,gBAAiB,IAAM,EAA3B,yBAEIqF,cAAe5uC,GAAMtB,IACnB,MAAMywC,EAAgBnvC,EAAGkP,eAAexQ,GACxC,IAAKywC,EACH,MAAO,GAGT,MAAMC,EAAgBpvC,EAAGkP,eAAenT,MAAM,EAAG2C,GAAOF,IAAIhE,IAAK,CAAvE,sCAEY+3B,EAAQ,CACZA,MAAO,CACLoN,MAAO3/B,EAAGgvC,aAAazc,MAAMoN,MAC7B,CAAC3/B,EAAG+uC,iBAAkB/uC,EAAG8uC,iBAG7Bx5C,OAAOkS,OAAO+qB,EAAMA,SAAU6c,GAE9B,MAAMC,EAAervC,EAAGupC,gBAAgBh0B,YAAYgd,GAAO19B,KAE3D,GAA4B,IAAxBw6C,EAAah6C,OACf,MAAO,GAGT2K,EAAGsvC,uBAAuB9/B,QAAQyU,IAChCjkB,EAAGyO,gBAAgBwV,EAAOvV,IAAM2gC,EAAa,GAAGprB,EAAOvV,MAGzD1O,EAAGuvC,uBAAuB//B,QAAQyU,IAChCjkB,EAAGyO,gBAAgBwV,EAAOvV,IAAM2gC,EAAa,GAAGprB,EAAOvV,MAGzD,MAAM8gC,EAAMH,EAAa7wC,IAAIhE,GAAK,EAAxC,OACM,OAAmB,IAAfg1C,EAAIn6C,OACC,GAGFm6C,EAAIhxC,IAAIzD,GAASo0C,EAAc3gC,QAAQtI,KAAK+d,GAAUA,EAAOvV,KAAO3T,KAAW,IAGxFiU,gBAAiBhP,IACf,MAAMuyB,EAAQ,CACZA,MAAO,EAAf,CACUoN,MAAO3/B,EAAGgvC,aAAazc,MAAMoN,MAC7B,CAAC3/B,EAAG+uC,iBAAkB/uC,EAAG8uC,gBACnC,oBAIY3a,EAAUn0B,EAAGupC,gBAAgBh0B,YAAYgd,GAAO19B,KACtD,OAAuB,IAAnBs/B,EAAQ9+B,QAAgB8+B,EAAQ9+B,OAAS,EACpC,KAGF8+B,EAAQ,IAGjBvxB,eAAgB5C,IACd,IAAKA,EAAGgP,gBACN,MAAO,GAGT,MAAM/I,EAAYjG,EAAGgP,gBAAgBhJ,SAASypC,UAAUvpC,KAAK,IAAnE,+DAEM,OAAKD,EAIErE,KAAKkW,MAAM,EAAxB,wBAHe,IAMXw3B,uBAAwBtvC,GAAM,EAAlC,gCACA,yDAEIuvC,uBAAwBvvC,GAAM,EAAlC,gCACA,yDAEI6uC,mBAAoB7uC,IAClB,MAAMm0B,EAAUn0B,EAAGupC,gBAAgBh0B,YAAY,CAC7Cgd,MAAO,CACLoN,MAAO3/B,EAAGgvC,aAAazc,MAAMoN,MAC7B,CAAC3/B,EAAG+uC,iBAAkB/uC,EAAG8uC,kBAEnC,QACM,OAAK3a,GAIEn0B,EAAGsvC,uBAAuB,GAAG9gC,QAAQtI,KAAKnL,GAASA,EAAM2T,KAAOylB,EAAQn0B,EAAGsvC,uBAAuB,GAAG5gC,MAHnG,IAMXghC,eAAgB1vC,IACVA,EAAGupC,gBAAgB1pC,MAAM0H,MAAM,qBAAqBooC,IAAIt6C,OAAS,GACnE2K,EAAGkP,eAAeM,QAAQogC,IACnB5vC,EAAGyO,gBAAgBmhC,EAAIlhC,KAC1B1O,EAAGsE,KAAKtE,EAAGyO,gBAAiBmhC,EAAIlhC,GAAI,MAInC1O,EAAGyO,mBAId1E,MAAO,CACL,kBACE7N,KAAKgzC,iBAAmB3+B,KAAKoD,QAIjChV,QAAS,EAAX,KACA,4CADA,IAGI,aAAJ,iCACA,mCACA,uDAFA,OC5R4W,I,yJCQxWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAahC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK8F,YAAA,KAAU5F,OAAA,KAAKC,aAAA,KAAW3H,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,KAAQ7B,SAAA,KAAOE,aAAA,Q,2CChCvF,IAAInL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAY,SAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAI4zC,aAAa,MAAQ,YAAY,CAAC5zC,EAAIS,GAAG,yBAA2BT,EAAI4zC,aAAsI5zC,EAAIgF,KAA5H5E,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI6zC,qBAAsB,KAAQ,CAAC7zC,EAAIS,GAAG,kBAA2B,GAAG,CAACL,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAI4zC,aAAa,MAAQ,WAAWvvC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,KAAS,CAACvE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,oBAAoBT,EAAIS,GAAG,sBAAsB,IAAIL,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,aAAaR,EAAI4zC,aAAa,iBAAiB5zC,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAWrE,EAAI8zC,UAAU,eAAe,SAASxvC,GAAQtE,EAAI6zC,qBAAqB,IAAQ/yC,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,wBAAwBgB,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAM,qBAAsB0D,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAI6zC,oBAAoBvtC,GAAKE,WAAW,yBAA0BxG,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,SAAS,MAAQ,SAAS,OAAQ,EAAK,aAAaR,EAAI+zC,mBAAmB,kBAAkB/zC,EAAIuoB,aAAalkB,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI2E,SAAU,GAAQ,eAAe,SAASL,GAAQtE,EAAI2E,SAAU,EAAM3E,EAAI8zC,cAAchzC,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,uBAAuBgB,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,8BAA8B,GAAGT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,KAAKc,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIg0C,cAAc,UAAU,SAAS,IACn9FtyC,EAAkB,G,igECkHtB,OACE3D,KAAM,gBACN4D,MAAO,CACLsyC,OAAQ,CACN/3C,KAAMwQ,SAGV,OACE,MAAO,CACLwnC,UAAU,EACVC,cAAe,GACfJ,oBAAoB,EACpBxrB,aAAa,EACbsrB,qBAAqB,EACrB9qB,WAAY,KACZpkB,SAAS,EACTivC,cAAc,EACdI,eAAe,IAGnBnyC,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IAAM,CACrB2hB,IAAK,qCACLyD,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,EACVC,gBAAiB,EACjBC,cAAe,YACfE,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB4pB,WAAY3pB,GAAQ,GAAG1mB,EAAGswC,gBAAgBzzC,EAAE6I,KAAKghB,EAAK1sB,KAAK4E,MAAM,QACjE,OAAN,WACQ1C,KAAKoE,GAAG,QAAhB,iCACA,mBADA,uDAGQpE,KAAKoE,GAAG,UAAhB,iCACA,WACA,yEACA,4CAEA,wBACA,gBANA,uDASQpE,KAAKoE,GAAG,UAAW,KACjBN,EAAGgwC,oBAAqB,IAG1B9zC,KAAKoE,GAAG,YAAa,KACnBN,EAAGmwC,UAAW,EACdnwC,EAAGwkB,aAAc,SAMzBza,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,MAGtB,OAAO6B,GACDA,GACF3qB,KAAKi0C,UAAW,EAChBj0C,KAAKk0C,cAAgBl0C,KAAKg0C,QAE1Bh0C,KAAKi0C,UAAW,IAKtBxxC,QAAS,CACP,aACE,OAAO,OAAb,OAAa,IAET,cAAJ,oCACA,mCACA,uCACA,2CACA,gBAJA,IAMI,YAAJ,iCACA,qCACA,cACA,yBACA,mBACA,2CACA,mBANA,IAQI,WACE,MAAO,+iBClOyV,I,6FCOlWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMkoB,WAAA,Q,qLCxBzD,MAAMhoB,EAAc,qBAEdC,GAAK,IAAG,cAA8BC,OAGnB,0BACrB,MAAO,KAJA,gBACU,mBADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,2DCrBzC,W,kECAA,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAsB,mBAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,kBAAkBxH,EAAIu0C,eAAc,KAAQ,CAACn0C,EAAG,SAAS,CAACJ,EAAIS,GAAG,yBAAyB,IAAI,GAAGL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,UAAU,KAAO,OAAO,CAACR,EAAIS,GAAG,oBAAoBL,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIu0C,cAAc,UAAU,MAAMlwC,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,sBAAuBpH,EAAG,sBAAsB,CAACG,YAAY,CAAC,mBAAmB,UAAU,UAAU,iBAAiBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAiB,cAAEqG,SAAS,SAAUC,GAAMtG,EAAIu0C,cAAcjuC,GAAKE,WAAW,kBAAkB,CAACpG,EAAG,MAAM,CAACyG,IAAI,qBAAqBtG,YAAY,CAAC,OAAS,oBAAoB,UAAU,iBAAiB8D,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,qBAAsB,CAACpH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAS,CAACn0C,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAIT,EAAiB,cAAEI,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAYR,EAAI4B,KAAKK,KAAK,YAAYjC,EAAIw0C,OAAO,cAAc,KAAKnwC,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,sBAAuBxH,EAAIgF,MAAM,MAAM,IAC3gDtD,EAAkB,G,+/BC+DtB,OACE3D,KAAM,kBACN4D,MAAO,CACLC,KAAM,CACJ1F,KAAM7C,SAGV,OACE,MAAO,CACL0vB,WAAY,KACZ0rB,cAAe,EACfC,aAAc,EACd/vC,SAAS,EACTgwC,oBAAoB,EACpBJ,eAAe,EACfK,oBAAoB,EACpBrsB,aAAa,EACb+rB,cAAc,IAGlBzyC,SAAU,EAAZ,KACA,wCADA,IAGI2yC,OAAQzwC,IACN,IAAKA,EAAGnC,KACN,MAAO,GAET,MAAM8a,EAAO,+BACPC,EAAc/b,EAAElC,IAAIqF,EAAGnC,KAAM,oBAAqB,IAAIib,cAA3C,OACjB,MAAO,GAAGH,YAAeC,KAAY5Y,EAAG+Y,eAAe/Y,EAAGnC,KAAKK,UAInE,UAAF,uCACA,sBADA,IAGE,UACE,MAAM6oB,EAAiB,IAAIC,eAAe,KAExC9qB,KAAKy0C,aAAez0C,KAAKyN,MAAMsd,mBAAmBC,wBAAwB9e,MAAQ,GAClF,MAAM+e,EAAQ,IAAM,GACpBjrB,KAAKw0C,cAAgBx0C,KAAKy0C,aAAexpB,IAE3CJ,EAAeK,QAAQlrB,KAAKyN,MAAMsd,qBAEpCtoB,QAAS,CACP,kBAAJ,iCACA,oBACA,UAEA,sCAJA,MC9GwW,I,iFCOpWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAQhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKxH,QAAA,KAAMioB,oBAAA,KAAkBC,WAAA,Q,yCC1B3D,IAAItrB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,YAAY,CAACE,YAAY,cAAcE,MAAM,CAAC,IAAM,IAAIM,YAAYd,EAAIe,GAAG,CAAEf,EAAuB,oBAAE,CAACZ,IAAI,YAAY4B,GAAG,WAAW,MAAO,CAAChB,EAAIiQ,GAAG,eAAexO,OAAM,GAAM,MAAM,MAAK,IAAO,CAACrB,EAAG,kBAAkB,CAACE,YAAY,qBAAqB,CAACF,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,SAAS,CAACP,EAAIiQ,GAAG,iBAAkBjQ,EAAI4O,KAAKyB,OAAkB,YAAEjQ,EAAG,QAAQ,CAACE,YAAY,iBAAiBE,MAAM,CAAC,SAAWR,EAAI2/B,eAAe,QAAU3/B,EAAI2/B,gBAAgBt7B,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI60C,kBAAkB96C,MAAM,KAAMgO,cAAc,CAAC/H,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,OAAOX,EAAIgF,MAAM,KAAK5E,EAAG,YAAYA,EAAG,kBAAkB,CAACE,YAAY,+BAA+B,CAACN,EAAIiQ,GAAG,iBAAiB7P,EAAG,WAAW,CAACE,YAAY,UAAUC,YAAY,CAAC,YAAY,kBAAkB,YAAY,QAAQ,eAAe,gBAAgBC,MAAM,CAAC,MAAQR,EAAIyN,OAAO,MAAQzN,EAAI4wB,SAAS,aAAa,QAAQ,YAAY,QAAQ,KAAO,GAAG,KAAO,GAAG,eAAe,GAAG,cAAc,IAAIvsB,GAAG,CAAC,OAAS,SAAUwsB,GAAc7wB,EAAI0jB,UAAU,CAAElW,MAAOxN,EAAI6U,KAAMpH,OAAQojB,MAAkB/vB,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,iBAAiBgB,OAAM,GAAM,CAACrC,IAAI,YAAY4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAGT,EAAIU,GAAG9H,EAAKsI,KAAKgL,iBAAiB9L,EAAG,SAAS,CAACE,YAAY,8BAA8BE,MAAM,CAAC,gBAAgB,GAAG,WAAW,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACjpD,IAAIxC,EAAKwC,EAAIxC,GACb,MAAO,CAACjE,EAAG,cAAcJ,EAAI8G,GAAG,CAACvG,YAAY,CAAC,YAAY,mBAAmB,YAAY,UAAU8D,GAAI,CAACjE,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAU,YAAY,cAAcR,EAAIoH,YAAY2P,iBAAiB,KAAO/W,EAAIoH,YAAY,cAAcpH,EAAIoH,YAAY0tC,WAAa90C,EAAIyjB,cAAc,KAAO,GAAG,kBAAiB,EAAK,iBAAiBzjB,EAAIoH,YAAY0P,mBAAmB1W,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACgB,MAAM,CAAC,CAAC+O,SAAUnQ,EAAIoH,YAAYkO,YAActV,EAAIoH,YAAYmO,WAAW/U,MAAM,CAAC,UAAU,wBAAwB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIoH,YAAYkO,UAAY,IAAMtV,EAAIoH,YAAYmO,UAAU,OAAOnV,EAAG,uBAAuB,CAACgB,MAAM,CAAC,CAAC+O,SAAUnQ,EAAIY,EAAElC,IAAIsB,EAAIyI,QAAS,iBAAiBjI,MAAM,CAAC,UAAU,2BAA2B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAIyI,QAAS,gBAAgB,QAAQ,GAAGrI,EAAG,qBAAqB,CAACA,EAAG,SAAS,CAACJ,EAAIS,GAAG,sBAAsB,IAAI,SAAS,CAACL,EAAG,SAAS,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,mCAAmCR,EAAIiB,GAAIjB,EAAyB,uBAAE,SAASgoB,EAAO9uB,GAAG,OAAOkH,EAAG,cAAc,CAAChB,IAAIlG,EAAEsH,MAAM,CAAC,UAAW,aAAgBwnB,EAAOnU,KAAK/D,QAAQ,IAAK,KAAK+M,cAAiB,UAAW,UAAYmL,EAAOsjB,SAASjnC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIya,QAAQ/gB,KAAK,CAAEo7B,KAAM9M,EAAO8N,QAAS,CAAC11B,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGsnB,EAAO3mB,MAAM,OAAOjB,EAAG,sBAAsB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGsnB,EAAOnU,MAAM,QAAQ,MAAK,IAAI,IAAI,GAAGzT,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACF,EAAG,UAAU,CAACI,MAAM,CAAC,UAAU,4BAA4B,MAAQR,EAAI6kB,uBAAuB,MAAQ,QAAQ,QAAU,GAAG,KAAO,GAAG,QAAU7kB,EAAI6kB,yBAAyB,CAACzkB,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAU,uBAAuB,MAAQ,UAAU,MAAQ,GAAG,GAAK,eAAe,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,6BAA6BL,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,IAAI,GAAGP,EAAG,OAAO,CAACE,YAAY,WAAW,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAwB,CAAE83B,SAAWz4B,EAAIgI,cAAgBhI,EAAIgI,aAAa+sC,aAAgB,SAAU,QAAQ,IAAI,IAAI,GAAG/0C,EAAIiQ,GAAG,WAAW7P,EAAG,WAAW,CAACE,YAAY,+BAA+BC,YAAY,CAAC,mBAAmB,WAAWC,MAAM,CAAC,OAAS,OAAO,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,sDAAsDC,YAAY,CAAC,YAAY,SAAS,cAAc,UAAU,CAACH,EAAG,QAAQ,CAACG,YAAY,CAAC,SAAW,SAAS,gBAAgB,WAAW,MAAQ,QAAQ,CAACH,EAAG,OAAO,CAACG,YAAY,CAAC,cAAc,WAAW,CAACP,EAAIS,GAAG,+BAA+BT,EAAIU,IAAG,IAAI4T,MAAO0gC,eAAe,KAAK50C,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,2BAA2B,OAAS,WAAW,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qBAAqB,OAAOP,EAAG,MAAMJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,4CAA4C,OAAS,WAAW,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsBX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,eAAe,KAAKP,EAAG,IAAI,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAO,4CAA4C,OAAS,WAAW,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,iBAAiB,YAAY,IAAI,IAAI,IAC1oGe,EAAkB,G,uuBCHP,OACbC,MAAO,CAELszC,UAAWvoC,QAGb7K,SAAU,CAMRuE,QAEE,OAAOnG,KAAK0jB,cAAcY,IAAItkB,KAAKg1C,YASrCjd,YACE,OAAOp3B,EAAElC,IAAIuB,KAAKmG,MAAO,cAQ3BxC,QACE,OAAOhD,EAAElC,IAAIuB,KAAKmG,MAAO,UAQ3B8uC,aACE,OAAOt0C,EAAElC,IAAIuB,KAAK2D,MAAO,CAAC,QAAS3D,KAAK+3B,aAQ1Cmd,eACE,OAAOv0C,EAAElC,IAAIuB,KAAK2D,MAAO,YAQ3BwxC,OACE,OAAOn1C,KAAKo1C,YAAY,UAI5B3yC,QAAS,CAQPxD,GAAGnB,GACD,MAAQ,GAAEkC,KAAK+3B,aAAaj6B,KAU9Bs3C,YAAYt3C,GACV,OAAO6C,EAAElC,IAAIuB,KAAKk1C,aAAcl1C,KAAKf,GAAGnB,KAW1Cu3C,cAAcv3C,GAAe,2BAANw3C,EAAM,iCAANA,EAAM,kBAC3B,OAAOt1C,KAAK2D,MAAM6yB,SAASx2B,KAAKf,GAAGnB,MAAUw3C,IAM/CC,QAAQjrC,GACN,OAAOtK,KAAK2D,OAAS3D,KAAKq1C,cAAc,MAAO/qC,IAUjDN,KAAKskB,GACH,OAAOtuB,KAAK2D,MACR3D,KAAKo1C,YAAY,OAAjBp1C,CAAyBsuB,GAAQ31B,KACjC,IAUN68C,MAAMlnB,GACJ,OAAOtuB,KAAK2D,MACR3D,KAAKq1C,cAAc,OAAQ/mB,GAC3B,CACA31B,KAAM,GACNkuB,MAAO,IAkBb4uB,cAAcnjC,GACZ,MAAMqM,EAAOrM,EAAQojC,QACf1/B,EAAS1D,EAAQqjC,SACjB3sC,EAAO,GAEb,GAAImG,MAAM4nB,QAAQpY,GAChB,IAAK,IAAIX,EAAI,EAAGA,EAAIW,EAAKxlB,OAAQ6kB,IAAK,CACpC,MAAMowB,EAAIzvB,EAAKX,GACT1f,GAAe,IAAX0X,IAAyC,IAArBrV,EAAElC,IAAIuX,EAAQgI,QAClCjgB,IAANO,IACF0K,EAAKolC,IAAW,IAAN9vC,EAAc,GAAK,QAGxBqgB,QAAmB5gB,IAAXiY,IACjBhN,EAAK2V,IAAmB,IAAX3I,EAAmB,GAAK,GAGvC,IAAIqgB,EAAQ,CACVuf,MAAOtjC,EAAQujC,MAAQnwC,KAAKwE,IAAI,EAAGoI,EAAQwjC,KAAO,GAClDC,OAAQzjC,EAAQujC,MAChBpS,MAAOz6B,GAGT,IAAKrI,EAAEsB,QAAQqQ,EAAQ0jC,QAGrB,GAAI1jC,EAAQ2jC,MAAO,CACjB,MAAMC,EAAkB,GAElBvmC,EAAK,IAAIC,OAAO0C,EAAQ0jC,OAAQ,KAEhCG,EAAgBx1C,EAAElC,IAAIuB,KAAKmG,MAAO,mBAAoB,OAAtCxF,GAGhBy1C,EAAe9jC,EAAQ+jC,aAAan0C,OAAO2hC,GAAKljC,EAAEqQ,SAASrQ,EAAElC,IAAI03C,EAAetS,KAChF9qB,EAAS,IACVq9B,EAAa9zC,IAAIpB,IAAS,CAAG,CAACA,GAAQyO,KACzC,CAAE,wBAAyBA,GAC3B,CAAE,kBAAmBA,GACrB,CAAE,wBAAyBA,GAC3B,CAAE,kBAAmBA,IAGvB,GAAI2C,EAAQgkC,gBACV,IAAK,MAAMrtC,KAAKqJ,EAAQgkC,gBAAiB,CACvC,MAAQD,EAAiBptC,EAAjBotC,aAEFE,EAAoB,GAC1BF,EAAa/zC,IAAIuhC,GAAKljC,EAAEgL,IAAI4qC,EAAmB,CAAC1S,GAAI,KAEpD,MAAM2S,EAAe,EAAH,KACb71C,EAAElC,IACHuB,KAAK0jB,cAAcY,IAAIwT,cACvB,CAAC7uB,EAAE6sB,MAAQ,GAAI,oBACf,OAHCn1B,IAKA41C,GAICE,EAAsBJ,EAAan0C,OAAO2hC,GAAKljC,EAAEqQ,SAASrQ,EAAElC,IAAI+3C,EAAc,CAAC3S,MAErF4S,EAAoBnjC,QAAQuwB,IAC1BqS,EAAgBz8C,KAAK,CAAE,CAACoqC,GAAIl0B,MAKlC0mB,EAAMqgB,IAAM,IACP39B,KACAm9B,QAGL7f,EAAM2f,OAAS1jC,EAAQ0jC,OACvB3f,EAAMggB,aAAe,IAAI/jC,EAAQ+jC,aAAc,YAAa,aAC5DhgB,EAAMigB,gBAAkB31C,EAAEmQ,QAAQ,IAC5BwB,EAAQgkC,iBAAmB,GAC/B,CACExgB,KAAM,QACN6gB,WAAY,cACZC,aAAc,MACdC,GAAI,kBACJC,QAAS,CAAEC,YAAa,EAAGhlB,MAAO,GAClCskB,aAAc,CACZ,8BACA,0BAGJ,CACEvgB,KAAM,QACN6gB,WAAY,cACZC,aAAc,MACdC,GAAI,kBACJC,QAAS,CAAEC,YAAa,EAAGhlB,MAAO,GAClCskB,aAAc,CACZ,8BACA,4BAOV,MAAMW,EAAcr2C,EAAElC,IAAI6T,EAAQpQ,OAAQ,SACpC+0C,EAAct2C,EAAElC,IAAI6T,EAAQpQ,OAAQ,SAa1C,OAZKvB,EAAEsB,QAAQ+0C,IAAiBr2C,EAAEsB,QAAQg1C,IAAgC,MAAhBA,IACpDA,EAAYzoB,WAAW,KACzB6H,EAAM2gB,GAAe,IAAIpnC,OAAQ,IAAGqnC,EAAYC,OAAO,IAC9CD,EAAYnT,SAAS,KAC9BzN,EAAM2gB,GAAe,IAAIpnC,OAAUqnC,EAAYC,QAAQ,GAAtB,KAEjC7gB,EAAM2gB,GAAeC,GAIzB5gB,EAAQ,EAAH,KAAQA,GAAW/jB,EAAQ+jB,OAAS,IAElCA,GAUT8gB,UAAU7sC,GACR,OAAOtK,KAAK2D,MACR3D,KAAKq1C,cAAc,SAAU/qC,GAAKvN,KAAK,IAAMiD,KAAKyN,MAAM2pC,KAAKC,WAAW,EAAG/sC,IAC3EpP,QAAQC,QAAQ,SAUtB8M,OAAOqvC,GACL,MAAMt8C,EAAW,GACjB,IAAK,MAAMsP,KAAOgtC,EAChBt8C,EAASvB,KAAKuG,KAAKm3C,UAAU7sC,IAE/B,OAAOpP,QAAQ+C,IAAIjD,MCtSV,GACb0G,MAAO,CAaLynB,QAAS,CAAEltB,KAAMkT,MAAO9G,QAAS,IAAM,IAGvCkvC,UAAW,CAAEt7C,KAAMkT,MAAO9G,QAAS,IAAM,IAGzCmvC,QAAS,CAAEv7C,KAAMwQ,OAAQpE,QAAS,OAGlCqtC,QAAS,CAAEz5C,KAAM,CAACwQ,OAAQ0C,OAAQ9G,QAAS,QAG3CstC,SAAU,CAAE15C,KAAM,CAACkU,QAAShB,OAAQ9G,SAAS,GAG7C+B,MAAO,CAAEnO,KAAMkT,MAAO9G,QAAS,IAAM,IAGrC6H,QAAS,CAAEjU,KAAMkU,QAAS9H,SAAS,GAGnCovC,YAAahrC,OAGbirC,SAAU,CAAEz7C,KAAMkT,MAAO9G,QAAS,IAAM,IAGxCsvC,QAAS,CAAE17C,KAAMuQ,OAAQnE,QAAS,KAAO,GAGzCytC,KAAM,CAAE75C,KAAMuQ,OAAQnE,QAAS,GAG/BwtC,MAAO,CAAE55C,KAAMuQ,OAAQnE,SAAU,GAGjCwe,MAAO,CAAE5qB,KAAMuQ,OAAQnE,QAAS,GAGhCuvC,WAAYznC,QAGZ6lC,OAAQvpC,OAGRorC,OAAQz+C,OAGR8I,OAAQuK,OAGR4pB,MAAOj9B,OAGP0+C,WAAY1+C,OAGZ2+C,YAAa3+C,OAGb4+C,YAAa,CAAE/7C,KAAMuQ,OAAQnE,QAAS,MAGxC1P,OACE,MAAO,CACLs/C,YAAa,EACbC,aAAc,GACdC,aAAc,EACdC,mBAAer6C,EACfs6C,eAAgB,GAChBC,iBAAiB,EACjBC,gBAAiB,GACjBC,gBAAiB,EACjBC,mBAAe16C,EACf26C,mBAAe36C,EACf46C,kBAAc56C,EACd66C,wBAAoB76C,EACpB86C,uBAAmB96C,EACnB+6C,mBAAe/6C,EACfg7C,qBAAsB,IAI1BlrC,MAAO,CACLgqC,OAAO/pC,GACL9N,KAAKo4C,cAAgBtqC,GAGvBgoC,KAAKhoC,GACH9N,KAAKi4C,YAAcnqC,GAGrB+nC,MAAM/nC,GACJ9N,KAAKk4C,aAAepqC,GAGtB+Y,MAAM/Y,GACJ9N,KAAKm4C,aAAerqC,GAGtB4nC,QAAQ5nC,GACN9N,KAAKq4C,eAAiBvqC,GAGxB6nC,SAAS7nC,GACP9N,KAAKs4C,gBAAkBxqC,GAGzB4pC,SAAS5pC,GACP9N,KAAKu4C,gBAAkBzqC,GAGzB6pC,QAAQ7pC,GACN9N,KAAKw4C,eAAiB1qC,GAGxB5L,OAAO4L,GACL9N,KAAK04C,cAAgB5qC,GAGvBuoB,MAAMvoB,GACJ9N,KAAK24C,aAAe7qC,GAGtBiqC,YAAYjqC,GACV9N,KAAK44C,mBAAqB9qC,GAG5BgqC,WAAWhqC,GACT9N,KAAK64C,kBAAoB/qC,GAG3BkoC,OAAOloC,GACL9N,KAAKy4C,cAAgB3qC,GAGvBsqC,cAActqC,GACZ9N,KAAKsM,MAAM,gBAAiBwB,IAG9BmqC,YAAYnqC,GACV9N,KAAKsM,MAAM,cAAewB,GAC1B9N,KAAKg5C,WAGPd,aAAapqC,GACX9N,KAAKsM,MAAM,eAAgBwB,GAC3B9N,KAAKg5C,WAGPX,eAAevqC,GACb9N,KAAKsM,MAAM,kBAAmBwB,GAC9B9N,KAAKg5C,WAGPV,gBAAgBxqC,GACd9N,KAAKsM,MAAM,mBAAoBwB,GAC/B9N,KAAKg5C,WAGPT,gBAAgBzqC,GACd9N,KAAKsM,MAAM,kBAAmBwB,IAGhC0qC,eAAe1qC,GACb9N,KAAKsM,MAAM,iBAAkBwB,IAG/B4qC,cAAc5qC,GACZ9N,KAAKsM,MAAM,gBAAiBwB,GAC5B9N,KAAKg5C,WAGPL,aAAa7qC,GACX9N,KAAKsM,MAAM,eAAgBwB,GAC3B9N,KAAKg5C,WAGPJ,mBAAmB9qC,GACjB9N,KAAKsM,MAAM,sBAAuBwB,GAClC9N,KAAKg5C,WAGPH,kBAAkB/qC,GAChB9N,KAAKsM,MAAM,qBAAsBwB,GACjC9N,KAAKg5C,WAGPP,cAAc3qC,GACZ9N,KAAKsM,MAAM,gBAAiBwB,GAE5BrQ,aAAauC,KAAK+4C,sBAClB/4C,KAAK+4C,qBAAuB/6C,WAAW,KACrCgC,KAAK84C,cAAgB94C,KAAKy4C,cAC1Bz4C,KAAKg5C,WACJh5C,KAAKg4C,eAIZiB,UACEj5C,KAAKq4C,eAAiBr4C,KAAK01C,QAC3B11C,KAAKs4C,gBAAkBt4C,KAAK21C,SAC5B31C,KAAKo4C,cAAgBp4C,KAAK63C,OAC1B73C,KAAKi4C,YAAcj4C,KAAK81C,KACxB91C,KAAKk4C,aAAel4C,KAAK61C,MACzB71C,KAAKu4C,gBAAkBv4C,KAAK03C,SAC5B13C,KAAKw4C,eAAiBx4C,KAAK23C,QAC3B33C,KAAKy4C,cAAgBz4C,KAAKg2C,OAC1Bh2C,KAAK04C,cAAgB14C,KAAKkC,OAC1BlC,KAAK24C,aAAe34C,KAAKq2B,MACzBr2B,KAAK44C,mBAAqB54C,KAAK+3C,YAC/B/3C,KAAK64C,kBAAoB74C,KAAK83C,YAGhCr1C,QAAS,CACPu2C,c,m/BC7CJ,MAAM,EAAN,gCAEA,OACEzsC,OAAQ,CACV,OACA,EACA,GAEE7K,MAAO,CACLw3C,oBAAqB,CACnBj9C,KAAMkU,QACN9H,SAAS,IAGb,OACE,MAAO,CACLsoB,SAAU,CAChB,CAAQ,MAAR,UAAQ,MAAR,SACA,CAAQ,MAAR,KAAQ,MAAR,OAEM/b,KAAN,SAIEhT,SAAU,EAAZ,WACA,sBACA,aACA,eACA,4BAEA,kDACA,uBACA,UAEA,4CAVA,IAWIwrC,iBAAkB,IAAM,EAA5B,0BAEIC,gBAAiB,IAAM,EAA3B,yBAEIlmC,YAAarD,GAAMygB,EAAKxiB,aAAa+B,EAAG6K,KAAKrE,KAE7C9B,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCo3C,sBAAuBr1C,IACrB,MAAM,EAAZ,uCACM,MAAO,CACb,CACQ,KAAR,UACQ,KAAR,uBACQ,GAAR,oBACQ,QAAR,yCAGA,CAAQ,KAAR,aAAQ,KAAR,qBAAQ,GAAR,UAAQ,SAAR,OAIE,UAGE,GAAyB,YAArB9D,KAAKw0B,OAAO12B,KACd,OAEF,MAAMs7C,EAAoBp5C,KAAKotC,iBAAiBzpC,MAAM0H,MAAM,uBAAuBooC,IAAIt6C,OAE7D,IAAtBigD,GACFp5C,KAAKotC,iBAAiBpjC,OAGxB,MAAMqvC,EAAiBr5C,KAAKqtC,gBAAgB1pC,MAAM0H,MAAM,qBAAqBooC,IAAIt6C,OAE1D,IAAnBkgD,GACFr5C,KAAKqtC,gBAAgBrjC,QAGzBvH,QAAS,EAAX,KACA,qCADA,IAEI,oBAAJ,uCACA,gEACA,4BAFA,OCrQ6V,I,6OCQzVG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAuBhC,IAAkBA,EAAW,CAAC02C,UAAA,KAAQ/J,SAAA,KAAO7kC,OAAA,KAAK7H,QAAA,KAAM+H,OAAA,KAAK2uC,UAAA,KAAQr2C,QAAA,KAAMu3B,QAAA,KAAMC,YAAA,KAAUC,kBAAA,KAAgBC,iBAAA,OAAiB4e,kBAAA,OAAkB3e,eAAA,OAAexsB,QAAA,KAAMvD,OAAA,KAAK8B,UAAA,KAAQ5B,UAAA,KAAQyuC,cAAAhpC,EAAA,KAAcipC,cAAAjpC,EAAA,Q,yCC1CtM,IAAI3Q,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAY,SAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,UAAY,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAQ,CAACn0C,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,uBAAuBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,MAAM,IAAI,GAAG,CAACP,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAY,GAAG,KAAO,GAAG,WAAaR,EAAI4B,KAAKgb,mBAAqB5c,EAAI4B,KAAKK,MAAM,QAAUjC,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,KAAS,CAACvE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,MAAM,IAAKX,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,SAAS,kBAAkBR,EAAIuoB,YAAY,OAAQ,EAAK,iBAAiBvoB,EAAIW,GAAG,iBAAiB,aAAaX,EAAI40C,oBAAsB50C,EAAI45C,uBAAuBv1C,GAAG,CAAC,WAAW,SAASC,GAAQ,OAAOtE,EAAI65C,UAAU75C,EAAI4B,OAAO,eAAe,SAAS0C,GAAQtE,EAAI2E,SAAU,EAAM3E,EAAI85C,cAAch5C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4BAA4B,UAAU,GAAGX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,KAAKc,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIu0C,cAAc,UAAU,QAAQn0C,EAAG,sBAAsB,CAACG,YAAY,CAAC,mBAAmB,UAAU,UAAU,iBAAiBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAiB,cAAEqG,SAAS,SAAUC,GAAMtG,EAAIu0C,cAAcjuC,GAAKE,WAAW,kBAAkB,CAACpG,EAAG,MAAM,CAACyG,IAAI,qBAAqBtG,YAAY,CAAC,OAAS,sBAAsB,CAACH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAS,CAACn0C,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAIT,EAAiB,cAAEI,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAYR,EAAI+5C,cAAc,cAAc,OAAO/5C,EAAIgF,MAAM,MAAM,IACtvGtD,EAAkB,G,q/DC6HtB,OACE3D,KAAM,sBACN4D,MAAO,CACLC,KAAM,CACJ1F,KAAM7C,SAGV,OACE,MAAO,CACL2gD,UAAU,EACVD,cAAe,GACfnF,oBAAoB,EACpBrsB,aAAa,EACb0xB,qBAAqB,EACrBlxB,WAAY,KACZ0rB,cAAe,EACfC,aAAc,EACd/vC,SAAS,EACT2vC,cAAc,EACdC,eAAe,EACfqF,uBAAuB,IAG3B/3C,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IAAM,CACrB2hB,IAAK,IACLyD,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,EACVC,gBAAiB,EACjBC,cAAe,OACfC,kBAAkB,EAClBC,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB,OAAN,WACQvqB,KAAKoE,GAAG,mBAAoBomB,IAC1BxqB,KAAKyqB,iBACLzqB,KAAK0qB,QAAQF,KAEfxqB,KAAKoE,GAAG,QAAhB,iCACA,mBADA,uDAGQpE,KAAKoE,GAAG,UAAhB,eACUN,EAAG6wC,oBAAqB,EACxB7wC,EAAGY,SAAU,QACvB,wBAGQ1E,KAAKoE,GAAG,UAAW,KACjBN,EAAG6wC,oBAAqB,IAG1B30C,KAAKoE,GAAG,YAAhB,iCACA,qIACA,uCACA,kCACA,cACA,iBACA,+BACA,mBACA,oBACA,gBACA,gBAGA,+CAbA,4DAmBEyJ,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,MAGtB,OAAO6B,GACDA,GACF3qB,KAAK+5C,UAAW,EAChB/5C,KAAK85C,cAAgB95C,KAAKi6C,QAE1Bj6C,KAAK+5C,UAAW,IAKtB,UACE,MAAMlvB,EAAiB,IAAIC,eAAe,KAExC9qB,KAAKy0C,aAAez0C,KAAKyN,MAAMsd,mBAAmBC,wBAAwB9e,MAAQ,GAClF,MAAM+e,EAAQ,IAAM,GACpBjrB,KAAKw0C,cAAgBx0C,KAAKy0C,aAAexpB,IAI3C,GAFAJ,EAAeK,QAAQlrB,KAAKyN,MAAMsd,oBAE9B/qB,KAAK2B,KAAK+F,SAAU,CACtB1H,KAAK+5C,UAAW,EAChB,MAAMt9B,EAAO,+BACPC,EAAW1c,KAAK2B,KAAK+F,SAC3B1H,KAAKi6C,OAAS,GAAGx9B,cAAiBC,KAAY1c,KAAK2B,KAAKgb,kBAAkBC,iBAAiB5c,KAAK6c,cAChG7c,KAAK85C,cAAgB95C,KAAKi6C,SAG9Bx3C,QAAS,CACP,UAAJ,oCACA,2BACA,qCACA,iBACA,eACA,oCACA,sJAKA,SACA,cACA,SACA,6BAEA,SAEA,2BACA,aAEA,mCACA,kBAtBA,IAyBI,cAAJ,oCACA,mCACA,uCACA,kCACA,gBAJA,IAMI,YAAJ,iCACA,qCACA,cACA,yBACA,mBACA,kCACA,mBANA,IAQI,WACE,MAAO,+iBCnS+V,I,yGCOxWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMioB,oBAAA,KAAkBC,WAAA,Q,oCC5B3E,W,g1BCKA,MAAM8uB,EACJpgB,YAAY79B,EAAMuW,EAAI/M,GAAsC,IAA9B00C,EAA8B,uDAAN,KACpDn6C,KAAK/D,KAAOA,EACZ+D,KAAKsK,IAAMkI,EACXxS,KAAKyF,OAASA,EACdzF,KAAKm6C,sBAAwBA,EAC7Bn6C,KAAKwjC,UAAYv5B,SAASqZ,IAAsC,IAE9C,cAAdtjB,KAAK/D,OACP+D,KAAKk4B,OAAS/R,OAAO7B,IAAI81B,UAAUr4C,aAAa/B,KAAKsK,MAErC,cAAdtK,KAAK/D,OACP+D,KAAKk4B,OAAS/R,OAAO7B,IAAI5b,UAAU3G,aAAa/B,KAAKsK,KAErB,OAA5BtK,KAAKk4B,OAAOC,cACdn4B,KAAKk4B,OAAL,OAAmBl4B,KAAKk4B,QAAWl4B,KAAKk4B,OAAOmiB,aAAa,IAC5Dr6C,KAAKwjC,UAAYxjC,KAAKk4B,OAAOsL,WAGC,WAA5BxjC,KAAKk4B,OAAOC,cACdn4B,KAAKk4B,OAAL,OAAmBl4B,KAAKk4B,QAAWl4B,KAAKk4B,OAAOoiB,gBAAgB,IAC/Dt6C,KAAKwjC,UAAYxjC,KAAKk4B,OAAOsL,YAOf,aAAdxjC,KAAK/D,OACP+D,KAAKk4B,OAAS/R,OAAO7B,IAAI9M,KAAKzV,aAAa/B,KAAKsK,KAChDtK,KAAKwjC,UAAYxjC,KAAKk4B,OAAOsL,WAGb,cAAdxjC,KAAK/D,OACP+D,KAAKk4B,OAAS/R,OAAO7B,IAAIi2B,UAAUx4C,aAAa/B,KAAKsK,MAGrC,aAAdtK,KAAK/D,OACP+D,KAAKk4B,OAAS/R,OAAO7B,IAAI+oB,gBAAgBtrC,aAAa/B,KAAKsK,KAC3DtK,KAAKwjC,UAAYxjC,KAAKk4B,OAAOsL,WAKf,qBAChB,OAAO7iC,EAAElC,IAAI0nB,OAAO7B,IAAI9K,QAAQzX,aAAa,GAAI,iBAAkB,KAGrD,mBACd,OAAO/B,KAAKk4B,OAAO1zB,aAGT,eACV,MAAkB,SAAdxE,KAAK/D,MAAiC,aAAd+D,KAAK/D,KACxB+D,KAAKk4B,OAAOxpB,SAEd,GAGO,mBACd,OAAQ1O,KAAK/D,MACX,IAAK,WACH,OAAO+D,KAAKk4B,OAAOzR,YACrB,IAAK,OACH,OAAOzmB,KAAKk4B,OAAOnpB,aACrB,IAAK,WACH,OAAO/O,KAAKk4B,OAAOnpB,aACrB,QACE,MAAO,IAID,eACV,OAAO4X,IAAS3mB,KAAKw6C,UAAU7zC,SAAS3G,KAAKyF,QAAQ5G,MAAO,CAAEkoB,OAAQ/mB,KAAKyG,eAAgBg0C,UAAW,IAGjF,0BACrB,MAAkB,SAAdz6C,KAAK/D,MAAiC,aAAd+D,KAAK/D,MAAqC,cAAd+D,KAAK/D,KACpC,UAAhB2Y,OAAKpH,OAAqBxN,KAAKk4B,OAAO5jB,YAActU,KAAKk4B,OAAOrjB,eAElE,GAGoB,gCAC3B,MAAkB,SAAd7U,KAAK/D,MAAiC,aAAd+D,KAAK/D,MAAqC,cAAd+D,KAAK/D,KACpC,UAAhB2Y,OAAKpH,OAAqBxN,KAAKk4B,OAAO1jB,wBAA0BxU,KAAKk4B,OAAOljB,qBAE9E,GAGuB,mCAC9B,MAAkB,SAAdhV,KAAK/D,MAAiC,aAAd+D,KAAK/D,MAAqC,cAAd+D,KAAK/D,KACpC,UAAhB2Y,OAAKpH,OAAqBxN,KAAKk4B,OAAOpjB,qBAAuB9U,KAAKk4B,OAAOnjB,wBAE3E,GAGoB,gCAC3B,MAAkB,SAAd/U,KAAK/D,MAAiC,aAAd+D,KAAK/D,MAAqC,cAAd+D,KAAK/D,OACvD+D,KAAKk4B,OAAO/yB,kBAIX,GAHoB,UAAhByP,OAAKpH,OAAqBxN,KAAKk4B,OAAO/yB,kBAAkB0K,QAAQ,KAAM,IAAM7P,KAAKk4B,OAAOjjB,qBAAqBpF,QAAQ,KAAM,IAMrG,sCACjC,MAAkB,SAAd7P,KAAK/D,MAAiC,aAAd+D,KAAK/D,MAAqC,cAAd+D,KAAK/D,OACvD+D,KAAKk4B,OAAOhzB,wBAIX,GAHoB,UAAhB0P,OAAKpH,OAAqBxN,KAAKk4B,OAAOhzB,wBAAwB2K,QAAQ,KAAM,IAAM7P,KAAKk4B,OAAOhjB,2BAA2BrF,QAAQ,KAAM,IAM5H,2BACtB,OAAkB,SAAd7P,KAAK/D,MAAiC,aAAd+D,KAAK/D,MAAqC,cAAd+D,KAAK/D,OACtD+D,KAAKk4B,OAAO/iB,UAGVP,OAAK9V,EAAG,+BAA8BkB,KAAKk4B,OAAO/iB,UAAUtF,QAAQ,YAAa,IAAI4E,QAEvF,GAGM,kBACb,MAAkB,SAAdzU,KAAK/D,MAAiC,aAAd+D,KAAK/D,KACxB+D,KAAKk4B,OAAO5jB,YAEd,GAGkB,8BACzB,MAAkB,SAAdtU,KAAK/D,MAAiC,aAAd+D,KAAK/D,KACxB+D,KAAKk4B,OAAO1jB,wBAEd,GAGe,2BACtB,MAAkB,SAAdxU,KAAK/D,MAAiC,aAAd+D,KAAK/D,KACxB+D,KAAKk4B,OAAOpjB,qBAEd,GAGY,wBACnB,MAAkB,SAAd9U,KAAK/D,MAAiC,aAAd+D,KAAK/D,KACxB+D,KAAKk4B,OAAO/yB,kBAEd,GAGI,gBACX,MAAkB,SAAdnF,KAAK/D,MAAiC,aAAd+D,KAAK/D,KACxB+D,KAAKk4B,OAAO/iB,UAEd,GAGY,wBACnB,OAAOnV,KAAKk4B,OAAOvb,kBAGR,gBACX,MAAM+9B,EAAc5xC,KAAKC,MAAMD,KAAKgD,UAAU9L,KAAKk4B,QAAQtb,eAAe+9B,SAE1E,IAAI9xC,EAEFA,EADyB,kBAAhB6xC,EACE5xC,KAAKC,MAAM2xC,GAEXA,EAGb,MAAM5wC,EAAW,IAAIjB,GAAUG,KAAK,CAAC,EAAD,SAAQC,EAAR,EAAGyd,IAAiBxd,EAApB,EAAewd,IAAf,OAA4Bxd,EAAID,IAE9Dc,EAAYD,EAASE,KAAK,QAAG0c,EAAH,EAAGA,IAAH,OAAaA,GAAO1mB,KAAKyF,UAAWC,KAAKC,OAAOmE,EAASxH,IAAIhE,GAAKA,EAAEooB,MAEpG,OAAK3c,EAIE4c,IAAS5c,EAAUwN,MAAO,CAAEwP,OAAQ/mB,KAAKyG,eAAgBg0C,UAAW,IAHlE9zB,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAMzB,gBACX,QAAIzG,KAAKk4B,OAAO1tB,cACyE,QAAhFxK,KAAKk4B,OAAO1tB,aAAa9H,MAAM,KAAKC,MAAMyS,WAAW,IAAK,IAAI3K,eAgC3E,MAAM0c,EACJ2S,YAAYtnB,EAAI/M,EAAQm1C,GACtB56C,KAAKsK,IAAMkI,EACXxS,KAAK46C,WAAaA,EAClB56C,KAAKyF,OAASA,EACdzF,KAAKk4B,OAAS/R,OAAO7B,IAAI+oB,gBAAgBtrC,aAAa/B,KAAKsK,KAI3C,qBAChB,OAAO3J,EAAElC,IAAI0nB,OAAO7B,IAAI9K,QAAQzX,aAAa,GAAI,iBAAkB,KAGzD,eACV,OAAO/B,KAAKw6C,UAAU7zC,SAAS3G,KAAKyF,QAGzB,gBACX,IAAIoD,EAGFA,EADkC,kBAAzB7I,KAAKk4B,OAAOtyB,SACVkD,KAAKC,MAAM/I,KAAKk4B,OAAOtyB,UAEvB5F,KAAKk4B,OAAOpuB,SAIzB,MAAM+wC,EAAmBl6C,EAAE6I,KAAKX,GAChC,GAAI7I,KAAKyF,QAAUo1C,EAAiBh1C,IAClC,OAAO8gB,IAASk0B,EAAiBzxC,MAAO,CAAE2d,OAAQ/mB,KAAKyG,iBAIzD,IAAIq0C,EACJ,IAAK,IAAI7hD,EAAI,EAAGA,EAAI4P,EAAS1P,OAAQF,IAEnC,GADA6hD,EAAiBjyC,EAAS5P,EAAI,IACzB6hD,GAAkBA,EAAej1C,IAAM7F,KAAKyF,OAC/C,OAAOkhB,IAAS9d,EAAS5P,GAAGmQ,MAAO,CAAE2d,OAAQ/mB,KAAKyG,iBAItD,OAAOkgB,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,oB,sFCzQtC,W,yCCAA,IAAI3G,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,WAAW,CAACH,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACN,EAAIS,GAAG,sBAAsBL,EAAG,qBAAqB,CAACE,YAAY,OAAOC,YAAY,CAAC,gBAAgB,OAAOC,MAAM,CAAC,SAAW,KAAKR,EAAIiB,GAAIjB,EAAW,SAAE,SAASkB,EAAKuB,GAAO,OAAOrC,EAAG,oBAAoB,CAAChB,IAAIqD,EAAMjC,MAAM,CAAC,SAAWU,EAAK85C,WAAW,CAAC56C,EAAG,2BAA2B,CAACA,EAAG,OAAO,CAACE,YAAY,oBAAoB,CAACN,EAAIS,GAAGT,EAAIU,GAAGQ,EAAKkiB,YAAYhjB,EAAG,4BAA4B,CAACJ,EAAIiB,GAAIC,EAAW,QAAE,SAAS48B,EAAO5kC,GAAG,MAAO,CAACkH,EAAG,MAAM,CAAChB,IAAIlG,EAAEoH,YAAY,gCAAgCC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQs9B,EAAOv8B,MAAM,KAAO,OAAO,CAACnB,EAAG,OAAO,CAACkB,MAAM,CAAGC,MAAOvB,EAAIi7C,YAAYnd,EAAOv8B,SAAW,CAACvB,EAAIS,GAAGT,EAAIU,GAAGo9B,EAAOnhC,WAAWyD,EAAG,IAAI,CAACE,YAAY,4BAA4B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGo9B,EAAO5xB,OAAO,QAAQ,UAAS,IAAI,MAAK,IAAI,IAC3+BxK,EAAkB,GCsCtB,GACE3D,KAAM,cACN,OACE,MAAO,CACLm9C,QAAS,CACf,CAAQ,MAAR,cAAQ,OAAR,8IAAQ,UAAR,GACA,CAAQ,MAAR,kBAAQ,OAAR,4CAAQ,UAAR,GACA,CAAQ,MAAR,UAAQ,UAAR,GACA,CAAQ,MAAR,WAAQ,UAAR,GACA,CAAQ,MAAR,kBAAQ,UAAR,GACA,CAAQ,MAAR,cAAQ,UAAR,GACA,CAAQ,MAAR,eAAQ,UAAR,GACA,CAAQ,MAAR,YAAQ,UAAR,GACA,CAAQ,MAAR,iBAAQ,UAAR,MAKEx4C,QAAS,CACP,YAAYy4C,GAEmB,MAAzBA,EAASr7C,MAAM,EAAG,KACpBq7C,EAAWA,EAASr7C,MAAM,IAIJ,IAApBq7C,EAAS/hD,SACX+hD,EAAWA,EAASx4C,MAAM,IAAIJ,IAAI64C,GAAOA,EAAMA,GAAKjW,KAAK,KAI3D,MAAMxmC,EAAIuL,SAASixC,EAAShE,OAAO,EAAG,GAAI,IACpCkE,EAAInxC,SAASixC,EAAShE,OAAO,EAAG,GAAI,IACpChuC,EAAIe,SAASixC,EAAShE,OAAO,EAAG,GAAI,IAGpCmE,GAAZ,IAAmB,EAAnB,iBAGM,OAAO,GAAb,uBC9EoW,I,0GCQhWz4C,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC04C,UAAA,KAAQx4C,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,Q,2PCxBnG,MAAMG,EAAc,WAEdC,GAAK,IAAG,cAAsBC,OAGX,0BACrB,MAAO,CACLi4C,WAAY,MALP,gBACU,WADV,GAUI,cACbh4C,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,QAEAkkB,OAAO,GAAmB,EAAjB5jB,MAAiB,EAAV9I,OACd,MAAO,CACLwQ,MAAO,CACLmwC,cAAe,KACfC,qBAAqB,EACrBC,oBAAoB,GAEtBh3B,QAAS,CACP82B,cAAenwC,GAASA,EAAMmwC,cAC9BC,oBAAqBpwC,GAASA,EAAMowC,oBACpCC,mBAAoBrwC,GAASA,EAAMqwC,oBAErC72B,UAAW,CACT82B,iBAAkB,CAACtwC,EAAOuwC,KACxBvwC,EAAMmwC,cAAgBI,GAExBC,uBAAwB,CAACxwC,EAAOowC,KAC9BpwC,EAAMowC,oBAAsBA,GAE9BK,sBAAuB,CAACzwC,EAAOqwC,KAC7BrwC,EAAMqwC,mBAAqBA,IAG/Bx5B,QAAS,CACP65B,YAAa,CAACzzC,EAAD,KAAuC,IAA3BszC,EAA2B,EAA3BA,QAASI,EAAkB,EAAlBA,YAChC,MAAMtrC,EAAQ/P,EAAEmR,MAAM8pC,EAASI,GAC/B1zC,EAAQqb,OAAO,0BAA0B,GACzCrb,EAAQqb,OAAO,mBAAoBjT,IAErCmrC,uBAAwB,CAACvzC,EAASmzC,KAChCnzC,EAAQqb,OAAO,yBAA0B83B,IAE3CK,sBAAuB,CAACxzC,EAASozC,KAC/BpzC,EAAQqb,OAAO,wBAAyB+3B,IAE1CO,oBAAqB3zC,IACnBA,EAAQqb,OAAO,0BAA0B,GACzCrb,EAAQqb,OAAO,yBAAyB,GACxCrb,EAAQqb,OAAO,mBAAoB,UAK3Cu4B,aAAc,CACZC,QAAS,CAACP,EAASQ,KACjB,MAAMZ,EAAgBY,EAAMj2C,MAAMxC,MAAM+gB,QAAQ,2BAA6B,GAErE23B,EAAqBT,EAArBS,SAAUphB,EAAW2gB,EAAX3gB,OAelB,MAboB,cAAlBohB,EAASv+C,MACoB,MAA1Bu+C,EAAS/pC,QAAQrW,MACjBg/B,IAAWoW,oBAAeI,WAC1B+J,EAAclxC,MAAQsxC,EAAQtxC,MAEjC8xC,EAAMj2C,MAAMxC,MAAM6yB,SAAYpzB,EAAF,wBAC5BsxB,OAAOj7B,KAAK,CACVo7B,KAAM,IAAIynB,IAAID,EAAS/pC,QAAQiqC,aAAaC,SAC5CnmB,MAAO,CACLomB,QAASb,EAAQtxC,SAIhB,MAKb3G,MAAOC,eAAiB,CAAER,cAAaC,Y,oECzFzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,cAAc,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIo6B,SAAS,OAAOp6B,EAAIiB,GAAIjB,EAAIsM,OAAc,SAAE,SAAS0b,EAAO9uB,GAAG,OAAOkH,EAAG,cAAc,CAAChB,IAAIlG,EAAEsH,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,qBAAqB,CAACA,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQwnB,GAAQ5hB,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAI+P,WAAWzJ,GAAKE,WAAW,iBAAiB,GAAGpG,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGsnB,GAAQ,QAAQ,IAAI,OAAM,IAChjBtmB,EAAkB,G,YC4BtB,GACE3D,KAAM,gBAENyO,OAAQ,CACV,SCjCqX,I,6FCOjX3J,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC4N,YAAA,KAAUkqB,YAAA,KAAUC,kBAAA,KAAgBC,iBAAAH,EAAA,KAAiBI,eAAAJ,EAAA,KAAeK,aAAA,Q,gPCpBlG,MAAM13B,EAAc,SAEdC,GAAK,IAAG,cAAoBC,OAAU,wDA2D3BsG,IACb,IAAI8yC,EAAiB,KACrB,IAAK,MAAMz7C,KAAQ2I,EAAY,CAC7B,MAAM+yC,EAAYh8C,EAAElC,IAAIwC,EAAKi3B,OAAQ,YAAajuB,SAASqZ,IAAsC,KACjG,IAAmB,IAAfq5B,EAAkB,CACpBD,EAAiBC,EACjB,OAGJ,OAAOD,IAjEc,0BACrB,MAAO,CACLtyC,MAAO,GACPwyC,eAAgB,KAChBC,gBAAiB,KACjBC,UAAW,KACXC,gBAAiB,KACjBC,mBAAoB,GACpBxZ,UAAW,MAIK,qBAAC7qC,GAcnB,OAbIA,EAAKskD,YACPtkD,EAAKukD,mBAAqB,IAAI7oC,KAAK1b,EAAKskD,WACxCj9C,KAAKm9C,oBAAsBn2C,OAAOrO,EAAKskD,WAAW/1C,OAAO,gBAEvDvO,EAAKykD,eACPzkD,EAAK0kD,sBAAwB,IAAIhpC,KAAK1b,EAAKykD,cAC3Cp9C,KAAKs9C,uBAAyBt2C,OAAOrO,EAAKykD,cAAcl2C,OAAO,gBAE7DvO,EAAK4kD,cACP5kD,EAAK6kD,qBAAuB,IAAInpC,KAAK1b,EAAK4kD,aAC1Cv9C,KAAKy9C,sBAAwBz2C,OAAOrO,EAAK4kD,aAAar2C,OAAO,gBAGxDvO,EAGK,iBACZ,OAAOqH,KAAKoK,MAGA,eAACszC,GACTA,EAASvkD,QACY,OAAnB6G,KAAKwjC,YACPxjC,KAAKwjC,UAAYxjC,KAAK29C,aAAaD,IAErC19C,KAAKoK,MAAQszC,EAASx7C,OAAOjB,IAA4B,IAApBA,EAAKuiC,WAAoBviC,EAAKuiC,YAAcxjC,KAAKwjC,WACtFxjC,KAAKwjC,UAAYxjC,KAAK29C,aAAaD,KAEnC19C,KAAKoK,MAAQ,GACbpK,KAAKwjC,UAAY,MAIrB75B,WAAWiwB,EAAOgkB,GAAuB,2BAAPxzC,EAAO,iCAAPA,EAAO,kBACvCpK,KAAKoK,MAAM/P,OAAOu/B,EAAOgkB,KAAgBxzC,GACzCpK,KAAKwjC,UAAYxjC,KAAK29C,aAAa39C,KAAKoK,OAoBpB,yBACpB,OAAOpD,OAAOhH,KAAKm9C,qBAAqBj2C,OAAO,eAG3B,uBAACrI,GACrBmB,KAAKm9C,oBAAsBn9C,KAAKi9C,UAGT,4BACvB,OAAOj2C,OAAOhH,KAAKs9C,wBAAwBp2C,OAAO,eAG3B,0BAACrI,GACxBmB,KAAKs9C,uBAAyBt9C,KAAKo9C,aAGb,2BACtB,OAAOp2C,OAAOhH,KAAKy9C,uBAAuBv2C,OAAO,eAG3B,yBAACrI,GACvBmB,KAAKy9C,sBAAwBz9C,KAAKu9C,YAGlB,qBAChB,OAAO52B,IAAS3mB,KAAK69C,MAAQ79C,KAAK69C,MAAQ79C,KAAK89C,WAAY,CAAE/2B,OAAQ/mB,KAAKyG,iBAAkBS,SAG3E,sBACjB,OAAOyf,IAAS3mB,KAAKoK,MAAMwc,OAAO,CAACC,EAAO5lB,IAAS4lB,EAAMnG,IAAIzf,EAAK6lB,UAAWH,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,kBAAoB,CAAEsgB,OAAQ/mB,KAAKyG,iBAG3H,qBAChB,IAAIs3C,EAAWp3B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAC1C,GAAIzG,KAAK+8C,gBACP,GAAuC,WAAnC/8C,KAAK+8C,gBAAgBiB,UACnBh+C,KAAKi+C,gBAAgBp/C,OAAS8Y,WAAW3X,KAAK+8C,gBAAgBmB,uBAChEH,EAAWp3B,IAAS3mB,KAAK+8C,gBAAgBoB,oBAAqB,CAAEp3B,OAAQ/mB,KAAKyG,uBAE1E,GAAuC,eAAnCzG,KAAK+8C,gBAAgBiB,YAC1Bh+C,KAAKi+C,gBAAgBp/C,OAAS8Y,WAAW3X,KAAK+8C,gBAAgBmB,uBAChEH,EAAWp3B,IAAS3mB,KAAKi+C,gBAAgBt3C,SAASgR,WAAW3X,KAAK+8C,gBAAgBqB,YAAa,CAAEr3B,OAAQ/mB,KAAKyG,kBAE5GzG,KAAKi+C,gBAAgBp/C,MAAQ8Y,WAAW3X,KAAK+8C,gBAAgBsB,sBAAsB,CACrF,MAAMC,EAAsB33B,IAAShP,WAAW3X,KAAK+8C,gBAAgBsB,qBAAsB,CAAEt3B,OAAQ/mB,KAAKyG,iBAC1G,OAAOkgB,IAAS23B,EAAoB33C,SAASgR,WAAW3X,KAAK+8C,gBAAgBqB,YAAa,CAAEr3B,OAAQ/mB,KAAKyG,iBAI/G,OAAOs3C,EAGO,mBACd,MAAM1tB,EAAa1Y,WAAWhX,EAAElC,IAAIuB,KAAK48C,eAAgB,OAAQ,IACjE,OAAO58C,KAAKi+C,gBAAgBt3C,SAAS0pB,GAGtB,oBACf,OAAOrwB,KAAKi+C,gBAAgBv9B,IAAI1gB,KAAKu+C,cAAcC,SAASx+C,KAAKy+C,gBAIlD,oBACf,MAAMj2C,EAAU2d,OAAO7B,IAAI9K,QAAQzX,aAAa,GAChD,OAAOyG,GAAWA,EAAQk2C,SAAWl2C,EAAQk2C,SAAW,IAAM,EAGhD,mBACd,GAAI1+C,KAAK2+C,8BACP,OAAOh4B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAEpC,MAAM+B,EAAU2d,OAAO7B,IAAI9K,QAAQzX,aAAa,GAChD,MAAkC,MAA9ByG,EAAQo2C,kBACH5+C,KAAK6+C,cAAcl4C,SAAS3G,KAAK8+C,eAEnCn4B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAGtB,iBACZ,OAAOzG,KAAK6+C,cACTn+B,IAAI1gB,KAAK++C,cACTr+B,IAAI1gB,KAAKg/C,iBACTt+B,IAAI1gB,KAAKi/C,iBACTv+B,IAAI1gB,KAAKk/C,iBACTx+B,IAAI1gB,KAAKm/C,iBAGQ,yBACpB,GAAIn/C,KAAK2+C,8BACP,OAAOh4B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAEpC,MAAM+B,EAAU2d,OAAO7B,IAAI9K,QAAQzX,aAAa,GAChD,GAAkC,MAA9ByG,EAAQo2C,kBAA2B,CACrC,MAAMQ,EAAuBp/C,KAAKu+C,aAAev+C,KAAKu+C,cAAgB,EAAIv+C,KAAK8+C,eAC/E,OAAOn4B,IACL3mB,KAAKoK,MAAMwc,OACT,CAACC,EAAO5lB,IAAS4lB,EAAMnG,IAAIzf,EAAK6lB,SAAW7lB,EAAK6lB,UAAY,EAAI9mB,KAAK8+C,gBAAiBn4B,IAASy4B,EAAsB,CAAEr4B,OAAQ/mB,KAAKyG,kBACnI,CAAEsgB,OAAQ/mB,KAAKyG,iBAGtB,OAAOkgB,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAIlB,qBAChB,OAAO9F,EAAElC,IAAI0nB,OAAO7B,IAAI9K,QAAQzX,aAAa,GAAI,iBAAkB,KAGtD,kBACb,OAAI/B,KAAKwjC,YAAcv5B,SAASqZ,IAAsC,IAC7D,QAELtjB,KAAKwjC,YAAcv5B,SAASqZ,IAAuC,IAC9D,SAEF,MAGQ,oBACf,OAAOtjB,KAAKwjC,YAAcv5B,SAASqZ,IAAuC,IAG3C,oCAC/B,IAAKtjB,KAAK68C,gBACR,OAAO,EAET,MAAQ3kC,EAAYlY,KAAK68C,gBAAjB3kC,QACR,MAAmB,OAAZA,GAAoBlY,KAAKq/C,cAGf,sBACjB,GAAIr/C,KAAK2+C,8BAA+B,CACtC,MAAQ7xC,EAAW9M,KAAK68C,gBAAhB/vC,OACFwyC,EAAUC,eAAczyC,GAC9B,GAAIwyC,EACF,OAAOt/C,KAAK6+C,cAAcl4C,SAAS24C,EAAU,KAGjD,OAAO34B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAGjB,sBACjB,GAAIzG,KAAK2+C,8BAA+B,CACtC,MAAQ7xC,EAAW9M,KAAK68C,gBAAhB/vC,OACFwyC,EAAUE,eAAc1yC,GAC9B,GAAIwyC,EACF,OAAOt/C,KAAK6+C,cAAcl4C,SAAS24C,EAAU,KAGjD,OAAO34B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAGjB,sBACjB,GAAIzG,KAAK2+C,8BAA+B,CACtC,MAAQ7xC,EAAW9M,KAAK68C,gBAAhB/vC,OACFwyC,EAAUG,eAAc3yC,GAC9B,GAAIwyC,EACF,OAAOt/C,KAAK6+C,cAAcl4C,SAAS24C,EAAU,KAGjD,OAAO34B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAGjB,sBACjB,GAAIzG,KAAK2+C,8BAA+B,CACtC,MAAQ7xC,EAAW9M,KAAK68C,gBAAhB/vC,OACFwyC,EAAUI,eAAc5yC,GAC9B,GAAIwyC,EACF,OAAOt/C,KAAK6+C,cAAcl4C,SAAS24C,EAAU,KAGjD,OAAO34B,IAAS,EAAG,CAAEI,OAAQ/mB,KAAKyG,iBAGpCwgB,QAAQhrB,EAAMuW,EAAIkU,GAAmC,IAA9ByzB,EAA8B,uDAAN,KAC7C,MAAM/vC,EAAQpK,KAAKoK,MAAMlI,OAAOjB,GAAQA,EAAKqJ,MAAQkI,GACrD,GAAIpI,EAAMjR,OAER,YADAiR,EAAM,GAAG3E,OAASihB,GAIpB,MAAMi5B,EAAY,IAAIzF,OAAUj+C,EAAMuW,EAAIkU,EAAKyzB,GAC/C,GAAIn6C,KAAKwjC,UAAW,CAClB,MAAMmZ,EAAYh8C,EAAElC,IAAIkhD,EAAUznB,OAAQ,YAAajuB,SAASqZ,IAAsC,KACtG,IAAmB,IAAfq5B,GAAoBA,IAAc38C,KAAKwjC,UACzC,OAIJxjC,KAAK4J,WAAWnQ,KAAKkmD,GAEE,OAAnB3/C,KAAKwjC,YACPxjC,KAAKwjC,UAAYxjC,KAAK29C,aAAa39C,KAAKoK,QAI5CpC,WAAW/G,GACT,GAAa,OAATA,EACF,OAAO,EAET,MAAM07C,EAAYh8C,EAAElC,IAAIwC,EAAM,YAAagJ,SAASqZ,IAAsC,KAC1F,OAA0B,OAAnBtjB,KAAKwjC,YAAqC,IAAfmZ,GAAoBA,IAAc38C,KAAKwjC,UAG3Eoc,sBAAsB3+C,GACpB,GAAa,OAATA,EACF,OAAO,EAET,MAAM07C,EAAYh8C,EAAElC,IAAIwC,EAAM,YAAagJ,SAASqZ,IAAsC,KAC1F,OAA0B,OAAnBtjB,KAAKwjC,YAAqC,IAAfmZ,GAAoBA,IAAc38C,KAAKwjC,UAG3Eqc,kBACE,OAA0B,OAAnB7/C,KAAKwjC,WAAsBxjC,KAAKwjC,YAAcv5B,SAASqZ,IAAsC,MA5R7F,gBACU,SADV,GAgSI,cACb/f,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,oCCjTzC,4BAGAy8C,OAAY/P,KAAK,CACfE,YAAa3sB,sCACb7f,QAAS,UACT4f,eACA08B,IAAKz8B,aACL08B,qBAAqB,EACrB7P,WAAY,MAGC2P,e,yCCZf,IAAIhgD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,wBAAwBC,YAAY,CAAC,YAAY,QAAQ,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,oBAAoB,CAACgB,MAAM,CAAE,UAAWpB,EAAI67B,eAAgBr7B,MAAM,CAAC,KAAOR,EAAI4B,KAAK,MAAQ5B,EAAI4B,KAAK6qB,mBAAmB7Q,eAAiB,IAAK,IAAI,OAAS5b,EAAI4B,KAAK6qB,mBAAmB7Q,eAAiB,IAAK,IAAI,mBAAmB5b,EAAI4B,KAAK6qB,mBAAmB7Q,eAAe,kBAAkB5b,EAAI4B,KAAK6qB,mBAAmBtQ,eAAe9X,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIkgD,aAAanmD,MAAM,KAAMgO,YAAY,YAAY/H,EAAI47B,mBAAmBx7B,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,GAAG,MAAQ,WAAW6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIkgD,aAAanmD,MAAM,KAAMgO,cAAc,CAAC/H,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,KAAKP,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,GAAG,MAAQ,KAAK,CAACR,EAAIS,GAAG,wBAAwB,IAAI,GAAGL,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,QAAQ,CAACE,YAAY,qBAAqB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK6C,cAAc,IAAIzE,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,KAAKX,EAAIU,GAAGV,EAAI4B,KAAK6pB,gBAAgB,OAAOrrB,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKoN,cAAc,OAAO5O,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAkB,UAAfV,EAAIyN,OAAqBzN,EAAImgD,aAAa5iB,YAAcv9B,EAAImgD,aAAa1iB,gBAAgB,OAA0C,gBAAlCz9B,EAAI4B,KAAKsqB,aAAalP,QAA2B5c,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAkB,UAAfV,EAAIyN,OAAqBzN,EAAIogD,aAAa7iB,YAAcv9B,EAAIogD,aAAa3iB,gBAAgB,OAAOr9B,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIqgD,kBAAkB,OAAOjgD,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAkB,UAAfV,EAAIyN,OAAqBzN,EAAIsgD,UAAU/iB,YAAYztB,QAAQ9P,EAAImgD,aAAa5iB,YAAa,IAAI7oB,OAAS1U,EAAIsgD,UAAU7iB,gBAAgB,OAA0C,YAAlCz9B,EAAI4B,KAAKsqB,aAAalP,QAAuB5c,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIugD,cAAc,OAAOvgD,EAAIgF,KAAK5E,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAkB,UAAfV,EAAIyN,OAAqBzN,EAAIwgD,UAAUjjB,YAAcv9B,EAAIwgD,UAAU/iB,gBAAgB,OAAOr9B,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUC,YAAY,CAAC,QAAU,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,OAAOX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIwF,qBAAqBxF,EAAI4B,OAAO,QAAQ,IAAI,GAAGxB,EAAG,QAAQ,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,QAAQ,QAAU,OAAO,cAAc,UAAUC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,uBAAuB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,SAAS,IAAI,IAAI,IACx7GF,EAAkB,G,+sBC4FtB,MAAM,EAAN,mCAEA,OACE3D,KAAM,kBACN4D,MAAO,CACLC,KAAMvI,OACN8V,mBAAoBC,MACpBwsB,gBAAiBjvB,SACjBkvB,cAAezrB,QACf8vC,aAAcvzC,UAEhB9K,SAAU,EAAZ,OACA,kCACA,4BACI,cAAJ,UAHA,IAMI2D,qBAAsBzB,GAAM7C,GACrBA,EAAKkU,UAGHrR,EAAGpD,GAAG,+BAA+BO,EAAKkU,UAAUtF,QAAQ,YAAa,IAAI4E,QAF3E,IAQX,eACE,MAAMgJ,EAAW9c,EAAElC,IAAIgtB,EAASpS,YAAY,CAC1Cgd,MAAO,CACLgH,WAAYr9B,KAAK2B,KAAK8pB,SACtBqX,UAAU,EACVW,MAAO,CAAjB,WAEA,WACM,OAAOhmB,GAAY,OAGrB,eACE,MAAM+kB,EAAY7hC,EAAElC,IAAIuB,KAAKwgD,cAAc,CACzCnqB,MAAO,CACL/rB,IAAKtK,KAAK2B,KAAKgqB,kBACfmX,UAAU,EACVW,MAAO,CAAjB,WAEA,WACM,OAAOjB,GAAa,OAGtB,mBACE,GAAIxiC,KAAK2B,KAAKsqB,aAAawW,UAAW,CACpC,MAAMge,EAAW9oC,WAAW3X,KAAK2B,KAAKsqB,aAAawW,WAAW7qB,QAAQ,GACtE,MAAO,GAAG6oC,KAAYzgD,KAAKU,GAAG,mBAEhC,MAAO,OAGT,eACE,OAAQV,KAAK2B,KAAKgH,WAChB,IAAK,MACH,OAAO3I,KAAKU,GAAG,sCACjB,IAAK,MACH,OAAOV,KAAKU,GAAG,sCACjB,IAAK,MACH,OAAOV,KAAKU,GAAG,oCACjB,IAAK,MACH,OAAOV,KAAKU,GAAG,qCACjB,QACE,MAAO,QAIb,YACE,MAAM29B,EAAS19B,EAAElC,IAAIgtB,EAASpS,YAAY,CACxCgd,MAAO,CACLgH,WAAYr9B,KAAK2B,KAAK+pB,kBAEhC,WACM,OAAO2S,GAAU,OAGnB,YACE,MAAMR,EAASl9B,EAAElC,IAAImlC,EAAOvqB,YAAY,CACtCgd,MAAO,CACLgH,WAAYr9B,KAAK2B,KAAKiqB,eACtBkX,UAAU,EACVW,MAAO,CAAjB,WAEA,WACM,OAAO5F,GAAU,UCtLiV,I,6FCOpWj7B,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAW3H,QAAA,KAAM4H,OAAA,Q,uLCxBzD,MAAM1H,EAAc,qBAEdC,GAAK,IAAG,cAA+BC,OAGpB,0BACrB,MAAO,KAJA,gBACU,oBADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,uOClBzC,MAAMD,EAAc,UAEdC,GAAK,IAAG,cAAsBC,OAIX,0BACrB,MAAO,KALA,gBAEU,WAFV,GAUI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,klCCjB1B,cACbE,OAAQk2B,eAAe,CACrBinB,YAAa,UAGf/8C,MAAO,CACL0gB,KAAM,CACJI,YAAY,EAEZI,UAAW,CACTC,SAAU3Z,kBAGZ+W,QAAS,CACDy+B,MAAN,KAAoC,0BAAtBnqB,EAAsB,EAAtBA,SAAc7nB,EAAQ,EAARA,WACpB6nB,EAAS,oBAAD,GACZoqB,SAAU,SACPjyC,GACF,CAAEpG,MAAM,IAEX,MAAMiF,EAA2C,OAAjC0pB,aAAM7rB,MAAMgZ,KAAK1V,KAAKnB,OAAmB,KAAO,cAC1D0pB,aAAMV,SAAS,gBAAiB,CAAEjpB,MAAOqH,OAAMpH,aAPnB,S,oCCnB5C,8IAAMqzC,EAAsB,CAC1BC,GAAI,CAAEC,IAAK,GACXC,GAAI,CAAED,IAAK,EAAGE,IAAK,GACnBC,GAAI,CAAEH,IAAK,EAAGE,IAAK,GACnBE,GAAI,CAAEC,IAAK,IACXC,GAAI,CAAED,IAAK,IACXE,GAAI,CAAEF,IAAK,IACXG,GAAI,CAAEH,IAAK,IACXI,GAAI,CAAEJ,IAAK,IACXK,GAAI,CAAEV,IAAK,EAAGW,IAAK,OACnBC,GAAI,CAAEZ,IAAK,EAAGE,IAAK,GACnBW,GAAI,CAAEb,IAAK,GACXc,GAAI,CAAEd,IAAK,GACXe,GAAI,CAAEf,IAAK,IAGPxB,EAAgBvlC,GACf6mC,EAAoB7mC,IAGlB6mC,EAAoB7mC,GAAU+mC,KAF5B,KAKLtB,EAAgBzlC,GACf6mC,EAAoB7mC,IAGlB6mC,EAAoB7mC,GAAUinC,KAF5B,KAKLvB,EAAgB1lC,GACf6mC,EAAoB7mC,IAGlB6mC,EAAoB7mC,GAAUonC,KAF5B,KAKL5B,EAAgBxlC,GACf6mC,EAAoB7mC,IAGlB6mC,EAAoB7mC,GAAU0nC,KAF5B,M,oCCvCI,QACbj/C,QAAS,CACPs/C,eAAeC,EAAQC,GACrB,GAAI9wC,MAAM6wC,GAAS,CACjB,GAAIC,EACF,MAAO,MAETD,EAAS,EAEX,MAAM1vC,EAAU,CAAE4vC,sBAAuB,EAAGC,sBAAuB,GACnE,MAAQ,IAAIH,EAAQI,eAAe,KAAM9vC,O,oECV/C,IAAIxS,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACgB,MAAM,CAAC,aAAc,OAAQ,OAAQpB,EAAIsiD,UAAY,OAAS,KAAK,CAAEtiD,EAAIlB,MAAe,UAAEsB,EAAG,OAAO,CAACE,YAAY,WAAW,CAACF,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwBP,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACzX,IAAIxC,EAAKwC,EAAIxC,GACb,MAAO,CAACjE,EAAG,WAAWJ,EAAI8G,GAAG,CAAC1F,MAAM,CAAEmhD,QAAQ,EAAMC,OAAQxiD,EAAIyiD,QAASp+C,QAAS,MAAK,EAAM,aAAa,CAACjE,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIlB,MAAM4jD,gBAAgB1iD,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIiH,SAAS6uB,GAAG91B,EAAIiH,OAAOjH,EAAIlB,MAAMmoC,aAAa,MAAM,GAAGjnC,EAAIgF,KAAMhF,EAAIlB,MAAe,UAAEsB,EAAG,OAAO,CAACE,YAAY,WAAW,CAAEN,EAAIlB,MAAe,UAAEsB,EAAG,OAAO,CAACE,YAAY,uBAAuB,CAACN,EAAIS,GAAG,OAAOT,EAAIgF,KAAK5E,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwBP,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACnhB,IAAIxC,EAAKwC,EAAIxC,GACb,MAAO,CAACjE,EAAG,WAAWJ,EAAI8G,GAAG,CAAC1F,MAAM,CAAEmhD,QAAQ,EAAMC,OAAQxiD,EAAIyiD,QAASp+C,GAAI,CAACjE,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQR,EAAIlB,MAAM6jD,cAAc,OAAO,MAAK,EAAM,YAAY,CAACviD,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIlB,MAAM6jD,WAAW,IAAI3iD,EAAIU,GAAGV,EAAIlB,MAAM6jD,gBAAgB3iD,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIiH,SAAS6uB,GAAG91B,EAAIiH,OAAOjH,EAAIlB,MAAMioC,aAAa,MAAM,GAAG/mC,EAAIgF,QACrUtD,EAAkB,G,msBCgCtB,OACEC,MAAO,CACL7C,MAAOzF,OACPopD,MAAOryC,QACPkyC,UAAWlyC,SAEbvO,SAAU,EAAZ,GACA,mCC5CmW,I,iFCQ/VgB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAAC04C,UAAA,KAAQhrC,UAAAzN,EAAA,KAAUqI,WAAA,Q,oCC1BhD,W,oCCAA,MAAMy3C,EAAmC,CACvC,KACA,KACA,KACA,KACA,KACA,KACA,MAGaA,U,oCCRA,QACbjhD,MAAO,CACL7C,MAAO,IAGT+C,SAAU,CACRkO,WAAY,CACVrR,MACE,OAAOuB,KAAKnB,OAGd8M,IAAI9M,GACFmB,KAAKsM,MAAM,QAASzN,Q,6HCd5B,IAAIiB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,QAAQ,CAACG,YAAY,CAAC,SAAW,WAAW,IAAM,OAAO,KAAO,MAAM,UAAY,oBAAoBC,MAAM,CAAC,UAAU,GAAG,UAAY,GAAG,IAAM,GAAG,UAAU,sBAAsB,SAAWR,EAAI6iD,sBAAsBx+C,GAAG,CAAC,MAAQrE,EAAI8iD,cAAc,CAAC1iD,EAAG,SAAS,CAACJ,EAAIS,GAAG,qBAAqB,IAAI,GAAGL,EAAG,cAAc,CAACE,YAAY,mBAAmBE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,mBAAmB,CAACyG,IAAI,eAAetG,YAAY,CAAC,aAAa,UAAUC,MAAM,CAAC,MAAQ,EAAE,MAAQR,EAAI+iD,YAAY,OAAS/iD,EAAIgjD,WAAW,MAAQhjD,EAAIgjD,WAAW,cAAchjD,EAAIgjD,YAAYliD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,SAAS6F,GAC5vB,IAAI3F,EAAO2F,EAAI3F,KACf,MAAO,CAACd,EAAG,MAAM,CAACkB,MAAQ,cAAiB,IAAItB,EAAIgjD,WAAc,MAAQ,CAAC5iD,EAAG,kBAAkB,CAAChB,IAAI8B,EAAKuR,GAAG5L,IAAI3F,EAAKuR,GAAGjS,MAAM,CAAC,KAAOU,EAAK,gBAAgBlB,EAAI0N,MAAMu1C,aAAa,cAAcjjD,EAAIgjD,YAAY3+C,GAAG,CAAC,cAAgB,SAASC,GAAgD,IAAvCqB,KAAKiN,IAAItO,EAAStE,EAAIk4C,eAAsBl4C,EAAIk4C,YAAc5zC,QAA6B,UAAUlE,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,SAAW,WAAW,OAAS,OAAO,KAAO,MAAM,UAAY,qBAAqB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIk4C,aAAa,MAAMl4C,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAIkjD,IAAK,WAAY,MAAM,QAAQ,IAAI,IAC1jBxhD,EAAkB,G,4TC8CtB,OACEC,MAAO,CACLgb,SAAU,CACRzgB,KAAMwQ,OACNpE,QAAS,cAEXsf,SAAUlb,OACVs2C,WAAY,CACV3nC,UAAU,GAEZ8nC,aAAc,CACZ9nC,UAAU,IAIdziB,KAAM,KAAM,CACVsqD,IAAK,KACLE,MAAO,KACPC,OAAQ,mEACRC,aAAc,0EACdC,UAAW,EACXC,WAAY,EACZtL,YAAa,EACb2K,sBAAsB,IAExBhhD,SAAU,CACRk0B,KAAMhyB,GAAMA,EAAGm0C,YACfpiB,GAAI/xB,GAAMA,EAAGm0C,YAAcn0C,EAAGy/C,WAC9BT,YAAah/C,GACNA,EAAGm/C,IAID,IAAI9zC,MAAMrL,EAAGm/C,IAAIO,UAC9B,aACA,aACQ,WAAR,IACQ,IAAR,MACQ,GAAR,+BARe,CAAC,CAAhB,aAaE,UACEhoD,SAASC,qBAAqB,QAAQ,GAAG4F,MAAMoiD,SAAW,SAC1DzjD,KAAK0jD,WAEP,YACEloD,SAASC,qBAAqB,QAAQ,GAAG4F,MAAMoiD,SAAW,WAE5DhhD,QAAS,CACP,YACE,OAAO,IAAIvH,QAAQC,IACjB,MAAMgC,EAAS3B,SAASQ,cAAc,UACtCmB,EAAOjB,OAAS,KACdf,EAAQwE,OAAO,0BAEjBxC,EAAOwmD,OAAQ,EACfxmD,EAAOZ,IAAMyD,KAAKojD,OAClB5nD,SAASqB,KAAKC,YAAYK,MAG9B,UAAJ,iCACA,4BACA,qDACA,cAHA,IAKI,UAEE6C,KAAK4iD,sBAAuB,EAC5B,MAAMgB,EAAc5jD,KAAKmjD,MAAMU,YAAY7jD,KAAK2nB,UAChDi8B,EAAY3mD,QAAQF,KAAKkmD,IACvBjjD,KAAKijD,IAAMA,EACXjjD,KAAK4iD,sBAAuB,KAGhC,cAAckB,EAAYC,GACxB,MAAMC,EAAO,IAAIC,KAAK,CAACF,GAAO,CAApC,yBACY9zB,EAAOz0B,SAASQ,cAAc,KACpCi0B,EAAK50B,KAAOsE,OAAO28C,IAAI4H,gBAAgBF,GACvC,MAAMtnC,EAAWonC,EACjB7zB,EAAKk0B,SAAWznC,EAChBuT,EAAK0b,SAEP,cACE3rC,KAAKijD,IAAImB,eAAernD,KAAK4Q,IAC3B3N,KAAKqkD,cAAcrkD,KAAK0c,SAAU/O,QCvIwT,I,6FCO9V/K,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK45C,QAAA,KAAMz5C,aAAA,KAAW3H,QAAA,KAAMqhD,iBAAA,Q,8DC3B1D,W,kECAA,IAAIzkD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,kEAAkEC,YAAY,CAAC,mBAAmB,UAAU,YAAY,SAAS,CAACH,EAAG,MAAM,CAACA,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,gCAAgC,KAAKX,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAACE,YAAY,UAAU,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmCP,EAAG,cAAc,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACN,EAAIiB,GAAIjB,EAAsB,oBAAE,SAASykD,EAAQvrD,GAAG,MAAO,CAAEA,EAAE,EAAGkH,EAAG,WAAW,CAAChB,IAAK,SAAWlG,IAAK8G,EAAIgF,KAAK5E,EAAG,QAAQ,CAAChB,IAAIlG,EAAEoH,YAAY,oBAAoB,CAACF,EAAG,OAAO,CAAChB,IAAK,OAASlG,EAAGqH,YAAY,CAAC,MAAQ,UAAU,gBAAgB,WAAW,MAAQ,QAAQC,MAAM,CAAC,UAAW,kBAAoBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAS,IAANxH,EAAU8G,EAAI0kD,SAAWD,EAAQ3+C,KAAK,QAAQ1F,EAAG,OAAO,CAAChB,IAAK,SAAWlG,EAAGoH,YAAY,gBAAgBE,MAAM,CAAC,UAAW,qBAAuBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4mB,SAAS69B,EAAQp7C,MAAO,CAAE2d,OAAQhnB,EAAIyI,QAAQ/B,eAAgBg0C,UAAW,IAAKvzC,UAAU,IAAInH,EAAIU,GAAG,KAAQ,cAAa,IAAI,IAAI,IACvpCgB,EAAkB,G,iCC8CtB,MAAM,EAAN,mBAEA,OACE3D,KAAM,yBACN4D,MAAO,CACLC,KAAMvI,QAERT,KAAM,KAAM,CACVguB,SAAJ,MAEE/kB,SAAU,CACR4G,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCsH,WAAYvF,GAAMA,EAAGnC,KAAKkH,SAE1B47C,SAAU3gD,IACHA,EAAGnC,KAAK8D,QAAU3B,EAAGnC,KAAK8D,QAAU,EAChC,GAEJ3B,EAAGnC,KAAK8D,QAAU3B,EAAGnC,KAAK8D,QAAU,IAChC,IAEL3B,EAAGnC,KAAK8D,QAAU,IACb,IAEF3B,EAAGnC,KAAK8D,OAEjB,qBACE,IAAKzF,KAAKqJ,YAAcrJ,KAAKykD,UAAY,EACvC,MAAO,GAGT,MAAMxgB,EAAmBjkC,KAAKqJ,WACpC,oCAEM,OAAI46B,EAAmB,EACdjkC,KAAKqJ,WAAWxJ,OAAO,GAEzBG,KAAKqJ,WAClB,iDCtF+W,I,iFCO3WzG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAQhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKC,aAAA,KAAWC,OAAA,KAAKE,UAAA,Q,2CC1BnD,IAAIlL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQR,EAAI07C,oBAAoB,aAAa17C,EAAIy7C,eAAiBz7C,EAAIy7C,cAAcp0C,cAAc,MAASrH,EAAIyI,SAAoC,QAAzBzI,EAAIyI,QAAQuE,SAAsB,IAAM,IAAI,KAAO,eAAe,WAAa,GAAG,iBAAiBhN,EAAIW,GAAG,qCAAqC0D,GAAG,CAAC,eAAerE,EAAIk8C,qBAAqBp7C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyCc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,wCAAwCP,EAAG,MAAMA,EAAG,MAAM,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,wCAAwCP,EAAG,MAAMA,EAAG,MAAM,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,wCAAwCP,EAAG,MAAMA,EAAG,MAAM,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,4CAA4Cc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAAEhB,EAAIgI,cAAgBhI,EAAIgI,aAAas3C,eAAiBt/C,EAAI2kD,gBAAiB,CAACvkD,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAIy7C,cAAcp0C,eAAiBrH,EAAI4kD,yBAAyB,UAAU,6BAA6BvgD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI6kD,mBAAmB,aAAa,CAACzkD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,+BAA+BT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,MAAM,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAI4kD,0BAA4B5kD,EAAIy7C,cAAcp0C,cAAc,QAAUrH,EAAI4kD,yBAAyB,UAAU,sBAAsBvgD,GAAG,CAAC,MAAQrE,EAAI8kD,uBAAuB,CAAC1kD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,gBAAgBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoC,MAAM,IAAI,CAA2B,QAAzBX,EAAIyI,QAAQuE,UAAmD,QAA7BhN,EAAIyI,QAAQs8C,aAAwB,CAAC3kD,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAIy7C,cAAcp0C,eAAiBrH,EAAI4kD,yBAAyB,UAAU,4BAA4BvgD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI6kD,mBAAmB,QAAQ,CAACzkD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,+BAA+BT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAIy7C,cAAcp0C,eAAiBrH,EAAI4kD,yBAAyB,UAAU,wBAAwBvgD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI6kD,mBAAmB,QAAQ,CAACzkD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,gBAAgBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0BAA0B,MAAM,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAIy7C,cAAcp0C,eAAiBrH,EAAI4kD,yBAAyB,UAAU,yBAAyBvgD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAI6kD,mBAAmB,QAAQ,CAACzkD,EAAG,MAAM,CAACG,YAAY,CAAC,eAAe,OAAOC,MAAM,CAAC,IAAM,uBAAuB,OAAS,KAAK,MAAQ,QAAQR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2B,OAAOP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAI4kD,0BAA4B5kD,EAAIy7C,cAAcp0C,cAAc,QAAUrH,EAAI4kD,yBAAyB,UAAU,sBAAsBvgD,GAAG,CAAC,MAAQrE,EAAI8kD,uBAAuB,CAAC1kD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,gBAAgBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,IAAI,CAACP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAIy7C,cAAcp0C,eAAiBrH,EAAI4kD,yBAAyB,UAAU,sBAAsBvgD,GAAG,CAAC,MAAQrE,EAAI6kD,qBAAqB,CAACzkD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,+BAA+BT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,MAAM,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,SAAWR,EAAI4kD,0BAA4B5kD,EAAIy7C,cAAcp0C,cAAc,QAAUrH,EAAI4kD,yBAAyB,UAAU,sBAAsBvgD,GAAG,CAAC,MAAQrE,EAAI8kD,uBAAuB,CAAC1kD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,gBAAgBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oCAAoC,MAAM,KAAKP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,KAAO,GAAG,UAAY,GAAG,SAAWR,EAAIy7C,cAAcp0C,eAAiBrH,EAAI4kD,0BAA0BvgD,GAAG,CAAC,MAAQrE,EAAIk8C,sBAAsB,CAACl8C,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kBAAkB,SAASc,OAAM,OAAUrB,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQR,EAAI27C,mBAAmB,KAAO,SAAS,MAAQ,QAAQ,OAAS,QAAQ,WAAa,GAAG,MAAQ,IAAIt3C,GAAG,CAAC,eAAerE,EAAIk8C,qBAAqBp7C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,OAAO,CAACJ,EAAIS,GAAG,SAASgB,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,wDAAwDC,YAAY,CAAC,mBAAmB,UAAU,YAAY,SAAS,CAACH,EAAG,OAAO,CAACE,YAAY,6BAA6B,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,qBAAsB,CAACimB,SAAU5mB,EAAIW,GAAI,YAAeX,EAAIyI,QAAgB,gBAAUrI,EAAG,OAAO,CAACE,YAAY,uCAAuC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4mB,SAAS5mB,EAAIy7C,cAAcuJ,YAAa,CAACh+B,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBS,UAAU,SAAS/G,EAAG,MAAM,CAACE,YAAY,8BAA8B,CAACF,EAAG,OAAO,CAACE,YAAY,kCAAkC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8CAA8C,SAASP,EAAG,MAAM,CAACE,YAAY,oBAAoBE,MAAM,CAAC,GAAK,oBAAoB,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,GAAK,oBAAoBJ,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,wBAAwB,MAAQ,QAAQ,OAAS,cAAciB,OAAM,QAAW,IACj6KC,EAAkB,G,qjCCkMtB,MAAM,EAAN,iCAEA,OACE3D,KAAM,gBAEN,OACE,MAAO,CACL6oB,SAAN,IACMg+B,0BAA0B,IAI9B/iD,SAAU,EAAZ,SACA,2BACI,oBAAJ,sBACI,mBAAJ,qBACI,cAAJ,mBAEA,uBACA,UAEA,wCATA,IAUI4G,QAAS,IAAMgR,EAAQzX,aAAa,GACpC2iD,gBAAiB5gD,GAAMA,EAAG03C,eAAiB13C,EAAG03C,cAAchY,YAAcv5B,SAAS,IAAvF,MAGExH,QAAS,EAAX,OACA,2BACI,oBAAJ,sBACI,uBAAJ,yBACI,sBAAJ,2BAEA,sBACA,mBACA,uBARA,IAYI,mBAAJ,oCAEA,yBADA,aACA,CACA,cACA,SACA,wGACA,sCAIA,CACA,iBACA,SACA,gEAEA,0GAIA,sBACA,mBACA,wCAEA,UACA,qDACA,SACA,yBACA,6DACA,qBACA,yDACA,0BACA,6DAEA,qDAIA,uBACA,SACA,6BACA,4BACA,uCACA,wCACA,2BACA,2BACA,QACY,GAAIjG,EACF,MAAMA,EAER,MAAMwoD,EAAYxpD,SAASmzC,eAAe,mBAC1CqW,EAAUloD,YAAY8rC,OAIlC,0DAtDA,IA0DI,uBAAJ,iCACA,oCACA,qCACA,wBACA,gBACA,iCACA,4CAEA,SACA,8BACA,mCACA,0FACA,sBACA,uBAbA,OCnSsW,I,yDCOlWhmC,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKxH,QAAA,Q,2CCxBnC,IAAIpD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACI,MAAM,CAAC,WAAW,KAAK,CAACJ,EAAG,cAAc,CAACA,EAAG,qBAAqB,CAACA,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,aAAa,GAAGJ,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKsjD,QAAQ,KAAK9kD,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,KAAO,GAAG,MAAQ,KAAK,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAIS,GAAG,mBAAmB,IAAI,GAAGL,EAAG,uBAAuB,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4B,KAAKqqC,cAAc,GAAG7rC,EAAG,qBAAqB,CAACA,EAAG,QAAQ,CAACG,YAAY,CAAC,SAAW,WAAW,OAAS,OAAOC,MAAM,CAAC,KAAO,IAAI6D,GAAG,CAAC,MAAQrE,EAAI4T,SAAS,CAACxT,EAAG,SAAS,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAImlD,SAAW,iBAAmB,wBAAwB,IAAI,IAAI,IAAI,IAC/uBzjD,EAAkB,GCsCtB,GACEC,MAAO,CAAC,OAAQ,OAAQ,WAAY,WCxCmU,I,iICOrWkB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAchC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKxH,QAAA,KAAMu3B,QAAA,KAAMC,YAAA,KAAUC,kBAAA,KAAgBwqB,kBAAA,KAAgBvqB,iBAAA,OAAiB4e,kBAAA,OAAkB3e,eAAA,OAAehuB,kBAAA,Q,2CChC3I,IAAI/M,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAY,SAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAQ,CAACn0C,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,uBAAuBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,MAAM,GAAKX,EAAIs0C,aAAsIt0C,EAAIgF,KAA5H5E,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIi6C,qBAAsB,KAAQ,CAACj6C,EAAIS,GAAG,kBAA2B,GAAG,CAACL,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,KAAS,CAACvE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,wBAAwBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,MAAM,IAAIP,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,aAAaR,EAAIs0C,aAAa,iBAAiBt0C,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAWrE,EAAI85C,UAAU,eAAe,SAASx1C,GAAQtE,EAAIi6C,qBAAqB,IAAQn5C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAMiC,EAAIW,GAAG,sCAAuCc,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAIi6C,oBAAoB3zC,GAAKE,WAAW,yBAA0BxG,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,SAAS,OAAQ,EAAK,aAAaR,EAAI40C,mBAAmB,kBAAkB50C,EAAIuoB,YAAY,iBAAiBvoB,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI2E,SAAU,GAAQ,eAAe,SAASL,GAAQtE,EAAI2E,SAAU,EAAM3E,EAAI85C,cAAch5C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4BAA4B,UAAU,GAAGX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,KAAKc,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIu0C,cAAc,UAAU,QAAQn0C,EAAG,sBAAsB,CAACG,YAAY,CAAC,mBAAmB,UAAU,UAAU,iBAAiBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAiB,cAAEqG,SAAS,SAAUC,GAAMtG,EAAIu0C,cAAcjuC,GAAKE,WAAW,kBAAkB,CAACpG,EAAG,MAAM,CAACyG,IAAI,qBAAqBtG,YAAY,CAAC,OAAS,sBAAsB,CAACH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAS,CAACn0C,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAIT,EAAiB,cAAEI,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAYR,EAAI+5C,cAAc,cAAc,OAAO/5C,EAAIgF,MAAM,MAAM,IAC7gItD,EAAkB,G,q/DCqJtB,OACE3D,KAAM,wBACN4D,MAAO,CACLu4C,OAAQ,CACNh+C,KAAMwQ,SAGV,OACE,MAAO,CACLstC,UAAU,EACVD,cAAe,GACfnF,oBAAoB,EACpBrsB,aAAa,EACb0xB,qBAAqB,EACrBlxB,WAAY,KACZ0rB,cAAe,EACfC,aAAc,EACd/vC,SAAS,EACT2vC,cAAc,EACdC,eAAe,IAGnB1yC,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IAAM,CACrB2hB,IAAK,IACLyD,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,EACVC,gBAAiB,EACjBC,cAAe,OACfC,kBAAkB,EAClBC,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB,OAAN,WACQvqB,KAAKoE,GAAG,mBAAoBomB,IAC1BxqB,KAAKyqB,iBACLzqB,KAAK0qB,QAAQF,KAEfxqB,KAAKoE,GAAG,QAAhB,iCACA,mBADA,uDAGQpE,KAAKoE,GAAG,UAAhB,eACUN,EAAG6wC,oBAAqB,EACxB7wC,EAAGY,SAAU,QACvB,wBAGQ1E,KAAKoE,GAAG,UAAW,KACjBN,EAAG6wC,oBAAqB,IAG1B30C,KAAKoE,GAAG,YAAhB,iCACA,qIACA,uCACA,kCACA,cACA,iBACA,+BACA,mBACA,oBACA,gBACA,gBAGA,+CAbA,4DAmBEyJ,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,MAGtB,OAAO6B,GACDA,GACF3qB,KAAK+5C,UAAW,EAChB/5C,KAAK85C,cAAgB95C,KAAKi6C,QAE1Bj6C,KAAK+5C,UAAW,IAKtB,UACE,MAAMlvB,EAAiB,IAAIC,eAAe,KAExC9qB,KAAKy0C,aAAez0C,KAAKyN,MAAMsd,mBAAmBC,wBAAwB9e,MAAQ,GAClF,MAAM+e,EAAQ,IAAM,GACpBjrB,KAAKw0C,cAAgBx0C,KAAKy0C,aAAexpB,IAE3CJ,EAAeK,QAAQlrB,KAAKyN,MAAMsd,qBAEpCtoB,QAAS,CAEP,cAAJ,oCACA,mCACA,uCACA,kCACA,gBAJA,IAMI,YAAJ,iCACA,qCACA,cACA,yBACA,mBACA,kCACA,mBANA,IAQI,WACE,MAAO,+iBC1RiW,I,yGCO1WG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMioB,oBAAA,KAAkBC,WAAA,Q,oCC5B5D,QACb1pB,MAAO,CACL7C,MAAO,GACPs7B,QAAS1tB,QAGX7K,SAAU,CACRkO,WAAY,CACVrR,MACE,OAAOuB,KAAKnB,OAGd8M,IAAI9M,GACFmB,KAAKsM,MAAM,QAASzN,Q,2CCb5B,IAAIiB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,qBAAqB,CAACA,EAAG,oBAAoB,CAACA,EAAG,2BAA2B,CAACA,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIY,EAAElC,IAAIsB,EAAIa,aAAa,GAAI,WAAW,SAAST,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAIa,aAAaf,MAAM,IAAI,SAASoB,EAAKhI,GAAG,OAAOkH,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,MAAMC,MAAM,CAAE,KAASlI,EAAI,IAAM,IAAM,CAACkH,EAAG,KAAK,CAACE,YAAY,sBAAsBC,YAAY,CAAC,MAAQ,YAAY,CAAEP,EAAIW,GAAGO,EAAKpC,SAAWkB,EAAIW,GAAG,qBAAsBP,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,gCAAiCT,EAAIW,GAAGO,EAAKpC,SAAWkB,EAAIW,GAAG,qBAAsBP,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAIS,GAAG,kBAAkBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKC,QAAQ,MAAM,GAAGf,EAAG,KAAK,CAACE,YAAY,mCAAmCC,YAAY,CAAC,aAAa,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,OAAOgB,MAAM,CAAE,CAACC,MAAOvB,EAAIwB,aAAaN,EAAKpC,UAAW,CAACkB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKpC,QAAQ,cAAa,KAAK2C,OAAM,QAAW,IAAI,IAAI,IAAI,IACh1CC,EAAkB,G,YCgEtB,MAAM,EAAN,uBACA,OACE3D,KAAM,oBACN4D,MAAO,CACLC,KAAMvI,QAERwI,SAAU,CACR,eACE,IAAIC,EAAY,GAwBhB,OAvBI7B,KAAK2B,OACPE,EAAYlB,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,KAGpEH,EADElB,EAAEsB,QAAQJ,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,0BACA,CAAU,MAAV,uCAAU,MAAV,KACA,CAAU,MAAV,8BAAU,MAAV,KACA,CAAU,MAAV,gCAAU,MAAV,KACA,CAAU,MAAV,8BAAU,MAAV,KACA,CAAU,MAAV,8BAAU,MAAV,KACA,CAAU,MAAV,8BAAU,MAAV,KACA,CAAU,MAAV,wBAAU,MAAV,KACA,CAAU,MAAV,+BAAU,MAAV,KACA,CAAU,MAAV,iCAAU,MAAV,KACA,CAAU,MAAV,+BAAU,MAAV,MAGoBA,EAAUK,OAAOC,GAA4B,OAAnBA,EAAMC,UACpD,2DACA,6BACA,SAAU,MAAV,gCAAU,MAAV,gBAEaP,IAGXY,QAAS,CACP,aAAa5D,GAEX,OADAA,EAAQA,EAAM6D,MAAM,KAAKC,MACjB9D,GACN,IAAK,OACL,IAAK,MACH,MAAO,QACT,IAAK,OACL,IAAK,KACH,MAAO,MACT,QACE,MAAO,OC/GgV,I,sHCO7V+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAACC,QAAA,KAAMC,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,KAAiBC,QAAA,KAAMC,eAAA,Q,yCC7BxH,IAAIrD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACkB,MAAQ,kBAAoBtB,EAAIqlD,cAAgBrlD,EAAIuf,KAAK,GAAK,GAAK,sCAAwC/e,MAAM,CAAC,KAAOR,EAAIuf,OAAO,CAAEvf,EAAgB,aAAEI,EAAG,sBAAsB,CAACI,MAAM,CAAC,cAAgB,MAAM,EAAGR,EAAIslD,YAActlD,EAAIulD,SAAWvlD,EAAIwlD,UAAWplD,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,GAAG,IAAMR,EAAIwlD,WAAWnhD,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIulD,SAAQ,GAAO,KAAO,SAASjhD,GAAQtE,EAAIulD,SAAQ,IAAOzkD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,cAAc4B,GAAG,WAAW,MAAO,CAACZ,EAAG,sBAAsB,CAACI,MAAM,CAAC,cAAgB,GAAG,KAAO,KAAK,MAAQ,IAAI,MAAQ,eAAeiB,OAAM,IAAO,MAAK,EAAM,cAAgBzB,EAAI4O,KAAmGxO,EAAG,OAAO,CAACE,YAAY,yCAAyCC,YAAY,CAAC,MAAQ,oBAAoBe,MAAM,CAAE,YAAatB,EAAIylD,WAAY,CAACzlD,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI0lD,SAAS,OAA3QtlD,EAAG,sBAAsB,CAACI,MAAM,CAAC,cAAgB,GAAG,KAAO,KAAK,MAAQ,IAAI,MAAQ,WAAgM,IACj+BkB,EAAkB,G,msBC4CtB,OACE3D,KAAM,SACN4D,MAAO,CACL0jD,cAAe,CACbnpD,KAAMkU,QACN9H,SAAS,GAEXsG,KAAM,CACJyM,UAAU,GAEZsqC,OAAQ,CACNzpD,KAAMwQ,OACNpE,QAAS,IAEXg9C,WAAY,CACVppD,KAAMkU,QACN9H,SAAS,GAEXs9C,WAAY,CACV1pD,KAAMwQ,OACNpE,QAAS,IAEXu9C,aAAc,CACZ3pD,KAAMkU,QACN9H,SAAS,GAEXw9C,sBAAuB,CACrB5pD,KAAMkU,QACN9H,SAAS,GAEXiX,KAAM,CACJrjB,KAAMuQ,OACNnE,QAAS,KAGb,OACE,MAAO,CACLoU,KAAM,GACNC,SAAU,GACVuuB,UAAW,GACXqa,SAAS,IAGb1jD,SAAU,EAAZ,KACA,wCADA,IAII4jD,SAAU1hD,GAASA,EAAGwb,KAAO,GAAO,GAApB,KAChBmmC,QAAS3hD,GAAM,EAAnB,6EACIyhD,UAAWzhD,IACT,IAAI2hB,EAAM,KAMV,OALI3hB,EAAG6hD,WACLlgC,EAAM,GAAG3hB,EAAG2Y,cAAc3Y,EAAG+Y,eAAeipC,mBAAmBhiD,EAAG6hD,cAC1E,2BACQlgC,EAAM,GAAG3hB,EAAG2Y,cAAc3Y,EAAG+Y,eAAeipC,mBAAmBhiD,EAAG6K,KAAKkmC,cAElEpvB,KAGX5X,MAAO,CACL,eACE7N,KAAKslD,SAAU,IAGnB,UACEtlD,KAAKyc,KAAO,+BACZzc,KAAK0c,SAAW/b,EAAElC,IAAIuB,KAAK2O,KAAM,eAAgB,KAAOhO,EAAElC,IAAIuB,KAAK2O,KAAM,MAAO,MC/G2Q,I,qECO3V/L,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAAC04C,UAAA,KAAQ7nC,OAAA,KAAKgO,oBAAA,Q,kCCzB3C,W,0CCAA,IAAI3hB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,qBAAqB,CAACI,MAAM,CAAC,UAAY,KAAK,CAACJ,EAAG,oBAAoB,CAACA,EAAG,2BAA2B,CAACA,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIY,EAAElC,IAAIsB,EAAI6nB,eAAe,GAAI,WAAW,SAASznB,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAI6nB,eAAe/nB,MAAM,IAAI,SAASoB,GAAM,OAAOd,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,OAAO,CAACf,EAAG,KAAK,CAACG,YAAY,CAAC,QAAU,OAAO,cAAc,SAAS,MAAQ,YAAY,CAACH,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKG,MAAM,OAAOrB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKC,QAAQ,MAAM,GAAGf,EAAG,KAAK,CAACE,YAAY,mCAAmCC,YAAY,CAAC,aAAa,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,OAAOgB,MAAM,CAAE,CAAEC,MAAOvB,EAAIwB,aAAaN,EAAKpC,UAAY,CAACkB,EAAIS,GAAG,IAAIT,EAAIU,GAAmB,UAAfV,EAAIyN,QAA0C,MAAlBvM,EAAK6mB,SAAoB/nB,EAAIW,GAAGO,EAAKpC,OAASoC,EAAK6mB,UAAU,cAAa,KAAKtmB,OAAM,QAAW,IAAI,IAAI,IAAI,IACpnCC,EAAkB,G,+sBC4CtB,MAAM,EAAN,uBACA,OACE3D,KAAM,4BACN4D,MAAO,CACLC,KAAMvI,QAERwI,SAAU,EAAZ,KACA,kCADA,IAEI,iBACE,IAAIC,EAAY,GACZ7B,KAAK2B,OACPE,EAAYlB,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,KAGpEH,EADElB,EAAEsB,QAAQJ,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,6CACA,CAAU,MAAV,kDAAU,MAAV,KACA,CAAU,MAAV,mDAAU,MAAV,KACA,CAAU,MAAV,gDAAU,MAAV,KACA,CAAU,MAAV,oDAAU,MAAV,KACA,CAAU,MAAV,iDAAU,MAAV,KACA,CAAU,MAAV,oDAAU,MAAV,MAGoBA,EAAUK,OAAOC,GAA4B,OAAnBA,EAAMC,UACpD,2DACA,6BACA,SAAU,MAAV,gCAAU,MAAV,aAAU,SAAV,mBAEM,IAAIC,EAAQ,CAClB,mBACA,kBACA,uBACA,oBACA,gBACA,qBACA,iCACA,kBAmBM,OAjBIrC,KAAK2B,KAAKokD,eAAuC,YAAtB/lD,KAAK2B,KAAKiD,WACvCvC,EAAQ,CAChB,mBACA,cACA,uBACA,sBACA,oBACA,oBACA,oBACA,oBACA,gBACA,0BACA,0BACA,qBACA,mBAGaR,EAAUS,IAAI,CAACC,EAAKC,IAAU,EAA3C,2BAGEC,QAAS,CACP,aAAa5D,GAEX,OADAA,EAAQA,EAAM6D,MAAM,KAAKC,MACjB9D,GACN,IAAK,OACL,IAAK,MACH,MAAO,QACT,IAAK,OACL,IAAK,KACH,MAAO,MACT,QACE,MAAO,OCnHiW,I,sHCO9W+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAACC,QAAA,KAAMC,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,KAAiBC,QAAA,KAAMC,eAAA,Q,uFC7BxH,IAAIrD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,oBAAoB,MAAQ,SAASC,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,OAAO,CAACE,YAAY,mDAAmD,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuCX,EAAIiB,GAAIjB,EAAkB,gBAAE,SAASoS,EAAc3P,GAAO,MAAO,CAAgD,aAA9C2P,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,YAAegT,EAAgB,GAAG5R,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,WAAW,CAACG,YAAY,CAAC,YAAY,SAASC,MAAM,CAAC,MAAQ4R,EAA6B,OAAfpS,EAAIyN,OAAkB,WAAa,SAAU,MAAQzN,EAAI2yC,cAAclwC,EAAMzC,EAAI+yC,cAAc,YAA2B,OAAf/yC,EAAIyN,OAAkB,UAAY,OAAO,UAAW,oBAAuB2E,EAAgB,GAAG,OAAS,GAAG,MAAQ,GAAG,aAAa,KAAK,SAAW,GAAG,eAAe,IAAI/N,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIimD,aAAa7zC,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIimD,aAAc7zC,EAAcK,GAAInM,IAAME,WAAW,qCAAqC,GAAkD,aAA9C4L,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,oBAAuBgT,EAAgB,GAAG9R,YAAY,QAAQ,CAACF,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ4R,EAA6B,OAAfpS,EAAIyN,OAAkB,WAAa,SAAU,aAAa2E,EAAcG,QAAQ,GAAGE,GAAG,UAAW,YAAeL,EAAgB,GAAG,cAAc,GAAG,eAAe,IAAI/N,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIimD,aAAa7zC,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIimD,aAAc7zC,EAAcK,GAAInM,IAAME,WAAW,qCAAqC,GAAGxG,EAAIgF,KAAoD,aAA9CoN,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,aAAgBgT,EAAgB,GAAG5R,MAAM,CAAC,UAAW,aAAgB4R,EAAgB,KAAK,CAAChS,EAAG,MAAM,CAACE,YAAY,UAAUC,YAAY,CAAC,MAAQ,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAG0R,EAA6B,OAAfpS,EAAIyN,OAAkB,WAAa,UAAU,OAAOrN,EAAG,MAAM,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4yC,mBAAkC,OAAf5yC,EAAIyN,OAAkB,UAAY,SAAS,SAASzN,EAAIgF,UAAS,GAAG5E,EAAG,QAAQ,CAACA,EAAG,eAAe,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,QAAQC,MAAM,CAAC,eAAe,GAAG,OAAS,OAAO,QAAUR,EAAIkmD,oBAAoB,MAAQlmD,EAAImmD,gBAAgB,eAAenmD,EAAIW,GAAG,0BAA0B,eAAeX,EAAIW,GAAG,uBAAuB,sBAAsB,GAAG,qBAAqB,IAAIG,YAAYd,EAAIe,GAAG,CAACf,EAAIiB,GAAIjB,EAAoB,kBAAE,SAASomD,GAAW,MAAO,CAAChnD,IAAK,QAAUgnD,EAAWplD,GAAG,SAAS6F,GAC5lF,IAAI3F,EAAO2F,EAAI3F,KACf,MAAO,CAACd,EAAG,OAAO,CAAChB,IAAIgnD,GAAW,CAACpmD,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIqmD,gBAAgBD,EAAWllD,EAAKklD,KAAa,aAAY,CAAChnD,IAAI,gBAAgB4B,GAAG,SAASE,GAAM,MAAO,CAACd,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,UAAW,uBAAyBR,EAAI8yC,gBAAiB,MAAQ,WAAWzuC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIsmD,qBAAqB,aAAcplD,EAAKA,KAAKqlD,WAAcrlD,EAAKA,KAAQ,IAAI,WAAY,CAACd,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,MAAM,GAAGP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAW,uBAAyBR,EAAI8yC,gBAAiB,KAAO,GAAG,MAAQ,WAAWzuC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIsmD,qBAAqB,aAAcplD,EAAKA,KAAKslD,WAActlD,EAAKA,KAAQ,IAAI,WAAY,CAACd,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,wBAAwBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kCAAkC,MAAM,OAAO,MAAK,MAAS,IAAI,IACt7Be,EAAkB,G,4+DC+GtB,OACE3D,KAAM,uBAEN4D,MAAO,CACLkxC,eAAgB,CACd32C,KAAMwQ,OACNpE,QAAS,IAEXwqC,gBAAiB,CACf52C,KAAMwQ,OACNpE,QAAS,IAEX2K,eAAgB,CACd/W,KAAMkT,MACN9G,QAAS,IAAM,IAEjByqC,aAAc,CACZ72C,KAAM7C,OACNiP,QAAS,QAGXm+C,gBAAiB,CACfvqD,KAAM7C,OACNiP,QAAS,SAIb,OACE,MAAO,CACL6J,sBAAsB,EACtBK,gBAAiB,GACjBk0C,mBAAmB,IAIvB7kD,SAAU,EAAZ,OACA,kCACA,wCAFA,IAIIyrC,gBAAiB,IAAM,EAA3B,yBAEI4Y,oBAAqBniD,IACnB,MAAM4iD,EAAe5iD,EAAGkP,eAAe1Q,IAAI6P,IAAiB,CAC1DyB,KAAoB,OAAd9P,EAAG0J,OAAkB2E,EAAcw0C,SAAWx0C,EAAclG,MAClEpN,MAAOsT,EAAcK,GACrBo0C,MAAO,YAGT,OADAF,EAAajtD,KAAK,CAAxB,gDACaitD,GAGTG,iBAAkB/iD,GACiB,IAA7BA,EAAGkP,eAAe7Z,OACb,GAEF2K,EAAGkP,eAAe1Q,IAAIylB,GAAUA,EAAOvV,IAGhDkgC,cAAe5uC,GAAM,CAACtB,EAAOskD,KAC3B,MAAMC,EAAgBjjD,EAAGkP,eAAexQ,GAExC,IAAKukD,EACH,MAAO,GAGT,MAAM1wB,EAAQ,CACZA,MAAO,EAAf,GACA,sBAGY8c,EAAervC,EAAGupC,gBAAgBh0B,YAAYgd,GAAO19B,KAE3D,GAA4B,IAAxBw6C,EAAah6C,OACf,MAAO,GAGT,MAAMm6C,EAAMH,EAAa7wC,IAAIhE,GAAK,EAAxC,OACM,OAAmB,IAAfg1C,EAAIn6C,OACC,GAGF,CAAC,CACNya,KAAM,MACNozC,QAAS,SACTx0C,GAAI,OACZ,4CAGI0zC,gBAAiBpiD,IACf,MAAMuyB,EAAQ,CACZA,MAAO,EAAf,KACA,sBACA,gBAGM,OAAOvyB,EAAGupC,gBAAgBh0B,YAAYgd,GAAO19B,MAG/Cy6C,uBAAwBtvC,GAAM,EAAlC,gCACA,yDAEIuvC,uBAAwBvvC,GAAM,EAAlC,gCACA,yDAEI6uC,mBAAoB7uC,IAClB,MAAMm0B,EAAUn0B,EAAGupC,gBAAgBh0B,YAAY,CAC7Cgd,MAAO,CACLoN,MAAO3/B,EAAGgvC,aAAazc,MAAMoN,MAC7B,CAAC3/B,EAAG+uC,iBAAkB/uC,EAAG8uC,kBAEnC,QACM,OAAK3a,GAIEn0B,EAAGsvC,uBAAuB,GAAG9gC,QAAQtI,KAAKnL,GAASA,EAAM2T,KAAOylB,EAAQn0B,EAAGsvC,uBAAuB,GAAG5gC,MAHnG,IAMXwzC,aAAcliD,IAERA,EAAGupC,gBAAgB1pC,MAAM0H,MAAM,qBAAqBooC,IAAIt6C,OAAS,GACnE2K,EAAGkP,eAAeM,QAAQogC,IACnB5vC,EAAGyO,gBAAgBmhC,EAAIlhC,MACc,aAApCkhC,EAAIthC,eAAe,GAAGC,UACxBvO,EAAGsE,KAAKtE,EAAGyO,gBAAiBmhC,EAAIlhC,GAAI1O,EAAGoiD,gBAAgB,GAAGxS,EAAIlhC,KAE9D1O,EAAGsE,KAAKtE,EAAGyO,gBAAiBmhC,EAAIlhC,GAAI,OAKrC1O,EAAGyO,iBAGZ00C,YAAanjD,GAAM1K,OAAO8tD,YAAY9tD,OAAO+tD,QAAQrjD,EAAGyO,iBAAiBrQ,OAAO,IAApF,6CAIE2L,MAAO,CACL24C,gBAAiB,CACf,UACMxmD,KAAKwmD,iBACPxmD,KAAKgT,eAAeM,QAAQ2kB,IAC1Bj4B,KAAKoI,KAAKpI,KAAKuS,gBAAiB0lB,EAAQzlB,GAAIxS,KAAKwmD,gBAAgBvuB,EAAQzlB,QAK/E+0B,WAAW,IAIf9kC,QAAS,EAAX,KACA,qCADA,IAEI,qBAAJ,wCACA,yFACA,uBAEA,IACA,oBACA,GACYk2B,OAAQ,MACRxP,QAAS,CACPC,cAAe,EAA7B,eAKA,SACA,mBAEA,uBAEA,gCACA,8BACA,SACA,aACA,6BACA,UACA,WACA,uBACA,SACA,aACA,kBACA,4BA9BA,IAmCI,gBAAgB+8B,EAAWp+B,GACzB,IAAK/nB,KAAKgT,eACR,MAAO,GAET,MAAMo0C,EAAcpnD,KAAKgT,eAAe9Q,OAAOiQ,GAAiBA,EAAcK,KAAO2zC,GAAW,GAAG7zC,QAAQpQ,OAAOmlD,GAAOA,EAAI70C,KAAOuV,GAEpI,OAAKq/B,EAAYjuD,OAGViuD,EAAY,GAAG,CAAiB,OAAhBpnD,KAAKwN,OAAkB,UAAY,SAFjD,OCtT8V,I,6ICQzW5K,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAYhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK8F,YAAA,KAAU5F,OAAA,KAAKC,aAAA,KAAWy8C,aAAA,KAAWpkD,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,Q,yCC/BnF,IAAI9M,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAU,eAAe,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,SAAS,MAAQ,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,IAAM,iBAAiB,MAAQ,MAAM,OAAS,SAASJ,EAAG,OAAO,CAACE,YAAY,0BAA0B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIojB,OAAO,OAAOhjB,EAAG,OAAO,CAACE,YAAY,cAAc,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI0mB,aAAa,QAAQ,MAAM,IAAI,IAC/kBhlB,EAAkB,GCyBtB,GACE3D,KAAM,YAEN4D,MAAO,CACLyhB,MAAO,CACLlnB,KAAMwQ,OACNpE,QAAS,cAGXoe,YAAa,CACXxqB,KAAMwQ,OACNpE,QAAS,wBCrCmV,I,iFCO9VzF,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAQhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKC,aAAA,KAAW4I,OAAA,KAAK3I,OAAA,Q,gEC1BnD,IAAIhL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,cAAc,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIo6B,SAAS,OAAOp6B,EAAIiB,GAAIjB,EAAIsM,OAAc,SAAE,SAAS0b,EAAO9uB,GAAG,OAAOkH,EAAG,cAAc,CAAChB,IAAIlG,EAAEsH,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,qBAAqB,CAACA,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQwnB,GAAQ5hB,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAI+P,WAAWzJ,GAAKE,WAAW,iBAAiB,GAAGpG,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGsnB,GAAQ,QAAQ,IAAI,OAAM,IAC5iBtmB,EAAkB,G,YC4BtB,GACE3D,KAAM,cAENyO,OAAQ,CACV,SCjCmX,I,6FCO/W3J,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC83B,YAAA,KAAUC,kBAAA,KAAgBC,iBAAAH,EAAA,KAAiBI,eAAAJ,EAAA,KAAeK,aAAA,KAAWysB,UAAA,Q,wkCCzBpF,QACb9kD,QAAS,EAAF,KACFwvC,eAAW,MAAO,CAAC,eADjB,IASCuV,aAAaC,EAAK9uD,GAAM,iCAC5B,MAAMuI,EAAQP,EAAEsB,QAAQtJ,EAAK2R,KAAO,SAAW,SAC/C,IACE,MAAMo9C,QAAkB/uD,EAAKgV,OACzB85C,IACFA,EAAI5P,OAAS6P,GAEf,EAAK5hC,UAAU,CACbC,MAAO,CAAEloB,QAAS,EAAK6C,GAAI,kBAAiBQ,IAC5Ci2B,MAAOxV,WAAMC,UAEf,MAAO7mB,GACP0E,QAAQjC,MAAMzC,GACd,EAAK+qB,UAAU,CACbC,MAAO,CAAEloB,QAAS,EAAK6C,GAAI,GAAE,EAAKA,GAAI,gBAAeQ,UAAgBnG,EAAE8C,gBACvEs5B,MAAOxV,WAAMI,WAfW,Q,kCCblC,W,kCCAe,QACbrgB,MAAO,CACL7C,MAAO,CAAE5C,KAAM7C,OAAQiP,QAAS,SAGlC1P,OACE,MAAO,CACLA,KAAM,KAIVkV,MAAO,CACLhP,MAAO,CACL+uC,MAAM,EAEN+Z,QAAQ75C,GACN9N,KAAKrH,KAAOgI,EAAE+P,MAAM5C,KAIxBnV,KAAM,CACJi1C,MAAM,EAEN+Z,QAAQ75C,GACDnN,EAAEoQ,QAAQ/Q,KAAKnB,MAAOiP,IACzB9N,KAAKsM,MAAM,QAASwB,MAM5BmrC,UACEj5C,KAAKrH,KAAOgI,EAAE+P,MAAM1Q,KAAKnB,U,yCChC7B,IAAIiB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAC,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,MAAQ,WAAW6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,KAAS,CAACvE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,oBAAoBT,EAAIS,GAAG,mBAAmB,IAAKT,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,SAAS,MAAQ,SAAS,OAAQ,GAAM6D,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI2E,SAAU,GAAQ,eAAe,SAASL,GAAQtE,EAAI2E,SAAU,IAAS7D,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,oBAAoBgB,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,+BAA+BN,EAAIiB,GAAIjB,EAAiB,eAAE,SAASyqB,GAAM,OAAOrqB,EAAG,IAAI,CAAChB,IAAIqrB,EAAK1sB,KAAKuC,YAAY,YAAYC,YAAY,CAAC,mBAAmB,UAAU,QAAU,WAAW,CAACH,EAAG,OAAO,CAACA,EAAG,IAAI,CAACkB,MAAOmpB,EAAKo9B,QAA0B,cAAhBp9B,EAAKyQ,OAAyB,sCAAwC,GAAI16B,MAAM,CAAC,KAAOR,EAAI8nD,YAAYr9B,GAAM,OAAS,WAAW,CAACrqB,EAAG,SAAS,CAACJ,EAAIS,GAAG,sBAAsB,KAAKL,EAAG,OAAO,CAACG,YAAY,CAAC,iBAAiB,WAAW,CAACP,EAAIS,GAAGT,EAAIU,GAAG+pB,EAAK1sB,SAA0B,cAAhB0sB,EAAKyQ,OAAwB96B,EAAG,sBAAsB,CAACE,YAAY,OAAOC,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,cAAgB,GAAG,MAAQ,UAAU,KAAO,KAAK,MAAQ,OAAwB,YAAhBiqB,EAAKyQ,OAAsB96B,EAAG,OAAO,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,UAAU,CAACR,EAAIS,GAAG,iCAAiC,GAAoB,UAAhBgqB,EAAKyQ,OAAoB96B,EAAG,OAAO,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,CAACR,EAAIS,GAAG,iCAAiC,GAAGT,EAAIgF,MAAM,MAAK,GAAG5E,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,8BAA8B,IAAI,KAAKgB,OAAM,IAAO,MAAK,EAAM,UAAU2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,MAAM,IAClpFtD,EAAkB,G,4iCC+GtB,OACE3D,KAAM,2BACN4D,MAAO,CACLomD,gBAAiB1uD,QAEnB,OACE,MAAO,CACL0vB,WAAY,KACZpkB,SAAS,EACTqjD,cAAe,KAGnBnmD,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IAAM,CACrB2hB,IAAK,sDACLyD,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,GACVC,gBAAiB,EACjBC,cAAe,KACfE,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB4pB,WAAY3pB,GAAQ,GAAG1mB,EAAGgkD,gBAAgBnrC,6BAA6B6N,EAAK1sB,OAC5E,OACEkC,KAAKoE,GAAG,QAAhB,iCACA,oEACA,MACA,iCAHA,uDAMQpE,KAAKoE,GAAG,UAAhB,iCACA,oEACA,MACA,iCAHA,uDAOQpE,KAAKoE,GAAG,UAAhB,qCACA,2DACA,oCACA,0CAEA,oEACA,MACA,iCAPA,2DAWQpE,KAAKoE,GAAG,YAAhB,iCACA,2BADA,4DAMEyJ,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,OAIxBrmB,QAAS,CACP,aACE,OAAO,OAAb,OAAa,IAET,YAAY+nB,GACV,MAAM/N,EAAO,+BACb,MAAO,GAAGA,YAAe+N,EAAKo9B,OAAO5b,YAAYhsC,KAAK6c,2BAA2B2N,EAAK1sB,QAExF,WACE,MAAO,8pBC1MoW,I,6FCO7W8E,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMue,oBAAA,Q,yCC3BzD,IAAI3hB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,cAAc,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIo6B,SAAS,OAAOh6B,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,sBAAsB,CAACE,YAAY,cAAc,CAACF,EAAG,iBAAiB,CAACI,MAAM,CAAC,IAAMR,EAAIsM,OAAO1G,IAAI,IAAM5F,EAAIsM,OAAOnC,IAAI,eAAc,GAAM/D,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAI+P,WAAWzJ,GAAKE,WAAW,iBAAiB,IAAI,IAAI,IACve9E,EAAkB,G,YCqBtB,GACE3D,KAAM,cAENyO,OAAQ,CACV,SC1BmX,I,iFCO/W3J,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAQhC,IAAkBA,EAAW,CAAC83B,YAAA,KAAUE,iBAAAH,EAAA,KAAiButB,eAAA,KAAaltB,aAAA,Q,yCC1BtE,IAAIh7B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAc,WAAEI,EAAG,SAAS,CAACG,YAAY,CAAC,mBAAmB,WAAWC,MAAM,CAAC,QAAU,GAAG,MAAQ,MAAM,YAAY,OAAO,OAAS,QAAQ,MAAQ,UAAU,SAAW,KAAK,CAACJ,EAAG,cAAc,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,WAAW,CAACJ,EAAG,MAAM,CAACE,YAAY,aAAaE,MAAM,CAAC,IAAM,kDAAkDJ,EAAG,MAAM,CAACE,YAAY,qDAAqD,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,2DAA2D,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,UAAU,CAACH,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,uCAAuC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,SAASP,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+DAA+D,UAAU,GAAGP,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,UAAU,CAACH,EAAG,QAAQ,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,oCAAoCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uDAAuD,SAASP,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,oCAAoCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sDAAsD,UAAU,GAAGP,EAAG,QAAQ,CAACE,YAAY,OAAOC,YAAY,CAAC,YAAY,UAAU,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,SAAS,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,UAAU,CAACI,MAAM,CAAC,UAAY,IAAI,OAAS,KAAK,QAAU,GAAG,OAAS,GAAG,MAAQ,KAAK,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkoD,cAAcC,MAAM,UAAU,GAAG/nD,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,OAAO,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kDAAkD,UAAU,GAAGP,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,SAAS,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,UAAU,CAACI,MAAM,CAAC,UAAY,IAAI,OAAS,KAAK,QAAU,GAAG,OAAS,GAAG,MAAQ,KAAK,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkoD,cAAcE,OAAO,UAAU,GAAGhoD,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,OAAO,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,UAAU,GAAGP,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,SAAS,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,UAAU,CAACI,MAAM,CAAC,UAAY,IAAI,OAAS,KAAK,QAAU,GAAG,OAAS,GAAG,MAAQ,KAAK,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkoD,cAAcG,SAAS,UAAU,GAAGjoD,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,OAAO,CAACE,YAAY,gCAAgCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qDAAqD,UAAU,GAAGP,EAAG,QAAQ,CAACG,YAAY,CAAC,YAAY,SAAS,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,UAAU,CAACI,MAAM,CAAC,UAAY,IAAI,OAAS,KAAK,QAAU,GAAG,OAAS,GAAG,MAAQ,KAAK,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkoD,cAAcI,SAAS,UAAU,GAAGloD,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,OAAO,CAACE,YAAY,gCAAgCC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qDAAqD,UAAU,IAAI,IAAI,GAAGP,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,WAAW6D,GAAG,CAAC,MAAQrE,EAAIwa,wBAAwB,CAACxa,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6DAA6D,OAAOP,EAAG,OAAO,CAACE,YAAY,sFAAsF,CAACF,EAAG,IAAI,CAACG,YAAY,CAAC,MAAQ,WAAWC,MAAM,CAAC,KAAO,yDAAyD,OAAS,WAAW,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uDAAuD,UAAU,IAAI,IAAI,IAAI,GAAGX,EAAIgF,MACj2ItD,EAAkB,G,msBCiLtB,OACE3D,KAAM,wCACN4D,MAAO,CACL4mD,WAAY,CAAhB,cAEE,OACE,MAAO,CACLC,YAAY,EACZC,WAAY,IAAIn0C,KAChB4zC,cAAe,CACbC,KAAM,EACNC,MAAO,EACPC,QAAS,EACTC,QAAS,KAIfzmD,SAAU,EAAZ,GACA,4BAAI,uBAAJ,4BAEE,UACE5B,KAAKwoD,WAAaxhD,OAAOhH,KAAKsoD,WAAY,yBAAyBG,SAEnEzoD,KAAK0oD,kBAEL1oD,KAAK2oD,kBAAoB7gB,YAAY9nC,KAAK0oD,gBAAiB,MAE7D,gBACE5e,cAAc9pC,KAAK2oD,oBAErBlmD,QAAS,CACP,kBACE,MAAMgV,EAAM,IAAIpD,KACVu0C,EAAW5oD,KAAKwoD,WAAa/wC,EAE/BmxC,EAAW,GACb5oD,KAAKioD,cAAcC,KAAOxiD,KAAK6oC,MAAMqa,EAAW,OAChD5oD,KAAKioD,cAAcE,MAAQziD,KAAK6oC,MAAM,EAA9C,YACQvuC,KAAKioD,cAAcG,QAAU1iD,KAAK6oC,MAAM,EAAhD,UACQvuC,KAAKioD,cAAcI,QAAU3iD,KAAK6oC,MAAM,EAAhD,SACavuC,KAAKuoD,aACRvoD,KAAKuoD,YAAa,KAGpBvoD,KAAKuoD,YAAa,EAElBze,cAAc9pC,KAAK2oD,qBAGvB,wBACE3oD,KAAKwa,QAAQ/gB,KAAK,SAASuG,KAAKynB,2BCpOwV,I,yGCO1X7kB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAKE,OAAA,KAAKC,SAAA,Q,kCC5B7D,W,gECAA,IAAIjL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAaJ,EAAI+G,GAAG,CAAC3F,MAAM,CAAC,CAAE,kBAAmB,CAAC,SAAU,QAAS,eAAgB,aAAc,oBAAqB,gBAAiB,aAAc,uBAAuB2E,SAAS/F,EAAIy0B,OAAO12B,QAASwC,YAAY,CAAC,UAAU,SAASC,MAAM,CAAC,MAAQR,EAAI8oD,OAAO,MAAQ9oD,EAAI9D,KAAK,aAAa8D,EAAI+oD,MAAM,SAAW,EAAE,IAAM,GAAG,IAAM,KAAK,aAAa/oD,EAAIsM,QAAO,GAAO,CAAClM,EAAG,MAAM,CAACE,YAAY,sBAAsBE,MAAM,CAAC,UAAU,kBAAkB,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIqB,MAAM,OAAQrB,EAAe,YAAE,CAACA,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIlC,SAAS,MAAM,CAACkC,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIlC,QAAS,CAACs+B,OAAQp8B,EAAIgpD,OAAQC,OAAQjpD,EAAIkpD,UAAU,OAAO,MAClvBxnD,EAAkB,G,oqDC8BtB,OACE,OACE,MAAO,CACLsnD,OAAQ,GACRE,OAAQ,GACRJ,QAAQ,EACR5sD,KAAM,EAAZ,cACM4B,QAAS,GACTirD,OAAO,EACP1nD,KAAM,kBACNilC,aAAa,IAIjBzkC,SAAU,EAAZ,GACA,sBACA,uBAIEiM,MAAO,CACL,SAAS0V,GACP,GAAIvjB,KAAK6oD,QAA8B,IAApBtlC,EAASpqB,OAC1B,OAEF,MAAM,EAAZ,qCAIM,OAHA6G,KAAKqmC,YAActgB,EAAMloB,QAAQiI,SAAS,cAE1C9F,KAAK/D,KAAOk7B,EACJA,GACN,KAAK,EAAb,iBACUn3B,KAAKoB,KAAO,6BACZ,MACF,KAAK,EAAb,iBACUpB,KAAKoB,KAAO,YACZ,MACF,KAAK,EAAb,cACQ,KAAK,EAAb,eACUpB,KAAKoB,KAAO,kBACZ,MACF,QAEEpB,KAAKoB,KAAO,YACZ,MAEApB,KAAKqmC,aACPrmC,KAAKnC,QAAUmC,KAAK87B,iBAAiB/V,EAAMptB,MAC3CqH,KAAK+oD,OAAS,GACd/oD,KAAKipD,OAAS,KAEdjpD,KAAK8oD,OAAyC,IAAjC/iC,EAAMloB,QAAQgM,QAAQ,MACnC7J,KAAKnC,QAAUkoB,EAAMloB,QAAQgS,QAAQ,KAAM,QAC3C7P,KAAK+oD,OAAShjC,EAAMptB,KAAOotB,EAAMptB,KAAKowD,OAAS,GAC/C/oD,KAAKipD,OAASljC,EAAMptB,KAAOotB,EAAMptB,KAAKswD,OAAS,IAGjDjpD,KAAK6oD,QAAS,EACd,MAAM94B,EAAWoH,IAAU,EAAjC,uBACMn5B,WAAW,KACTgC,KAAK6oD,QAAS,EAEd7qD,WAAW,KACTgC,KAAKimB,qBAAqBzT,IACpC,MACA,KAIE/P,QAAS,EAAX,KACA,sBACI,qBAAJ,0BAFA,IAII,iBAAiBymD,GAEf,MAAM,EAAZ,0DAEY5iB,EAAsB,OAAhBtmC,KAAKwN,OAAkB+4B,EAAa1oC,EAE1C2oC,EAAuB,OAAhBxmC,KAAKwN,OAAkBi5B,EAAgBC,EAE9CC,EAAgB,GAEtB,IAAK,MAAM,KAAjB,oDACYx3B,MAAM4nB,QAAQl4B,GAChB8nC,EAAcxnC,GAAO,OAAON,EAAMyD,IAAI9E,GAAS,OAAOA,UAAc0nC,KAAK,WAEzEyB,EAAcxnC,GAAON,EAKzB,OAAOynC,EAAIz2B,QAAQ,WAAY,CAAC+2B,EAAOznC,SAG7C,IAAM,EAAN,eC7H8V,I,qECQ1VyD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAACM,QAAA,KAAMimD,YAAA,Q,yCCzBpC,IAAIrpD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,+CAA+CC,YAAY,CAAC,mBAAmB,YAAY,CAACH,EAAG,OAAO,CAACE,YAAY,SAASE,MAAM,CAAC,UAAU,wBAAwB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmCP,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,MAAQ,cAAc,wBAAwB,4BAA4B,CAACP,EAAIiB,GAAIjB,EAAsB,oBAAE,SAASykD,EAAQvrD,GAAG,MAAO,CAACkH,EAAG,OAAO,CAAChB,IAAK,OAASlG,EAAGoH,YAAY,aAAaC,YAAY,CAAC,MAAQ,WAAWC,MAAM,CAAC,UAAW,kBAAoBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAS,IAANxH,EAAU8G,EAAI0kD,SAAWD,EAAQ3+C,KAAK,KAAK9F,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAAChB,IAAK,SAAWlG,EAAGsH,MAAM,CAAC,UAAW,qBAAuBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4mB,SAAS69B,EAAQp7C,MAAO,CAAC2d,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBS,UAAU,YAAW,MACj5BzF,EAAkB,G,iCCkCtB,MAAM,EAAN,mBAEA,OACE3D,KAAM,gBACN4D,MAAO,CACLC,KAAMvI,QAERT,KAAM,KAAM,CACVguB,SAAJ,MAEE/kB,SAAU,CACR4G,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCsH,WAAYvF,GAAMgF,KAAKC,MAAMpI,EAAElC,IAAIqF,EAAI,gBAAiB,OAExD2gD,SAAU3gD,IACHA,EAAGnC,KAAK8D,QAAU3B,EAAGnC,KAAK8D,QAAU,EAChC,EAEL3B,EAAGnC,KAAK8D,QAAU,IACb,IAEF3B,EAAGnC,KAAK8D,OAEjB,qBACE,IAAKzF,KAAKqJ,YAAcrJ,KAAKykD,UAAY,EACvC,MAAO,GAGT,MAAMxgB,EAAmBjkC,KAAKqJ,WACpC,oCAEM,OAAI46B,EAAmB,EACdjkC,KAAKqJ,WAAWxJ,OAAO,GAEzBG,KAAKqJ,WAClB,iDCvEsW,I,6CCOlWzG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAKhC,IAAkBA,EAAW,CAACiI,aAAA,Q,yCCvB9B,IAAI/K,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAkB,gBAAE,SAASoS,GAAe,OAAOhS,EAAG,QAAQ,CAAChB,IAAK,GAAMgT,EAAgB,GAAG9R,YAAY,qBAAqBE,MAAM,CAAC,aAAa,QAAQ,CAACJ,EAAG,MAAM,CAACE,YAAY,yDAAyDE,MAAM,CAAC,UAAW,iCAAoC4R,EAAgB,KAAK,CAAChS,EAAG,OAAO,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAG0R,EAA6B,OAAfpS,EAAIyN,OAAkB,WAAa,SAAS9K,MAAM,KAAK,IAAI,SAASvC,EAAG,MAAM,CAACE,YAAY,mDAAmDE,MAAM,CAAC,UAAW,iCAAoC4R,EAAgB,KAAK,CAAChS,EAAG,OAAO,CAACI,MAAM,CAAC,UAAW,WAAc4R,EAAclG,MAAMvJ,MAAM,KAAK,GAAGka,cAAiB,WAAY,CAAC7c,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4yC,mBAAmBxgC,GAA8B,OAAfpS,EAAIyN,OAAkB,UAAY,QAAQ3N,MAAM,EAAG,KAAK,KAAME,EAAI4yC,mBAAmBxgC,GAA8B,OAAfpS,EAAIyN,OAAkB,UAAY,QAAQrU,OAAQ,GAAI,CAACgH,EAAG,MAAMA,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4yC,mBAAmBxgC,GAA8B,OAAfpS,EAAIyN,OAAkB,UAAY,QAAQ3N,MAAM,KAAK,QAAQE,EAAIgF,MAAM,UAAS,IACzsCtD,EAAkB,G,+sBC4CtB,OACE3D,KAAM,wBAEN4D,MAAO,CACL0nD,YAAa,CACXntD,KAAM7C,OACNgiB,UAAU,GAGZiuC,kBAAmB,CACjBptD,KAAMwQ,OACNpE,QAAS,KAGb,OACE,MAAO,CACLqK,OAAQ,EACRqgC,UAAW,KAIfnxC,SAAU,EAAZ,KACA,kCADA,IAGI0nD,SAAU,IAAM,EAApB,yBAEIlc,iBAAkB,IAAM,EAA5B,0BAEImc,gBAAiBzlD,GAAMA,EAAGspC,iBAAiBrrC,aAAa+B,EAAGulD,mBAE3Dr2C,eAAgBlP,GAAM,EAA1B,kCACA,WACA,uEACA,wDAEIsvC,uBAAwBtvC,GAAM,EAAlC,gCACA,yDAEI6uC,mBAAoB7uC,GAAMqO,IACxB,MAAM8lB,EAAUn0B,EAAGwlD,SAASvnD,aAAa+B,EAAGslD,YAAY9+C,KACxD,OAAK2tB,GAGE9lB,EAAcG,QAAQtI,KAAKnL,GAASA,EAAM2T,KAAOylB,EAAQ9lB,EAAcK,MAFrE,OCtF+V,I,yDCO1W5P,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKE,OAAA,Q,kCCxBnC,W,gECAA,IAAIhL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,qBAAqB,CAACA,EAAG,oBAAoB,CAACA,EAAG,2BAA2B,CAACA,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAIX,EAAIY,EAAElC,IAAIsB,EAAIa,aAAc,aAAa,SAAST,EAAG,4BAA4B,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAIa,aAAaf,MAAM,IAAI,SAASoB,EAAKhI,GAAG,OAAOkH,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,MAAMC,MAAM,CAAE,KAASlI,EAAI,IAAM,IAAM,CAACkH,EAAG,KAAK,CAACE,YAAY,oCAAoCC,YAAY,CAAC,MAAQ,YAAY,CAAEP,EAAIW,GAAGO,EAAKpC,SAAWkB,EAAIW,GAAG,qBAAsBP,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,MAAQ,QAAQ,CAACR,EAAIS,GAAG,gCAAgCT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKC,QAAQ,MAAM,GAAGf,EAAG,KAAK,CAACE,YAAY,mCAAmCC,YAAY,CAAC,aAAa,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,OAAOgB,MAAM,CAAE,CAAEC,MAAOvB,EAAIwB,aAAaN,EAAKpC,UAAY,CAACkB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGO,EAAKpC,QAAQ,cAAa,KAAK2C,OAAM,QAAW,IAAI,IAAI,IAAI,IAC7tCC,EAAkB,G,YCyDtB,MAAM,EAAN,uBACA,OACE3D,KAAM,0BACN4D,MAAO,CACLC,KAAMvI,QAERwI,SAAU,CACR,eACE,IAAIC,EAAY,GAiBhB,OAhBI7B,KAAK2B,OACPE,EAAYlB,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,KAGpEH,EADElB,EAAEsB,QAAQJ,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,yCACA,CAAU,MAAV,6DAAU,MAAV,KACA,CAAU,MAAV,gDAAU,MAAV,KACA,CAAU,MAAV,mDAAU,MAAV,MAGoBA,EAAUK,OAAOC,GAA4B,OAAnBA,EAAMC,UACpD,2DACA,6BACA,SAAU,MAAV,gCAAU,MAAV,gBAEaP,IAGXY,QAAS,CACP,aAAa5D,GAEX,OADAA,EAAQA,EAAM6D,MAAM,KAAKC,MACjB9D,GACN,IAAK,OACL,IAAK,MACH,MAAO,QACT,IAAK,OACL,IAAK,KACH,MAAO,MACT,QACE,MAAO,OCjG+V,I,sHCO5W+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAACC,QAAA,KAAMC,kBAAA,KAAgBC,yBAAA,KAAuBC,wBAAA,KAAsBC,mBAAA,KAAiBC,QAAA,KAAMC,eAAA,Q,yCC7BxH,IAAIrD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,YAAY,yEAAyEE,MAAM,CAAC,MAAQ,GAAG,OAAS,OAAO,MAAQ,QAAQ,YAAY,QAAQ,QAAUR,EAAI4B,KAAKwC,gBAAgB,UAAU,oBAAoB,QAAS,IAAQ,CAAChE,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,GAAG,UAAU,uCAAuC,CAACJ,EAAG,QAAQ,CAACE,YAAY,4BAA4BE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,uBAAuB+D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIuE,eAAiBvE,EAAI4B,KAAM5B,EAAIwE,oBAAqB,KAAS,CAACpE,EAAG,wBAAwB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,KAAK,MAAQ,GAAG,OAAS,GAAG,WAAW,4BAA4B,UAAU,qBAAqB,qBAAoB,MAAS,KAAKxB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,KAAK,aAAa,UAAU,CAACJ,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACF,EAAG,OAAO,CAACE,YAAY,gBAAgBC,YAAY,CAAC,YAAY,OAAO,cAAc,OAAOC,MAAM,CAAC,UAAU,oBAAoB,MAAQR,EAAI4B,KAAK6C,eAAe,CAACzE,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK6C,cAAc,WAAWrE,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,IAAI,aAAa,UAAU,CAACJ,EAAG,QAAQ,CAACE,YAAY,2BAA2BE,MAAM,CAAC,MAAQ,GAAG,QAAUR,EAAI4B,KAAKwC,gBAAgB,MAAQ,UAAU,KAAO,GAAG,UAAU,8BAA8BC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI0E,aAAaC,SAAU,EACrhD3E,EAAI0E,aAAaE,aAAe5E,EAAI4B,QAAS,CAACxB,EAAG,SAAS,CAACJ,EAAIS,GAAG,mBAAmB,IAAI,IAAI,GAAGL,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,0BAA0BE,MAAM,CAAC,OAAS,IAAI,KAAO,MAAM,CAACJ,EAAG,UAAU,CAACE,YAAY,gCAAgCE,MAAM,CAAC,OAAS,OAAO,MAAQ,QAAQ,MAAQ,YAAY,CAACJ,EAAG,OAAO,CAACE,YAAY,+CAA+C,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,qCAAqC,OAAOP,EAAG,OAAO,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,UAAU,qCAAqC,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKqD,aAAa,UAAU,IAAI,IAAI,IAAI,GAAG7E,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,mBAAmBC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,mBAAmBE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uBAAuB,aAAaP,EAAG,MAAM,CAACI,MAAM,CAAC,UAAU,wBAAwB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAA6B,KAA1BV,EAAI4B,KAAKoN,cAAiD,OAA1BhP,EAAI4B,KAAKoN,aAAwB,IAAMhP,EAAI4B,KAAKoN,cAAc,SAAS5O,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,sBAAsB,CAACE,YAAY,4BAA4BE,MAAM,CAAC,KAAOR,EAAI4B,SAAS,IAAI,GAAGxB,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,0BAA0BE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,OAAOP,EAAG,OAAO,CAACA,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,4BAA4B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAK6nD,SAAW,KAAK,aAAarpD,EAAG,QAAQ,CAACE,YAAY,kCAAkCE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,sBAAsB,CAACI,MAAM,CAAC,KAAOR,EAAI4B,KAAK8nD,UAAU,GAAGtpD,EAAG,YAAYA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,eAAe,CAACE,YAAY,iBAAiBE,MAAM,CAAC,IAAMmF,KAAKC,IAAI7L,MAAM4L,KAAM3F,EAAI4B,KAAKiE,SAAStD,KAAI,SAAUhE,GAAK,OAAOA,EAAEuH,QAAS,IAAM,QAAQ,UAAU,wBAAwB,MAAQ9F,EAAIW,GAAG,uBAAuB,KAAO,SAAS,eAAe,GAAG,SAAW,GAAG,MAAQ,IAAI0D,GAAG,CAAC,KAAO,SAASC,GAAQtE,EAAI0F,OAASC,KAAKC,IAAI7L,MAAM4L,KAAM3F,EAAI4B,KAAKiE,SAAStD,KAAI,SAAUhE,GAAK,OAAOA,EAAEuH,QAAW9F,EAAI0F,OAASC,KAAKC,IAAI7L,MAAM4L,KAAM3F,EAAI4B,KAAKiE,SAAStD,KAAI,SAAUhE,GAAK,OAAOA,EAAEuH,QAAW9F,EAAI0F,OAAS1F,EAAI0F,QAAS,QAAU,SAASpB,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,mBAAmBC,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI4B,KAAKsE,UAAYlG,EAAImG,YAAY7B,KAAU8B,MAAM,CAACtH,MAAOkB,EAAU,OAAEqG,SAAS,SAAUC,GAAMtG,EAAI0F,OAAO1F,EAAIuG,GAAGD,IAAME,WAAW,aAAa,GAAGpG,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,aAAa,QAAQ,KAAO,MAAM,CAACJ,EAAG,UAAU,CAACE,YAAY,uBAAuBE,MAAM,CAAC,OAAS,OAAO,MAAQR,EAAIyG,YAAc,UAAW,YAAY,CAACrG,EAAG,OAAO,CAACE,YAAY,qCAAqC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAkC,CAAC+F,eAAgB1G,EAAI0G,kBAAkB,OAAOtG,EAAG,OAAO,CAACE,YAAY,OAAOgB,MAAM,CAAEtB,EAAIyG,YAAc,CAAC,MAAS,WAAa,CAAC,MAAS,MAAO,CAACzG,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI2G,eAAe3G,EAAI4B,MAAMgF,SAAS5G,EAAI0F,SAAS,UAAU,IAAI,IAAI,GAAGtF,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACG,YAAY,CAAC,OAAS,SAAS,CAACP,EAAIS,GAAG,UAAU,GAAGL,EAAG,iBAAiB,CAACE,YAAY,sBAAsBE,MAAM,CAAC,UAAU,8BAA8B,CAACJ,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQ,GAAG,UAAU,oCAAoCM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACz6G,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAC9B,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACvG,MAAM,CAAC,MAAQ,UAAU,UAAU,6BAA6B,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,qCAAqC,CAACL,EAAG,OAAO,CAACE,YAAY,cAAcE,MAAM,CAAC,UAAU,sBAAsB,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4B,KAAKoF,cAAc,OAAO5G,EAAG,MAAMA,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,iCAAiC,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIyG,YAAc,mBAAqBzG,EAAIW,GAAG,sBAAsB,KAAKX,EAAIU,GAAGV,EAAIiH,OAAOjH,EAAI4B,KAAKsF,YAAYC,OAAO,eAAe,SAAS/G,EAAG,YAAaJ,EAAIY,EAAElC,IAAIsB,EAAIoH,YAAa,YAAcpH,EAAIY,EAAElC,IAAIsB,EAAIoH,YAAa,CAAC,SAAU,eAAgB,CAAEpH,EAAIyG,UAAUzG,EAAI4B,MAAO,CAACxB,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAUR,EAAI4B,KAAKyF,cAAc,MAAQ,UAAU,UAAU,6BAA6BhD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIsH,mBAAmBtH,EAAI4B,SAAS,CAACxB,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,qBAAqBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIjB,EAAE,+BAA+B,MAAM,IAAKiB,EAAIgI,eAAiBhI,EAAIgI,aAAa63C,sBAAsB7/C,EAAI4B,MAAOxB,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC9lC,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAC9B,MAAO,CAACJ,EAAG,MAAMJ,EAAI8G,GAAG,GAAGzC,GAAI,CAACjE,EAAG,QAAQJ,EAAI+G,GAAG,CAACzG,YAAY,OAAOE,MAAM,CAAC,MAAQ,UAAU,UAAU,yBAAyB,SAAWR,EAAIgI,eAAiBhI,EAAIgI,aAAa63C,sBAAsB7/C,EAAI4B,OAAOyC,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,WAAW/N,MAAM,KAAMgO,cAAc,QAAQvH,GAAM,GAAO,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,QAAQ,OAAO,MAAK,EAAM,aAAa,CAACP,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wDAAwD,SAAS,CAAEX,EAAIuH,4BAA4BvH,EAAI4B,MAAOxB,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,WAAW6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIyH,cAAczH,EAAI4B,SAAS,CAAC5B,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,OAAOP,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,WAAW6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,WAAW/N,MAAM,KAAMgO,cAAc,CAAC/H,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,SAASX,EAAIgF,MAAM,GAAIhF,EAAI0E,aAAoB,QAAEtE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,UAAU,kBAAkB,iBAAiBR,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI0E,aAAaC,SAAU,EAAO3E,EAAI4B,KAAKsG,SAAWlI,EAAIyH,cAAczH,EAAI4B,OAAO,eAAe5B,EAAImI,cAAcrH,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuC,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,WAAW,CAACF,EAAG,OAAO,CAACE,YAAY,UAAUE,MAAM,CAAC,UAAU,qBAAqB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAMiC,EAAI0E,aAAaE,aAAaH,yBAA0BhD,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAI0E,aAAoB,QAAE2B,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAI0E,aAAc,UAAW4B,IAAME,WAAW,0BAA0BxG,EAAIgF,MAAM,IACx8DtD,EAAkB,G,giCCiQtB,MAAM,EAAN,oDAEA,oCACEC,MAAO,CAILC,KAAM,CACJ1F,KAAM7C,OACNiP,QAAS,SAKb,MAAM3G,EAAO4G,GACX,MAAMxJ,EAAIwJ,EAAQC,KAAK7H,GAEjBgpD,EAAiB,OAA3B,SAA2B,CAA3B,IAEUlhD,EAAU,OAApB,cAAoB,CAApB,uBAEUrB,EAAc,OAAxB,cAAwB,CAAxB,wCAEUV,EAAiB,OAA3B,cAA2B,CAA3B,yCAEUgC,EAAa,OAAvB,cAAuB,CAAvB,gDAEUhD,EAAS,OAAnB,SAAmB,CAAnB,SAEUhB,EAAe,OAAzB,SAAyB,CAAzB,CACMC,SAAS,EACTC,aAAc,IAAI6S,IAIdzP,EAAe,OAAzB,cAAyB,CAAzB,+CAEUvB,EAAY,IAAMQ,SAASyC,KAAK/H,EAAMC,KAAKsF,WAAY,QAAU,EAEjEI,EAAV,iCACA,SACA,OACA,sBAEA,iFAGA,aARA,sDAWUqC,EAAoB/H,GAAQ,KAAtC,gCAEUuG,EAAe,KACnBzD,EAAa5F,MAAM6F,SAAU,EAC7BD,EAAa5F,MAAM8F,aAAe,IAAI6S,GAGlC3P,EAAV,gCAEA,kEAEA,6CAJA,qDAOUL,EAAgB7F,IAChBoG,EAAalJ,OACfkJ,EAAalJ,MAAM8K,WAAW5B,EAAalJ,MAAM+K,WAAWC,QAAQlI,GAAO,IAIzE+E,EAAiB,OAA3B,cAA2B,CAA3B,QACM,IAAK/E,EAAKiE,SACR,OAAO,IAAf,oBAGM,IAAIiD,EAEFA,EAD2B,kBAAlBlH,EAAKiE,SACHkD,KAAKC,MAAMpH,EAAKiE,UAEhB,IAAIjE,EAAKiE,UAGtB,MAAMkE,EAAW,IAAIjB,GAAUG,KAAK,CAAC,EAA3C,sCAEYe,EAAYD,EAASE,KAAK,IAAtC,8DAEM,OAAKD,EAIE,IAAb,0BAHe,IAAf,sBAMUzC,EAA8B,OAAxC,cAAwC,CAAxC,QACM,GAA2B,OAAvBS,EAAalJ,MACf,OAAO,EAGT,MAAMsL,EAAcpC,EAAalJ,MAAMuL,MAAMC,UAAUpJ,GAAQA,EAAKqJ,MAAQ3I,EAAK2I,KAEjF,OAAwB,IAAjBH,IAGH2Q,EAAwBtI,GAAM66B,EAAgBtrC,aAAayQ,GAAIiU,YAE/DkjC,EAAV,gCACA,4BAEA,+CAHA,qDAMUzjD,EAAc,IAAM9J,GACpB6N,SAAS7N,EAAME,OAAOuC,MAAO,KAAOoL,SAAS7N,EAAME,OAAOqJ,IAAK,IAC1DvJ,EAAME,OAAOqJ,IAElBsE,SAAS7N,EAAME,OAAO4N,IAAK,IAAMD,SAAS7N,EAAME,OAAOuC,MAAO,IACzDzC,EAAME,OAAO4N,IAEf9N,EAAME,OAAOuC,MAGtB,MAAO,CACL2I,gBACAK,aACAK,eACAwB,oBACArC,qBACAb,YACA/B,eACAiC,iBACAD,iBACAU,cACAG,8BACAxI,IACA2G,SACAqV,wBACA6uC,YACAD,iBACAxjD,cACA6B,mBCpZ0V,I,yJCO5VnF,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAchC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAaC,OAAA,KAAK1H,QAAA,KAAM4H,OAAA,KAAKC,SAAA,KAAOC,UAAA,KAAQC,aAAA,KAAWC,WAAA,Q,qiCC9BjF,QACbxJ,MAAO,CAEL01C,KAAMh+C,OAGNquD,IAAKruD,OAGLwwD,UAAWxwD,OAGXywD,SAAU15C,QAGV25C,MAAO36C,MAGP4rC,SAAU5qC,QAGV45C,eAAgB55C,QAGhBtR,MAAOzF,OAGP4wD,aAAc,CAAE/tD,KAAM7C,OAAQiP,QAAS,QAGvC4hD,iBAAkBv9C,UAGpB/T,OACE,MAAO,CACLA,KAAM,GACNuxD,uBAAuB,IAI3BtoD,SAAU,EAAF,KACHkwC,eAAW,OAAQ,CAAEqY,cAAe,gBADjC,IAMNC,aACE,OAAQzpD,EAAEyQ,YAAYpR,KAAK4pD,YAAc5pD,KAAK6pD,UAMhDQ,eACE,YAAyCtsD,IAAlC4C,EAAElC,IAAIuB,KAAKynD,IAAK,eAMzB6C,eACE,MAAM3vD,EAAIqF,KAAK8pD,MAAQ,CAAC,YAAa9pD,KAAK8pD,OAAS,SAC7Cl+C,EAAKjL,EAAEsB,QAAQjC,KAAKnB,OAAsBmB,KAAKgqD,cAAgB,GAAlChqD,KAAKnB,MAKxC,OAHImB,KAAKkqD,wBACPlqD,KAAKkqD,uBAAwB,GAExBvpD,EAAElC,IAAIuB,KAAKynD,IAAK9sD,EAAGiR,IAO5B2+C,iBACE,MAAMrsD,EAAI8B,KAAKiqD,kBACVjqD,KAAKiqD,iBAAiBjqD,KAAKrH,KAAMqH,KAAKsqD,eACtC3pD,EAAEoQ,QAAQ/Q,KAAKrH,KAAMqH,KAAKsqD,cAI/B,OAHItqD,KAAKynD,KAAOznD,KAAKmqD,cAAcnqD,KAAKynD,IAAIn9C,OAASpM,GACnD8B,KAAKwqD,eAAe,CAAElgD,IAAKtK,KAAKynD,IAAIn9C,IAAKmgD,SAAUvsD,IAE9CA,GAGTwsD,mBACE,OAAO1qD,KAAK+pD,iBAAmB/pD,KAAKuqD,kBAIxC18C,MAAO,CACL,aAAc,CACZ+/B,MAAM,EAEN+Z,UACE3nD,KAAKkqD,uBAAwB,EAC7BlqD,KAAK2oC,UAAU,KACb3oC,KAAKrH,KAAOqH,KAAK2qD,oBACjB3qD,KAAKsM,MAAM,QAAStM,KAAKrH,MACzBqH,KAAK4qD,UAAU,CACbtgD,IAAKtK,KAAKynD,IAAIn9C,IACdugD,SAAU7qD,KAAKynD,IAAI5P,OAAOvtC,UAMlCzL,MAAO,CACL+uC,MAAM,EAEN+Z,QAAQ75C,GACN9N,KAAKrH,MAAQqH,KAAKynD,KAAOznD,KAAKuqD,eAC1BvqD,KAAK2qD,oBACL78C,IAIRnV,KAAM,CACJi1C,MAAM,EAEN+Z,QAAQ75C,GACF9N,KAAKuqD,gBACPvqD,KAAKsM,MAAM,QAASwB,MAM5BmrC,UACEj5C,KAAKrH,KAAOqH,KAAK2qD,oBACjB3qD,KAAKsM,MAAM,QAAStM,KAAKrH,OAG3B8J,QAAS,EAAF,KACFwvC,eAAW,OAAQ,CACpBuY,eAAgB,cAChBI,UAAW,eAHR,IAOLD,oBACE,OAAOhqD,EAAEgQ,UAAU3Q,KAAKsqD,eAMpBQ,aAAa,iCACjB,EAAKx+C,MAAM,gBAAiB,EAAKm7C,IAAK,EAAK9uD,QAD1B,Q,iMChJvB,MAAMyK,EAAc,cAEdC,GAAK,IAAG,cAAwBC,OAGX,0BACrB,MAAO,CACLynD,MAAO,GACPC,OAAQ,GACRhpD,KAAM,GACNwC,aAAc,GACduK,aAAc,GACdk8C,SAAU,EACV7hD,MAAO,EACPkL,YAAa,GACbC,kBAAmB,GACnBO,qBAAsB,GACtB3P,kBAAmB,GACnBD,wBAAyB,GACzBinB,OAAQ,GACRxP,kBAAmB,GACnBuuC,gBAAiB,GACjBC,kBAAmB,GACnB5gB,WAAY,KACZxe,cAAe,GACfq/B,QAAS,MAIO,qBAACzyD,GACfA,EAAK2b,cACPtU,KAAKwU,wBAA0B7b,EAAK4b,kBAAkB1E,QAAQlX,EAAK2b,YAAa,IAAIG,QAIjE,0BACrB,MAAuB,UAAhBG,OAAKpH,OAAqBxN,KAAKsU,YAActU,KAAK6U,eAG3B,mCAC9B,MAAuB,UAAhBD,OAAKpH,OAAqBxN,KAAK8U,qBAAuB9U,KAAK+U,wBAGvC,gCAC3B,MAAuB,UAAhBH,OAAKpH,OAAqBxN,KAAKwU,wBAA0BxU,KAAKgV,qBAG1C,gCAC3B,MAAuB,UAAhBJ,OAAKpH,OAAqBxN,KAAKmF,kBAAkB0K,QAAQ,KAAM,IAAM7P,KAAKiV,qBAAqBpF,QAAQ,KAAM,IAGnF,sCACjC,MAAuB,UAAhB+E,OAAKpH,OAAqBxN,KAAKkF,wBAAwB2K,QAAQ,KAAM,IAAM7P,KAAKkV,2BAA2BrF,QAAQ,KAAM,IAG1G,2BACtB,OAAK7P,KAAKmV,UAGHP,OAAK9V,EAAG,+BAA8BkB,KAAKmV,UAAUtF,QAAQ,YAAa,IAAI4E,QAF5E,IAKE,gBACX,QAAIzU,KAAKwK,cACyE,QAAzExK,KAAKwK,aAAa9H,MAAM,KAAKC,MAAMyS,WAAW,IAAK,IAAI3K,gBA9D3D,gBACY,aADZ,GAoEI,cACblH,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,qLC9EzC,MAAMD,EAAc,kBAEdC,GAAK,IAAG,cAA4BC,OAGf,0BACrB,MAAO,CACL+nD,wBAAyB,MALtB,gBACY,iBADZ,GAUI,cACb9nD,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,gECtBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,eAAe,CAACI,MAAM,CAAC,cAAc,cAAc,MAAQR,EAAIW,GAAG,iBAAiB,cAAc,GAAG,eAAe,GAAG,KAAO,GAAG,gBAAgB,GAAG,MAAQ,IAAIyF,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAI+P,WAAWzJ,GAAKE,WAAW,iBACpV9E,EAAkB,G,YCetB,GACE3D,KAAM,YAENyO,OAAQ,CACV,SCpBkW,I,6CCO9V3J,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAKhC,IAAkBA,EAAW,CAACqI,aAAA,Q,yDCvB9B,W,yCCAA,IAAInL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAGJ,EAAIib,SAG4Ojb,EAAIgF,KAHtO,CAAGhF,EAAIkb,SAAoH9a,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQ,GAAG,eAAe,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC/V,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,UAAUJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,0CAA0CE,MAAM,CAAC,MAAQ,UAAU,MAAQR,EAAImM,MAAM,OAASnM,EAAIgb,SAAS,UAAUxa,GAAM,GAAO6D,GAAI,CAACjE,EAAG,OAAO,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,aAAa,MAAK,EAAM,aAAa,CAACL,EAAG,OAAO,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,0CAHtKP,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQR,EAAImM,MAAM,OAASnM,EAAIgb,OAAO,KAAO,YAG2H5a,EAAG,oBAAoB,CAACA,EAAG,MAAM,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAOkB,EAAY,SAAEwG,WAAW,aAAalG,YAAY,QAAQE,MAAM,CAAC,IAAMR,EAAImb,aAAa,OAASnb,EAAIgb,OAAO,MAAQhb,EAAImM,MAAM,IAAM,aAAa9H,GAAG,CAAC,KAAO,SAASC,GAAQtE,EAAIib,UAAW,GAAM,MAAQ,SAAS3W,GAAQtE,EAAIkb,UAAW,SAAY,IAC1qBxZ,EAAkB,G,msBCwCtB,OAIE3D,KAAM,kBACN4D,MAAO,CACLC,KAAMvI,OACN8S,MAAO,CACLjQ,KAAMuQ,OACN4O,UAAU,GAEZL,OAAQ,CACN9e,KAAMuQ,OACN4O,UAAU,GAEZkwC,cAAe,CACbrvD,KAAMwQ,OACN2O,UAAU,GAEZmwC,QAAS,CACPtvD,KAAMwQ,OACN2O,UAAU,IAGdziB,KAAM,KAAM,CACVqiB,UAAU,EACVC,UAAU,IAEZrZ,SAAU,EAAZ,KACA,wCADA,IAGIsZ,aAAcpX,IACZ,GAAIA,EAAGynD,QACL,OAAOznD,EAAGynD,QAEZ,IAAKznD,EAAGnC,KACN,MAAO,GAET,MAAM8a,EAAO,+BACP+uC,EAAY1nD,EAAGnC,KAAK06B,UAAY,MAAQ,MACxCovB,EAAyB,QAAdD,EAAsB,QAAU,OAC3C9uC,EAAW,GAAG/b,EAAElC,IAAIqF,EAAGnC,KAAM,oBAAqB,IAAIib,iBAAiB4uC,IAC7E,OAAI1nD,EAAGwnD,cACE,GAAG7uC,YAAeC,KAAY5Y,EAAG+Y,eAAe/Y,EAAGnC,KAAKmC,EAAGwnD,kBAAkBG,IAE/E,GAAGhvC,YAAeC,KAAY5Y,EAAG+Y,eAAe/Y,EAAGnC,KAAK2I,OAAOmhD,QCzF4R,I,6FCQpW7oD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAQhC,IAAkBA,EAAW,CAACyY,gBAAA,OAAgBtQ,SAAA,KAAO8B,kBAAA,KAAgB3B,WAAA,Q,yCC3BrE,IAAIpL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,YAAYE,MAAM,CAAC,cAAc,KAAK,CAACR,EAAIiQ,GAAG,YAAY,IACpLvO,EAAkB,G,yDCAlBtE,EAAS,GAMTyF,EAAY,eACdzF,EACA2C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAKhC,IAAkBA,EAAW,CAACiI,aAAA,Q,yCCvB9B,IAAI/K,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,6BAA6BC,YAAY,CAAC,MAAQ,QAAQ,aAAa,QAAQ,OAAS,MAAM,YAAY,UAAU,CAACH,EAAG,UAAU,CAACE,YAAY,sBAAsBE,MAAM,CAAC,IAAM,MAAM,KAAO,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,uCAAuC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sBAAsB,OAAOP,EAAG,QAAQ,CAACE,YAAY,eAAe,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,OAAOP,EAAG,QAAQ,CAACE,YAAY,iCAAiC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yBAAyB,OAAOP,EAAG,QAAQ,CAACE,YAAY,2CAA2C,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,mCAAmCJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,6CAA6C,GAAGP,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,gCAAgCJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,oDAAoD,GAAGP,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,8BAA8BJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,2CAA2C,GAAGP,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,2BAA2BJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,8CAA8C,IAAI,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,wCAAwCJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,8CAA8C,GAAGP,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,6BAA6BJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,mDAAmD,GAAGP,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,iCAAiCJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,+CAA+C,GAAGP,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,MAAQ,OAAO,IAAM,kCAAkCJ,EAAG,OAAO,CAACE,YAAY,iBAAiB8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,2CAA2C,IAAI,IAAI,GAAGP,EAAG,aAAa,CAACE,YAAY,uBAAuBE,MAAM,CAAC,eAAc,EAAM,OAAS,QAAQ,4BAA4B,GAAG,kBAAkB,KAAK,CAACJ,EAAG,kBAAkB,CAACA,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQ,OAAO,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,uBAAuBJ,EAAG,IAAI,CAACE,YAAY,aAAa,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,IAAI,CAACE,YAAY,gBAAgB,CAACN,EAAIS,GAAG,mBAAmBL,EAAG,IAAI,CAACE,YAAY,kCAAkC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,QAAQP,EAAG,IAAI,CAACE,YAAY,kCAAkC,CAACN,EAAIS,GAAG,iCAAiC,IAAI,IAAI,IAC7qIiB,EAAkB,GC0KtB,GACE3D,KAAM,eC5K4V,I,qHCOhW8E,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAAC04C,UAAA,KAAQoQ,YAAA,KAAUC,gBAAA,KAAc/gD,OAAA,KAAKC,aAAA,KAAWC,OAAA,KAAKC,SAAA,Q,kCC7BnF,W,yCCAA,IAAIjL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAY,SAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAQ,CAACn0C,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,uBAAuBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wCAAwC,MAAM,GAAKX,EAAIs0C,aAAsIt0C,EAAIgF,KAA5H5E,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIi6C,qBAAsB,KAAQ,CAACj6C,EAAIS,GAAG,kBAA2B,GAAG,CAACL,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,KAAS,CAACvE,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,wBAAwBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,MAAM,IAAIP,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,aAAaR,EAAIs0C,aAAa,iBAAiBt0C,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAWrE,EAAI85C,UAAU,eAAe,SAASx1C,GAAQtE,EAAIi6C,qBAAqB,IAAQn5C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAMiC,EAAIW,GAAG,sCAAuCc,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAIi6C,oBAAoB3zC,GAAKE,WAAW,yBAA0BxG,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,SAAS,OAAQ,EAAK,aAAaR,EAAI40C,mBAAmB,kBAAkB50C,EAAIuoB,YAAY,iBAAiBvoB,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAW,SAASC,GAAQtE,EAAI2E,SAAU,GAAQ,eAAe,SAASL,GAAQtE,EAAI2E,SAAU,EAAM3E,EAAI85C,cAAch5C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4BAA4B,UAAU,GAAGX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,KAAKc,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIu0C,cAAc,UAAU,QAAQn0C,EAAG,sBAAsB,CAACG,YAAY,CAAC,mBAAmB,UAAU,UAAU,iBAAiBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAiB,cAAEqG,SAAS,SAAUC,GAAMtG,EAAIu0C,cAAcjuC,GAAKE,WAAW,kBAAkB,CAACpG,EAAG,MAAM,CAACyG,IAAI,qBAAqBtG,YAAY,CAAC,OAAS,sBAAsB,CAACH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAS,CAACn0C,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAIT,EAAiB,cAAEI,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAYR,EAAI+5C,cAAc,cAAc,OAAO/5C,EAAIgF,MAAM,MAAM,IACpgItD,EAAkB,G,q/DCqJtB,OACE3D,KAAM,oBACN4D,MAAO,CACLu4C,OAAQ,CACNh+C,KAAMwQ,SAGV,OACE,MAAO,CACLstC,UAAU,EACVD,cAAe,GACfnF,oBAAoB,EACpBrsB,aAAa,EACb0xB,qBAAqB,EACrBlxB,WAAY,KACZ0rB,cAAe,EACfC,aAAc,EACd/vC,SAAS,EACT2vC,cAAc,EACdC,eAAe,IAGnB1yC,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IAAM,CACrB2hB,IAAK,IACLyD,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,EACVC,gBAAiB,EACjBC,cAAe,OACfC,kBAAkB,EAClBC,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB,OAAN,WACQvqB,KAAKoE,GAAG,mBAAoBomB,IAC1BxqB,KAAKyqB,iBACLzqB,KAAK0qB,QAAQF,KAEfxqB,KAAKoE,GAAG,QAAhB,iCACA,mBADA,uDAGQpE,KAAKoE,GAAG,UAAhB,eACUN,EAAG6wC,oBAAqB,EACxB7wC,EAAGY,SAAU,QACvB,wBAGQ1E,KAAKoE,GAAG,UAAW,KACjBN,EAAG6wC,oBAAqB,IAG1B30C,KAAKoE,GAAG,YAAhB,iCACA,qIACA,uCACA,kCACA,cACA,iBACA,+BACA,mBACA,oBACA,gBACA,gBAGA,+CAbA,4DAmBEyJ,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,MAGtB,OAAO6B,GACDA,GACF3qB,KAAK+5C,UAAW,EAChB/5C,KAAK85C,cAAgB95C,KAAKi6C,QAE1Bj6C,KAAK+5C,UAAW,IAKtB,UACE,MAAMlvB,EAAiB,IAAIC,eAAe,KAExC9qB,KAAKy0C,aAAez0C,KAAKyN,MAAMsd,mBAAmBC,wBAAwB9e,MAAQ,GAClF,MAAM+e,EAAQ,IAAM,GACpBjrB,KAAKw0C,cAAgBx0C,KAAKy0C,aAAexpB,IAE3CJ,EAAeK,QAAQlrB,KAAKyN,MAAMsd,qBAEpCtoB,QAAS,CAEP,cAAJ,oCACA,mCACA,uCACA,kCACA,gBAJA,IAMI,YAAJ,iCACA,qCACA,cACA,yBACA,mBACA,kCACA,mBANA,IAQI,WACE,MAAO,+iBC1R6V,I,yGCOtWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMioB,oBAAA,KAAkBC,WAAA,Q,yDC5B3E,W,qLCGA,MAAMhoB,EAAc,eAEdC,GAAK,IAAG,cAA0BC,OAGf,0BACrB,MAAO,KAJA,gBACU,eADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,kCCrBzC,W,qFCAA,SAASuoD,IACP,MAAMh9B,EAAU4I,UACVjU,EAAW,GAQjB,OAPAqL,EAAQjQ,OAAOrL,QAAQnU,IACrB,MAAMi3B,EAAUj3B,EAAIynC,MAAM,uBAC1B,GAAIxQ,GAAWA,EAAQj9B,OAAS,EAAG,CACjC,MAAMqU,EAAS4oB,EAAQ,GACvB7S,EAAS/V,GAAUohB,EAAQzvB,MAGxBokB,EAGMqoC,U,YCLflgD,aAAI+iB,IAAIo9B,QAEO,WAAIA,OAAQ,CACzBC,eAAgB,QAChBvoC,SAAU5iB,OAAE0Q,aACV,GACA06C,M,qLCXJ,MAAM3oD,EAAc,YAEdC,GAAK,IAAG,cAAuBC,OAGV,0BACrB,MAAO,CACL+R,UAAW,GACXC,SAAU,GACVyc,MAAO,GACPvpB,QAAS,MARN,gBACY,YADZ,GAaI,cACbjF,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,yCCzBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACA,EAAG,eAAe,CAACE,YAAY,OAAOC,YAAY,CAAC,mBAAmB,UAAU,MAAQ,UAAU,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIY,EAAElC,IAAIsB,EAAI6nB,eAAe,GAAI,UAAU,OAAOznB,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQ,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAI6nB,eAAe/nB,MAAM,IAAI,SAASoB,EAAKhI,GAAG,OAAOkH,EAAG,KAAK,CAAChB,IAAI8B,EAAKC,MAAMC,MAAM,CAAC,KAASlI,EAAI,IAAM,IAAK,CAACkH,EAAG,KAAK,CAACG,YAAY,CAAC,QAAU,OAAO,cAAc,WAAW,CAACH,EAAG,MAAM,CAACE,YAAY,OAAOE,MAAM,CAAC,IAAO,QAAWU,EAAS,KAAI,OAAQ,MAAQ,OAAO,OAAS,UAAUlB,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKC,OAAO,OAAOf,EAAG,KAAK,CAACA,EAAG,OAAO,CAACkB,MAAM,CAAE,CAAEC,MAAOvB,EAAIwB,aAAaN,EAAKpC,UAAY,CAACkB,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKpC,OAAO,cAAa,KAAK2C,OAAM,QAAW,IAC70BC,EAAkB,G,urBCsCtB,OACE3D,KAAM,kBACN4D,MAAO,CACLC,KAAMvI,QAERwI,SAAU,CACR,iBACE,IAAIC,EAAY,GAEhB,MAAMjB,EAAeD,EAAElC,IAAIuB,KAAKsE,eAAgB,kBAAmB,IAGjEzC,EADElB,EAAEsB,QAAQrB,GACA,CACpB,CAAU,MAAV,KAAU,MAAV,qBACA,CAAU,MAAV,kBAAU,MAAV,KACA,CAAU,MAAV,oBAAU,MAAV,KACA,CAAU,MAAV,qBAAU,MAAV,KACA,CAAU,MAAV,6BAAU,MAAV,KACA,CAAU,MAAV,mBAAU,MAAV,KACA,CAAU,MAAV,WAAU,MAAV,MAGoBA,EAAasB,OAAOC,GAA4B,OAAnBA,EAAMC,UACvD,6BACA,SAAU,MAAV,cAAU,MAAV,WAGM,MAAMC,EAAQ,CACpB,WACA,WACA,iBACA,OACA,QACA,YAEM,OAAOR,EAAUS,IAAI,CAACC,EAAKC,IAAU,EAA3C,0BAGEC,QAAS,CACP,aAAa5D,GACX,OAAQA,GACN,IAAK,OACL,IAAK,MACH,MAAO,QACT,IAAK,OACL,IAAK,KACH,MAAO,MACT,QACE,MAAO,OCvFuV,I,iFCQpW+D,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAOhC,IAAkBA,EAAW,CAACC,QAAA,KAAM0N,WAAA,OAAWpN,eAAA,Q,qLCvB/C,MAAMC,EAAc,kBAEdC,GAAK,IAAG,cAA4BC,OAGjB,0BACrB,MAAO,CACL0oD,QAAS,GACTtlC,IAAK,IACLulC,QAAS,EACTC,WAAY,EACZhgD,MAAO,IACP/S,OAAQ,IACR4hB,OAAQ,IACRoxC,UAAW,IACXC,QAAS,IACTC,aAAc,QAdT,gBACU,iBADV,GAmBI,cACb9oD,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,yCC/BzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,SAAS,CAACG,YAAY,CAAC,gBAAgB,IAAI,mBAAmB,WAAWC,MAAM,CAAC,KAAO,KAAK,CAAER,EAAe,WAAE,CAACI,EAAG,eAAe,CAACI,MAAM,CAAC,QAAUR,EAAIusD,kBAAkB,MAAQvsD,EAAIwsD,MAAM,QAAUxsD,EAAIY,EAAEsB,QAAQlC,EAAIwsD,OAAO,sBAAsB,GAAG,eAAexsD,EAAIW,GAAG,0BAA0B,eAAeX,EAAIW,GAAG,uBAAuB,qBAAqB,GAAG,UAAU,aAAa,eAAe,CAAE,sBAAuBX,EAAIW,GAAG,yBACpnB,YAAc,WAAcX,EAAIW,GAAG,aAAgB,SAAWG,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,oBAAoB,CAACE,YAAY,oCAAoCE,MAAM,CAAC,MAAQ,OAAO,QAAU,GAAG,KAAO,iBAAiB,MAAQ,CAACisD,YAAa,cAAgBzsD,EAAI0sD,gBAAiBjrD,OAAM,GAAM,CAACrC,IAAI,oBAAoB4B,GAAG,SAAS6F,GACtW,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,MAAM,CAACE,YAAY,OAAOC,YAAY,CAAC,QAAU,OAAO,cAAc,WAAW,CAACH,EAAG,wBAAwB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOU,EAAK,kBAAkB,OAAO,MAAQ,GAAG,OAAS,GAAG,UAAU,gBAAgBd,EAAG,OAAO,CAACA,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,aAAa4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKuD,qBAAqB,MAAM,CAACrF,IAAI,gBAAgB4B,GAAG,SAAS6F,GAC5W,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,iBAAiB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKyN,iBAAiB,CAACvP,IAAI,oBAAoB4B,GAAG,SAAS6F,GAC9H,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,oBAAoB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAK8N,qBAAqB,CAAC5P,IAAI,cAAc4B,GAAG,SAAS6F,GAC/H,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,YAAY4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKwE,eAAe,CAACtG,IAAI,iBAAiB4B,GAAG,SAAS6F,GACpH,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,mBAAmB,CAACR,EAAIS,GAAGT,EAAIU,GAAGQ,EAAKsE,sBAAsB,UAAU,CAACpG,IAAI,gBAAgB4B,GAAG,SAAS6F,GAC/G,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,cAAc,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4mB,SAAS5mB,EAAImP,mBAAmBjO,GAAM,GAAGmI,MAAO,CAAC2d,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBS,gBAAgB,CAAC/H,IAAI,mBAAmB4B,GAAG,SAAS6F,GAClL,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,iBAAiB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKgE,4BAA4B,CAAC9F,IAAI,+BAA+B4B,GAAG,SAAS6F,GACpJ,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,eAAe4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKqE,kCAAkC,CAACnG,IAAI,4BAA4B4B,GAAG,SAAS6F,GACrJ,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,kBAAkB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAK+N,qCAAqC,CAAC7P,IAAI,iBAAiB4B,GAAG,SAAS6F,GAChJ,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,kBAAkB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUzO,EAAI8E,iBAAiB5D,EAAK0H,mBAAmB,CAACxJ,IAAI,yBAAyB4B,GAAG,SAAS6F,GAC3J,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,eAAe4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKoE,kCAAkC,CAAClG,IAAI,WAAW4B,GAAG,SAAS6F,GACpI,IAAI3F,EAAO2F,EAAI3F,KAC5C,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,aAAa,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4mB,SAAShP,WAAW5X,EAAImP,mBAAmBjO,GAAM,GAAGmI,MAAO,IAAMnI,EAAKwE,OAAQ,CAACshB,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBS,iBAAiB,MAAK,EAAM,cAAgBnH,EAAI2sD,cAAiB3sD,EAAI4sD,sBAAsB5sD,EAAI6sD,QAAW7sD,EAAIY,EAAEsB,QAAQlC,EAAIwsD,OAASxsD,EAAIiB,GAAKjB,EAAI0sD,UAAY1sD,EAAI8sD,eAAe1zD,QAAS,SAASqJ,GAAO,OAAOrC,EAAG,oBAAoB,CAAChB,IAAK,SAAWqD,EAAOnC,YAAY,OAAOE,MAAM,CAAC,MAAQ,OAAO,QAAU,GAAG,KAAO,0BAAyBR,EAAIgF,MAAOhF,EAAIY,EAAEsB,QAAQlC,EAAI+sD,oBAAuB/sD,EAAI0sD,UAAW,GAAO1sD,EAAI+sD,kBAAkB3zD,SAAW4G,EAAI0sD,UAAYtsD,EAAG,SAAS,CAACE,YAAY,kDAAkDE,MAAM,CAAC,KAAO,IAAI6D,GAAG,CAAC,MAAQrE,EAAIgtD,oBAAoB,CAAC5sD,EAAG,OAAO,CAACG,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAI,IAAMV,EAAIitD,WAAajtD,EAAIW,GAAG,uBAAyBX,EAAIW,GAAG,6BAA8B,OAAOP,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,6BAA6Bc,MAAM,CAAC,iBAAiBpB,EAAIitD,YAAY1sD,YAAY,CAAC,YAAY,OAAO,OAAS,YAAYP,EAAIgF,MAAM5E,EAAG,UAAU,CAACE,YAAY,YAAYE,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIiB,GAAIjB,EAAS,OAAE,SAAS4B,GAAM,OAAOxB,EAAG,qBAAqB,CAAChB,IAAK,QAAWwC,EAAQ,IAAGpB,MAAM,CAAC,cAAcR,EAAI+sD,kBAAkB,eAAe/sD,EAAIqP,YAAY,uBAAuBrP,EAAImP,mBAAmBvN,GAAM,KAAOA,EAAK,mBAAkB,GAAMyC,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAOtE,EAAIktD,aAAatrD,UAAa5B,EAAI2sD,cAAiB3sD,EAAI4sD,sBAAsB5sD,EAAI6sD,MAAQ7sD,EAAIiB,GAAKjB,EAAI0sD,UAAY1sD,EAAI8sD,eAAe1zD,QAAS,SAASqJ,GAAO,OAAOrC,EAAG,yBAAyB,CAAChB,IAAK,YAAcqD,OAAWzC,EAAIgF,MAAOhF,EAAIY,EAAEsB,QAAQlC,EAAI+sD,oBAAuB/sD,EAAI0sD,UAAW,GAAO1sD,EAAI+sD,kBAAkB3zD,SAAW4G,EAAI0sD,UAAYtsD,EAAG,SAAS,CAACE,YAAY,kDAAkDE,MAAM,CAAC,KAAO,IAAI6D,GAAG,CAAC,MAAQrE,EAAIgtD,oBAAoB,CAAC5sD,EAAG,OAAO,CAACG,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAI,IAAMV,EAAIitD,WAAajtD,EAAIW,GAAG,uBAAyBX,EAAIW,GAAG,6BAA8B,OAAOP,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,6BAA6Bc,MAAM,CAAC,iBAAiBpB,EAAIitD,YAAY1sD,YAAY,CAAC,YAAY,OAAO,OAAS,YAAYP,EAAIgF,MAAM,GAAG5E,EAAG,iBAAiB,CAACE,YAAY,+BAA+BC,YAAY,CAAC,mBAAmB,YAAY,CAAEP,EAAa,UAAEI,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAY,GAAG,MAAQ,MAAM,MAAQ,UAAU,UAAU,sBAAsB6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,cAAevM,EAAI6sD,UAAU,CAAC7sD,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,wBAAwB,OAAOX,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,GAAG,WAAaR,EAAImtD,cAAgBntD,EAAIotD,qBAAqBtsD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACvtF,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAC7C,MAAO,CAACJ,EAAG,MAAMJ,EAAI8G,GAAG,GAAGzC,GAAI,CAAErE,EAAIY,EAAElC,IAAIsB,EAAI4O,KAAM,YAAc5O,EAAIY,EAAElC,IAAIsB,EAAI4O,KAAM,CAAC,SAAU,eAAgBxO,EAAG,QAAQJ,EAAI+G,GAAG,CAACvG,MAAM,CAAC,SAAWR,EAAIyG,WAAazG,EAAImtD,cAAgBntD,EAAIotD,oBAAuBptD,EAAIgI,eAAiBhI,EAAIgI,aAAaC,WAAWjI,EAAIwsD,MAAM,IAAK,UAAY,GAAG,MAAQ,MAAM,MAAQ,UAAU,UAAU,sBAAsBnoD,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIqtD,wBAAwB,QAAQ7sD,GAAM,GAAO,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,OAAOX,EAAIgF,MAAM,SAAS,CAAEhF,EAAsB,mBAAE,CAACA,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0CAA0C,MAAM,CAACX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6CAA6C,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IACptBe,EAAkB,G,4iCC6LtB,MAAM,EAAN,gCAEA,OACE3D,KAAM,gBACNyO,OAAQ,CAAC,EAAX,MACE7K,MAAO,CACLkrD,MAAO,CAAX,aACID,oBAAqB,CAAzB,aACIF,UAAW,CAAf,aACIY,WAAY,CAAhB,cACIj+C,YAAa,CAAjB,aACI5I,UAAW,CAAf,cACIsmD,kBAAmB,CAAvB,4BAEE,OACE,MAAO,CACLnmC,SAAN,IACMqmC,YAAY,EACZM,QAAS,GACTZ,cAAc,IAGlB9qD,SAAU,EAAZ,OACA,iDACA,iCAFA,IAGI,iBACE,OAAO4V,EAAK6B,YAAY,CACtBgd,MAAO,CACLk3B,WAAYvtD,KAAK4sD,SAE3B,oBAGI,QACE,MAAMY,EAAc,CAClBn3B,MAAO,CACLk3B,WAAYvtD,KAAK4sD,QAQrB,OAJK5sD,KAAKgtD,YAAersD,EAAEsB,QAAQjC,KAAK8sD,qBACtCU,EAAYn3B,MAAM/rB,IAAM,CAAhC,6BAGakN,EAAK6B,YAAYm0C,GAAa70D,MAGvCu0D,aAAcppD,GAAMA,EAAGyoD,MAAMv1B,KAAKr1B,GAAyB,gBAAjBA,EAAKiD,SAAqD,MAAxBjD,EAAK4N,iBAA2B5N,EAAKiG,SAEjHulD,mBAAoBrpD,GAAMA,EAAGyoD,MAAMv1B,KAAKr1B,IACtC,MAAM8F,EAAgB9G,EAAElC,IAAIkD,EAAM,wBAAwB,GAC1D,MAAwB,gBAAjBA,EAAKiD,SAA6B6C,IAAkB9F,EAAK+F,WAGlEc,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCuqD,kBAAmBxoD,GAAM,CAC7B,CACM,KAAN,8BACM,MAAN,gBAEA,CACM,KAAN,4BACM,MAAN,YAEA,CACM,KAAN,2BACM,MAAN,gBAEA,CACM,KAAN,4BACM,MAAN,eAEA,CACM,KAAN,0BACM,MAAN,2BAEA,CACM,KAAN,6BACM,MAAN,wBAEA,CACM,KAAN,6BACM,MAAN,aAEA,CACM,KAAN,0BACM,MAAN,qBAEA,CACM,KAAN,sCACM,MAAN,aAEA,CACM,KAAN,sCACM,MAAN,eAGA,CACM,KAAN,6BAAQ,eAAR,2BACM,MAAN,WACM,UAAN,GAEA,CACM,KAAN,4BACM,MAAN,UAEA,CACM,KAAN,4BAAQ,eAAR,2BACM,MAAN,MACM,UAAN,IAEA,UACM8iD,MAAO,SACPzlD,MAAO,CAAC,mBACd,MAIEsB,QAAS,EAAX,KACA,4CADA,IAGI,aAAa5D,GACXmB,KAAKsM,MAAM,qBAAsBzN,IAEnC,WAAW8C,GACT,IACE,OAAOmH,KAAKC,MAAMpH,EAAKiE,UAC/B,SACQ,OAAO,IAGX,oBAAJ,iCACA,2BACA,cAIA,wCAGA,wBACA,QACA,OACA,mBACA,+BAGA,qBAhBA,IAkBI,mBAAmBjE,GACjB,IAAK3B,KAAKqJ,WAAW1H,GACnB,MAAO,GAET,MAAMsiC,EAAmBjkC,KAAKqJ,WAAW1H,GAC/C,+BACM,OAAIsiC,EAAmB,EACdjkC,KAAKqJ,WAAW1H,GAAM9B,OAAO,GAE/BG,KAAKqJ,WAAW1H,GAC7B,kDAEI,UAAU9C,GACR,MAAM4Q,EAAqB9O,EAAE+O,aAAa1P,KAAKoP,aACzCO,EAAK,IAAIC,OAAO,IAAIH,KAAuB,MACjD,OAAK9O,EAAEsB,QAAQjC,KAAK8sD,mBAMbjuD,EALEA,EAAMgR,QACrB,EACA,qDAKI,SAAS49C,GACP,IAAKA,EAAa7nD,SAChB,OAAO,IAAf,wCAEM,MAAM8nD,EAAc5kD,KAAKC,MAAM0kD,EAAa7nD,UAAU,GACtD,OAAK8nD,EAGE,IAAb,8CAFe,IAAf,yCAKI,qBAAJ,iCACA,mCAEA,2DAHA,IAMI,iBAAiBC,GACf,OAAQA,GACN,IAAK,MACH,OAAO3tD,KAAKU,GAAG,8BACjB,IAAK,MACH,OAAOV,KAAKU,GAAG,gCACjB,IAAK,MACH,OAAOV,KAAKU,GAAG,4BACjB,IAAK,MACH,OAAOV,KAAKU,GAAG,6BACjB,QACE,MAAO,SCnaqV,I,qKCQlWkC,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAchC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAaC,OAAA,KAAKC,aAAA,KAAWy8C,aAAA,KAAWx8C,OAAA,KAAKC,SAAA,KAAO8B,kBAAA,KAAgB3B,WAAA,Q,kCCjC7G,W,yCCAA,IAAIpL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,sBAAsB,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAOkB,EAAoB,iBAAEwG,WAAW,sBAAsB,CAACpG,EAAG,cAAc,CAACE,YAAY,kBAAkBC,YAAY,CAAC,aAAa,SAASC,MAAM,CAAC,GAAK,kBAAkB,CAAER,EAAIY,EAAElC,IAAIsB,EAAIpH,KAAK,GAAI,WAAYwH,EAAG,uBAAuB,CAACI,MAAM,CAAC,MAAQR,EAAIpH,KAAK,OAAQ,KAAQwH,EAAG,yBAAyB,CAACI,MAAM,CAAC,MAAQR,EAAIpH,KAAK,OAAQ,MAAS,IAAI,IAClgB8I,EAAkB,GCwCtB,GACEC,MAAO,CAAC,WAAY,OAAQ,gBAC5BE,SAAU,CACRgsD,iBAAkB,CAChB,MACE,OAAO5tD,KAAK6tD,gBAEd,MACE7tD,KAAK8tD,kBAIXrrD,QAAS,CACP,SAAS1H,GACPiF,KAAK+tD,UAAYhzD,EAAEuB,OAAO0xD,aCvD0U,I,yDCOtWprD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAAC0N,UAAAzN,EAAA,KAAU2Q,kBAAA,U,qLCrBxC,MAAMpQ,EAAc,YAEdC,GAAK,IAAG,cAAuBC,OAGZ,0BACrB,MAAO,KAJA,gBACU,YADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,kCCrBzC,W,iMCIA,MAAMD,EAAc,QAEdC,GAAK,IAAG,cAAmBC,OAGN,0BACrB,MAAO,CACLgR,YAAa,GACbC,kBAAmB,GACnBiY,mBAAoB,CAClBC,mBAAmB,EACnBE,qBAAsB,GACtBC,kBAAkB,EAClBC,oBAAqB,GACrBO,qBAAqB,EACrBC,uBAAwB,GACxBC,eAAe,EACfE,iBAAkB,GAClBC,eAAe,EACfE,iBAAkB,GAClBhS,gBAAgB,EAChBkS,kBAAmB,GACnBC,uBAAuB,EACvBC,yBAA0B,KAKZ,qBAACp1B,GAOnB,OANIA,EAAKyb,aACPzb,EAAKyb,WAAa,IAAIC,KAAK1b,EAAKyb,aAE9Bzb,EAAK2b,aAAe3b,EAAK4b,oBAC3BvU,KAAKwU,wBAA0B7b,EAAK4b,kBAAkB1E,QAAQlX,EAAK2b,YAAa,IAAIG,QAE/E9b,EAGc,0BACrB,MAAuB,UAAhBic,OAAKpH,OAAqBxN,KAAKsU,YAActU,KAAK6U,eAG3B,mCAC9B,MAAuB,UAAhBD,OAAKpH,OAAqBxN,KAAK8U,qBAAuB9U,KAAK+U,wBAGvC,gCAC3B,MAAuB,UAAhBH,OAAKpH,OAAqBxN,KAAKwU,wBAA0BxU,KAAKgV,qBAG1C,gCAC3B,MAAuB,UAAhBJ,OAAKpH,OAAqBxN,KAAKmF,kBAAkB0K,QAAQ,KAAM,IAAM7P,KAAKiV,qBAAqBpF,QAAQ,KAAM,IAGnF,sCACjC,MAAuB,UAAhB+E,OAAKpH,OAAqBxN,KAAKkF,wBAAwB2K,QAAQ,KAAM,IAAM7P,KAAKkV,2BAA2BrF,QAAQ,KAAM,IAG1G,2BACtB,OAAK7P,KAAKmV,UAIHP,OAAK9V,EAAG,+BAA8BkB,KAAKmV,UAAUtF,QAAQ,YAAa,IAAI4E,QAH5E,IAME,gBACX,QAAIzU,KAAKwK,cACyE,QAAzExK,KAAKwK,aAAa9H,MAAM,KAAKC,MAAMyS,WAAW,IAAK,IAAI3K,gBAlE3D,gBACY,QADZ,GAwEI,cACblH,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,yCCrFzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,sBAAsB,CAACG,YAAY,CAAC,aAAa,oBAAoB,MAAQ,OAAO,mBAAmB,wBAAwBC,MAAM,CAAC,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAmB,gBAAEqG,SAAS,SAAUC,GAAMtG,EAAIkuD,gBAAgB5nD,GAAKE,WAAW,oBAAoB,CAACpG,EAAG,MAAM,CAACE,YAAY,qBAAqBC,YAAY,CAAC,mBAAmB,cAAc,MAAQ,OAAO,UAAU,KAAK,OAAS,UAAU,CAACH,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIuM,MAAM,kBAAkB,GAAQvM,EAAIkuD,iBAAgB,EAAOluD,EAAImuD,UAAY,KAAM,CAAC/tD,EAAG,SAAS,CAACI,MAAM,CAAC,UAAU,KAAK,CAACR,EAAIS,GAAG,kBAAkB,IAAI,GAAIT,EAAkB,eAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,SAAW,WAAW,IAAM,QAAQ,KAAO,MAAM,UAAY,mBAAmB,UAAU,QAAQ,CAACH,EAAG,SAAS,CAACE,YAAY,QAAQE,MAAM,CAAC,MAAQ,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,qBAAqBL,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,kCAAkC,GAAGT,EAAIgF,KAAK5E,EAAG,MAAM,CAACA,EAAG,UAAU,CAACE,YAAY,OAAOC,YAAY,CAAC,SAAW,QAAQ,IAAM,OAAO,MAAQ,KAAKC,MAAM,CAAC,QAAU,KAAK,CAAER,EAAI4B,MAAQ5B,EAAI4B,KAAKK,KAAM7B,EAAG,MAAM,CAACG,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,SAAS,CAACE,YAAY,cAAcC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,SAAW,GAAG,KAAO,IAAI4F,MAAM,CAACtH,MAAOkB,EAAa,UAAEqG,SAAS,SAAUC,GAAMtG,EAAImuD,UAAU7nD,GAAKE,WAAW,cAAc,CAACpG,EAAG,QAAQ,CAACI,MAAM,CAAC,SAAWR,EAAIouD,qBAA+D,uBAAxCpuD,EAAIouD,oBAAoB7wB,cAAuC,CAACn9B,EAAG,SAAS,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,yBAAyBL,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,0BAA0B,QAAQ,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,SAAWR,EAAIouD,qBAA+D,uBAAxCpuD,EAAIouD,oBAAoB7wB,cAAuC,CAACn9B,EAAG,SAAS,CAACE,YAAY,QAAQ,CAACN,EAAIS,GAAG,kCAAkCL,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,oBAAoB,QAAQ,IAAI,GAAIX,EAAqB,kBAAEI,EAAG,MAAM,CAACE,YAAY,qCAAqCC,YAAY,CAAC,MAAQ,QAAQ,UAAU,KAAK,OAAS,sBAAsB,aAAa,SAAS,CAACH,EAAG,sBAAsB,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,EAAE,cAAgB,GAAG,MAAQ,cAAc,GAAGJ,EAAG,eAAe,CAACG,YAAY,CAAC,YAAY,QAAQ,UAAU,KAAK,OAAS,sBAAsB,aAAa,QAAQ6F,MAAM,CAACtH,MAAOkB,EAAa,UAAEqG,SAAS,SAAUC,GAAMtG,EAAImuD,UAAU7nD,GAAKE,WAAW,cAAc,CAAExG,EAAIouD,qBAA+D,uBAAxCpuD,EAAIouD,oBAAoB7wB,YAAsC,CAACn9B,EAAG,aAAa,CAACE,YAAY,QAAQ,CAACF,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,YAAY,CAACI,MAAM,CAAC,IAAM,GAAG,UAAU,QAAQM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACpzF,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,SAASJ,EAAI8G,GAAG9G,EAAI+G,GAAG,CAACzG,YAAY,OAAOC,YAAY,CAAC,iBAAiB,OAAOC,MAAM,CAAC,MAAQ,YAAY,SAASA,GAAM,GAAO6D,GAAI,CAACrE,EAAIS,GAAG,oCAAoC,MAAK,EAAM,aAAa,CAACL,EAAG,OAAO,CAACgI,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,+CAA+CP,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,OAAO,CAACE,YAAY,kBAAkB,CAACF,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kBAAkBP,EAAG,IAAI,CAACE,YAAY,qCAAqC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIouD,oBAAoBC,QAAQ,cAAc,MAAM,IAAI,CAACjuD,EAAG,aAAa,CAACE,YAAY,QAAQ,CAACF,EAAG,+BAA+B,CAACI,MAAM,CAAC,KAAOR,EAAI4B,QAAQxB,EAAG,mCAAmC,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,QAAS5B,EAA2B,wBAAEI,EAAG,MAAM,CAACE,YAAY,OAAOE,MAAM,CAAC,IAAMR,EAAI4/B,wBAAwB,MAAQ,QAAQ,IAAM,yBAAyB5/B,EAAIgF,MAAM,GAAG5E,EAAG,aAAa,CAACE,YAAY,QAAQ,CAACF,EAAG,iBAAiB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,QAAQxB,EAAG,iCAAiC,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,QAAQxB,EAAG,2BAA2B,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAOR,EAAI4B,SAAS,KAAK,IAAI,GAAGxB,EAAG,MAAM,CAACE,YAAY,mDAAmDC,YAAY,CAAC,OAAS,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,SAAS,CAAEN,EAAIouD,qBAA+D,uBAAxCpuD,EAAIouD,oBAAoB7wB,YAAsCn9B,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAGX,EAAIouD,oBAAoBC,QAAQ,OAAOjuD,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sCAAsC,aAAaP,EAAG,MAAM,CAACyG,IAAI,oBAAoB7G,EAAI8oD,QAAW9oD,EAAIsuD,mBAAsBtuD,EAAIuuD,iBAAkQvuD,EAAIgF,KAApP5E,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAOR,EAAI4B,KAAK,OAAS5B,EAAIwuD,kBAAkB,MAAQxuD,EAAIyuD,iBAAiB,SAAWzuD,EAAI0N,MAAMghD,eAAe,kBAAkB1uD,EAAImc,cAAc,mBAAmBnc,EAAI4b,eAAe,iBAAiB,OAAgB,MAC14Dla,EAAkB,G,+sBC2KtB,MAAM,EAAN,uBACA,OACE3D,KAAM,mBACN4D,MAAO,CACLC,KAAMvI,OACNyvD,OAAQ,CAAZ,0BAEE,OACE,MAAO,CACL6F,0BAA0B,EAC1BF,iBAAkB,EAClBD,kBAAmB,EACnBL,UAAW,EACXD,gBAAiBjuD,KAAK6oD,OACtByF,kBAAkB,IAGtB1sD,SAAU,EAAZ,OACA,+BAAI,kBAAJ,kBACA,wCAFA,IAGI,iBACE,MAAM+sD,EAAqBhuD,EAAElC,IAAIuB,KAAK2B,KAAM,qBAAsB,MAClE,OAAIgtD,QAA4D5wD,IAAtC4wD,EAAmBhzC,eACpCgzC,EAAmBhzC,gBAEpB3b,KAAK2B,KAAK06B,WAEpB,gBACE,MAAMsyB,EAAqBhuD,EAAElC,IAAIuB,KAAK2B,KAAM,qBAAsB,MAClE,OAAIgtD,QAA2D5wD,IAArC4wD,EAAmBzyC,cACpCyyC,EAAmBzyC,cAErBlc,KAAK2B,KAAK06B,WAEnB,sBACE,GAAIr8B,KAAK2B,KAAM,CACb,MAAMhJ,EAAOgI,EAAElC,IAAIqD,EAAYC,aAAa/B,KAAK2B,KAAKK,MAAO,OAAQ,IACrE,OAAOrJ,EAAKqR,KAAK5L,GAAgB,MAAXA,EAAEwwD,MAE1B,OAAO,MAET,0BACE,MAAMnyC,EAAO,+BACPoyC,EAAwBluD,EAAElC,IAAIuB,KAAK2B,KAAM,gCAAgC,GAC/E,GAAIktD,EAAuB,CACzB,MAAM,EAAd,4BACcnyC,EAAcC,EAAkBC,cAArB,gBACjB,MAAO,GAAGH,YAAeC,KAAY1c,KAAK6c,eAAe7c,KAAK2B,KAAKK,YAErE,MAAM2sD,EAAqBhuD,EAAElC,IAAIuB,KAAK2B,KAAM,qBAAsB,MAClE,GAAIgtD,GAAsBA,EAAmB9nB,uBAAwB,CACnE,MAAMnqB,EAAc1c,KAAK2B,KAAKgb,kBAAkBC,cAA/B,gBACjB,MAAO,GAAGH,YAAeC,KAAY1c,KAAK6c,eAAe7c,KAAK2B,KAAKK,uBAAuBhC,KAAK2B,KAAKmlC,YAEtG,OAAO,QAIXj5B,MAAO,CACL,OAAO8c,GACL3qB,KAAKiuD,gBAAkBtjC,EAErBnvB,SAASszD,gBAAgBztD,MAAM0tD,UAD7BpkC,EACyC,SAEA,YAIjD,gBACEhrB,OAAOqvD,oBAAoB,SAAUhvD,KAAKif,eAG5C,UACEtf,OAAO4sC,iBAAiB,SAAUvsC,KAAKif,cACvCjf,KAAKif,eACLjf,KAAKsuD,kBAAmB,GAE1B,UACMtuD,KAAK2B,MAAQ3B,KAAK2B,KAAKK,MAA/B,uBAEES,QAAS,CAEP,eACMzC,KAAK6oD,QACH7oD,KAAKkc,cACPlc,KAAKwuD,iBAAmB7uD,OAAOsvD,WAAa,IAE5CjvD,KAAKwuD,iBAAmB7uD,OAAOsvD,WAAa,IAE9CjvD,KAAKuuD,kBAAoB5uD,OAAOuvD,YAAc,MAE9ClvD,KAAKwuD,iBAAmB,EACxBxuD,KAAKuuD,kBAAoB,MC3QwU,I,iLCQrW3rD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAehC,IAAkBA,EAAW,CAACmnC,SAAA,KAAOr/B,OAAA,KAAKxH,QAAA,KAAMioB,oBAAA,KAAkB1J,oBAAA,KAAkB1W,SAAA,KAAOokD,OAAA,KAAKC,WAAA,KAASC,QAAA,KAAMC,aAAA,KAAWpkD,WAAA,Q,kCClC3G,QACbzI,QAAS,CACP8sD,kBAAkBC,GAChB,MAAMC,EAAgB,CACpB,WACA,WACA,OACA,SACA,MACA,WAGF,OAAOA,EACJntD,IAAIpB,GAASsuD,EAAQtuD,IACrBgB,OAAOhB,KAAWA,GAClBgkC,KAAK,U,kCCfd,W,yCCAA,IAAIplC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACF,EAAG,UAAU,CAAC6M,WAAW,CAAC,CAAClP,KAAK,YAAYmP,QAAQ,cAAcpO,MAAM,CAC5N8oD,QAAS5nD,EAAI2vD,YACbp9C,QAAS,CACPq9C,UAAW,CAAC,KAEbppD,WAAW,+FAA+FlG,YAAY,YAAYE,MAAM,CAAC,IAAM,MAAM,UAAY,KAAK,MAAQR,EAAI6vD,UAAU,OAAS7vD,EAAI8vD,aAAa,CAAC1vD,EAAG,SAAS,CAAC6M,WAAW,CAAC,CAAClP,KAAK,OAAOmP,QAAQ,SAASpO,MAAOkB,EAAY,SAAEwG,WAAW,aAAaK,IAAI,YAAYtG,YAAY,CAAC,UAAY,OAAOC,MAAM,CAAC,GAAK,YAAY,UAAU,aAAa,MAAQR,EAAI6vD,UAAU,OAAS7vD,EAAI8vD,cAAgB9vD,EAAIib,SAAqPjb,EAAIgF,KAA/O5E,EAAG,oBAAoB,CAACI,MAAM,CAAC,OAASR,EAAI8vD,WAAW,KAAO,8KAAuL,IAAI,IACvtBpuD,EAAkB,G,4TCiCtB,OACEC,MAAO,CACLo0C,KAAM,CACJ75C,KAAM7C,OACNgiB,UAAU,GAEZ2nC,WAAY,CACV9mD,KAAMuQ,OACN4O,UAAU,GAEZ4nC,aAAc,CACZ/mD,KAAM7C,SAIVT,KAAM,KAAM,CACVoiB,OAAQ,EACR7O,MAAO,EACP8O,UAAU,IAGZpZ,SAAU,CACRiuD,WAAY/rD,GAAM,EAAtB,sCACI8rD,UAAW9rD,GAAM,EAArB,kDACIgsD,OAAQ,IAAM,GACdC,UAAW,IAAM,EAArB,IAGEliD,MAAO,CACL,aACE7N,KAAKgwD,YAIT,UACEhwD,KAAKgwD,WAGPvtD,QAAS,CAEP,cACEzC,KAAKsM,MAAM,gBAAiBtM,KAAK81C,KAAKma,aAGxC,UAAJ,iCACA,IACA,eACA,OAGA,oDACA,+BACA,yCACA,2BACA,0BACA,qBACA,kBACA,gBAEA,qCACA,cACA,oBACA,gBAEA,SACA,oBArBA,MCnFkW,I,sGCQ9VrtD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAACmI,SAAA,KAAO8B,kBAAA,OAMrC,IAAkBjK,EAAW,CAACstD,UAAA,U,45tDC/B9B,IAAIpwD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,+CAA+CC,YAAY,CAAC,mBAAmB,UAAU,aAAa,UAAU,CAACH,EAAG,OAAO,CAACE,YAAY,uBAAuBC,YAAY,CAAC,MAAQ,sBAAsBC,MAAM,CAAC,UAAU,wBAAwB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmCP,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,MAAQ,cAAc,OAAS,OAAO,wBAAwB,0BAA0B,qBAAqB,cAAc,CAACP,EAAIiB,GAAIjB,EAAsB,oBAAE,SAASykD,EAAQvrD,GAAG,MAAO,CAACkH,EAAG,OAAO,CAAChB,IAAK,OAASlG,EAAGoH,YAAY,aAAaC,YAAY,CAAC,MAAQ,WAAWC,MAAM,CAAC,UAAW,kBAAoBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAS,IAANxH,EAAU8G,EAAI0kD,SAAWD,EAAQ3+C,KAAK,KAAK9F,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAAChB,IAAK,SAAWlG,EAAGsH,MAAM,CAAC,UAAW,qBAAuBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4mB,SAAS69B,EAAQp7C,MAAO,CAAC2d,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBS,UAAU,WAAYnH,EAAImP,mBAAmB/V,OAA2I4G,EAAIgF,KAAvI,CAAC5E,EAAG,OAAO,CAACE,YAAY,eAAeC,YAAY,CAAC,MAAQ,QAAQ,MAAQ,YAAY,CAACP,EAAIS,GAAG,oCAA6C,GAAGL,EAAG,4BAA4B,CAACG,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,KAAOR,EAAI4B,SAAS,IACzxCF,EAAkB,G,iCC6CtB,MAAM,EAAN,mBAEA,OACE3D,KAAM,kCACN4D,MAAO,CACLC,KAAMvI,QAERT,KAAM,KAAM,CACVguB,SAAJ,MAEE/kB,SAAU,CACR4G,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCsH,WAAYvF,GAAMgF,KAAKC,MAAMpI,EAAElC,IAAIqF,EAAI,gBAAiB,OAExD2gD,SAAU3gD,IACHA,EAAGnC,KAAK8D,QAAU3B,EAAGnC,KAAK8D,QAAU,EAChC,EAEL3B,EAAGnC,KAAK8D,QAAU,IACb,IAEF3B,EAAGnC,KAAK8D,OAEjB,qBACE,IAAKzF,KAAKqJ,YAAcrJ,KAAKykD,UAAY,EACvC,MAAO,GAGT,MAAMxgB,EAAmBjkC,KAAKqJ,WACpC,oCAEM,OAAI46B,EAAmB,EACdjkC,KAAKqJ,WAAWxJ,OAAO,GAEzBG,KAAKqJ,WAClB,iDClFwX,I,6CCOpXzG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAKhC,IAAkBA,EAAW,CAACiI,aAAA,Q,yDCvB9B,gBAEe,QACb0B,OAAQ,CACN4jD,QAGFzuD,MAAO,CACL7C,MAAO,IAGTo6C,UACEj5C,KAAKowD,iBAAmBzvD,EAAEgQ,UAAU3Q,KAAKnB,QAG3ClG,OACE,MAAO,CACLy3D,iBAAkB,KAItBxuD,SAAU,CACRkO,WAAY,CACVrR,MACE,OAAOuB,KAAKnB,OAGd8M,IAAI9M,GACFmB,KAAKsM,MAAM,QAASzN,KAIxBoR,0BACE,OAAQtP,EAAEoQ,QAAQ/Q,KAAK8P,WAAY9P,KAAKowD,sB,yCCjC9C,IAAItwD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,gBAAgBE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,cAAcE,MAAM,CAAC,aAAa,KAAK,CAAwC,IAAtCR,EAAIkS,aAAao+C,iBAAwBlwD,EAAG,QAAQ,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,KAAO,OAAO,aAAa,UAAU,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,UAAY,GAAG,KAAO,GAAG,MAAQ,UAAU,UAAU,qBAAqB6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAImS,sBAAuB,KAAQ,CAAC/R,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAiC,MAAM,IAAI,GAAGX,EAAIgF,KAAK5E,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,KAAK,CAACR,EAAIiB,GAAIjB,EAAkB,gBAAE,SAASoS,EAAc3P,GAAO,MAAO,CAAgD,aAA9C2P,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,YAAegT,EAAgB,GAAG9R,YAAY,YAAYE,MAAM,CAAC,KAAO,OAAO,aAAa,QAAQ,CAACJ,EAAG,WAAW,CAACE,YAAY,MAAME,MAAM,CAAC,MAAQ,GAAG,OAAS,GAAG,yBAAyB,GAAG,eAAeR,EAAIW,GAAG,kCAAkC,MAAQyR,EAA6B,UAAfpS,EAAIyN,OAAqB,QAAU,YAAa,MAAQzN,EAAI2yC,cAAclwC,GAAO,YAA2B,OAAfzC,EAAIyN,OAAkB,UAAY,OAAO,UAAW,YAAe2E,EAAgB,GAAG,YAAcA,EAAclG,MAAM2Q,cAAcxH,WAAW,IAAK,KAAQ,UAAW,aAAa,KAAK,SAAW,GAAG,eAAe,IAAIhR,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqB1G,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,OAAO4B,GAAG,SAASpI,GAAM,MAAO,CAACwH,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,oBAAoB,CAACR,EAAIS,GAAGT,EAAIU,GAAkB,UAAfV,EAAIyN,OAAqB7U,EAAKsI,KAAK2S,KAAOjb,EAAKsI,KAAK+lD,gBAAgB,MAAK,GAAM7gD,MAAM,CAACtH,MAAOkB,EAAIyzC,eAAerhC,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIyzC,eAAgBrhC,EAAcK,GAAInM,IAAME,WAAW,uCAAuC,GAAkD,aAA9C4L,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,YAAegT,EAAgB,GAAG9R,YAAY,OAAOE,MAAM,CAAC,aAAa,QAAQ,CAACJ,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQ4R,EAA6B,OAAfpS,EAAIyN,OAAkB,WAAa,SAAU,aAAa2E,EAAcG,QAAQ,GAAGE,GAAG,cAAcL,EAAcG,QAAQ,GAAGE,GAAG,UAAW,YAAeL,EAAgB,GAAG,eAAe,IAAI/N,GAAG,CAAC,MAAQ,SAASC,GAAQA,EAAOkD,oBAAqBpB,MAAM,CAACtH,MAAOkB,EAAIyzC,eAAerhC,EAAcK,IAAKpM,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIyzC,eAAgBrhC,EAAcK,GAAInM,IAAME,WAAW,uCAAuC,GAAGxG,EAAIgF,KAAoD,aAA9CoN,EAAcC,eAAe,GAAGC,UAA0BlS,EAAG,QAAQ,CAAChB,IAAK,aAAgBgT,EAAgB,GAAG5R,MAAM,CAAC,UAAW,aAAgB4R,EAAgB,KAAK,CAAChS,EAAG,MAAM,CAACE,YAAY,UAAUC,YAAY,CAAC,MAAQ,oBAAoB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAG0R,EAA6B,OAAfpS,EAAIyN,OAAkB,WAAa,UAAU,OAAOrN,EAAG,MAAM,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4yC,mBAAkC,OAAf5yC,EAAIyN,OAAkB,UAAY,SAAS,SAASzN,EAAIgF,UAAS,IAAI,GAAG5E,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,SAAS,CAAoC,IAAlCR,EAAIkS,aAAaq+C,aAAoBnwD,EAAG,sBAAsB,CAACE,YAAY,mDAAmDE,MAAM,CAAC,KAAOR,EAAI+S,mBAAmB/S,EAAIgF,MAAM,IAAI,GAAG5E,EAAG,QAAQ,CAACE,YAAY,cAAcE,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,OAAOC,YAAY,CAAC,MAAQ,SAASC,MAAM,CAAC,aAAa,MAAM,KAAO,SAAS,CAACJ,EAAG,eAAe,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,GAAG,UAAU,wBAAwB,MAAQR,EAAIW,GAAG,uBAAuB,MAAQ,CAACX,EAAI0S,mBAAmB,IAAM,IAAI,IAAM,UAAU,KAAO,SAAS,eAAe,GAAG,SAAW,IAAIrO,GAAG,CAAC,QAAU,SAASC,GAAQ,CAAC,SAAU,SAASyB,SAASzB,EAAO3H,OAAS2H,EAAO0B,kBAAkB,MAAQ,SAAS1B,GAAQA,EAAOkD,oBAAqBvB,SAAS,CAAC,MAAQ,SAAS3B,GAAQtE,EAAI2S,OAAS3S,EAAImG,YAAY7B,KAAW8B,MAAM,CAACtH,MAAOkB,EAAU,OAAEqG,SAAS,SAAUC,GAAMtG,EAAI2S,OAAOrM,GAAKE,WAAW,aAAa,GAAGpG,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,MAAM,KAAO,SAAS,CAACJ,EAAG,UAAU,CAACE,YAAY,wBAAwBE,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,gCAAiC,CAAC+F,eAAgB1G,EAAI0G,kBAAkB,OAAOtG,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,IAAoB,EAAhBV,EAAIy6C,WAAe5iC,QAAQ,IAAI,UAAU,GAAGzX,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,MAAM,KAAO,SAAS,CAACJ,EAAG,UAAU,CAACE,YAAY,wBAAwBE,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,MAAM,CAACE,YAAY,qCAAqC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,iCAAkC,CAAC+F,eAAgB1G,EAAI0G,kBAAkB,OAAOtG,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,IAAIV,EAAIy6C,UAAYz6C,EAAI2S,QAAQkF,QAAQ,IAAI,UAAU,GAAwC,IAApC7X,EAAIkS,aAAas+C,eAAsBpwD,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,aAAa,MAAM,KAAO,SAAS,CAACJ,EAAG,+BAA+B,CAACI,MAAM,CAAC,UAAUR,EAAIywD,8BAA8BpsD,GAAG,CAAC,OAAS,SAAUhI,GAAS,OAAO2D,EAAIywD,6BAA+Bp0D,OAAa,GAAG2D,EAAIgF,KAAK5E,EAAG,YAAYA,EAAG,QAAQ,CAACE,YAAY,kBAAkBE,MAAM,CAAC,KAAO,OAAO,aAAa,QAAQ,CAAoC,IAAlCR,EAAIkS,aAAaw+C,aAAoBtwD,EAAG,QAAQ,CAACI,MAAM,CAAC,SAAW,GAAG,MAAQ,UAAU,UAAYR,EAAI+S,kBAAoB/S,EAAI2S,OAAO,UAAU,6BAA6BtO,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAIuM,MAAM,aAAc,CAAC2rB,QAAQl4B,EAAI+S,gBAAiB2xC,SAAU1kD,EAAI2S,YAAY,CAAC3S,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,uCAAuC,OAAOX,EAAIgF,MAAM,GAAG5E,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,aAAa,MAAM,KAAO,SAAS,CAAER,EAAIgI,eAAiBhI,EAAIgI,aAAa63C,sBAAsB7/C,EAAI+S,iBAAkB3S,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,IAAIM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GACtoL,IAAIxC,EAAKwC,EAAIxC,GACT7D,EAAQqG,EAAIrG,MAChB,MAAO,CAACJ,EAAG,MAAMJ,EAAI8G,GAAG,GAAGzC,GAAI,CAACjE,EAAG,QAAQJ,EAAI+G,GAAG,CAACvG,MAAM,CAAC,MAAQ,UAAU,UAAU,uBAAuB,UAAYR,EAAI2wD,UAAUtsD,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,gBAAgB,QAAQtH,GAAM,GAAO,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,QAAQ,OAAO,MAAK,EAAM,aAAa,CAACP,EAAG,OAAO,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,kDAAkD,SAASP,EAAG,QAAQ,CAACI,MAAM,CAAC,MAAQ,UAAU,UAAU,uBAAuB,UAAYR,EAAI2wD,UAAUtsD,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAI8H,gBAAgB,CAAC9H,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,mCAAmC,QAAQ,IAAI,GAAIX,EAAI+S,iBAAmB/S,EAAI2S,OAAS3S,EAAI4wD,OAAQxwD,EAAG,QAAQ,CAACE,YAAY,cAAcE,MAAM,CAAC,aAAa,KAAK,CAACJ,EAAG,QAAQ,CAACE,YAAY,YAAYE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,UAAU,CAACE,YAAY,wBAAwBE,MAAM,CAAC,MAAQ,GAAG,MAAQ,UAAU,UAAU,0BAA0B,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACR,EAAIS,GAAG,yBAAyBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA8B,CAACgmB,IAAK3mB,EAAI4wD,UAAU,MAAM,IAAI,IAAI,GAAG5wD,EAAIgF,KAAK5E,EAAG,WAAW,CAACE,YAAY,uBAAuBC,YAAY,CAAC,OAAS,oBAAoB,aAAa,qBAAqBC,MAAM,CAAC,MAAQR,EAAImS,qBAAqB,MAAQ,QAAQ,WAAa,KAAK,CAAC/R,EAAG,SAAS,CAACE,YAAY,QAAQ,CAACF,EAAG,eAAe,CAACE,YAAY,QAAQ,CAACF,EAAG,cAAc,CAACE,YAAY,mBAAmBE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,MAAM,KAAO,OAAO,CAACJ,EAAG,MAAM,CAACE,YAAY,sCAAsC,CAACF,EAAG,iCAAiC,CAACI,MAAM,CAAC,WAAWR,EAAIkS,aAAakJ,QAAQ,MAAQ,GAAG,OAAS,MAAMpb,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIkS,aAA4B,OAAflS,EAAIyN,OAAkB,UAAY,SAAS,MAAM,KAAKrN,EAAG,YAAYA,EAAG,QAAQ,CAACI,MAAM,CAAC,aAAa,QAAQ,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,uBAAuB6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAImS,sBAAuB,KAAU,CAAC/R,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAIS,GAAG,kBAAkB,IAAI,IAAI,IAAI,IAAI,GAAGL,EAAG,cAAc,CAACE,YAAY,4BAA4BC,YAAY,CAAC,OAAS,sBAAsB,CAACH,EAAG,8BAA8B,CAACI,MAAM,CAAC,oBAAoBR,EAAI8yC,gBAAgB,mBAAmB9yC,EAAI6yC,eAAe,kBAAkB7yC,EAAIiT,eAAe,gBAAgBjT,EAAI6wD,OAAO,mBAAmB7wD,EAAI+S,oBAAoB,IAAI,IAAI,IAAI,IACj4ErR,EAAkB,G,4iCCkRtB,OACE3D,KAAM,gBAENyO,OAAQ,CACV,QAGE7K,MAAO,CACLkxC,eAAgB,CACd32C,KAAMwQ,OACNpE,QAAS,IAEXwqC,gBAAiB,CACf52C,KAAMwQ,OACNpE,QAAS,IAEX2K,eAAgB,CACd/W,KAAMkT,MACN9G,QAAS,IAAM,IAEjByqC,aAAc,CACZ72C,KAAM7C,OACNiP,QAAS,QAGX4J,aAAc,CACZhW,KAAM7C,OACNiP,QAAS,SAIb,OACE,MAAO,CACLwoD,aAAc,GACd3+C,sBAAsB,EACtBK,gBAAiB,GACjBG,OAAQ,EACRqgC,UAAW,GACXpsB,SAAN,IACMqsB,iBAAkB3+B,KAAKoD,MACvB+4C,6BAA8B,OAIlC5uD,SAAU,EAAZ,OACA,kCACA,wCAFA,IAGIyrC,gBAAiB,IAAM,EAA3B,yBAEIsjB,OAAQ7sD,GACqC,IAAvCA,EAAGgP,gBAAgBlN,SAASzM,OACvB,EAEFuM,KAAKC,OAAO7B,EAAGgP,gBAAgBlN,SAAStD,IAAIhE,GAAKA,EAAEuH,MAG5D6sC,cAAe5uC,GAAMtB,IACnB,MAAMywC,EAAgBnvC,EAAGkP,eAAexQ,GACxC,IAAKywC,EACH,MAAO,GAGT,MAAMC,EAAgBpvC,EAAGkP,eAAenT,MAAM,EAAG2C,GAAOF,IAAIhE,IAAK,CAAvE,sCAEY+3B,EAAQ,CACZA,MAAO,EAAf,KACA,gBACA,qDAIY8c,EAAervC,EAAGupC,gBAAgBh0B,YAAYgd,GAAO19B,KAE3D,GAA4B,IAAxBw6C,EAAah6C,OACf,MAAO,GAGT,MAAMm6C,EAAMH,EAAa7wC,IAAIhE,GAAK,EAAxC,OACM,GAAmB,IAAfg1C,EAAIn6C,OACN,MAAO,GAGT,MAAMR,EAAO26C,EAAIhxC,IAAIzD,GAASo0C,EAAc3gC,QAAQtI,KAAK+d,GAAUA,EAAOvV,KAAO3T,KAAW,GAG5F,OAAOlG,EAAKuJ,OAAO9D,QAAWL,IAANK,IAG1BwyD,OAAQ9sD,IACN,MAAMuyB,EAAQ,CACZA,MAAO,EAAf,KACA,sBADA,IAEU,CAACvyB,EAAG+uC,iBACd,oBAGM,OAAOxc,GAGT6vB,gBAAiBpiD,GAAMA,EAAGupC,gBAAgBh0B,YAAYvV,EAAG8sD,QAAQj4D,KASjEma,gBAAiBhP,IACf,MAAMuyB,EAAQ,CACZA,MAAO,EAAf,KACA,gBACA,oBAIY4B,EAAUn0B,EAAGupC,gBAAgBh0B,YAAYgd,GAAO19B,KACtD,OAAuB,IAAnBs/B,EAAQ9+B,QAAgB8+B,EAAQ9+B,OAAS,EACpC,KAMF8+B,EAAQ,IAGjBuiB,UAAW12C,IACT,IAAKA,EAAGgP,gBACN,OAAO,IAAf,yCAEM,MAAMg+C,EAAa,IAAIhtD,EAAGgP,gBAAgBlN,UAI1C,GAHAkrD,EAAW9nD,KAAK,CAACC,EAAGC,IAAMe,SAAShB,EAAEpD,IAAK,IAAMoE,SAASf,EAAErD,IAAK,KAG5D/B,EAAG4O,OAASzI,SAAS6mD,EAAW,GAAGjrD,IAAK,IAC1C,OAAO,IAAf,yCAEM,IAAK,IAAI5M,EAAI,EAAGA,EAAI63D,EAAW33D,OAAS,EAAGF,IAAK,CAC9C,MAAM03D,EAAS1mD,SAAS6mD,EAAW73D,GAAG4M,IAAK,IACrCkrD,EAAS9mD,SAAS6mD,EAAW73D,EAAI,GAAG4M,IAAK,IAE/C,GAAI/B,EAAG4O,QAAUi+C,GAAU7sD,EAAG4O,OAASq+C,EACrC,OAAOD,EAAW73D,GAAGmQ,MAGzB,OAAO0nD,EAAWA,EAAW33D,OAAS,GAAGiQ,OAG3ClD,YAAa,IAAM9J,GACb6N,SAAS7N,EAAME,OAAOuC,MAAO,KAAOoL,SAAS7N,EAAME,OAAOqJ,IAAK,IAC1DvJ,EAAME,OAAOqJ,IAElBsE,SAAS7N,EAAME,OAAO4N,IAAK,IAAMD,SAAS7N,EAAME,OAAOuC,MAAO,IACzDzC,EAAME,OAAO4N,IAEf9N,EAAME,OAAOuC,MAGtBu0C,uBAAwBtvC,GAAM,EAAlC,gCACA,yDAEIuvC,uBAAwBvvC,GAAM,EAAlC,gCACA,yDAEI6uC,mBAAoB7uC,IAClB,MAAMm0B,EAAUn0B,EAAGupC,gBAAgBh0B,YAAYvV,EAAG8sD,QAAQj4D,KAAK,GAC/D,OAAKs/B,GAIEn0B,EAAGsvC,uBAAuB,GAAG9gC,QAAQtI,KAAKnL,GAASA,EAAM2T,KAAOylB,EAAQn0B,EAAGsvC,uBAAuB,GAAG5gC,MAHnG,IAMXghC,eAAgB1vC,IACVA,EAAGupC,gBAAgB1pC,MAAM0H,MAAM,qBAAqBooC,IAAIt6C,OAAS,GACnE2K,EAAGkP,eAAeM,QAAQ,CAACogC,EAAKlxC,KACzBsB,EAAGyO,gBAAgBmhC,EAAIlhC,MACtB,CAAC,WAAY,YAAY1M,SAAS4tC,EAAIthC,eAAe,GAAGC,WAC1DvO,EAAGsE,KAAKtE,EAAGyO,gBAAiBmhC,EAAIlhC,GAAI1O,EAAGoiD,gBAAgB,GAAGxS,EAAIlhC,KAC5E,8BACc1O,EAAGsE,KAAKtE,EAAGyO,gBAAiBmhC,EAAIlhC,GAAI1O,EAAG4uC,cAAclwC,GAAO,GAAGgQ,IAE/D1O,EAAGsE,KAAKtE,EAAGyO,gBAAiBmhC,EAAIlhC,GAAI,OAMrC1O,EAAGyO,iBAEZ,iBACE,OAAO5R,EAAElC,IAAI,EAAnB,wDAEI,WACE,SACN,sBACA,yBACA,6EAEA,mBACA,kEAKEoP,MAAO,CACL,aAAahP,GAENA,IACHmB,KAAKwwD,6BAA+B,MAK1C/tD,QAAS,EAAX,KACA,4CADA,IAGI,aAAJ,iCACA,mCACA,sFAFA,OChfsW,I,kOCQlWG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAoBhC,IAAkBA,EAAW,CAACmnC,SAAA,KAAOr/B,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUC,WAAA,OAAWC,YAAA,KAAU5F,OAAA,KAAKC,aAAA,KAAWgY,UAAA,KAAQ3f,QAAA,KAAM4H,OAAA,KAAK8B,UAAA,KAAQ7B,SAAA,KAAOC,UAAA,KAAQC,aAAA,KAAWC,WAAA,Q,uFCvCpJ,IAAIpL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,KAAK,CAAER,EAAIY,EAAEsB,QAAQlC,EAAIixD,aAAejxD,EAAI2sD,aAAcvsD,EAAG,QAAQ,CAACA,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQ,OAAO,QAAU,GAAG,KAAQ,iCAAmCR,EAAIkxD,eAAgB,GAAG9wD,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,QAAUR,EAAImxD,uBAAuB,MAAQnxD,EAAIixD,WAAW,QAAUjxD,EAAIY,EAAEsB,QAAQlC,EAAIixD,YAAY,qBAAqB,GAAG,sBAAsB,GAAG,eAAejxD,EAAIW,GAAG,0BAA0B,eAAeX,EAAIW,GAAG,wBAAwB0D,GAAG,CAAC,YAAY,SAASC,GAAQ,OAAOtE,EAAIoxD,aAAa9sD,KAAUxD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,oBAAoB,CAACE,YAAY,oCAAoCE,MAAM,CAAC,MAAQ,OAAO,QAAU,GAAG,KAAO,iBAAiB,MAAQ,CAACisD,YAAa,cAAgBzsD,EAAIkxD,iBAAkBzvD,OAAM,GAAM,CAACrC,IAAI,oBAAoB4B,GAAG,SAAS6F,GACpiC,IAAI3F,EAAO2F,EAAI3F,KACf,MAAO,CAACd,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,cAAc,WAAW,CAACH,EAAG,wBAAwB,CAACE,YAAY,YAAYE,MAAM,CAAC,KAAOU,EAAK,kBAAkB,OAAO,MAAQ,GAAG,OAAS,GAAG,WAAWlB,EAAIqxD,gBAAgBnwD,GAAM,UAAU,iBAAiBd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,oBAAoB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAUvN,EAAKuD,mBAAmB,MAAM,CAACrF,IAAI,iBAAiB4B,GAAG,SAAS6F,GAC5Z,IAAIyqD,EAAYzqD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,0BAA0B,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAG4wD,EAAU9rD,sBAAsB,UAAU,CAACpG,IAAI,mBAAmB4B,GAAG,SAAS6F,GAC/J,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,wBAAwB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAU8iD,EAAUrsD,4BAA4B,CAAC9F,IAAI,+BAA+B4B,GAAG,SAAS6F,GAC7L,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,sBAAsB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAU8iD,EAAUhsD,kCAAkC,CAACnG,IAAI,4BAA4B4B,GAAG,SAAS6F,GAC9L,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,yBAAyB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAU8iD,EAAUtiD,qCAAqC,CAAC7P,IAAI,yBAAyB4B,GAAG,SAAS6F,GACjM,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,sBAAsB4H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIyO,UAAU8iD,EAAUjsD,kCAAmC,CAAClG,IAAI,gBAAgB4B,GAAG,SAAS6F,GACnL,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,yBAAyB,CAACR,EAAIS,GAAGT,EAAIU,GAAG6wD,EAAU5iD,gBAAgB,CAACvP,IAAI,oBAAoB4B,GAAG,SAAS6F,GAC3I,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,4BAA4B,CAACR,EAAIS,GAAGT,EAAIU,GAAG6wD,EAAUviD,oBAAoB,CAAC5P,IAAI,gBAAgB4B,GAAG,SAAS6F,GAC9I,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,oBAAoB,CAACR,EAAIS,GAAGT,EAAIU,GAAG6wD,EAAUrG,gBAAgB,CAAC9rD,IAAI,aAAa4B,GAAG,SAAS6F,GAC/H,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,qBAAqB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4mB,SAAS2qC,EAAUloD,MAAO,CAAC2d,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBS,gBAAgB,CAAC/H,IAAI,WAAW4B,GAAG,SAAS6F,GACxL,IAAI0qD,EAAY1qD,EAAI3F,KACpB,MAAO,CAACd,EAAG,OAAO,CAACI,MAAM,CAAC,UAAU,oBAAoB,CAACR,EAAIS,GAAGT,EAAIU,GAAGV,EAAI4mB,SAAS2qC,EAAUloD,MAAO,CAAC2d,OAAQhnB,EAAIyI,QAAQ/B,iBAAiBE,SAAS2qD,EAAUrG,UAAU/jD,qBAAsBnH,EAAI2sD,cAAiB3sD,EAAIwxD,wBAAwBxxD,EAAIutD,SAAcvtD,EAAIY,EAAEsB,QAAQlC,EAAIixD,YAA8UjxD,EAAIgF,KAArUhF,EAAIiB,GAAKjB,EAAIkxD,WAAalxD,EAAIyxD,eAAer4D,QAAS,SAASqJ,GAAO,OAAOrC,EAAG,oBAAoB,CAAChB,IAAK,SAAWqD,EAAOnC,YAAY,oCAAoCE,MAAM,CAAC,MAAQ,OAAO,QAAU,GAAG,KAAO,iBAAiB,MAAQ,CAACisD,YAAa,eAAiBzsD,EAAIkxD,WAAalxD,EAAIyxD,eAAer4D,gBAA0B4G,EAAIY,EAAEsB,QAAQlC,EAAI+sD,oBAAuB/sD,EAAIkxD,WAAY,GAAOlxD,EAAI+sD,kBAAkB3zD,SAAW4G,EAAIkxD,WAAa9wD,EAAG,SAAS,CAACE,YAAY,kDAAkDE,MAAM,CAAC,KAAO,IAAI6D,GAAG,CAAC,MAAQrE,EAAIgtD,oBAAoB,CAAC5sD,EAAG,OAAO,CAACG,YAAY,CAAC,YAAY,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAI,IAAMV,EAAIitD,WAAajtD,EAAIW,GAAG,uBAAyBX,EAAIW,GAAG,6BAA8B,OAAOP,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,6BAA6Bc,MAAM,CAAC,iBAAiBpB,EAAIitD,YAAY1sD,YAAY,CAAC,YAAY,OAAO,OAAS,YAAYP,EAAIgF,MAAM,IAAI,IAAI,IAC3qCtD,EAAkB,G,giCCmHtB,MAAM,EAAN,qCAEA,OACE3D,KAAM,kBAEN4D,MAAO,CACL6vD,sBAAuB,CAA3B,aACIjE,QAAS,CAAb,aACIl+C,YAAa,CAAjB,aACI09C,kBAAmB,CACjB7wD,KAAMkT,MACN9G,QAAS,IAAM,IAEjB4oD,WAAY,CAAhB,cAGE,OACE,MAAO,CACLtqC,SAAN,IACMqmC,YAAY,EACZN,cAAc,IAIlB9qD,SAAU,EAAZ,OACA,8BAAI,kBAAJ,mBACA,kCAFA,IAGI,aACE,MAAM4rD,EAAc,CAClBn3B,MAAO,CACL00B,MAAO/qD,KAAKstD,UAOhB,OAHKttD,KAAKgtD,YAAersD,EAAEsB,QAAQjC,KAAK8sD,qBACtCU,EAAYn3B,MAAM/rB,IAAM,CAAhC,6BAEaiwC,EAAUlhC,YAAYm0C,GAAa70D,MAG5C,iBACE,OAAO4hD,EAAUlhC,YAAY,CAC3Bgd,MAAO,CACL00B,MAAO/qD,KAAKstD,WAEtB,oBAGI9kD,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCwD,qBAAsBzB,GAAM7C,GACrBA,EAAKkU,UAGHrR,EAAGpD,GAAG,+BAA+BO,EAAKkU,UAAUtF,QAAQ,YAAa,IAAI4E,QAF3E,IAKXy8C,uBAAwBptD,GAAM,CAClC,CACM,KAAN,gCACM,MAAN,gBAEA,CACM,KAAN,8BACM,MAAN,YAEA,CACM,KAAN,2BACM,MAAN,gBAEA,CACM,KAAN,8BACM,MAAN,eAEA,CACM,KAAN,4BACM,MAAN,2BAEA,CACM,KAAN,+BACM,MAAN,wBAEA,CACM,KAAN,4BACM,MAAN,qBAEA,CACM,KAAN,sCACM,MAAN,aAGA,CACM,KAAN,+BAAQ,eAAR,2BACM,MAAN,SAEA,CACM,KAAN,8BACM,MAAN,YAEA,CACM,KAAN,8BAAQ,eAAR,2BACM,MAAN,QAEA,UACM8iD,MAAO,SACPzlD,MAAO,CAAC,mBACd,MAIEsB,QAAS,CAEP,aAAarG,GACe,OAAtBA,EAAMq1D,aACRzxD,KAAKsM,MAAM,eAAgBlQ,IAI/B,UAAUyC,GACR,MAAM6yD,EAAqB/wD,EAAE+O,aAAa1P,KAAKoP,aACzCO,EAAK,IAAIC,OAAO,IAAI8hD,KAAuB,MACjD,OAAK/wD,EAAEsB,QAAQjC,KAAK8sD,mBAMbjuD,EALEA,EAAMgR,QACrB,EACA,qDAKI,oBAAJ,iCACA,2BACA,cAIA,wCAGA,wBACA,QACA,OACA,gBACA,+BAGA,qBAhBA,IAkBI,gBAAgB5O,GACd,MAAMka,EAAUxa,EAAElC,IAAIwC,EAAM,mBAC5B,GAAIka,EACF,MAAO,qBAAqBA,QAE9B,MAAMw2C,EAAchxD,EAAElC,IAAIwC,EAAM,eAChC,MAAoB,WAAhB0wD,EACK,4BAEF,MCtS2V,I,qHCQpW/uD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAACC,QAAA,KAAM+H,OAAA,KAAKC,aAAA,KAAWy8C,aAAA,KAAWx8C,OAAA,KAAK+B,kBAAA,Q,qLC1BpE,MAAMzJ,EAAc,aAEdC,GAAK,IAAG,cAAwBC,OAGb,0BACrB,MAAO,KAJA,gBACU,aADV,GASI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,qLClBzC,MAAMD,EAAc,sBAEdC,GAAK,IAAG,cAA+BC,OAGlB,0BACrB,MAAO,KAJF,gBACY,oBADZ,GAQI,cACbC,OAAQC,eAAkB,CACxBJ,cACAK,QAASC,OAAeD,QAAQL,GAChCC,UAGFM,MAAOC,eAAiB,CAAER,cAAaC,Y,yCCpBzC,IAAIvD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,iBAAiB,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACA,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,CACjLkiD,UAAW1iD,EAAI6xD,IAAInP,UACnBoP,eAAgB9xD,EAAI6xD,IAAIC,eACxB7qB,UAAWjnC,EAAI6xD,IAAI5qB,eACf,MACRvlC,EAAkB,GCUtB,GACEC,MAAO,CACT,iCAGEE,SAAU,CACRgsD,iBAAkB,CAChB,MACE,OAAO5tD,KAAK6tD,gBAEd,MACE7tD,KAAK8tD,mBC1B0V,I,6CCOnWlrD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAKhC,IAAkBA,EAAW,CAAC+H,aAAA9H,EAAA,Q,yCCvB9B,IAAI/C,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,YAAY,cAAcE,MAAM,CAAC,QAAU,GAAG,MAAQ,MAAM,MAAQ,UAAU,UAAY,MAAM,CAACJ,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,6CAA6CJ,EAAG,YAAY,CAACE,YAAY,2BAA2B,GAAGF,EAAG,QAAQ,GAAG,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,2CAA2CJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,iDAAiD,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6DAA6D,SAASP,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,UAAU,IAAI,IAAI,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,6CAA6CJ,EAAG,YAAY,CAACE,YAAY,2BAA2B,GAAGF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,2CAA2CJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,iDAAiD,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6DAA6D,SAASP,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,UAAU,IAAI,IAAI,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,6CAA6CJ,EAAG,YAAY,CAACE,YAAY,2BAA2B,GAAGF,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,2CAA2CJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,iDAAiD,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6DAA6D,SAASP,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,UAAU,IAAI,IAAI,GAAGP,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,+CAA+CJ,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACE,YAAY,QAAQE,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACG,YAAY,CAAC,iBAAiB,UAAUC,MAAM,CAAC,IAAM,2CAA2CJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,OAAO,CAACJ,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACE,YAAY,iDAAiD,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6DAA6D,SAASP,EAAG,QAAQ,CAACA,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4DAA4D,UAAU,IAAI,IAAI,IAAI,IAAI,IAAI,IACrqGe,EAAkB,GCkItB,GACE3D,KAAM,iCCpI8W,I,yGCQlX8E,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAACC,QAAA,KAAMyN,UAAA,OAAU1F,OAAA,KAAK6P,WAAA,KAAS3P,OAAA,Q,kCC5B5D,W,yCCAA,IAAIhL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,YAAYE,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQ,gBAAgB,SAAS,CAACH,EAAG,QAAQ,CAACE,YAAY,YAAYC,YAAY,CAAC,YAAY,QAAQ,YAAY,SAASC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,QAAQ,OAAS,OAAO,MAAQ,UAAUJ,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,OAAO,OAAS,WAAW,GAAGJ,EAAG,QAAQ,CAACE,YAAY,uBAAuB,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,OAAO,MAAQ,QAAQ,OAAS,WAAW,GAAGJ,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,GAAGJ,EAAG,QAAQ,CAACE,YAAY,kBAAkB,CAACF,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,GAAGJ,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,GAAGJ,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,GAAGJ,EAAG,QAAQ,CAACE,YAAY,aAAa,CAACF,EAAG,oBAAoB,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,OAAO,MAAQ,YAAY,IAAI,IAAI,GAAGJ,EAAG,QAAQ,CAACE,YAAY,sBAAsBC,YAAY,CAAC,YAAY,QAAQ,QAAU,OAAO,cAAc,UAAUC,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,QAAQ,OAAS,OAAO,MAAQ,WAAW,IAAI,IAAI,IAClkDkB,EAAkB,G,iFCAlBtE,EAAS,GAKTyF,EAAY,eACdzF,EACA2C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAQhC,IAAkBA,EAAW,CAACgI,OAAA,KAAKC,aAAA,KAAWC,OAAA,KAAK+B,kBAAA,Q,6wjCCzBnD,IAAI/M,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,MAAQ,UAAU,CAACH,EAAG,iBAAiB,CAACG,YAAY,CAAC,MAAQ,UAAUC,MAAM,CAAC,MAAQ,GAAG,eAAe,GAAG,OAAS,SAASM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACE,YAAY,iBAAiBC,YAAY,CAAC,MAAQ,SAAS,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6CAA6C,OAAOP,EAAG,KAAK,CAACE,YAAY,2BAA2BC,YAAY,CAAC,MAAQ,QAAQ,eAAe,iBAAiB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+CAA+C,OAAOP,EAAG,KAAK,CAACE,YAAY,2BAA2BC,YAAY,CAAC,MAAQ,QAAQ,eAAe,iBAAiB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+CAA+C,OAAOP,EAAG,KAAK,CAACE,YAAY,2BAA2BC,YAAY,CAAC,MAAQ,QAAQ,eAAe,iBAAiB,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,sDAAsD,WAAWP,EAAG,QAAQJ,EAAIiB,GAAIjB,EAAiB,eAAE,SAASkB,EAAKuB,GAAO,OAAOrC,EAAG,KAAK,CAAChB,IAAI8B,EAAKnD,MAAM,CAACqC,EAAG,KAAK,CAACE,YAAY,yBAAyB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAG+B,EAAQ,GAAG,OAAOrC,EAAG,KAAK,CAACE,YAAY,6BAA6BC,YAAY,CAAC,MAAQ,UAAU,CAAEW,EAAKhF,OAAS8D,EAAIW,GAAG,kBAAoBP,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,yBAAyBL,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,gCAAgCT,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKhF,MAAM,MAAM,GAAGkE,EAAG,KAAK,CAACE,YAAY,8BAA8B,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKvE,MAAM,OAAOyD,EAAG,KAAK,CAACE,YAAY,aAAa,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGQ,EAAKwlB,aAAa,YAAW,KAAKjlB,OAAM,QAAW,IAC/sDC,EAAkB,GCuDtB,GACE3D,KAAM,wBAEN8D,SAAU,CACRkwD,cAAehuD,GAAM,CACzB,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,yEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,uEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,+EACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,wEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,iEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,wEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,mEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,iEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,sFACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,sFACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,uEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,uEACA,CAAM,KAAN,uBAAM,KAAN,MAAM,YAAN,6EACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,uEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,kEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,4DACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,uEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,+FACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,qFACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,sFACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,4EACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,qEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,sEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,qEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,kEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,gEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,oFACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,sEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,oEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,oEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,kEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,kEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,mEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,gEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,gEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,2DACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,oEACA,CAAM,KAAN,qBAAM,KAAN,MAAM,YAAN,+DClG8W,I,qECQ1WlB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAMhC,IAAkBA,EAAW,CAACM,QAAA,KAAMC,eAAA,Q,kCCzBpC,W,gECAA,IAAIrD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,gBAAgB,CAACgG,MAAM,CAACtH,MAAOkB,EAAc,WAAEqG,SAAS,SAAUC,GAAMtG,EAAI+P,WAAWzJ,GAAKE,WAAW,eAAe,CAACpG,EAAG,cAAc,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIo6B,SAAS,OAAOp6B,EAAIiB,GAAIjB,EAAIsM,OAAc,SAAE,SAAS0b,EAAO9uB,GAAG,OAAOkH,EAAG,cAAc,CAAChB,IAAIlG,EAAEsH,MAAM,CAAC,MAAQ,KAAK,CAACJ,EAAG,qBAAqB,CAACA,EAAG,UAAU,CAACI,MAAM,CAAC,MAAQwnB,MAAW,GAAG5nB,EAAG,sBAAsB,CAACA,EAAG,oBAAoB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAGsnB,GAAQ,QAAQ,IAAI,OAAM,IAAI,IACjkBtmB,EAAkB,G,YC4BtB,GACE3D,KAAM,aAENyO,OAAQ,CACV,SCjCkX,I,yGCO9W3J,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAAC83B,YAAA,KAAUC,kBAAA,KAAgBC,iBAAAH,EAAA,KAAiBI,eAAAJ,EAAA,KAAezS,SAAA,KAAOC,cAAA,KAAY6S,aAAA,Q,yCC7B3G,IAAIh7B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,oDAAoDC,YAAY,CAAC,mBAAmB,YAAY,CAACH,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,OAAO,MAAQ,cAAc,wBAAwB,4BAA4B,CAACH,EAAG,OAAO,CAACE,YAAY,qBAAqB,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,gCAAgC,MAAMX,EAAIU,GAAG,QAAWN,EAAG,OAAO,CAACE,YAAY,UAAU,CAACN,EAAIS,GAAGT,EAAIU,GAAGV,EAAIW,GAAG,2BAA2BX,EAAIiB,GAAIjB,EAAsB,oBAAE,SAASykD,EAAQvrD,GAAG,MAAO,CAACkH,EAAG,OAAO,CAAChB,IAAK,OAASlG,EAAGoH,YAAY,aAAaC,YAAY,CAAC,MAAQ,WAAWC,MAAM,CAAC,UAAW,kBAAoBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAS,IAANxH,EAAU8G,EAAI0kD,SAAWD,EAAQ3+C,KAAK,KAAK9F,EAAIU,GAAG,KAAQ,OAAON,EAAG,OAAO,CAAChB,IAAK,SAAWlG,EAAGsH,MAAM,CAAC,UAAW,qBAAuBtH,IAAK,CAAC8G,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI4mB,SAAS69B,EAAQp7C,MAAO,CAAE2d,OAAQhnB,EAAIyI,QAAQ/B,eAAgBg0C,UAAW,IAAKvzC,UAAU,YAAW,MACx+BzF,EAAkB,G,iCCwCtB,MAAM,EAAN,mBAEA,OACE3D,KAAM,uBACN4D,MAAO,CACLC,KAAMvI,QAERT,KAAM,KAAM,CACVguB,SAAJ,MAEE/kB,SAAU,CACR4G,QAAS,IAAMgR,EAAQzX,aAAa,GAEpCsH,WAAYvF,GAAMnD,EAAElC,IAAIqF,EAAI,gBAAiB,MAE7C2gD,SAAU3gD,IACHA,EAAGnC,KAAK8D,QAAU3B,EAAGnC,KAAK8D,QAAU,EAChC,GAEJ3B,EAAGnC,KAAK8D,QAAU3B,EAAGnC,KAAK8D,QAAU,IAChC,IAEL3B,EAAGnC,KAAK8D,QAAU,IACb,IAEF3B,EAAGnC,KAAK8D,OAEjB,qBACE,IAAKzF,KAAKqJ,YAAcrJ,KAAKykD,UAAY,EACvC,MAAO,GAGT,MAAMxgB,EAAmBjkC,KAAKqJ,WACpC,oCAEM,OAAI46B,EAAmB,EACdjkC,KAAKqJ,WAAWxJ,OAAO,GAEzBG,KAAKqJ,WAClB,iDChF6W,I,YCOzWzG,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,E,kDClBf,IAAI9C,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAAEP,EAAsB,mBAAEI,EAAG,MAAM,CAACG,YAAY,CAAC,QAAU,WAAW,CAACH,EAAG,QAAQ,CAACE,YAAY,OAAOE,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAQ,CAACn0C,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,uBAAuBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,GAAKX,EAAIs0C,aAAsIt0C,EAAIgF,KAA5H5E,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIi6C,qBAAsB,KAAQ,CAACj6C,EAAIS,GAAG,kBAA2B,GAAGL,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,MAAQ,GAAG,QAAUR,EAAIs0C,aAAa,MAAQ,WAAWjwC,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAI2E,SAAQ,EAAK3E,EAAIuoB,aAAc,KAAS,CAACnoB,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,GAAG,KAAO,OAAO,CAACR,EAAIS,GAAG,wBAAwBT,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,MAAM,GAAGP,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,QAAQ,aAAaR,EAAIs0C,aAAa,iBAAiBt0C,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAWrE,EAAI85C,UAAU,eAAe,SAASx1C,GAAQtE,EAAIi6C,qBAAqB,IAAQn5C,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,OAAO,CAACE,YAAY,UAAU8H,SAAS,CAAC,UAAYpI,EAAIU,GAAGV,EAAIW,GAAG,0BAA2B,CAAE5C,KAAMiC,EAAIW,GAAG,sCAAuCc,OAAM,KAAQ2E,MAAM,CAACtH,MAAOkB,EAAuB,oBAAEqG,SAAS,SAAUC,GAAMtG,EAAIi6C,oBAAoB3zC,GAAKE,WAAW,yBAA0BxG,EAAW,QAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,eAAe,MAAQ,SAAS,OAAQ,EAAK,aAAaR,EAAI40C,mBAAmB,kBAAkB50C,EAAIuoB,YAAY,iBAAiBvoB,EAAIW,GAAG,kBAAkB0D,GAAG,CAAC,WAAW,SAASC,GAAQ,OAAOtE,EAAI+oB,WAAWipC,gBAAiB,eAAe,SAAS1tD,GAAQtE,EAAI2E,SAAU,IAAS7D,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,+BAA+B,OAAOc,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACyG,IAAI,WAAWvG,YAAY,gBAAgB,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOC,YAAY,CAAC,OAAS,qBAAqB,mBAAmB,UAAU,YAAY,QAAQ,YAAY,UAAUC,MAAM,CAAC,OAAS,MAAM,KAAO,KAAK,CAACJ,EAAG,cAAc,CAACE,YAAY,wDAAwDC,YAAY,CAAC,OAAS,SAAS,CAACH,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,QAAQ,KAAO,OAAO,CAACR,EAAIS,GAAG,gCAAgCL,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,yCAAyC,OAAOP,EAAG,QAAQ,CAACG,YAAY,CAAC,mBAAmB,QAAQC,MAAM,CAAC,GAAK,4BAA4B,UAAY,GAAG,KAAO,GAAG,SAAW,GAAG,MAAQ,YAAY,CAACR,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,8BAA8B,QAAQ,GAAGP,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAAC,MAAQ,YAAY,CAACP,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,4BAA4B,UAAU,GAAGX,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,6BAA6B,MAAM,KAAKc,OAAM,IAAO,MAAK,EAAM,YAAY2E,MAAM,CAACtH,MAAOkB,EAAW,QAAEqG,SAAS,SAAUC,GAAMtG,EAAI2E,QAAQ2B,GAAKE,WAAW,aAAaxG,EAAIgF,KAAK5E,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQR,EAAIu0C,cAAc,UAAU,QAAQn0C,EAAG,sBAAsB,CAACG,YAAY,CAAC,mBAAmB,UAAU,UAAU,iBAAiBC,MAAM,CAAC,MAAQ,MAAM,MAAQ,GAAG,UAAY,GAAG,eAAe,GAAG,MAAQ,GAAG,UAAY,IAAI4F,MAAM,CAACtH,MAAOkB,EAAiB,cAAEqG,SAAS,SAAUC,GAAMtG,EAAIu0C,cAAcjuC,GAAKE,WAAW,kBAAkB,CAACpG,EAAG,MAAM,CAACyG,IAAI,qBAAqBtG,YAAY,CAAC,OAAS,sBAAsB,CAACH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,GAAG,UAAU,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQtE,EAAIu0C,eAAc,KAAS,CAACn0C,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAIT,EAAiB,cAAEI,EAAG,kBAAkB,CAACI,MAAM,CAAC,YAAYR,EAAI4B,KAAKK,KAAK,YAAYjC,EAAIw0C,OAAO,cAAc,OAAOx0C,EAAIgF,MAAM,MAAM,IACvhItD,EAAkB,G,giCCsJtB,OACE3D,KAAM,YACN4D,MAAO,CACLC,KAAM,CACJ1F,KAAM7C,SAGV,OACE,MAAO,CACL4gD,qBAAqB,EACrBlxB,WAAY,KACZ0rB,cAAe,EACfC,aAAc,EACd/vC,SAAS,EACTgwC,oBAAoB,EACpBJ,eAAe,EACfK,oBAAoB,EACpBrsB,aAAa,EACb+rB,cAAc,IAGlBzyC,SAAU,EAAZ,KACA,wCADA,IAEIqnB,gBAAiBnlB,IACf,MAAMotC,EAAI,+BAEV,MAAO,CACLzrB,IAAK,GAAGyrB,sBAAsBptC,EAAGnC,KAAKgb,kBAAkBC,+CACxDsM,UAAW,OACXC,QAAS,CACPC,cAAetlB,EAAG+Y,aAEpBwM,eAAgB,IAChBC,YAAa,GACbjsB,QAAS,QACTksB,SAAU,EACVC,gBAAiB,EACjBC,cAAe,OACfC,kBAAkB,EAClBC,mBAAoB,8BACpBC,oBAAqB,+BACrBC,iBAAkB,4BAClBC,eAAgB,0BAChBC,oBAAqB,+BACrBC,kBAAmB,6BACnBC,iBAAkB,4BAClBC,6BAA8B,wCAC9BC,eAAgB,0BAChBC,qBAAsB,gCACtBC,UAAW,6BACXC,gBAAiBxmB,EAAGymB,WACpB4pB,WAAY3pB,GAAQ,EAA5B,qEACQ,OAAR,WACUxqB,KAAKoE,GAAG,mBAAoBomB,IAC1BxqB,KAAKyqB,iBACLzqB,KAAK0qB,QAAQF,KAGfxqB,KAAKoE,GAAG,UAAlB,eACYN,EAAG6wC,oBAAqB,EACxB7wC,EAAGY,SAAU,QACzB,wBAEU1E,KAAKoE,GAAG,QAAlB,iCACA,mBADA,uDAGUpE,KAAKoE,GAAG,UAAW,KACjBN,EAAG6wC,oBAAqB,IAG1B30C,KAAKoE,GAAG,YAAlB,iCACA,qIAEA,+BACA,mBACA,oBACA,gBACA,mBAGA,4CACA,oBAXA,0DAiBI4tD,gBAAiBluD,GACVA,EAAG2J,MAAMsd,mBAMPjnB,EAAG2J,MAAMsd,mBAAmBC,wBAAwBjQ,OAAS,GAL3D,EAQXw5B,OAAQzwC,IACN,IAAKA,EAAGnC,KACN,MAAO,GAET,MAAM8a,EAAO,+BACPC,EAAc/b,EAAElC,IAAIqF,EAAGnC,KAAM,oBAAqB,IAAIib,cAA3C,OACjB,MAAO,GAAGH,YAAeC,KAAY5Y,EAAG+Y,eAAe/Y,EAAGnC,KAAKK,UAGnE6L,MAAO,CACL,QAAQC,GACFA,EACF9P,WAAW,KACTgC,KAAK8oB,WAAa,IAAI,EAAhC,6CACA,KAEQ9oB,KAAK8oB,WAAa,OAIxB,UAAF,uCACA,sBADA,IAGE,UACE,MAAM+B,EAAiB,IAAIC,eAAe,KAExC9qB,KAAKy0C,aAAez0C,KAAKyN,MAAMsd,mBAAmBC,wBAAwB9e,MAAQ,GAClF,MAAM+e,EAAQ,IAAM,GACpBjrB,KAAKw0C,cAAgBx0C,KAAKy0C,aAAexpB,IAE3CJ,EAAeK,QAAQlrB,KAAKyN,MAAMsd,qBAEpCtoB,QAAS,CACP,kBAAJ,iCACA,oBACA,UAEA,sCAJA,IAMI,YAAJ,iCACA,kBACA,kEACA,uCACA,UACA,MACA,YACA,CACYk2B,OAAQ,SACRxP,QAAS,CACPC,cAAe,EAA7B,eAIA,SACA,iBAEA,kBACA,wBACA,yBACA,mBApBA,IAsBI,WACE,MAAO,+iBCtTqV,I,yGCO9VxmB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAUhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAMyN,UAAA,OAAUpN,QAAA,KAAMioB,oBAAA,KAAkBC,WAAA,Q,yCC5B3E,IAAItrB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,aAAa,CAACF,EAAG,SAAS,CAACE,YAAY,OAAOE,MAAM,CAAC,UAAY,MAAM,CAACJ,EAAG,gBAAgB,CAACE,YAAY,OAAOE,MAAM,CAAC,MAAQR,EAAIlB,OAAOuF,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,QAASjI,MAAYtE,EAAIiB,GAAIjB,EAAqB,mBAAE,SAASyvD,EAAQv2D,GAAG,OAAOkH,EAAG,UAAU,CAAChB,IAAIlG,EAAEoH,YAAY,YAAYE,MAAM,CAAC,MAAQivD,EAAQyC,UAAUpxD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAACZ,EAAG,MAAM,CAACE,YAAY,uEAAuEC,YAAY,CAAC,MAAQ,SAAS,CAACH,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,eAAe,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAG+uD,EAAQ1xD,MAAM,OAAOqC,EAAG,MAAM,CAACJ,EAAIS,GAAGT,EAAIU,GAAGV,EAAIwvD,kBAAkBC,SAAervD,EAAG,QAAQ,CAACE,YAAY,cAAcE,MAAM,CAAC,KAAO,GAAG,MAAQ,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOkD,kBAAyBxH,EAAImyD,sBAAsB1C,MAAY,CAACrvD,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAIS,GAAG,mBAAmB,IAAI,KAAKgB,OAAM,IAAO,MAAK,QAAU,GAAGrB,EAAG,iBAAiB,CAACG,YAAY,CAAC,SAAW,aAAa,CAACH,EAAG,QAAQ,CAACE,YAAY,YAAYC,YAAY,CAAC,SAAW,WAAW,IAAM,OAAO,KAAO,SAASC,MAAM,CAAC,KAAO,GAAG,MAAQ,WAAW6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAImyD,2BAA4B,CAAC/xD,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,KAAK,CAACR,EAAIS,GAAG,gBAAgBT,EAAIS,GAAG,kBAAkB,IAAI,IAAI,GAAGL,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQR,EAAIoyD,aAAariC,SAAS,aAAa/vB,EAAIqyD,gCAAkCryD,EAAIsyD,8BAA8B,MAAQ,MAAM,KAAO,eAAe,WAAa,IAAIjuD,GAAG,CAAC,WAAWrE,EAAIuyD,YAAY,eAAe,SAASjuD,GAAQtE,EAAIoyD,aAAariC,UAAW,EAAO/vB,EAAIoyD,aAAa3C,QAAU,OAAQ3uD,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,QAAQ4B,GAAG,WAAW,MAAO,CAAChB,EAAIS,GAAG,mBAAmBgB,OAAM,GAAM,CAACrC,IAAI,UAAU4B,GAAG,WAAW,MAAO,CAACZ,EAAG,eAAe,CAACI,MAAM,CAAC,eAAe,YAAY4F,MAAM,CAACtH,MAAOkB,EAAIoyD,aAAoB,QAAE/rD,SAAS,SAAUC,GAAMtG,EAAIqI,KAAKrI,EAAIoyD,aAAc,UAAW9rD,IAAME,WAAW,4BAA4B/E,OAAM,QAAW,IAC1iEC,EAAkB,G,uhCC4EtB,MACA,EACA,WADA,gBAEA,mCACE8K,OAAQ,CAAC,EAAX,MACE7K,MAAO,CAAC,oBAAqB,QAAS,cACtC,OACE,MAAO,CACLu5C,QAAS,GACTkX,aAAc,CACZriC,UAAU,EACV0/B,QAAS,MAEX+C,UAAW,CACTnoD,MAAO,GACPwyC,eAAgB,KAChBC,gBAAiB,KACjBC,UAAW,QAIjBl7C,SAAU,EAAZ,0CACIywD,8BAA+B,iBAC/BD,+BAAgC,qBAGpC,yBACII,qBAAsB,qBAGxB/vD,QAAS,CACP,sBAAsB+sD,GACpBxvD,KAAKmyD,aAAa3C,QAAUA,GAAW,IAAIiD,EAAgB,IAC3DzyD,KAAKmyD,aAAariC,UAAW,GAE/B,yBACE9vB,KAAKmyD,aAAa3C,QAAU,KAC5BxvD,KAAKmyD,aAAariC,UAAW,GAE/B,cAAJ,uCACA,8BACA,6BAFA,MCpH6W,I,iICQzWltB,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,WACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAAC8H,OAAA,KAAK7H,QAAA,KAAM8H,aAAA,OAAaE,aAAA,KAAW3H,QAAA,KAAM8kB,SAAA,KAAOC,cAAA,Q,yCC9B9E,IAAInoB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,YAAY,CAACI,MAAM,CAAC,OAAS,GAAG,MAAQ,eAAeM,YAAYd,EAAIe,GAAG,CAAC,CAAC3B,IAAI,YAAY4B,GAAG,SAAS6F,GAC3M,IAAIxC,EAAKwC,EAAIxC,GACb,MAAO,CAACjE,EAAG,KAAKJ,EAAI8G,GAAG,GAAGzC,GAAI,CAACjE,EAAG,OAAO,CAACE,YAAY,WAAW,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAI2yD,wBAAwB,eAAe,CAACvyD,EAAG,OAAO,CAACA,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,gBAAgB,CAACJ,EAAG,eAAe,CAACE,YAAY,oCAAoC,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAGV,EAAIW,GAAG,gCAAgC,OAAOP,EAAG,aAAaA,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,cAAc,MAAQ,KAAKR,EAAIiB,GAAIjB,EAA2B,yBAAE,SAASpF,EAAE1B,GAAG,OAAOkH,EAAG,cAAc,CAAChB,IAAIlG,GAAG,CAACkH,EAAG,sBAAsB,CAACJ,EAAIS,GAAG,IAAIT,EAAIU,GAAG9F,EAAE+H,MAAM,KAAK,GAAK,KAAK,OAAOvC,EAAG,sBAAsB,CAACE,YAAY,kBAAkB,CAACN,EAAIS,GAAG,IAAIT,EAAIU,GAAG9F,EAAE+H,MAAM,KAAK,IAAI,QAAQ,MAAK,IAAI,IAAI,MAC9oBjB,EAAkB,G,iCC0CtB,MAAM,EAAN,mBAEA,OACE3D,KAAM,mBAEN4D,MAAO,CACLT,KAAM7H,QAGRwI,SAAU,CACR4G,QAAS,IAAMgR,EAAQzX,aAAa,GAEpC,aACE,OAAO+G,KAAKC,MAAM/I,KAAKiB,KAAK2E,WAG9B,qBACE,IAAK5F,KAAKqJ,WACR,MAAO,GAGT,MAAM46B,EAAmBjkC,KAAKqJ,WACpC,uCAEM,OAAI46B,EAAmB,EACd,GAGFjkC,KAAKqJ,WAClB,+CAGI,0BACE,OAAOrJ,KAAKkP,mBAAmB5M,IAAIqwD,GAAS,GAAGA,EAAM9sD,QAAQ,IAAnE,kEAGI,yBACE,OAAIlF,EAAEsB,QAAQjC,KAAKkP,oBACV,GAEF,GAAG,IAAhB,mLCrFyW,I,iICQrWtM,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAWhC,IAAkBA,EAAW,CAACC,QAAA,KAAM0N,WAAA,OAAWkK,WAAA,KAASggB,QAAA,KAAMC,YAAA,KAAUE,iBAAA,OAAiB1vB,WAAA,Q,yCC9BzF,IAAIpL,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,IAAI6D,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOtE,EAAIuM,MAAM,iBAAiB,CAACnM,EAAG,SAAS,CAACJ,EAAIS,GAAG,gBAAgB,IAAI,GAAGL,EAAG,QAAQ,CAACI,MAAM,CAAC,QAAU,WAAW,CAACJ,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,OAAO,CAACE,YAAY,kBAAkB,CAACN,EAAIS,GAAG,qBAAqBL,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,OAAO,CAACE,YAAY,oCAAoC,CAACN,EAAIS,GAAG,uBAAuBL,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACN,EAAIS,GAAG,WAAWL,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,OAAO,CAACE,YAAY,oCAAoC,CAACN,EAAIS,GAAG,mBAAmBL,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACN,EAAIS,GAAG,cAAcL,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,OAAO,CAACE,YAAY,oCAAoC,CAACN,EAAIS,GAAG,sBAAsBL,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACN,EAAIS,GAAG,cAAcL,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACF,EAAG,OAAO,CAACE,YAAY,oCAAoC,CAACN,EAAIS,GAAG,mBAAmBL,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACN,EAAIS,GAAG,oBAAoB,GAAGL,EAAG,QAAQ,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACA,EAAG,uBAAuB,CAACI,MAAM,CAAC,SAASR,EAAI6sD,UAAU,IAAI,IAAI,IACj7CnrD,EAAkB,G,msBC+CtB,OACE3D,KAAM,gBACN4D,MAAO,CACLkrD,MAAO,CACL3wD,KAAMwQ,SAIV7K,SAAU,EAAZ,KACA,wBAAI,UAAJ,UADA,IAGI,QACE,OAAO5B,KAAK4yD,UAAU,CAA5B,OACA,yBACA,SC9DsW,I,6FCOlWhwD,EAAY,eACd,EACA9C,EACA2B,GACA,EACA,KACA,KACA,MAIa,aAAAmB,EAAiB,QAShC,IAAkBA,EAAW,CAAC8H,OAAA,KAAKE,OAAA,KAAKC,aAAA,KAAW3H,QAAA,KAAM4H,OAAA,Q,qBC3BzD,IAAIxI,EAAM,CACT,oBAAqB,OACrB,qBAAsB,OACtB,0BAA2B,OAC3B,6BAA8B,OAC9B,oCAAqC,OACrC,sBAAuB,OACvB,oBAAqB,OACrB,mCAAoC,OACpC,sCAAuC,OACvC,0CAA2C,OAC3C,yBAA0B,OAC1B,iCAAkC,OAClC,kCAAmC,OACnC,kCAAmC,OACnC,qCAAsC,OACtC,sBAAuB,OACvB,mCAAoC,OACpC,kBAAmB,OACnB,uCAAwC,QACxC,yBAA0B,OAC1B,uBAAwB,OACxB,6BAA8B,OAC9B,uBAAwB,OACxB,6BAA8B,OAC9B,kCAAmC,OACnC,wBAAyB,OACzB,+BAAgC,OAChC,sBAAuB,OACvB,8BAA+B,OAC/B,6BAA8B,OAC9B,8BAA+B,OAC/B,kCAAmC,OACnC,2BAA4B,OAC5B,uBAAwB,OACxB,uBAAwB,OACxB,2BAA4B,OAC5B,6CAA8C,OAC9C,qCAAsC,OACtC,iCAAkC,OAClC,2BAA4B,OAC5B,mCAAoC,OACpC,kCAAmC,OACnC,yBAA0B,OAC1B,+BAAgC,OAChC,4BAA6B,OAC7B,+BAAgC,OAChC,2BAA4B,OAC5B,0BAA2B,OAC3B,+BAAgC,OAChC,6BAA8B,OAC9B,yBAA0B,OAC1B,2BAA4B,OAC5B,uBAAwB,OACxB,mBAAoB,OACpB,2BAA4B,OAC5B,uBAAwB,OACxB,8BAA+B,OAC/B,iCAAkC,OAClC,6BAA8B,OAC9B,uBAAwB,OACxB,iCAAkC,OAClC,4BAA6B,OAC7B,8BAA+B,OAC/B,8BAA+B,OAC/B,4BAA6B,OAC7B,+BAAgC,OAChC,2CAA4C,OAC5C,mDAAoD,OACpD,mCAAoC,OACpC,2CAA4C,OAC5C,kCAAmC,OACnC,2BAA4B,OAC5B,yBAA0B,OAC1B,+BAAgC,OAChC,gCAAiC,OACjC,gCAAiC,OACjC,qBAAsB,OACtB,mBAAoB,OACpB,uBAAwB,OACxB,mBAAoB,OACpB,kBAAmB,OACnB,kBAAmB,QAIpB,SAASy4B,EAAe9D,GACvB,IAAIzkB,EAAKwoB,EAAsB/D,GAC/B,OAAO38B,EAAoBkY,GAE5B,SAASwoB,EAAsB/D,GAC9B,IAAI38B,EAAoBgE,EAAEgE,EAAK20B,GAAM,CACpC,IAAIl8B,EAAI,IAAI0B,MAAM,uBAAyBw6B,EAAM,KAEjD,MADAl8B,EAAE2B,KAAO,mBACH3B,EAEP,OAAOuH,EAAI20B,GAEZ8D,EAAepc,KAAO,WACrB,OAAOvlB,OAAOulB,KAAKrc,IAEpBy4B,EAAe5/B,QAAU6/B,EACzBngC,EAAOD,QAAUmgC,EACjBA,EAAevoB,GAAK","file":"js/app.9d7c28a4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"AccountPreferences\":\"AccountPreferences\",\"BillingPreferences\":\"BillingPreferences\",\"CompanySettings\":\"CompanySettings\",\"DrawingApp\":\"DrawingApp\",\"EditRFQ\":\"EditRFQ\",\"EngineeringTools\":\"EngineeringTools\",\"FinishingTool\":\"FinishingTool\",\"ForwardersSettings\":\"ForwardersSettings\",\"Hardware\":\"Hardware\",\"HardwareCategory\":\"HardwareCategory\",\"MaterialsTool\":\"MaterialsTool\",\"MyParts\":\"MyParts\",\"NewOrder\":\"NewOrder\",\"Orders\":\"Orders\",\"RFQS\":\"RFQS\",\"StatementPreferences\":\"StatementPreferences\",\"Support\":\"Support\",\"ThreeDPackagingTool\":\"ThreeDPackagingTool\",\"ToleranceTool\":\"ToleranceTool\",\"UsersPreferences\":\"UsersPreferences\",\"confirmedOrder\":\"confirmedOrder\"}[chunkId]||chunkId) + \".\" + {\"AccountPreferences\":\"f0726994\",\"BillingPreferences\":\"d215fff8\",\"CompanySettings\":\"a5b2a004\",\"DrawingApp\":\"2043ce44\",\"EditRFQ\":\"6a326cef\",\"EngineeringTools\":\"1a259062\",\"FinishingTool\":\"8a138dcd\",\"ForwardersSettings\":\"917b09e3\",\"Hardware\":\"02eddaae\",\"HardwareCategory\":\"74285c94\",\"MaterialsTool\":\"ff48e070\",\"MyParts\":\"615d6f3c\",\"NewOrder\":\"4d2df4fa\",\"Orders\":\"25debc97\",\"RFQS\":\"5a49b785\",\"StatementPreferences\":\"3d2ba9dd\",\"Support\":\"ba59d39c\",\"ThreeDPackagingTool\":\"d3ae69db\",\"ToleranceTool\":\"e888250d\",\"UsersPreferences\":\"88d81ff9\",\"confirmedOrder\":\"56cb0585\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"AccountPreferences\":1,\"CompanySettings\":1,\"DrawingApp\":1,\"EditRFQ\":1,\"FinishingTool\":1,\"ForwardersSettings\":1,\"Hardware\":1,\"HardwareCategory\":1,\"MaterialsTool\":1,\"MyParts\":1,\"NewOrder\":1,\"Orders\":1,\"RFQS\":1,\"StatementPreferences\":1,\"Support\":1,\"ThreeDPackagingTool\":1,\"ToleranceTool\":1,\"UsersPreferences\":1,\"confirmedOrder\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"AccountPreferences\":\"AccountPreferences\",\"BillingPreferences\":\"BillingPreferences\",\"CompanySettings\":\"CompanySettings\",\"DrawingApp\":\"DrawingApp\",\"EditRFQ\":\"EditRFQ\",\"EngineeringTools\":\"EngineeringTools\",\"FinishingTool\":\"FinishingTool\",\"ForwardersSettings\":\"ForwardersSettings\",\"Hardware\":\"Hardware\",\"HardwareCategory\":\"HardwareCategory\",\"MaterialsTool\":\"MaterialsTool\",\"MyParts\":\"MyParts\",\"NewOrder\":\"NewOrder\",\"Orders\":\"Orders\",\"RFQS\":\"RFQS\",\"StatementPreferences\":\"StatementPreferences\",\"Support\":\"Support\",\"ThreeDPackagingTool\":\"ThreeDPackagingTool\",\"ToleranceTool\":\"ToleranceTool\",\"UsersPreferences\":\"UsersPreferences\",\"confirmedOrder\":\"confirmedOrder\"}[chunkId]||chunkId) + \".\" + {\"AccountPreferences\":\"05805c28\",\"BillingPreferences\":\"31d6cfe0\",\"CompanySettings\":\"f66cebda\",\"DrawingApp\":\"61643590\",\"EditRFQ\":\"b56cc0d8\",\"EngineeringTools\":\"31d6cfe0\",\"FinishingTool\":\"2016cf9d\",\"ForwardersSettings\":\"eda46c01\",\"Hardware\":\"6a00c598\",\"HardwareCategory\":\"ddd11d1f\",\"MaterialsTool\":\"79327bb9\",\"MyParts\":\"536e5324\",\"NewOrder\":\"ce773697\",\"Orders\":\"0e5f1019\",\"RFQS\":\"25aa262e\",\"StatementPreferences\":\"0728c610\",\"Support\":\"be2ca089\",\"ThreeDPackagingTool\":\"bbe37fe2\",\"ToleranceTool\":\"fcd34e23\",\"UsersPreferences\":\"a2779bf2\",\"confirmedOrder\":\"937de35f\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pl-3\"},[_c('span',{staticClass:\"text-subtitle-2\",staticStyle:{\"vertical-align\":\"sub\"}},[_c('v-icon',{staticStyle:{\"width\":\"30px\"},attrs:{\"left\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-alert-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t( _vm._.get(_vm.analysisData[0], 'value')))+\" \")],1)]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{ 'dark': (i % 2 !== 0) }},[_c('td',{staticClass:\"d-flex align-center text-truncate\",staticStyle:{\"color\":\"#747474\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s(_vm.$t(item.value))+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expansion-panels>\n    <v-expansion-panel>\n      <v-expansion-panel-header class=\"pl-3\">\n        <span class=\"text-subtitle-2\" style=\"vertical-align: sub\">\n          <v-icon left style=\"width:30px\" color=\"red\">\n            mdi-alert-outline\n          </v-icon>\n          {{ $t( _.get(analysisData[0], 'value')) }}\n        </span>\n      </v-expansion-panel-header>\n      <v-expansion-panel-content>\n        <v-card flat>\n          <v-simple-table dense>\n            <template v-slot:default>\n              <tbody>\n                <tr\n                  v-for=\"(item, i) in analysisData.slice(1)\"\n                  :key=\"item.field\"\n                  :class=\"{ 'dark': (i % 2 !== 0) }\"\n                >\n                  <td class=\"d-flex align-center text-truncate\" style=\"color: #747474;\">\n                    <v-icon\n                      small\n                      class=\"mr-2\"\n                      color=\"red\"\n                    >\n                      {{ item.icon }}\n                    </v-icon>\n                    {{ $t(item.field) }}\n                  </td>\n                  <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n                    <span\n                      class=\"ml-3\"\n                      :style=\"[{ color: getTextColor(item.value) }]\"\n                    >\n                      {{ $t(item.value) }}\n                    </span>\n                  </td>\n                </tr>\n              </tbody>\n            </template>\n          </v-simple-table>\n        </v-card>\n      </v-expansion-panel-content>\n    </v-expansion-panel>\n  </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\n\nexport default {\n  name: 'PartAnalysisTable',\n  props: {\n    part: Object,\n  },\n  computed: {\n    analysisData() {\n      let tableData = [];\n      if (this.part) {\n        tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n      }\n      if (_.isEmpty(tableData)) {\n        tableData = [\n          { field: null, value: '3dSideViewer.warningErrors.title' },\n          { field: '3dSideViewer.warningErrors.unfolding', value: '-' },\n          { field: '3dSideViewer.warningErrors.warnings', value: '-' },\n          { field: '3dSideViewer.warningErrors.errors', value: '-' },\n        ];\n      } else {\n        tableData = tableData.filter(datum => datum.Category === 'S1')\n          .filter(datum => (datum.Description ? datum.Description.startsWith('T3') : ''))\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description.replace('T3.', ''), value: datum.Value || '-' }));\n      }\n      const icons = [\n        'mdi-alert-outline',\n        'mdi-alert',\n        'mdi-alert-circle',\n      ];\n\n      return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n    }\n  },\n  methods: {\n    getTextColor(value) {\n      value = value.split('.').pop();\n      switch (value) {\n        case 'pass':\n        case 'yes':\n          return 'green';\n        case 'fail':\n        case 'no':\n          return 'red';\n        default:\n          return '';\n      }\n    }\n  }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningErrorTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarningErrorTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WarningErrorTable.vue?vue&type=template&id=bb80b758&\"\nimport script from \"./WarningErrorTable.vue?vue&type=script&lang=js&\"\nexport * from \"./WarningErrorTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'contacts';\n\nconst Model = class Contact extends BaseModel {\n  static modelName = 'Contact';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","export default {\n  computed: {\n    cncTurningLinearDimensions: vm => [\n      {\n        deviations: `0.5 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 3`,\n        fine: '±0.05',\n        medium: '±0.1',\n        coarse: '±0.2'\n      },\n      {\n        deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 3 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 6`,\n        fine: '±0.05',\n        medium: '±0.1',\n        coarse: '±0.3'\n      },\n      {\n        deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 6 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 30`,\n        fine: '±0.10',\n        medium: '±0.2',\n        coarse: '±0.5'\n      },\n      {\n        deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 30 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 120`,\n        fine: '±0.15',\n        medium: '±0.3',\n        coarse: '±0.8'\n      },\n      {\n        deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 120 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 400`,\n        fine: '±0.20',\n        medium: '±0.5',\n        coarse: '±1.2'\n      },\n      {\n        deviations: `${vm.$t('views.engineeringTools.tabs.processLimitations.over')} 400 ${vm.$t('views.engineeringTools.tabs.processLimitations.up')} ${vm.$t('views.engineeringTools.tabs.processLimitations.to')} 1000`,\n        fine: '±0.30',\n        medium: '±0.8',\n        coarse: '±2.0'\n      },\n    ],\n  }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartViewerDrawer.vue?vue&type=style&index=0&id=a8ec6348&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\",attrs:{\"hover\":\"\",\"width\":\"510px\",\"min-width\":\"510px\",\"height\":\"100%\",\"loading\":_vm.part.isRemovePending,\"data-cy\":\"my-part-card-grid\",\"ripple\":false}},[_c('v-container',{staticClass:\"pa-0\"},[_c('v-row',{attrs:{\"no-gutters\":\"\",\"data-cy\":\"my-part-first-horizontal-grid-view\"}},[_c('v-col',{staticClass:\"py-0 pl-1 d-flex flex-row\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\" d-flex flex-column \",on:{\"click\":function($event){_vm.partViewerPart = _vm.part; _vm.isPartViewerActive = true;}}},[_c('core-thumbnail-viewer',{staticClass:\"pa-0\",attrs:{\"part\":_vm.part,\"width\":90,\"height\":90,\"data-cy\":\"my-part-image-grid\",\"is-display-border\":true}})],1),_c('v-btn',{staticClass:\"mt-n3\",staticStyle:{\"position\":\"relative\",\"top\":\"110px\",\"right\":\"95px\"},attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\",\"data-cy\":\"my-part-view-details-button-grid\"},on:{\"click\":function($event){_vm.partViewerPart = _vm.part; _vm.isPartViewerActive = true;}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"pl-7\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"11\",\"align-self\":\"start\"}},[_c('div',{staticClass:\"flex-row text-truncate\"},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"font-size\":\"25px\",\"font-weight\":\"500\"},attrs:{\"data-cy\":\"my-part-part-grid\",\"title\":_vm.part.CustItemName}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemName)+\" \")])])]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\",\"align-self\":\"start\"}},[_c('v-btn',{staticClass:\"align-self-start ml-auto\",attrs:{\"right\":\"\",\"loading\":_vm.part.isRemovePending,\"color\":\"primary\",\"icon\":\"\",\"data-cy\":\"my-part-remove-button-grid\"},on:{\"click\":function($event){_vm.deleteDialog.display = true;\n                _vm.deleteDialog.partToDelete = _vm.part;}}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)],1),_c('v-row',[(_vm.part.Machine === 'turning')?_c('v-col',{staticClass:\"pb-0 pl-6\",attrs:{\"offset\":\"1\",\"cols\":\"4\"}},[_c('div',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.roughness'))+\" \")]),_c('span',[_c('span',{attrs:{\"data-cy\":\"my-part-roughness-grid\"}},[_vm._v(\" \"+_vm._s(_vm.getRoughnessName)),_c('br'),_vm._v(\" \"+_vm._s(_vm.getRoughnessValue)+\" \")])])]):_vm._e(),_c('v-col',{staticClass:\"pl-12 d-flex justify-end pr-0\",attrs:{\"offset\":_vm.part.Machine === 'turning' ? 0: 5,\"cols\":\"6\"}},[_c('v-sheet',{staticClass:\"d-flex flex-column rounded-lg\",attrs:{\"height\":\"48px\",\"width\":\"134px\",\"color\":\"#FFFADA\"}},[_c('span',{staticClass:\"caption text--secondary text-left px-2 pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.productionLocation'))+\" \")]),_c('span',{staticClass:\"px-2\",staticStyle:{\"color\":\"black\"},attrs:{\"data-cy\":\"my-part-production-location-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.FactoryName)+\" \")])])],1)],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('div',{staticClass:\"text-truncate\",staticStyle:{\"min-width\":\"50px !important\"}},[_c('div',{staticClass:\"caption text--secondary text-truncate\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.material'))+\" \")]),_c('span',{staticClass:\"text-truncate\",attrs:{\"data-cy\":\"my-part-material-grid\",\"title\":_vm.part.materialTranslation}},[_vm._v(\" \"+_vm._s(_vm.part.materialTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"text-truncate\"},[_c('div',{staticClass:\"caption text--secondary text-truncate\",staticStyle:{\"min-width\":\"50px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.finish'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"my-part-finish-grid\",\"title\":_vm.part.MaterialFinishOptionStr || _vm.part.MaterialFinishStr}},[_vm._v(\" \"+_vm._s(_vm.part.materialFinishOptionTranslation || _vm.part.materialFinishTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0 pr-0 ml-3\",attrs:{\"cols\":\"auto\"}},[_c('core-rang-price-moq',{attrs:{\"part\":_vm.part}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"text-truncate\"},[_c('div',{staticClass:\"caption text--secondary text-truncate\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.series'))+\" \")]),_c('span',{staticClass:\"text-truncate\",staticStyle:{\"max-width\":\"30px !important\"},attrs:{\"data-cy\":\"my-part-series-grid\",\"title\":_vm.part.materialSeriesTranslation}},[_vm._v(\" \"+_vm._s(_vm.part.materialSeriesTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('div',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.tolerances'))+\" \")]),_c('span',[_c('span',{attrs:{\"data-cy\":\"my-part-tolerances-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.toleranceTranslation)+\" \")])])]),_c('v-col',{staticClass:\"pb-0\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"d-inline-block\",staticStyle:{\"width\":\"135px !important\"},attrs:{\"min\":_vm.part.defaultQuantity,\"max\":9999999,\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.rfqs.quantity'),\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"blur\":function($event){_vm.ReqQty < Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) ? _vm.ReqQty = Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) : _vm.ReqQty = _vm.ReqQty;},\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.qtyOfPart = _vm.updateValue($event)}},model:{value:(_vm.ReqQty),callback:function ($$v) {_vm.ReqQty=_vm._n($$v)},expression:\"ReqQty\"}})],1),_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg \",attrs:{\"height\":\"48px\",\"color\":_vm.isExpired() ? '#FBE9EC': '#f0fdf3'}},[_c('span',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.totalPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',{staticClass:\"mt-2\",style:([_vm.isExpired() ? {'color': '#be2a45'} : {'color': ''}]),attrs:{\"data-cy\":\"my-part-total-price-grid\"}},[_vm._v(\" \"+_vm._s(_vm.calculatePrice(_vm.part).multiply(_vm.ReqQty))+\" \")])])],1)],1),(_vm.part.Machine !== 'turning')?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticStyle:{\"height\":\"100%\"}},[_vm._v(\"   \")])],1):_vm._e()],1),_c('v-card-actions',{staticClass:\"pa-0 pt-2 d-flex align-end\",staticStyle:{\"height\":\"66px\"},attrs:{\"data-cy\":\"my-part-card-actions-grid\"}},[_c('v-tooltip',{attrs:{\"right\":\"\",\"data-cy\":\"my-part-information-tooltip-grid\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n                var on = ref.on;\n                var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"d-flex\",attrs:{\"color\":\"primary\",\"data-cy\":\"my-part-information-grid\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',{staticClass:\"white--text\",attrs:{\"data-cy\":\"my-part-user-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.PortalUserId)+\" \")]),_c('br'),_c('span',{staticClass:\"white--text\",attrs:{\"data-cy\":\"my-part-user-grid\"}},[_vm._v(\" Item: \"+_vm._s(_vm.part.Item)+\" \")]),_c('br'),_c('span',{attrs:{\"data-cy\":\"my-part-expiration-date-grid\"}},[_vm._v(\" \"+_vm._s(_vm.isExpired() ? 'Is Expired Since' : _vm.$t('common.validUntil'))+\": \"+_vm._s(_vm.moment(_vm.part.ExpireDate).format('YYYY-MM-DD'))+\" \")])]),_c('div',{staticClass:\"d-flex flex-column\"},[(_vm.needSvg)?_c('core-upload-svg-drawing',{attrs:{\"part\":_vm.part}}):_vm._e(),(_vm.need2dDrawing)?_c('core-technical-drawing-pdf',{attrs:{\"part\":_vm.part}}):_vm._e()],1),_c('v-spacer'),(_vm._.get(_vm.currentUser, 'isAdmin') || _vm._.get(_vm.currentUser, ['rights', 'placeOrder']))?[(_vm.isExpired(_vm.part))?[_c('v-btn',{attrs:{\"loading\":_vm.part.isSavePending,\"color\":\"primary\",\"data-cy\":\"refresh-quote-button-grid\"},on:{\"click\":function($event){return _vm.refreshMyPartPrice(_vm.part)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-autorenew \")]),_vm._v(\" \"+_vm._s(_vm.t('views.myParts.refreshQuote'))+\" \")],1)]:[(_vm.isPartPresentInCurrentOrder(_vm.part))?[_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"remove-order-this-button-grid\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeToOrder(_vm.part)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.removeToOrder'))+\" \")])]:[(_vm.need2dDrawing && !_vm.part.TwoDFile || _vm.needSvg && !_vm.part.SvgFile)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n                var on = ref.on;\n                var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\",\"disabled\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,2104339699)},[(_vm.need2dDrawing)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderToolTip'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSvgToolTip'))+\" \")])]):(_vm.currentOrder && !_vm.currentOrder.canAddItem(_vm.part))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n                var on = ref.on;\n                var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\",\"disabled\":_vm.currentOrder && !_vm.currentOrder.canAddItem(_vm.part)},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,1926019698)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSingleLocationToolTip'))+\" \")])]):_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])]]]:_vm._e()],2),(_vm.isPartViewerActive)?_c('core-part-viewer-drawer',{attrs:{\"is-open\":_vm.isPartViewerActive,\"part\":_vm.part},on:{\"closeSidePanel\":function($event){_vm.isPartViewerActive = false}}}):_vm._e(),(_vm.deleteDialog.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"data-cy\":\"delete-dialogue\",\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":function($event){_vm.deleteDialog.display = false; _vm.part.remove(); _vm.removeToOrder(_vm.part)},\"click:cancel\":_vm.cancelDelete},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.deleteDialogPartTitle'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\"},[_c('span',{staticClass:\"d-block\",attrs:{\"data-cy\":\"delete-dialogue-2\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.deleteDialog.partToDelete.CustItemName }))}})])])]},proxy:true}],null,false,661523270),model:{value:(_vm.deleteDialog.display),callback:function ($$v) {_vm.$set(_vm.deleteDialog, \"display\", $$v)},expression:\"deleteDialog.display\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    hover\n    width=\"510px\"\n    min-width=\"510px\"\n    height=\"100%\"\n    :loading=\"part.isRemovePending\"\n    class=\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\"\n    data-cy=\"my-part-card-grid\"\n    :ripple=\"false\"\n  >\n    <v-container class=\"pa-0\">\n      <v-row no-gutters data-cy=\"my-part-first-horizontal-grid-view\">\n        <v-col cols=\"2\" class=\"py-0 pl-1 d-flex flex-row\">\n          <div\n            class=\" d-flex flex-column \"\n            @click=\"partViewerPart = part; isPartViewerActive = true;\"\n          >\n            <core-thumbnail-viewer\n              :part=\"part\"\n              :width=\"90\"\n              :height=\"90\"\n              class=\"pa-0\"\n              data-cy=\"my-part-image-grid\"\n              :is-display-border=\"true\"\n            />\n          </div>\n\n          <v-btn\n            style=\"position: relative; top: 110px; right:95px;\"\n            class=\"mt-n3\"\n            text\n            x-small\n            color=\"primary\"\n            data-cy=\"my-part-view-details-button-grid\"\n            @click=\"partViewerPart = part; isPartViewerActive = true;\"\n          >\n            {{ $t('common.viewDetails') }}\n            <v-icon x-small right>\n              mdi-arrow-right\n            </v-icon>\n          </v-btn>\n        </v-col>\n        <v-col cols=\"10\">\n          <v-row no-gutters class=\"pl-7\">\n            <v-col cols=\"11\" align-self=\"start\" class=\"pa-0\">\n              <div class=\"flex-row text-truncate\">\n                <span\n                  class=\"text-truncate\"\n                  style=\"font-size: 25px;font-weight: 500;\"\n                  data-cy=\"my-part-part-grid\"\n                  :title=\"part.CustItemName\"\n                >\n                  {{ part.CustItemName }}\n                </span>\n              </div>\n            </v-col>\n\n            <v-col cols=\"1\" align-self=\"start\" class=\"pa-0\">\n              <v-btn\n                right\n                class=\"align-self-start ml-auto\"\n                :loading=\"part.isRemovePending\"\n                color=\"primary\"\n                icon\n                data-cy=\"my-part-remove-button-grid\"\n                @click=\"\n                  deleteDialog.display = true;\n                  deleteDialog.partToDelete = part;\"\n              >\n                <v-icon>\n                  mdi-delete\n                </v-icon>\n              </v-btn>\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col\n              v-if=\"part.Machine === 'turning'\"\n              offset=\"1\"\n              cols=\"4\"\n              class=\"pb-0 pl-6\"\n            >\n              <div class=\"caption text--secondary\">\n                {{ $t('views.instantQuote.roughness') }}\n              </div>\n              <span>\n                <span data-cy=\"my-part-roughness-grid\">\n                  {{ getRoughnessName }}<br>\n                  {{ getRoughnessValue }}\n                </span>\n              </span>\n            </v-col>\n            <v-col\n              :offset=\"part.Machine === 'turning' ? 0: 5\"\n              cols=\"6\"\n              class=\"pl-12 d-flex justify-end pr-0\"\n            >\n              <v-sheet\n                height=\"48px\"\n                width=\"134px\"\n                color=\"#FFFADA\"\n                class=\"d-flex flex-column rounded-lg\"\n              >\n                <span class=\"caption text--secondary text-left px-2 pt-1\">\n                  {{ $t('views.myParts.productionLocation') }}\n                </span>\n                <span\n                  class=\"px-2\"\n                  style=\"color: black;\"\n                  data-cy=\"my-part-production-location-grid\"\n                >\n                  {{ part.FactoryName }}\n                </span>\n              </v-sheet>\n            </v-col>\n          </v-row>\n        </v-col>\n      </v-row>\n\n      <v-row>\n        <v-col align-self=\"start\" cols=\"3\" class=\"pb-0\">\n          <div style=\"min-width: 50px !important;\" class=\"text-truncate\">\n            <div class=\"caption text--secondary text-truncate\">\n              {{ $t('views.myParts.material') }}\n            </div>\n            <span\n              class=\"text-truncate\"\n              data-cy=\"my-part-material-grid\"\n              :title=\"part.materialTranslation\"\n            >\n              {{ part.materialTranslation }}\n            </span>\n          </div>\n        </v-col>\n        <v-col cols=\"4\" class=\"pb-0\">\n          <div class=\"text-truncate\">\n            <div\n              class=\"caption text--secondary text-truncate\"\n              style=\"min-width: 50px !important;\"\n            >\n              {{ $t('views.myParts.finish') }}\n            </div>\n            <span\n              data-cy=\"my-part-finish-grid\"\n              :title=\"part.MaterialFinishOptionStr || part.MaterialFinishStr\"\n            >\n              {{\n                part.materialFinishOptionTranslation || part.materialFinishTranslation\n              }}\n            </span>\n          </div>\n        </v-col>\n        <v-col cols=\"auto\" class=\"pb-0 pr-0 ml-3\">\n          <core-rang-price-moq :part=\"part\" />\n        </v-col>\n      </v-row>\n      <v-row>\n        <v-col cols=\"3\" class=\"pb-0 pt-2\">\n          <div class=\"text-truncate\">\n            <div class=\"caption text--secondary text-truncate\">\n              {{ $t('views.myParts.series') }}\n            </div>\n            <span\n              data-cy=\"my-part-series-grid\"\n              style=\"max-width: 30px !important\"\n              class=\"text-truncate\"\n              :title=\"part.materialSeriesTranslation\"\n            >\n              {{\n                part.materialSeriesTranslation\n              }}\n            </span>\n          </div>\n        </v-col>\n        <v-col align-self=\"start\" cols=\"3\" class=\"pb-0 pt-2\">\n          <div class=\"caption text--secondary\">\n            {{ $t('views.instantQuote.tolerances') }}\n          </div>\n          <span>\n            <span data-cy=\"my-part-tolerances-grid\">\n              {{\n                part.toleranceTranslation\n              }}\n            </span>\n          </span>\n        </v-col>\n        <v-col align-self=\"start\" cols=\"3\" class=\"pb-0\">\n          <v-text-field\n            v-model.number=\"ReqQty\"\n            :min=\"part.defaultQuantity\"\n            :max=\"9999999\"\n            class=\"d-inline-block\"\n            style=\"width:135px !important;\"\n            data-cy=\"quantity-input-upload\"\n            :label=\"$t('views.rfqs.quantity')\"\n            type=\"number\"\n            hide-details\n            outlined\n            dense\n            @blur=\"ReqQty < Math.min(...part.PriceMOQ.map(o => o.Qty)) ? ReqQty = Math.min(...part.PriceMOQ.map(o => o.Qty)) : ReqQty = ReqQty;\"\n            @input.native=\"part.qtyOfPart = updateValue($event)\"\n            @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n          />\n        </v-col>\n        <v-col align-self=\"start\" cols=\"3\" class=\"pb-0 pt-2\">\n          <v-sheet height=\"48px\" :color=\"isExpired() ? '#FBE9EC': '#f0fdf3' \" class=\"pa-2 py-0 rounded-lg \">\n            <span class=\"caption text--secondary text-left\">\n              {{ $t('views.productOption.totalPrice', {currencySymbol: currencySymbol}) }}\n            </span>\n            <span\n              class=\"mt-2\"\n              :style=\"[isExpired() ? {'color': '#be2a45'} : {'color': ''}]\"\n              data-cy=\"my-part-total-price-grid\"\n            >\n              {{ calculatePrice(part).multiply(ReqQty) }}\n            </span>\n          </v-sheet>\n        </v-col>\n      </v-row>\n      <!-- This to make both sheet-metal and turning card height equal as turning\n       part have two liner Tolerances -->\n      <v-row v-if=\"part.Machine !== 'turning'\" dense>\n        <v-col style=\"height: 100%\">\n          &nbsp;\n        </v-col>\n      </v-row>\n    </v-container>\n    <v-card-actions class=\"pa-0 pt-2 d-flex align-end\" data-cy=\"my-part-card-actions-grid\" style=\"height: 66px;\">\n      <v-tooltip right data-cy=\"my-part-information-tooltip-grid\">\n        <template v-slot:activator=\"{ on, attrs }\">\n          <v-icon\n            class=\"d-flex\"\n            v-bind=\"attrs\"\n            color=\"primary\"\n            data-cy=\"my-part-information-grid\"\n            v-on=\"on\"\n          >\n            mdi-information-outline\n          </v-icon>\n        </template>\n        <span class=\"white--text\" data-cy=\"my-part-user-grid\">\n          {{ part.PortalUserId }}\n        </span>\n        <br>\n        <span class=\"white--text\" data-cy=\"my-part-user-grid\">\n          Item: {{ part.Item }}\n        </span>\n        <br>\n        <span data-cy=\"my-part-expiration-date-grid\">\n          {{\n            isExpired() ? 'Is Expired Since' : $t('common.validUntil')\n          }}:   {{ moment(part.ExpireDate).format('YYYY-MM-DD') }}\n        </span>\n      </v-tooltip>\n      <div class=\"d-flex flex-column\">\n        <core-upload-svg-drawing\n          v-if=\"needSvg\"\n          :part=\"part\"\n        />\n        <core-technical-drawing-pdf\n          v-if=\"need2dDrawing\"\n          :part=\"part\"\n        />\n      </div>\n      <v-spacer />\n      <template v-if=\"_.get(currentUser, 'isAdmin') || _.get(currentUser, ['rights', 'placeOrder'])\">\n        <template v-if=\"isExpired(part)\">\n          <v-btn\n            :loading=\"part.isSavePending\"\n            color=\"primary\"\n            data-cy=\"refresh-quote-button-grid\"\n            @click=\"refreshMyPartPrice(part)\"\n          >\n            <v-icon left>\n              mdi-autorenew\n            </v-icon>\n            {{ t('views.myParts.refreshQuote') }}\n          </v-btn>\n        </template>\n        <template v-else>\n          <template v-if=\"isPartPresentInCurrentOrder(part)\">\n            <v-btn\n              color=\"primary\"\n              class=\"ml-6\"\n              data-cy=\"remove-order-this-button-grid\"\n              @click.stop=\"removeToOrder(part)\"\n            >\n              {{ $t('views.productOption.removeToOrder') }}\n            </v-btn>\n          </template>\n          <template v-else>\n            <v-tooltip v-if=\"need2dDrawing && !part.TwoDFile || needSvg && !part.SvgFile\" bottom>\n              <template v-slot:activator=\"{ on, attrs }\">\n                <div v-on=\"on\">\n                  <v-btn\n                    v-bind=\"attrs\"\n                    color=\"primary\"\n                    class=\"ml-6\"\n                    data-cy=\"order-this-button-grid\"\n                    disabled\n                    @click.stop=\"addToOrder\"\n                  >\n                    {{ $t('views.productOption.addToOrder') }}\n                  </v-btn>\n                </div>\n              </template>\n              <span v-if=\"need2dDrawing\">\n                {{ $t('views.productOption.addToOrderToolTip') }}\n              </span>\n              <span v-else>\n                {{ $t('views.productOption.addToOrderSvgToolTip') }}\n              </span>\n            </v-tooltip>\n            <v-tooltip v-else-if=\"currentOrder && !currentOrder.canAddItem(part)\" bottom>\n              <template v-slot:activator=\"{ on, attrs }\">\n                <div v-on=\"on\">\n                  <v-btn\n                    v-bind=\"attrs\"\n                    color=\"primary\"\n                    class=\"ml-6\"\n                    data-cy=\"order-this-button-grid\"\n                    :disabled=\"currentOrder && !currentOrder.canAddItem(part)\"\n                    @click.stop=\"addToOrder\"\n                  >\n                    {{ $t('views.productOption.addToOrder') }}\n                  </v-btn>\n                </div>\n              </template>\n              <span>\n                {{ $t('views.productOption.addToOrderSingleLocationToolTip') }}\n              </span>\n            </v-tooltip>\n            <v-btn\n              v-else\n              color=\"primary\"\n              class=\"ml-6\"\n              data-cy=\"order-this-button-grid\"\n              @click.stop=\"addToOrder\"\n            >\n              {{ $t('views.productOption.addToOrder') }}\n            </v-btn>\n          </template>\n        </template>\n      </template>\n    </v-card-actions>\n    <core-part-viewer-drawer\n      v-if=\"isPartViewerActive\"\n      :is-open=\"isPartViewerActive\"\n      :part=\"part\"\n      @closeSidePanel=\"isPartViewerActive = false\"\n    />\n    <core-dialog\n      v-if=\"deleteDialog.display\"\n      v-model=\"deleteDialog.display\"\n      type=\"confirmation\"\n      width=\"500px\"\n      data-cy=\"delete-dialogue\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"\n        deleteDialog.display = false; part.remove(); removeToOrder(part)\"\n      @click:cancel=\"cancelDelete\"\n    >\n      <template #title>\n        {{ $t('views.myParts.deleteDialogPartTitle') }}\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <span class=\"d-block\">\n            <span\n              class=\"d-block\"\n              data-cy=\"delete-dialogue-2\"\n              v-html=\"$t('common.deleteDialogText', { name: deleteDialog.partToDelete.CustItemName })\"\n            />\n          </span>\n        </div>\n      </template>\n    </core-dialog>\n  </v-card>\n</template>\n<script>\nimport { models } from 'feathers-vuex';\n\nimport {\n  computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Company, MyProduct } = models.api;\n\nexport default defineComponent({\n  props: {\n    /**\n         * Manipulate the way field's value displays\n         */\n    part: {\n      type: Object,\n      default: () => {\n      }\n    },\n  },\n\n  setup(props, context) {\n    const t = context.root.$t;\n\n    const company = computed(() => Company.getFromStore(0));\n\n    const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n    const partViewerPart = ref({});\n\n    const isPartViewerActive = ref(false);\n\n    const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n    const defaultQty = computed(() => Math.min(...props.part.PriceMOQ.map(o => o.Qty)));\n\n    const ReqQty = ref(defaultQty.value);\n\n    const deleteDialog = ref({\n      display: false,\n      partToDelete: new MyProduct(),\n    });\n\n    // const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n    const currentOrder = computed(() => context.root.$store.getters['app/currentOrder']);\n\n    const getRoughnessName = computed(() => {\n      switch (props.part.Roughness) {\n        case '6.0':\n          return context.root.$t('views.myParts.roughnessMilledName');\n        case '3.2':\n          return context.root.$t('views.myParts.roughnessStandardName');\n        case '1.6':\n          return context.root.$t('views.myParts.roughnessFineName');\n        case '0.8':\n          return context.root.$t('views.myParts.roughnessGradeName');\n        default:\n          return 'N/A';\n      }\n    });\n\n    const getRoughnessValue = computed(() => {\n      switch (props.part.Roughness) {\n        case '6.0':\n          return context.root.$t('views.myParts.roughnessMilledValue');\n        case '3.2':\n          return context.root.$t('views.myParts.roughnessStandardValue');\n        case '1.6':\n          return context.root.$t('views.myParts.roughnessFineValue');\n        case '0.8':\n          return context.root.$t('views.myParts.roughnessGradeValue');\n        default:\n          return '';\n      }\n    });\n\n    const sortByQuantity = part => {\n      if (part.PriceMOQ) {\n        const priceMoq = JSON.parse(part.PriceMOQ);\n        return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n          ...moq,\n          Price: currency(moq.Price, { symbol: currencySymbol.value }).format(),\n        }));\n      }\n      return [];\n    };\n\n    const priceRange = part => {\n      try {\n        const parsedData = part.PriceMOQ;\n        const first = parsedData[0];\n        const last = parsedData.pop();\n        return `${currency(last.Price, { symbol: currencySymbol.value }).format()} - ${currency(first.Price, { symbol: currencySymbol.value }).format()}`;\n      } catch {\n        return context.root.$t('common.noDataAvailable');\n      }\n    };\n\n    const isExpired = () => moment().diff(props.part.ExpireDate, 'days') > 0;\n\n    const refreshMyPartPrice = async part => {\n      const query = {\n        query: {\n          shouldUpdatePrice: true,\n        },\n        notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n      };\n      await part.save(query);\n    };\n\n    const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n    const cancelDelete = () => {\n      deleteDialog.value.display = false;\n      deleteDialog.value.partToDelete = new MyProduct();\n    };\n\n    const addToOrder = async () => {\n      // eslint-disable-next-line no-underscore-dangle\n      const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n      order.addItem('myproduct', props.part._id, ReqQty.value);\n    };\n\n    const removeToOrder = part => {\n      if (currentOrder.value) {\n        currentOrder.value.spliceItem(currentOrder.value.orderItems.indexOf(part), 1);\n      }\n    };\n\n    const calculatePrice = computed(() => part => {\n      if (!part.PriceMOQ) {\n        return currency(0, { symbol: currencySymbol.value });\n      }\n\n      let priceMoq;\n      if (typeof part.PriceMOQ === 'string') {\n        priceMoq = JSON.parse(part.PriceMOQ);\n      } else {\n        priceMoq = [...part.PriceMOQ];\n      }\n\n      const priceMOQ = [...priceMoq].sort(({ Qty: a }, { Qty: b }) => b - a);\n\n      const findPrice = priceMOQ.find(({ Qty }) => Qty <= ReqQty.value) || Math.min(...priceMOQ.map(o => o.Qty));\n\n      if (!findPrice) {\n        return currency(0, { symbol: currencySymbol.value });\n      }\n\n      return currency(findPrice.Price, { symbol: currencySymbol.value });\n    });\n\n    const updateValue = () => event => {\n      if (parseInt(event.target.value, 10) <= parseInt(event.target.min, 10)) {\n        return event.target.min;\n      }\n      if (parseInt(event.target.max, 10) < parseInt(event.target.value, 10)) {\n        return event.target.max;\n      }\n      return event.target.value;\n    };\n\n    const isPartPresentInCurrentOrder = computed(() => part => {\n      if (currentOrder.value === null) {\n        return false;\n      }\n\n      const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n      return currentPart !== -1;\n    });\n\n    const need2dDrawing = computed(() => {\n      const need2d = _.get(props.part, 'Others.need2dDrawing', undefined);\n      if (need2d !== undefined) {\n        return need2d;\n      }\n      return props.part.Machine === 'sheet-metal' && props.part.CustFileName.split('.').pop().toUpperCase() === 'DXF';\n    });\n\n    const needSvg = computed(() => props.part.Machine === 'sheet-metal' && props.part.LaserEngraving === '1');\n\n    return {\n      sortByQuantity,\n      removeToOrder,\n      addToOrder,\n      cancelDelete,\n      itemRowBackground,\n      refreshMyPartPrice,\n      isExpired,\n      priceRange,\n      deleteDialog,\n      calculatePrice,\n      currencySymbol,\n      currentUser,\n      isPartPresentInCurrentOrder,\n      t,\n      defaultQty,\n      ReqQty,\n      isPartViewerActive,\n      partViewerPart,\n      updateValue,\n      getRoughnessName,\n      getRoughnessValue,\n      need2dDrawing,\n      needSvg,\n      currentOrder,\n    };\n  },\n});\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartCard.vue?vue&type=template&id=f7d998c2&scoped=true&\"\nimport script from \"./PartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./PartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"f7d998c2\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VContainer,VIcon,VRow,VSheet,VSpacer,VTextField,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderItemsTable.vue?vue&type=style&index=0&id=d3b94924&scoped=true&lang=css&\"","import Vue from 'vue';\n\nexport const reset = defaults => state => {\n  Object.assign(state, defaults || {});\n};\n\nexport const clear = property => state => {\n  const currentState = state;\n  Vue.delete(currentState, property);\n};\n\nexport const clearAt = property => (state, payload) => {\n  const currentState = state;\n  Vue.delete(_.get(currentState, property), payload._id);\n};\n\nexport const set = property => (state, payload) => {\n  const currentState = state;\n  Vue.set(currentState, property, payload);\n};\n\nexport const setAt = property => (state, payload) => {\n  const currentState = state;\n  Vue.set(_.get(currentState, property), payload._id, payload);\n};\n\nexport const update = property => (state, payload) => {\n  const currentState = state;\n  const old = _.get(currentState, property);\n  Vue.set(currentState, property, { ...old, ...payload });\n};\n\nexport const updateAt = property => (state, payload) => {\n  const currentState = state;\n  const old = _.get(currentState, [property, payload._id]);\n  Vue.set(_.get(currentState, property), payload._id, { ...old, ...payload });\n};\n\nexport const toggle = property => state => {\n  const currentState = state;\n  Vue.set(currentState, property, !state[property]);\n};\n\nexport const setStorage = property => (state, payload) => {\n  const currentState = state;\n  Vue.set(currentState, property, payload);\n  let v = payload;\n  if (_.isObject(payload)) {\n    v = JSON.stringify(payload);\n  }\n  localStorage.setItem(property, v);\n};\n\nexport const toggleStorage = property => state => {\n  const currentState = state;\n  Vue.set(currentState, property, !state[property]);\n  localStorage.setItem(property, currentState[property]);\n};\n\nexport const clearStorage = property => state => {\n  const currentState = state;\n  Vue.set(currentState, property, undefined);\n  localStorage.removeItem(property);\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoqLabel.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"auto\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0 align-self-center\",attrs:{\"cols\":\"auto\"}},[_c('span',[_vm._v(_vm._s(_vm.label))])]),_c('v-col',{staticClass:\"pa-0 align-self-center\",attrs:{\"cols\":\"auto\"}},[_c('v-select',_vm._b({staticClass:\"version-select\",style:({ 'max-width': _vm.width }),attrs:{\"items\":_vm.items,\"item-text\":_vm.itemText,\"item-value\":_vm.itemValue,\"background-color\":\"success lighten-5\",\"hide-details\":\"\",\"dense\":\"\",\"solo\":\"\"},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}},'v-select',_vm.$attrs,false))],1),_c('v-col',{staticClass:\"pa-0 pl-2 align-self-center\",attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"color\":\"success\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('new-version')}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-col class=\"py-0\" cols=\"auto\">\n    <v-row>\n      <v-col class=\"py-0 align-self-center\" cols=\"auto\">\n        <span>{{ label }}</span>\n      </v-col>\n\n      <v-col class=\"pa-0 align-self-center\" cols=\"auto\">\n        <v-select\n          v-model=\"data\"\n          class=\"version-select\"\n          :style=\"{ 'max-width': width }\"\n          :items=\"items\"\n          :item-text=\"itemText\"\n          :item-value=\"itemValue\"\n          background-color=\"success lighten-5\"\n          v-bind=\"$attrs\"\n          hide-details\n          dense\n          solo\n        />\n      </v-col>\n\n      <v-col class=\"pa-0 pl-2 align-self-center\" cols=\"auto\">\n        <v-btn\n          color=\"success\"\n          icon\n          @click=\"$emit('new-version')\"\n        >\n          <v-icon>mdi-plus</v-icon>\n        </v-btn>\n      </v-col>\n    </v-row>\n  </v-col>\n</template>\n\n<script>\nimport ModelMixin from '../../mixins/model';\n\nexport default {\n  mixins: [\n    ModelMixin,\n  ],\n\n  props: {\n    value: Number,\n    label: String,\n    items: { type: Array, default: () => [] },\n    itemText: [String, Function],\n    itemValue: [String, Function],\n    itemDisabled: [String, Function],\n    width: String,\n  }\n};\n</script>\n\n<style scoped>\n.version-select {\n  max-width: 5em;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionManager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionManager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VersionManager.vue?vue&type=template&id=1e222a4c&scoped=true&\"\nimport script from \"./VersionManager.vue?vue&type=script&lang=js&\"\nexport * from \"./VersionManager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VersionManager.vue?vue&type=style&index=0&id=1e222a4c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1e222a4c\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VSelect})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoq.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-1\",attrs:{\"hover\":\"\",\"width\":\"510px\",\"min-width\":\"510px\",\"ripple\":false}},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center\",staticStyle:{\"min-width\":\"120px\",\"max-width\":\"120px\"},attrs:{\"cols\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"90px\",\"width\":\"90px\"}}),_c('v-skeleton-loader',{staticClass:\"mt-3\",attrs:{\"type\":\"text\",\"width\":\"70px\",\"height\":\"20px\"}})],1),_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}}),_c('v-skeleton-loader',{staticClass:\"mt-10\",attrs:{\"type\":\"image\",\"height\":\"30px\",\"width\":\"200px\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1),_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1),_c('v-col',[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}}),_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"100px\"}})],1)],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-skeleton-loader',{staticClass:\"mt-3\",attrs:{\"type\":\"text\",\"width\":\"70px\",\"height\":\"20px\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./PartCardSkeleton.vue?vue&type=template&id=1bf03080&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardActions,VCol,VContainer,VRow,VSkeletonLoader,VSpacer})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'company';\n\nconst Model = class Company extends BaseModel {\n  static modelName = 'Company';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n\n  static setupInstance(data) {\n    if (data.region) {\n      data.region = data.region.split('-').pop();\n    }\n  }\n\n  get currencySymbol() {\n    return this.CurrCode === 'CNY' ? '¥' : '$';\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"return-value\":_vm.data,\"transition\":\"scale-transition\",\"min-width\":\"290px\",\"nudge-top\":\"-6\",\"offset-y\":\"\",\"offset-overflow\":\"\"},on:{\"update:returnValue\":function($event){_vm.data=$event},\"update:return-value\":function($event){_vm.data=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g(_vm._b({directives:[{name:\"mask\",rawName:\"v-mask\",value:('##:##'),expression:\"'##:##'\"}],attrs:{\"append-icon\":\"mdi-clock-outline\",\"hint\":\"hh:mm\",\"error\":_vm.invalidTime,\"error-messages\":_vm.invalidTimeMessage},on:{\"blur\":_vm.onBlur},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}},'v-text-field',_vm.$attrs,false),Object.assign({}, _vm.$listeners, on)))]}}]),model:{value:(_vm.menuPicker),callback:function ($$v) {_vm.menuPicker=$$v},expression:\"menuPicker\"}},[(_vm.menuPicker)?_c('v-time-picker',_vm._g(_vm._b({attrs:{\"format\":\"24hr\",\"locale\":_vm.$i18n.locale},on:{\"click:minute\":function($event){return _vm.$refs.menu.save(_vm.data)}},model:{value:(_vm.data),callback:function ($$v) {_vm.data=$$v},expression:\"data\"}},'v-time-picker',_vm.$attrs,false),_vm.$listeners)):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-menu\n    ref=\"menu\"\n    v-model=\"menuPicker\"\n    :close-on-content-click=\"false\"\n    :return-value.sync=\"data\"\n    transition=\"scale-transition\"\n    min-width=\"290px\"\n    nudge-top=\"-6\"\n    offset-y\n    offset-overflow\n  >\n    <template v-slot:activator=\"{ on }\">\n      <v-text-field\n        v-model=\"data\"\n        v-mask=\"'##:##'\"\n        v-bind=\"$attrs\"\n        append-icon=\"mdi-clock-outline\"\n        hint=\"hh:mm\"\n        :error=\"invalidTime\"\n        :error-messages=\"invalidTimeMessage\"\n        v-on=\"{ ...$listeners, ...on }\"\n        @blur=\"onBlur\"\n      />\n    </template>\n\n    <v-time-picker\n      v-if=\"menuPicker\"\n      v-model=\"data\"\n      format=\"24hr\"\n      v-bind=\"$attrs\"\n      :locale=\"$i18n.locale\"\n      v-on=\"$listeners\"\n      @click:minute=\"$refs.menu.save(data)\"\n    />\n  </v-menu>\n</template>\n\n<script>\nimport ModelMixin from '../../mixins/model';\n\nexport default {\n  mixins: [\n    ModelMixin,\n  ],\n\n  props: {\n    value: { type: String, default: '' },\n  },\n\n  data() {\n    return {\n      time: '',\n      menuPicker: false,\n      invalidTime: false,\n      invalidTimeMessage: undefined,\n    };\n  },\n\n  watch: {\n    data(newValue) {\n      if (_.isEmpty(newValue)) {\n        return;\n      }\n\n      const t = moment(newValue, 'HH:mm', true);\n      if (t.isValid()) {\n        this.pickerTime = t.format('HH:mm');\n      }\n    },\n\n    pickerTime(newValue) {\n      this.data = newValue;\n    },\n  },\n\n  mounted() {\n    this.pickerTime = this.data;\n  },\n\n  methods: {\n    validate(s) {\n      if (_.isEmpty(s)) {\n        return;\n      }\n\n      const t = moment(s, 'HH:mm', true);\n      this.invalidTime = !t.isValid();\n      this.invalidTimeMessage = this.invalidTime ? this.$t('common.error.time') : undefined;\n    },\n\n    onBlur(event) {\n      let t = event.relatedTarget;\n      while (t) {\n        if (t.classList && t.classList.contains('v-picker--time')) {\n          break;\n        }\n        t = t.parentNode;\n      }\n      if (!t) {\n        this.menuPicker = false;\n      }\n      this.$refs.menu.save(this.data);\n      this.validate(this.data);\n    },\n  }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeField.vue?vue&type=template&id=259e26f8&\"\nimport script from \"./TimeField.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeField.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTimePicker } from 'vuetify/lib/components/VTimePicker';\ninstallComponents(component, {VMenu,VTextField,VTimePicker})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0 mb-3 px-1\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"background-color\":\"white\",\"border-radius\":\"10px\"}},[_c('v-col',{staticClass:\"py-0 px-5\",staticStyle:{\"min-width\":\"175px\",\"max-width\":\"175px\"},attrs:{\"cols\":\"3\",\"data-cy\":\"vertical-block-1-grid\"},on:{\"click\":_vm.onClickButton}},[_c('core-thumbnail-viewer',{staticClass:\"mr-2 mt-2\",attrs:{\"part\":_vm.part,\"part-lookup-key\":'Item',\"width\":90,\"height\":90,\"data-cy\":\"image-grid\"}}),_c('v-btn',{staticClass:\"pl-0\",attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\",\"data-cy\":\"view-details-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1),_c('v-col',{staticClass:\"px-1 pb-0 ma-0\",attrs:{\"data-cy\":\"vertical-block-2-grid\"}},[_c('v-row',{staticClass:\"text-h5 pa-1 ma-0\",attrs:{\"data-cy\":\"horizontal-1-vertical-block-2-grid\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"4\",\"data-cy\":\"quote-title-grid\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.CustItemName))}}),_vm._v(\" \"+_vm._s(_vm.$t('common.revision', {revision: _vm.part.Revision}))+\" \")]),_c('v-col',{staticClass:\"d-flex justify-center pa-0 mt-1\",attrs:{\"cols\":\"4\"}},[(_vm._.get(_vm.user, 'isAdmin') || _vm._.get(_vm.user, ['rights', 'myParts']))?_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"disabled\":_vm.isAlreadyInMyParts,\"loading\":_vm.myPart.isSavePending,\"color\":\"primary\",\"data-cy\":\"save-parts-grid\"},on:{\"click\":_vm.saveToMyParts}},[(_vm.isAlreadyInMyParts)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.existsInMyParts'))+\" \")]):[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-download \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.saveToMyParts'))+\" \")])]],2):_vm._e(),(_vm.need2dDrawing)?_c('core-technical-drawing-pdf',{staticClass:\"mt-n1\",attrs:{\"part\":_vm.part,\"button-attrs\":{ 'small': true },\"button-icon-attrs\":{ style: 'font-size: 18px' }}}):_vm._e(),(_vm.needSvg)?_c('core-upload-svg-drawing',{staticClass:\"mt-n1\",attrs:{\"part\":_vm.part,\"button-attrs\":{ 'small': true },\"button-icon-attrs\":{ style: 'font-size: 18px' }}}):_vm._e()],1)],1),_c('v-row',{staticClass:\"px-1 ma-0\",attrs:{\"data-cy\":\"horizontal-2-vertical-block-2-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemDesc)+\" \")]),_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"data-cy\":\"horizontal-3-vertical-block-2-grid\"}},[_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"material-label-grid\"}},[_vm._v(_vm._s(_vm.$t('views.rfqs.material')))]),_c('span',{attrs:{\"data-cy\":\"material-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.materialTranslation))}})]),(_vm.part.Machine === 'sheet-metal')?_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"thickness-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.thickness'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"thickness-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.materialThicknessTranslation))}})]):_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"thickness-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.roughness'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"thickness-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.roughnessName))}})]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"series-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.series'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"series-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.part.materialSeriesTranslation))}})]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"finish-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.finish'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"finish-grid\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight( _vm.part.materialFinishTranslation ))}})]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":\"tolerances-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.tolerances'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"tolerances-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.toleranceTranslation)+\" \")])]),_c('v-col',{staticClass:\"ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\",\"color\":\"#8D8D8D\",\"width\":\"120px\"},attrs:{\"data-cy\":\"factory-name-label-grid\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.productionLocation'))+\" \")]),_c('span',{attrs:{\"data-cy\":\"factory-name-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.FactoryName)+\" \")])])],1)],1),_c('v-col',{staticClass:\"pt-2 pb-0 px-1\",staticStyle:{\"min-width\":\"190px\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"cols\":\"2\",\"data-cy\":\"vertical-block-3-grid\"}},[_c('core-price-moq-table',{staticClass:\"mr-5\",attrs:{\"part\":_vm.part}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container fluid class=\"py-0 mb-3 px-1\">\n    <v-row style=\"background-color: white; border-radius: 10px;\">\n      <v-col\n        cols=\"3\"\n        class=\"py-0 px-5\"\n        style=\"min-width: 175px; max-width: 175px;\"\n        data-cy=\"vertical-block-1-grid\"\n        @click=\"onClickButton\"\n      >\n        <core-thumbnail-viewer\n          :part=\"part\"\n          :part-lookup-key=\"'Item'\"\n          :width=\"90\"\n          :height=\"90\"\n          class=\"mr-2 mt-2\"\n          data-cy=\"image-grid\"\n        />\n        <v-btn\n          text\n          x-small\n          color=\"primary\"\n          class=\"pl-0\"\n          data-cy=\"view-details-grid\"\n        >\n          {{ $t('common.viewDetails') }}\n          <v-icon x-small right>\n            mdi-arrow-right\n          </v-icon>\n        </v-btn>\n      </v-col>\n      <v-col class=\"px-1 pb-0 ma-0\" data-cy=\"vertical-block-2-grid\">\n        <v-row class=\"text-h5 pa-1 ma-0\" data-cy=\"horizontal-1-vertical-block-2-grid\">\n          <v-col cols=\"4\" class=\"pa-0\" data-cy=\"quote-title-grid\">\n            <span v-html=\"highlight(part.CustItemName)\" />\n            {{ $t('common.revision', {revision: part.Revision}) }}\n          </v-col>\n          <v-col cols=\"4\" class=\"d-flex justify-center pa-0 mt-1\">\n            <v-btn\n              v-if=\"_.get(user, 'isAdmin') || _.get(user, ['rights', 'myParts'])\"\n              text\n              small\n              :disabled=\"isAlreadyInMyParts\"\n              :loading=\"myPart.isSavePending\"\n              color=\"primary\"\n              data-cy=\"save-parts-grid\"\n              @click=\"saveToMyParts\"\n            >\n              <span v-if=\"isAlreadyInMyParts\">\n                {{ $t('views.rfqs.existsInMyParts') }}\n              </span>\n              <template v-else>\n                <v-icon left>\n                  mdi-download\n                </v-icon>\n                <span>\n                  {{ $t('views.rfqs.saveToMyParts') }}\n                </span>\n              </template>\n            </v-btn>\n            <core-technical-drawing-pdf\n              v-if=\"need2dDrawing\"\n              class=\"mt-n1\"\n              :part=\"part\"\n              :button-attrs=\"{ 'small': true }\"\n              :button-icon-attrs=\"{ style: 'font-size: 18px' }\"\n            />\n            <core-upload-svg-drawing\n              v-if=\"needSvg\"\n              class=\"mt-n1\"\n              :part=\"part\"\n              :button-attrs=\"{ 'small': true }\"\n              :button-icon-attrs=\"{ style: 'font-size: 18px' }\"\n            />\n          </v-col>\n          <!--          <v-col cols=\"4\" class=\"d-flex justify-center pa-0\">-->\n          <!--            <core-my-part-pdf :part=\"part\" />-->\n          <!--          </v-col>-->\n        </v-row>\n        <v-row class=\"px-1 ma-0\" data-cy=\"horizontal-2-vertical-block-2-grid\">\n          {{ part.CustItemDesc }}\n        </v-row>\n        <v-row class=\"pa-0 ma-0\" data-cy=\"horizontal-3-vertical-block-2-grid\">\n          <v-col class=\"px-1 ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block; color: #8D8D8D\"\n              data-cy=\"material-label-grid\"\n            >{{ $t('views.rfqs.material') }}</span>\n            <span data-cy=\"material-grid\" v-html=\"highlight(part.materialTranslation)\" />\n          </v-col>\n          <v-col v-if=\"part.Machine === 'sheet-metal'\" class=\"px-3 ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block;  color: #8D8D8D\"\n              data-cy=\"thickness-label-grid\"\n            >\n              {{ $t('views.rfqs.thickness') }}\n            </span>\n            <span data-cy=\"thickness-grid\" v-html=\"highlight(part.materialThicknessTranslation)\" />\n          </v-col>\n          <v-col v-else class=\"px-3 ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block;  color: #8D8D8D\"\n              data-cy=\"thickness-label-grid\"\n            >\n              {{ $t('views.rfqs.roughness') }}\n            </span>\n            <span data-cy=\"thickness-grid\" v-html=\"highlight(roughnessName)\" />\n          </v-col>\n          <v-col class=\"px-3 ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block; color: #8D8D8D\"\n              data-cy=\"series-label-grid\"\n            >\n              {{ $t('views.rfqs.series') }}\n            </span>\n            <span data-cy=\"series-grid\" v-html=\"highlight(part.materialSeriesTranslation)\" />\n          </v-col>\n          <v-col class=\"px-3 ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block; color: #8D8D8D\"\n              data-cy=\"finish-label-grid\"\n            >\n              {{ $t('views.rfqs.finish') }}\n            </span>\n            <span\n              data-cy=\"finish-grid\"\n              v-html=\"highlight( part.materialFinishTranslation )\"\n            />\n          </v-col>\n          <v-col class=\"px-3 ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block; color: #8D8D8D\"\n              data-cy=\"tolerances-label-grid\"\n            >\n              {{ $t('views.instantQuote.tolerances') }}\n            </span>\n            <span data-cy=\"tolerances-grid\">\n              {{\n                part.toleranceTranslation\n              }}\n            </span>\n          </v-col>\n          <v-col class=\"ma-0\">\n            <span\n              class=\"caption\"\n              style=\"display:block; color: #8D8D8D; width: 120px;\"\n              data-cy=\"factory-name-label-grid\"\n            >\n              {{ $t('views.rfqs.productionLocation') }}\n            </span>\n            <span data-cy=\"factory-name-grid\">\n              {{\n                part.FactoryName\n              }}\n            </span>\n          </v-col>\n        </v-row>\n      </v-col>\n      <v-col\n        cols=\"2\"\n        class=\"pt-2 pb-0 px-1\"\n        style=\"min-width: 190px; display:flex; align-items:center;\"\n        data-cy=\"vertical-block-3-grid\"\n      >\n        <core-price-moq-table :part=\"part\" class=\"mr-5\" />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapGetters, mapState } from 'vuex';\n\nconst { MyPart } = models.api;\n\nexport default {\n  name: 'RfqPartCard',\n  props: {\n    part: Object,\n    customerPriceRange: Array,\n    searchValue: String,\n    filterPart: { type: Array, default: () => [] }\n  },\n  data() {\n    return {\n      myPart: {}\n    };\n  },\n  computed: {\n    ...mapState('app', ['locale']),\n    ...mapGetters('auth', ['user']),\n    isAlreadyInMyParts: vm => vm.part.ExistsInMyProducts,\n    needSvg: vm => vm.part.Machine === 'sheet-metal' && vm.part.LaserEngraving === '1',\n    need2dDrawing: vm => {\n      const need2d = _.get(vm.part, 'Others.need2dDrawing', undefined);\n      if (need2d !== undefined) {\n        return need2d;\n      }\n      return vm.part.Machine === 'sheet-metal' && vm.part.CustFileName.split('.').pop().toUpperCase() === 'DXF';\n    },\n    roughnessName: vm => {\n      switch (vm.part.Roughness) {\n        case '6.0':\n          return vm.$t('views.rfqs.roughnessMilled');\n        case '3.2':\n          return vm.$t('views.rfqs.roughnessStandard');\n        case '1.6':\n          return vm.$t('views.rfqs.roughnessFine');\n        case '0.8':\n          return vm.$t('views.rfqs.roughnessGrade');\n        default:\n          return 'N/A';\n      }\n    },\n  },\n  mounted() {\n    // TODO use get by id service when is available\n    MyPart.find({ query: {} });\n  },\n  methods: {\n    onClickButton() {\n      this.$emit('click:sideView', this.part);\n    },\n    saveToMyParts() {\n      this.myPart = new MyPart({ ..._.omit(this.part, '_id') });\n      this.myPart.create({ notificationMessage: this.$t('views.rfqs.savedToMyParts') }).then(() => {\n        this.part.ExistsInMyProducts = true;\n      });\n    },\n    highlight(value) {\n      const escapedStringRegEx = _.escapeRegExp(this.searchValue);\n      const re = new RegExp(`(${escapedStringRegEx})`, 'gi');\n      if (!_.isEmpty(this.filterPart)) {\n        return value.replace(\n          re,\n          '<span style=\"background-color: yellow\">$1</span>'\n        );\n      }\n      return value;\n    },\n  }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RfqPartCard.vue?vue&type=template&id=61fa69c7&\"\nimport script from \"./RfqPartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RfqPartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderShippingAddress.vue?vue&type=style&index=0&id=fb74c790&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-toolbar',{staticClass:\"mb-4\",attrs:{\"color\":\"primary\",\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"white--text\"},[_vm._v(\" Role \")])],1),_c('v-card-text',[_c('v-col',{staticClass:\"py-0\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"5\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.name')},model:{value:(_vm.localValue.name),callback:function ($$v) {_vm.$set(_vm.localValue, \"name\", $$v)},expression:\"localValue.name\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"5\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('form.role.fields.rights'),\"items\":_vm.rightsWithDescriptions,\"item-text\":\"label\",\"item-value\":\"value\",\"chips\":\"\",\"clearable\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\"},model:{value:(_vm.localValue.rights),callback:function ($$v) {_vm.$set(_vm.localValue, \"rights\", $$v)},expression:\"localValue.rights\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('common.inactive')},model:{value:(_vm.localValue.inactive),callback:function ($$v) {_vm.$set(_vm.localValue, \"inactive\", $$v)},expression:\"localValue.inactive\"}})],1)],1)],1),_vm._t(\"default\")],2)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"disabled\":!_vm.originalFormDataChanged || _vm.loading,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.$emit('save', _vm.localValue)}}},[_vm._v(\" Save \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card>\n    <v-toolbar\n      color=\"primary\"\n      class=\"mb-4\"\n      flat\n    >\n      <v-card-title class=\"white--text\">\n        Role\n      </v-card-title>\n    </v-toolbar>\n\n    <v-card-text>\n      <v-col class=\"py-0\">\n        <v-container>\n          <v-row>\n            <v-col\n              class=\"py-0\"\n              md=\"5\"\n              cols=\"12\"\n            >\n              <v-text-field\n                v-model=\"localValue.name\"\n                :label=\"$t('common.name')\"\n              />\n            </v-col>\n            <v-col\n              class=\"py-0\"\n              cols=\"12\"\n              md=\"5\"\n            >\n              <v-select\n                v-model=\"localValue.rights\"\n                :label=\"$t('form.role.fields.rights')\"\n                :items=\"rightsWithDescriptions\"\n                item-text=\"label\"\n                item-value=\"value\"\n                chips\n                clearable\n                small-chips\n                deletable-chips\n                multiple\n              />\n            </v-col>\n            <v-col\n              class=\"py-0\"\n              cols=\"12\"\n              md=\"2\"\n            >\n              <v-checkbox\n                v-model=\"localValue.inactive\"\n                :label=\"$t('common.inactive')\"\n              />\n            </v-col>\n          </v-row>\n        </v-container>\n\n        <slot />\n      </v-col>\n    </v-card-text>\n\n    <v-card-actions>\n      <v-spacer />\n      <v-btn\n        depressed\n        color=\"primary\"\n        :disabled=\"!originalFormDataChanged || loading\"\n        :loading=\"loading\"\n        @click=\"$emit('save', localValue)\"\n      >\n        Save\n      </v-btn>\n    </v-card-actions>\n  </v-card>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport FormMixin from '../../mixins/form';\n\nexport default {\n  mixins: [\n    FormMixin,\n  ],\n\n  props: {\n    loading: Boolean,\n  },\n\n  computed: {\n    ...mapState('app', ['rights']),\n\n    /**\n     * Returns all rights descriptions.\n     */\n    rightsWithDescriptions() {\n      return this.rights.map(right => ({ value: right, label: this.$t(`rights.${right}`) }));\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Role.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Role.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Role.vue?vue&type=template&id=da37aaac&\"\nimport script from \"./Role.vue?vue&type=script&lang=js&\"\nexport * from \"./Role.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VRow,VSelect,VSpacer,VTextField,VToolbar})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'internal-products';\n\nconst Model = class InternalProduct extends BaseModel {\n  static modelName = 'InternalProduct';\n\n  static instanceDefaults() {\n    return {};\n  }\n\n  static setupInstance(data) {\n    return data;\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","import get from 'lodash/get';\nimport set from 'lodash/set';\nimport clone from 'lodash/clone';\nimport cloneDeep from 'lodash/cloneDeep';\nimport sortBy from 'lodash/sortBy';\nimport last from 'lodash/last';\nimport omit from 'lodash/omit';\nimport remove from 'lodash/remove';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isNumber from 'lodash/isNumber';\nimport isNaN from 'lodash/isNaN';\nimport isUndefined from 'lodash/isUndefined';\nimport isObject from 'lodash/isObject';\nimport defaultsDeep from 'lodash/defaultsDeep';\nimport upperFirst from 'lodash/upperFirst';\nimport camelCase from 'lodash/camelCase';\nimport uniqBy from 'lodash/uniqBy';\nimport uniqueId from 'lodash/uniqueId';\nimport mapValues from 'lodash/mapValues';\nimport groupBy from 'lodash/groupBy';\nimport pick from 'lodash/pick';\nimport escapeRegExp from 'lodash/escapeRegExp';\nimport debounce from 'lodash/debounce';\nimport merge from 'lodash/merge';\nimport intersection from 'lodash/intersection';\n\nexport default {\n  get,\n  set,\n  clone,\n  cloneDeep,\n  sortBy,\n  last,\n  omit,\n  remove,\n  compact,\n  isEmpty,\n  isEqual,\n  isString,\n  isFunction,\n  isNumber,\n  isNaN,\n  isUndefined,\n  isObject,\n  defaultsDeep,\n  upperFirst,\n  camelCase,\n  uniqBy,\n  uniqueId,\n  mapValues,\n  groupBy,\n  pick,\n  escapeRegExp,\n  debounce,\n  merge,\n  intersection\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VersionManager.vue?vue&type=style&index=0&id=1e222a4c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card',{staticStyle:{\"min-width\":\"730px\"},attrs:{\"ripple\":false},on:{\"click\":function($event){_vm.isExpanded = !_vm.isExpanded}}},[_c('v-container',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"min-content auto min-content\"}},[_c('v-img',{staticStyle:{\"align-self\":\"start\",\"margin-top\":\"8px\"},attrs:{\"src\":\"https://www.svgrepo.com/show/203564/screw.svg\",\"max-height\":\"60px\",\"max-width\":\"78px\"}}),_c('div',[_c('div',{staticClass:\"text-h4 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.productGroup[_vm.locale === 'en-US' ? 'description' : 'descriptionChs'])+\" \")]),_c('div',{staticClass:\"subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.productGroup[_vm.locale === 'en-US' ? 'description' : 'descriptionChs'])+\" \")])]),(_vm.isExpanded)?_c('v-icon',{staticStyle:{\"align-self\":\"start\"},attrs:{\"x-large\":\"\"}},[_vm._v(\" mdi-chevron-down \")]):_c('v-icon',{staticStyle:{\"align-self\":\"start\"},attrs:{\"x-large\":\"\"}},[_vm._v(\" mdi-chevron-right \")])],1),_c('v-expand-transition',[(_vm.isExpanded)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-container',{staticStyle:{\"display\":\"flex\",\"gap\":\"16px\",\"align-items\":\"center\",\"flex-wrap\":\"wrap\"}},[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"color\":\"primary\",\"x-large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.isDrawingsDialogOpen = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" Drawings \")],1),_vm._l((_vm.productOptions),function(productOption){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-select',{key:(\"dropdown-\" + (productOption.id)),staticStyle:{\"max-width\":\"150px\"},attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"items\":productOption.options,\"item-text\":_vm.locale === 'en-US' ? 'text' : 'textChs',\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}}):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-checkbox',{key:(\"checkbox-\" + (productOption.id)),staticStyle:{\"max-width\":\"150px\",\"padding-top\":\"0\",\"margin-top\":\"0\"},attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}}):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('div',{key:(\"plainText-\" + (productOption.id)),staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"max-width\":\"150px\",\"align-self\":\"stretch\"}},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(productOption.options[0][_vm.locale === 'en-US' ? 'text' : 'textChs'])+\" \")])]):_vm._e()]})],2),_c('v-container',{staticClass:\"pt-0\",staticStyle:{\"display\":\"flex\",\"gap\":\"16px\",\"align-items\":\"center\"}},[_c('v-text-field',{staticClass:\"d-flex\",staticStyle:{\"max-width\":\"110px\"},attrs:{\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.instantQuote.quantity'),\"rules\":[_vm.isPositiveInteger],\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()},\"click\":function($event){$event.stopPropagation();}},nativeOn:{\"input\":function($event){_vm.reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);}},model:{value:(_vm.reqQty),callback:function ($$v) {_vm.reqQty=_vm._n($$v)},expression:\"reqQty\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"center\",\"align-items\":\"start\",\"background-color\":\"#f0fdf3\",\"border-radius\":\"8px\",\"align-self\":\"stretch\",\"padding\":\"8px\"}},[_c('div',{staticClass:\"subtitle-2\",staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" Total Price ($) \")]),_c('div',[_vm._v(\"144.00\")])]),_c('v-btn',{attrs:{\"outlined\":\"\",\"x-large\":\"\",\"color\":\"primary\",\"disabled\":!_vm.customBagId || !_vm.selectedProduct,\"data-cy\":\"add-to-custom-bag-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-bag', _vm.selectedProduct)}}},[_vm._v(\" Add to custom bag \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"x-large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-order')}}},[_vm._v(\" Add to order \")])],1)],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <v-card\n      :ripple=\"false\"\n      style=\"min-width: 730px;\"\n      @click=\"isExpanded = !isExpanded\"\n    >\n      <v-container style=\"display: grid; grid-template-columns: min-content auto min-content;\">\n        <v-img\n          src=\"https://www.svgrepo.com/show/203564/screw.svg\"\n          max-height=\"60px\"\n          max-width=\"78px\"\n          style=\"align-self: start; margin-top: 8px;\"\n        />\n        <div>\n          <div class=\"text-h4 font-weight-bold\">\n            {{ productGroup[locale === 'en-US' ? 'description' : 'descriptionChs'] }}\n          </div>\n          <div class=\"subtitle-1\">\n            {{ productGroup[locale === 'en-US' ? 'description' : 'descriptionChs'] }}\n          </div>\n        </div>\n        <v-icon v-if=\"isExpanded\" x-large style=\"align-self: start;\">\n          mdi-chevron-down\n        </v-icon>\n        <v-icon v-else x-large style=\"align-self: start;\">\n          mdi-chevron-right\n        </v-icon>\n      </v-container>\n      <v-expand-transition>\n        <v-card\n          v-if=\"isExpanded\"\n          flat\n        >\n          <v-container style=\"display: flex; gap: 16px; align-items: center; flex-wrap: wrap;\">\n            <v-btn\n              depressed\n              text\n              color=\"primary\"\n              x-large\n              @click.stop=\"isDrawingsDialogOpen = true\"\n            >\n              <v-icon\n                left\n              >\n                mdi-vector-square\n              </v-icon>\n              Drawings\n            </v-btn>\n\n            <template v-for=\"productOption in productOptions\">\n              <v-select\n                v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n                :key=\"`dropdown-${productOption.id}`\"\n                v-model=\"selectedOptions[productOption.id]\"\n                style=\"max-width: 150px;\"\n                :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n                :items=\"productOption.options\"\n                :item-text=\"locale === 'en-US' ? 'text' : 'textChs'\"\n                outlined\n                hide-details\n                @click.stop\n              />\n              <v-checkbox\n                v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n                :key=\"`checkbox-${productOption.id}`\"\n                v-model=\"selectedOptions[productOption.id]\"\n                style=\"max-width: 150px; padding-top: 0; margin-top: 0;\"\n                :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n                hide-details\n                @click.stop\n              />\n              <div\n                v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n                :key=\"`plainText-${productOption.id}`\"\n                style=\"display: flex; flex-direction: column; max-width: 150px; align-self: stretch;\"\n              >\n                <div style=\"color: rgba(0, 0, 0, 0.6);\" class=\"caption\">\n                  {{ productOption[locale === 'en-US' ? 'label' : 'labelChs'] }}\n                </div>\n                <div>\n                  {{\n                    productOption.options[0][locale === 'en-US' ? 'text' : 'textChs']\n                  }}\n                </div>\n              </div>\n            </template>\n          </v-container>\n          <v-container style=\"display: flex; gap: 16px; align-items: center;\" class=\"pt-0\">\n            <v-text-field\n              v-model.number=\"reqQty\"\n              style=\"max-width: 110px;\"\n              class=\"d-flex\"\n              data-cy=\"quantity-input-upload\"\n              :label=\"$t('views.instantQuote.quantity')\"\n              :rules=\"[isPositiveInteger]\"\n              type=\"number\"\n              hide-details\n              outlined\n              @input.native=\"reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);\"\n              @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n              @click.stop\n            />\n\n            <div\n              style=\"display: flex; flex-direction: column; justify-content: center; align-items: start; background-color: #f0fdf3; border-radius: 8px; align-self: stretch; padding: 8px;\"\n            >\n              <div class=\"subtitle-2\" style=\"color: #8D8D8D\">\n                Total Price ($)\n              </div>\n              <div>144.00</div>\n            </div>\n\n            <v-btn\n              outlined\n              x-large\n              color=\"primary\"\n              :disabled=\"!customBagId || !selectedProduct\"\n              data-cy=\"add-to-custom-bag-button\"\n              @click.stop=\"$emit('add-to-bag', selectedProduct)\"\n            >\n              Add to custom bag\n            </v-btn>\n\n            <v-btn\n              color=\"primary\"\n              x-large\n              @click.stop=\"$emit('add-to-order')\"\n            >\n              Add to order\n            </v-btn>\n          </v-container>\n        </v-card>\n      </v-expand-transition>\n    </v-card>\n  </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n  name: 'HardwareProductGroup',\n\n  mixins: [\n    FormRules,\n  ],\n\n  // These can be computed properties that are pulled from the store based on ID\n  props: ['productGroup', 'productOptions', 'productGroupOptionValues', 'customBagId'],\n\n  data() {\n    return {\n      selectedOptions: {},\n      isExpanded: false,\n      reqQty: 1,\n      isDrawingsDialogOpen: false,\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n\n    // Definitely a more efficient way to do this\n    drawingsDialogTableHeaders: vm => vm.productOptions\n      .map(attribute => ({\n        text: attribute[vm.locale === 'en-US' ? 'label' : 'labelChs'],\n        id: attribute.id,\n        // value: attribute.value,\n      })),\n\n    selectedProduct: () => true,\n\n    optionsProduct: vm => vm.productOptions.map(options => options.options)\n\n    // selectedProduct: vm => vm.productGroup.products.find(\n    //   product => Object.entries(vm.selectedOptions).every(\n    //     ([key, value]) => product.attributes.find(\n    //       attribute => attribute.id === key && attribute.value === value\n    //     )\n    //   ),\n    // ),\n  },\n\n  mounted() {\n    const sensibleDefaults = {\n      dropdown: '',\n      checkbox: false,\n      plainText: '',\n    };\n\n    this.productOptions.forEach(productOption => {\n      this.$set(\n        this.selectedOptions,\n        productOption.id,\n        productOption.attributeTypes[0].fieldType === 'plainText'\n          ? this.productGroupOptionValues[this.productGroup.id][productOption.id][0].value\n          : sensibleDefaults[productOption.attributeTypes[0].fieldType]\n      );\n    });\n  },\n\n  methods: {\n    getFormElementFromFieldType: fieldType => {\n      switch (fieldType) {\n        case 'dropdown':\n          return 'v-combobox';\n        case 'checkbox':\n          return 'v-checkbox';\n        case 'plainText':\n          return 'p';\n        default:\n          return '';\n      }\n    },\n  },\n};\n</script>\n\n<style scoped>\n::v-deep .theme--light.v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n  background-color: #beebc9;\n  padding: 0 0 0 15px !important;\n  height: 25px !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareProductGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareProductGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HardwareProductGroup.vue?vue&type=template&id=09497cda&scoped=true&\"\nimport script from \"./HardwareProductGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./HardwareProductGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HardwareProductGroup.vue?vue&type=style&index=0&id=09497cda&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"09497cda\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCheckbox,VContainer,VExpandTransition,VIcon,VImg,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expand-x-transition',[_c('div',{staticStyle:{\"position\":\"fixed\",\"bottom\":\"22px\",\"left\":\"230px\",\"z-index\":\"5\"}},_vm._l((_vm.buttons),function(button,index){return _c('v-btn',_vm._b({key:index,staticClass:\"mr-7\",attrs:{\"depressed\":\"\"},on:{\"click\":button.action}},'v-btn',button.props,false),[_vm._v(\" \"+_vm._s(button.text)+\" \")])}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expand-x-transition>\n    <div style=\"position: fixed; bottom: 22px; left: 230px; z-index: 5;\">\n      <v-btn\n        v-for=\"(button, index) in buttons\"\n        :key=\"index\"\n        depressed\n        class=\"mr-7\"\n        v-bind=\"button.props\"\n        @click=\"button.action\"\n      >\n        {{ button.text }}\n      </v-btn>\n    </div>\n  </v-expand-x-transition>\n</template>\n\n<script>\nimport {\n  defineComponent\n} from '@vue/composition-api';\n\nexport default defineComponent({\n  name: 'FooterButtonActions',\n  props: {\n    buttons: Array,\n  },\n});\n</script>\n\n<style scoped>\n  .v-btn {\n\n  }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterButtonActions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterButtonActions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FooterButtonActions.vue?vue&type=template&id=2f7b9d9b&scoped=true&\"\nimport script from \"./FooterButtonActions.vue?vue&type=script&lang=js&\"\nexport * from \"./FooterButtonActions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FooterButtonActions.vue?vue&type=style&index=0&id=2f7b9d9b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2f7b9d9b\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpandXTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VBtn,VExpandXTransition})\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=d808bbbc&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.email'),\"placeholder\":_vm.$t(\"form.email.placeholders.email\"),\"rules\":[_vm.notEmptyRules, _vm.validEmail],\"disabled\":_vm.isDisabled},on:{\"change\":function($event){return _vm.$emit('change')}},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-col class=\"py-0\">\n    <v-row>\n      <v-col class=\"py-0\">\n        <v-text-field\n          v-model=\"localValue\"\n          :label=\"$t('common.email')\"\n          :placeholder=\"$t(`form.email.placeholders.email`)\"\n          :rules=\"[notEmptyRules, validEmail]\"\n          :disabled=\"isDisabled\"\n          @change=\"$emit('change')\"\n        />\n      </v-col>\n    </v-row>\n  </v-col>\n</template>\n\n<script>\nimport ModelableMixin from '../../mixins/modelable';\n\nexport default {\n  mixins: [\n    ModelableMixin,\n  ],\n\n  props: {\n    isDisabled: Boolean,\n  },\n\n  data() {\n    return {\n      notEmptyRules: value => (!!value || 'Cannot be empty'),\n      validEmail: value => {\n        // eslint-disable-next-line\n        const pattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n        return pattern.test(value) || 'Invalid e-mail.';\n      },\n    };\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=bd79c5c6&\"\nimport script from \"./Email.vue?vue&type=script&lang=js&\"\nexport * from \"./Email.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VTextField})\n","import feathersClient,\n{\n  makeServicePlugin,\n  BaseModel,\n  makeServiceStore\n} from '../plugins/feathers-client';\nimport i18n from '@/plugins/i18n';\n\nconst servicePath = 'my-products';\nconst Model = class MyProduct extends BaseModel {\n  static modelName = 'MyProduct';\n\n  static instanceDefaults() {\n    return {\n      qtyOfPart: 1,\n      defaultQuantity: 1\n    };\n  }\n\n  static setupInstance(data) {\n    if (data.ExpiryDate) {\n      data.ExpiryDate = new Date(data.ExpiryDate);\n    }\n    if (data.MaterialStr && data.MaterialSeriesStr) {\n      this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n    }\n    return data;\n  }\n\n  get qtyOfPart() {\n    // eslint-disable-next-line no-underscore-dangle\n    return this._qtyOfPart;\n  }\n\n  set qtyOfPart(value) {\n    // eslint-disable-next-line no-underscore-dangle\n    if (value <= this.defaultQuantity) {\n      // eslint-disable-next-line no-underscore-dangle\n      this._qtyOfPart = this.defaultQuantity;\n      return;\n    }\n    // eslint-disable-next-line no-underscore-dangle\n    this._qtyOfPart = value;\n  }\n\n  get defaultQuantity() {\n    // eslint-disable-next-line no-underscore-dangle\n    return this._defaultQuantity;\n  }\n\n  set defaultQuantity(value) {\n    // eslint-disable-next-line no-underscore-dangle\n    this._defaultQuantity = value;\n  }\n\n  get materialTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n  }\n\n  get materialThicknessTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n  }\n\n  get materialSeriesTranslation() {\n    return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n  }\n\n  get materialFinishTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n  }\n\n  get materialFinishOptionTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n  }\n\n  get toleranceTranslation() {\n    if (!this.Tolerance) {\n      return '-';\n    }\n\n    return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n  }\n\n  get is2dModel() {\n    if (this.CustFileName) {\n      return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n    }\n    return false;\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'finishes';\n\nconst Model = class Finish extends BaseModel {\n  static modelName = 'Finish';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snack.vue?vue&type=style&index=0&id=4b72d003&scoped=true&lang=css&\"","import feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport i18n from '../plugins/i18n';\n\nconst servicePath = 'users';\n\nconst Model = class User extends BaseModel {\n  static modelName = 'User'\n\n  static instanceDefaults() {\n    return {\n      firstName: '',\n      lastName: '',\n      JobTitle: '',\n      officeMobile: '',\n      officePhone: '',\n      password: '',\n      OkToSendDesignTips: null,\n      OkToSendManufacturingTips: null,\n      // With this field, you can select specific notifier's action at the creation of the contact\n      action: 'resendVerifySignup',\n      rights: {\n        instantQuote: false,\n        rfqs: false,\n        myParts: false,\n        orders: false,\n        placeOrder: false,\n        accountStatement: false,\n        userManagement: false,\n        companyManagement: false,\n        forwarderManagement: false,\n        passwordChanges: false,\n        supportUser: false,\n      },\n      isAdmin: false,\n      locale: i18n.locale,\n      eula: {\n        accepted: false,\n        validationDate: '',\n      },\n      isVerified: false,\n      isAvatarLoading: false,\n      isAvatarIsHidden: false,\n      previewAvatarUrl: '',\n      hasCsiData: false,\n      department: '',\n      refCode: '',\n    };\n  }\n\n  get fullName() {\n    return `${this.firstName} ${this.lastName}`;\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath).hooks({\n      after: {\n        get: [\n          context => {\n            context.result.hasCsiData = true;\n            return context;\n          }\n        ],\n      }\n    }),\n    Model,\n    preferUpdate: true\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'countries';\n\nconst Model = class Country extends BaseModel {\n  static modelName = 'Country';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-menu',{attrs:{\"data-cy\":\"my-part-second-horizontal-grid-view\",\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-x\":\"\",\"left\":\"\",\"z-index\":\"9999999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-inline-block font-weight-medium mb-0 pa-1\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"tag\":\"p\",\"min-width\":\"180px\",\"min-height\":\"41px\",\"color\":_vm.isExpired(_vm.part) ? '#fbe9ec' : '#f0fdf3',\"data-cy\":\"my-part-price-range-box-grid\"}},'v-sheet',attrs,false),on),[(_vm.isExpired())?[_c('div',{staticClass:\"mt-n1 text-center\"},[_c('span',{staticClass:\"flex-nowrap align-center\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPriceVariation'))+\" \")])]),_c('div',{staticClass:\"mt-n4\"},[(_vm.isExpired())?_c('span',{staticClass:\"mdi  mdi-alert-circle rounded d-inline-flex align-center text-left ml-1\",staticStyle:{\"color\":\"#be2a45\",\"font-size\":\"26px\"}}):_vm._e(),_c('span',{staticClass:\"shimmer font-weight-bold ma-0 caption text-center\",class:{ 'colorRed': _vm.isExpired(_vm.part), 'colorGreen': !_vm.isExpired(_vm.part) },staticStyle:{\"font-size\":\"15px\"},attrs:{\"data-cy\":\"my-part-price-range-grid\"}},[_c('span',{staticClass:\"mb-1 pl-0 text-center\",staticStyle:{\"font-size\":\"13px\",\"inline-size\":\"1px\"}},[_vm._v(\" \"+_vm._s(_vm.priceRange(_vm.internalItems))+\" \")])])])]:[_c('div',{staticClass:\"mt-n1 text-center\"},[_c('span',{staticClass:\"flex-nowrap align-center\",staticStyle:{\"font-size\":\"13px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPriceVariation'))+\" \")])]),_c('div',{staticClass:\"mt-n1 pl-3 d-flex align-center justify-center\"},[_c('span',{staticClass:\"shimmer font-weight-bold ma-0 caption text-center\",class:{ 'colorRed': _vm.isExpired(_vm.part), 'colorGreen': !_vm.isExpired(_vm.part) },staticStyle:{\"font-size\":\"15px\"},attrs:{\"data-cy\":\"my-part-price-range-grid\"}},[_c('span',{staticClass:\"mb-1 pl-2 text-center\",staticStyle:{\"font-size\":\"13px\",\"inline-size\":\"1px\"}},[_vm._v(\" \"+_vm._s(_vm.priceRange(_vm.internalItems))+\" \")])]),(!_vm.isExpired(_vm.part))?_c('span',{staticClass:\"mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \",class:{ 'colorRed': _vm.isExpired(_vm.part), 'colorGreen': !_vm.isExpired(_vm.part) },staticStyle:{\"font-size\":\"13px\",\"background-color\":\"#5FCE79\",\"color\":\"white !important\",\"width\":\"20px\",\"font-weight\":\"bold !important\"},style:([_vm.isExpired(_vm.part) ? {'background-color': '#be2a45'} : {'background-color': '#5FCE79'}])}):_vm._e()])]],2)]}}])},[_c('div',{staticClass:\"pa-2\",staticStyle:{\"background-color\":\"white\",\"z-index\":\"9999999\"}},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.sortByQuantity(_vm.internalItems)),function(item,index){return [_c('span',{key:(\"qty-\" + index),staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" \"+_vm._s(item.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + index)},[_vm._v(\" \"+_vm._s(_vm.$t('common.pricePerUnit', {price: item.Price}))+\" \")])]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"pa-0\">\n    <v-menu\n      data-cy=\"my-part-second-horizontal-grid-view\"\n      open-on-hover\n      bottom\n      offset-x\n      left\n      z-index=\"9999999\"\n    >\n      <template v-slot:activator=\"{ on, attrs }\">\n        <v-sheet\n          v-bind=\"attrs\"\n          tag=\"p\"\n          min-width=\"180px\"\n          min-height=\"41px\"\n          :color=\"isExpired(part) ? '#fbe9ec' : '#f0fdf3'\"\n          data-cy=\"my-part-price-range-box-grid\"\n          class=\"d-inline-block font-weight-medium mb-0 pa-1\"\n          style=\"border-radius:5px\"\n          v-on=\"on\"\n        >\n          <template v-if=\"isExpired()\">\n            <div class=\"mt-n1 text-center\">\n              <span\n                style=\"font-size: 13px\"\n                class=\"flex-nowrap align-center\"\n              >\n                {{ $t('common.unitPriceVariation') }}\n              </span>\n            </div>\n\n            <div class=\"mt-n4\">\n              <span\n                v-if=\"isExpired()\"\n                style=\"color:#be2a45; font-size:26px\"\n                class=\"mdi  mdi-alert-circle rounded d-inline-flex align-center text-left ml-1\"\n              />\n              <span\n                class=\"shimmer font-weight-bold ma-0 caption text-center\"\n                style=\"font-size: 15px\"\n                data-cy=\"my-part-price-range-grid\"\n                :class=\"{ 'colorRed': isExpired(part), 'colorGreen': !isExpired(part) }\"\n              >\n                <span class=\"mb-1 pl-0 text-center\" style=\"font-size: 13px;inline-size: 1px;\">\n                  {{\n                    priceRange(internalItems)\n                  }}\n                </span>\n              </span>\n            </div>\n          </template>\n\n          <template v-else>\n            <div class=\"mt-n1 text-center\">\n              <span\n                style=\"font-size: 13px\"\n                class=\"flex-nowrap align-center\"\n              >\n                {{ $t('common.unitPriceVariation') }}\n              </span>\n            </div>\n\n            <div class=\"mt-n1 pl-3 d-flex align-center justify-center\">\n              <span\n                class=\"shimmer font-weight-bold ma-0 caption text-center\"\n                style=\"font-size: 15px\"\n                data-cy=\"my-part-price-range-grid\"\n                :class=\"{ 'colorRed': isExpired(part), 'colorGreen': !isExpired(part) }\"\n              >\n                <span class=\"mb-1 pl-2 text-center\" style=\"font-size: 13px;inline-size: 1px;\">\n                  {{\n                    priceRange(internalItems)\n                  }}\n                </span>\n              </span>\n              <span\n                v-if=\"!isExpired(part)\"\n                :class=\"{ 'colorRed': isExpired(part), 'colorGreen': !isExpired(part) }\"\n                class=\"mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \"\n                :style=\"[isExpired(part) ? {'background-color': '#be2a45'} : {'background-color': '#5FCE79'}]\"\n                style=\"font-size:13px ;background-color: #5FCE79; color: white !important; width: 20px; font-weight: bold !important\"\n              />\n            </div>\n          </template>\n        </v-sheet>\n      </template>\n\n      <div style=\"background-color: white; z-index:9999999\" class=\"pa-2\">\n        <span class=\"body-2 font-weight-bold\">{{ $t('common.unitPricePerQuantity') }}</span>\n        <div\n          style=\"display: grid;width: min-content;grid-template-columns: max-content max-content;\"\n        >\n          <template v-for=\"(item,index) in sortByQuantity(internalItems)\">\n            <span :key=\"`qty-${index}`\" style=\"color: #8D8D8D\">\n              {{ item.Qty }}: {{ '\\xa0' }}\n            </span>\n            <span :key=\"`price-${index}`\">\n              {{ $t('common.pricePerUnit', {price: item.Price}) }}\n            </span>\n          </template>\n        </div>\n      </div>\n    </v-menu>\n  </v-container>\n</template>\n\n<script>\n\nimport { models } from 'feathers-vuex';\n\nimport {\n  computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Part, Company } = models.api;\n\nexport default defineComponent({\n  props: {\n    /**\n     * Manipulate the way field's value displays\n     */\n    part: {\n      type: Object,\n      default: () => {\n      }\n    },\n  },\n\n  setup(props, context) {\n    const t = context.root.$t;\n\n    const company = computed(() => Company.getFromStore(0));\n\n    const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n    const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n    const deleteDialog = ref({\n      display: false,\n      partToDelete: new Part(),\n    });\n\n    const internalItems = computed(() => {\n      if (props.part) {\n        return props.part;\n      }\n      return { ExpiryDate: Date.now() };\n    });\n\n    const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n\n    const sortByQuantity = part => {\n      if (!part) {\n        return [];\n      }\n\n      if (part.PriceMOQ) {\n        let priceMoq;\n        if (typeof part.PriceMOQ === 'string') {\n          priceMoq = JSON.parse(part.PriceMOQ);\n        } else {\n          priceMoq = [...part.PriceMOQ];\n        }\n\n        return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n          ...moq,\n          Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n        }));\n      }\n\n      if (part.priceMOQ) {\n        let priceMoq;\n        if (typeof part.priceMOQ === 'string') {\n          priceMoq = JSON.parse(part.priceMOQ);\n        } else {\n          priceMoq = [...part.priceMOQ];\n        }\n\n        return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n          ...moq,\n          Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n        }));\n      }\n      return [];\n    };\n\n    const priceRange = part => {\n      if ((part.PriceMOQ && part.PriceMOQ.length !== 0) || (part.priceMOQ && part.priceMOQ.length !== 0)) {\n        let priceMoq;\n        if (typeof part.PriceMOQ === 'string') {\n          priceMoq = JSON.parse(part.PriceMOQ);\n          // eslint-disable-next-line no-prototype-builtins\n        } else if (part.hasOwnProperty('priceMOQ')) {\n          priceMoq = [...part.priceMOQ];\n        } else {\n          priceMoq = [...part.PriceMOQ];\n        }\n        const parsedData = priceMoq;\n        const first = parsedData[0];\n        const last = parsedData.pop();\n        return `${last.Price} ${currencySymbol.value} - ${first.Price}${currencySymbol.value} `;\n      }\n      return context.root.$t('common.nA');\n    };\n\n    const isExpired = () => moment().diff(props.part && props.part.ExpireDate ? props.part.ExpireDate : Date.now(), 'days') > 0;\n\n    const refreshMyPartPrice = async part => {\n      const query = {\n        query: {\n          shouldUpdatePrice: true,\n        },\n        notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n      };\n\n      await part.save(query);\n    };\n\n    const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n    const cancelDelete = () => {\n      deleteDialog.value.display = false;\n      deleteDialog.value.partToDelete = new Part();\n    };\n\n    const addToOrder = async part => {\n      // eslint-disable-next-line no-underscore-dangle\n      const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n      order.addItem('part', part._id, part.qtyOfPart);\n    };\n\n    const removeToOrder = part => {\n      if (currentOrder.value) {\n        currentOrder.value.items = currentOrder.value.items.filter(item => item._id !== part._id);\n      }\n    };\n\n    const calculatePrice = computed(() => part => {\n      if (!part.PriceMOQ) {\n        return currency(0, { symbol: currencySymbol.value });\n      }\n\n      let priceMoq;\n      if (typeof part.PriceMOQ === 'string') {\n        priceMoq = JSON.parse(part.PriceMOQ);\n      } else {\n        priceMoq = [...part.PriceMOQ];\n      }\n\n      const findPrice = priceMoq.find(({ Qty }) => part.qtyOfPart <= Qty) || priceMoq;\n\n      if (!findPrice) {\n        const unitPrice = Math.min(...priceMoq.map(o => o.Qty));\n        // eslint-disable-next-line consistent-return\n        const price = parseFloat(unitPrice.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n        const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n        return currency(finalPrice, { symbol: '', precision: 2 }).multiply(part.qtyOfPart);\n      }\n\n      // eslint-disable-next-line consistent-return\n      const price = parseFloat(findPrice.Price.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n      const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n\n      return currency(finalPrice, { symbol: currencySymbol.value, precision: 2 }).multiply(part.qtyOfPart);\n    });\n\n    const isPartPresentInCurrentOrder = computed(() => part => {\n      if (currentOrder.value === null) {\n        return false;\n      }\n\n      const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n      return currentPart !== -1;\n    });\n\n    return {\n      sortByQuantity,\n      removeToOrder,\n      addToOrder,\n      cancelDelete,\n      itemRowBackground,\n      refreshMyPartPrice,\n      isExpired,\n      priceRange,\n      deleteDialog,\n      calculatePrice,\n      currencySymbol,\n      currentUser,\n      isPartPresentInCurrentOrder,\n      internalItems,\n      t\n    };\n  },\n});\n\n</script>\n\n<style>\n.notDisplay {\n  visibility: hidden;\n}\n\n.partCard:hover .displayDetail {\n  visibility: visible;\n  display: inline;\n  position: relative;\n}\n\n.partCard:hover .shimmer {\n\n  background: var(--color) -webkit-gradient(linear, 100% 0, 0 0,\n  from(var(--color)), color-stop(0.5, #ffffff),\n  to(var(--color)));\n\n  background-position: -4rem top; /*50px*/\n  background-repeat: no-repeat;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  -webkit-animation-name: shimmer;\n  -webkit-animation-duration: 1.5s;\n  -webkit-animation-iteration-count: infinite;\n  -webkit-background-size: 4rem 100%; /*50px*/\n  -webkit-animation-timing-function: linear;\n}\n\n.colorRed {\n  color: #be2a45 !important;\n  --color: #be2a45 !important\n}\n\n.colorGreen {\n  color: #128347 !important;\n  --color: #128347 !important\n}\n\n@-webkit-keyframes shimmer {\n  0% {\n    background-position: -4rem top; /*50px*/\n  }\n\n  70% {\n    background-position: 12.5rem top; /*200px*/\n  }\n\n  100% {\n    background-position: 12.5rem top; /*200px*/\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoq.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoq.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangPriceMoq.vue?vue&type=template&id=2391016e&\"\nimport script from \"./RangPriceMoq.vue?vue&type=script&lang=js&\"\nexport * from \"./RangPriceMoq.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangPriceMoq.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VContainer,VMenu,VSheet})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'delivery-options';\n\nconst Model = class DeliveryOption extends BaseModel {\n  static modelName = 'DeliveryOption';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'customers';\n\nconst Model = class Customer extends BaseModel {\n    static modelName = 'Customer';\n\n    static instanceDefaults() {\n      return {};\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"forwarderForm\",on:{\"input\":function($event){return _vm.$emit('validityChange', $event)}},model:{value:(_vm.isAddressValid),callback:function ($$v) {_vm.isAddressValid=$$v},expression:\"isAddressValid\"}},[(_vm.value)?_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-forwarder-name-input\",\"placeholder\":_vm.$t('common.name'),\"label\":_vm.$t('common.name'),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.CompanyName),callback:function ($$v) {_vm.$set(_vm.value, \"CompanyName\", $$v)},expression:\"value.CompanyName\"}})],1)],1),_vm._l((_vm.addressFormatted),function(r,i){return _c('v-row',{key:(\"row-\" + i)},_vm._l((r),function(c,j){return _c('v-col',{key:(\"col-\" + j),staticClass:\"py-0\"},[(['address1', 'address2', 'address3', 'address4'].includes(c))?_c('v-text-field',{attrs:{\"maxlength\":\"50\",\"data-cy\":(\"new-forwarder-\" + c + \"-input\"),\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[function (v) { return c === 'address2' || _vm.isRequired(v); }],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'city')?_c('v-text-field',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-forwarder-city-input\",\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'zip')?_c('v-text-field',{attrs:{\"maxlength\":\"10\",\"data-cy\":\"new-forwarder-postal-code-input\",\"label\":_vm.countryLabels.postalCode,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'country')?_c('v-select',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-forwarder-country-input\",\"label\":_vm.countryLabels.country,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'country'),\"items\":_vm.countries,\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.region = ''\n              _vm.value.city = '';\n              _vm.value.zip = '';\n              _vm.$refs.forwarderForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-forwarder-country-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.country),callback:function ($$v) {_vm.$set(_vm.value, \"country\", $$v)},expression:\"value.country\"}}):(c === 'province')?_c('v-select',{attrs:{\"maxlength\":\"5\",\"data-cy\":\"new-forwarder-region-input\",\"label\":_vm.countryLabels.zone,\"disabled\":_vm._.isEmpty(_vm.regions),\"items\":_vm.regions,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'region'),\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.city = '';\n              _vm.value.zip = '';\n              _vm.$refs.forwarderForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-forwarder-region-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.region),callback:function ($$v) {_vm.$set(_vm.value, \"region\", $$v)},expression:\"value.region\"}}):_vm._e()],1)}),1)}),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"maxlength\":\"25\",\"data-cy\":\"new-forwarder-phone-input\",\"label\":_vm.countryLabels.phone,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'phone'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.phone),callback:function ($$v) {_vm.$set(_vm.value, \"phone\", $$v)},expression:\"value.phone\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"data-cy\":\"new-forwarder-contact-input\",\"maxlength\":\"100\",\"label\":_vm.$t('views.settings.tabs.forwarders.contact'),\"placeholder\":_vm.$t('views.settings.tabs.forwarders.contact'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.name),callback:function ($$v) {_vm.$set(_vm.value, \"name\", $$v)},expression:\"value.name\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"data-cy\":\"new-forwarder-email-input\",\"maxlength\":\"128\",\"label\":_vm.$t('form.address.fields.email'),\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'email'),\"rules\":[_vm.isEmail],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}})],1)],1),_vm._t(\"default\",null,{\"isAddressValid\":_vm.isAddressValid})],2)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-form\n    ref=\"forwarderForm\"\n    v-model=\"isAddressValid\"\n    @input=\"$emit('validityChange', $event)\"\n  >\n    <v-row v-if=\"value\">\n      <v-col class=\"py-0\">\n        <v-row>\n          <v-col class=\"py-0\" cols=\"12\">\n            <v-text-field\n              v-model=\"value.CompanyName\"\n              maxlength=\"60\"\n              data-cy=\"new-forwarder-name-input\"\n              :placeholder=\"$t('common.name')\"\n              :label=\"$t('common.name')\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n          </v-col>\n        </v-row>\n\n        <v-row\n          v-for=\"(r, i) in addressFormatted\"\n          :key=\"`row-${i}`\"\n        >\n          <v-col\n            v-for=\"(c, j) in r\"\n            :key=\"`col-${j}`\"\n            class=\"py-0\"\n          >\n            <v-text-field\n              v-if=\"['address1', 'address2', 'address3', 'address4'].includes(c)\"\n              v-model=\"value[c]\"\n              maxlength=\"50\"\n              :data-cy=\"`new-forwarder-${c}-input`\"\n              :label=\"countryLabels[c]\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              :rules=\"[v => c === 'address2' || isRequired(v)]\"\n              outlined\n              dense\n            />\n            <v-text-field\n              v-else-if=\"c === 'city'\"\n              v-model=\"value[c]\"\n              maxlength=\"30\"\n              data-cy=\"new-forwarder-city-input\"\n              :label=\"countryLabels[c]\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n            <v-text-field\n              v-else-if=\"c === 'zip'\"\n              v-model=\"value[c]\"\n              maxlength=\"10\"\n              data-cy=\"new-forwarder-postal-code-input\"\n              :label=\"countryLabels.postalCode\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n            <v-select\n              v-else-if=\"c === 'country'\"\n              v-model=\"value.country\"\n              maxlength=\"30\"\n              data-cy=\"new-forwarder-country-input\"\n              :label=\"countryLabels.country\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'country')\"\n              :items=\"countries\"\n              :rules=\"[isRequired]\"\n              item-text=\"name\"\n              item-value=\"code\"\n              outlined\n              dense\n              @change=\"\n                value.region = ''\n                value.city = '';\n                value.zip = '';\n                $refs.forwarderForm.resetValidation();\"\n            >\n              <template slot=\"item\" slot-scope=\"data\">\n                <span data-cy=\"new-forwarder-country-option\">{{ data.item.name }}</span>\n              </template>\n            </v-select>\n\n            <v-select\n              v-else-if=\"c === 'province'\"\n              v-model=\"value.region\"\n              maxlength=\"5\"\n              data-cy=\"new-forwarder-region-input\"\n              :label=\"countryLabels.zone\"\n              :disabled=\"_.isEmpty(regions)\"\n              :items=\"regions\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'region')\"\n              :rules=\"[isRequired]\"\n              item-text=\"name\"\n              item-value=\"code\"\n              outlined\n              dense\n              @change=\"\n                value.city = '';\n                value.zip = '';\n                $refs.forwarderForm.resetValidation();\"\n            >\n              <template slot=\"item\" slot-scope=\"data\">\n                <span data-cy=\"new-forwarder-region-option\">{{ data.item.name }}</span>\n              </template>\n            </v-select>\n          </v-col>\n        </v-row>\n\n        <v-row>\n          <v-col class=\"py-0\">\n            <v-text-field\n              v-model=\"value.phone\"\n              maxlength=\"25\"\n              data-cy=\"new-forwarder-phone-input\"\n              :label=\"countryLabels.phone\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'phone')\"\n              outlined\n              dense\n            />\n          </v-col>\n        </v-row>\n\n        <v-row>\n          <v-col class=\"py-0\">\n            <v-text-field\n              v-model=\"value.name\"\n              data-cy=\"new-forwarder-contact-input\"\n              maxlength=\"100\"\n              :label=\"$t('views.settings.tabs.forwarders.contact')\"\n              :placeholder=\"$t('views.settings.tabs.forwarders.contact')\"\n              outlined\n              dense\n            />\n          </v-col>\n        </v-row>\n\n        <v-row>\n          <v-col class=\"py-0\">\n            <v-text-field\n              v-model=\"value.email\"\n              data-cy=\"new-forwarder-email-input\"\n              maxlength=\"128\"\n              :label=\"$t('form.address.fields.email')\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'email')\"\n              :rules=\"[isEmail]\"\n              outlined\n              dense\n            />\n          </v-col>\n        </v-row>\n\n        <slot :isAddressValid=\"isAddressValid\" />\n      </v-col>\n    </v-row>\n  </v-form>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport AddressFormatter from '@shopify/address';\nimport FormRules from '@/mixins/form-rules';\n\nconst { Company, Country, Regions } = models.api;\n\nexport default {\n  mixins: [\n    FormRules,\n  ],\n\n  props: {\n    value: {},\n  },\n\n  data() {\n    return {\n      chineseForm: null,\n      englishForm: null,\n      fields: 'form.address.fields',\n      placeholder: 'form.address.placeholders',\n      isAddressValid: false,\n      chineseJson: [],\n      englishJson: [],\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n\n    fetchedCountries: () => Country.findInStore({ query: {} }).data,\n\n    fetchedRegions: () => Regions.findInStore({ query: {} }).data,\n\n    company: () => Company.getFromStore(0),\n\n    regions: vm => _.get(vm, 'country.zones', [])\n      .filter(r => vm.fetchedRegions.map(fr => fr.Code).includes(r.code)),\n\n    unfilteredCountries: vm => (vm.locale === 'en-US' ? vm.englishJson : vm.chineseJson),\n\n    country: vm => vm.countries.find(c => c.code === vm.value.country),\n\n    countryLabels: vm => {\n      if (vm.country) {\n        return vm.country.labels;\n      }\n      if (vm.countries.length === 0 || !vm.company) {\n        return {};\n      }\n      return vm.countries.find(c => c.code === vm.company.country).labels;\n    },\n\n    countries: vm => vm.unfilteredCountries.filter(c => vm.fetchedCountries.map(fc => fc.Code).includes(c.code)),\n\n    addressFormatter() {\n      return new AddressFormatter('CA');\n    },\n\n    addressFormatted() {\n      // TODO: Refactor this, probably using a reduce() and simpler JS\n      const DEFAULT_FORM_LAYOUT = '{firstName}{lastName}_{company}_{address1}'\n        + '_{address2}_{city}_{country}{province}{zip}_{phone}';\n\n      // https://regex101.com/r/SH6ovw/1\n      // TODO: It seem this regex and replace was not working\n      let formatString = _.get(this, 'country.formatting.edit', DEFAULT_FORM_LAYOUT)\n        .replace('({firstName}(_?)|{lastName}(_?)|{company}(_?))', '');\n\n      // quick and dirty\n      const province = formatString.includes('{province}') ? '{province}' : '';\n      formatString = formatString.replace('{country}', '');\n      formatString = formatString.replace('{province}', '');\n      formatString = formatString.replace('__', '_');\n\n      const formatCountryProvince = formatString.replace('{company}', `{company}_{country}${province}`);\n\n      return formatCountryProvince.split('_')\n        .map(r => r.split('}{'))\n        .map(r => {\n          r[0] = r[0].replace('{', '');\n          r[r.length - 1] = r[r.length - 1].replace('}', '');\n          return r;\n        });\n    },\n  },\n\n  async created() {\n    this.chineseForm = new AddressFormatter('ZH_CN');\n    this.englishForm = new AddressFormatter('EN');\n    this.chineseJson = await this.chineseForm.getCountries();\n    this.englishJson = await this.englishForm.getCountries();\n  },\n\n  methods: {\n    getPlaceholder(countryCode, fieldName) {\n      const key = `${this.placeholder}.business.${countryCode}.${fieldName}`;\n\n      if (this.$te(key)) {\n        return this.$t(key);\n      }\n\n      return this.$t(`${this.placeholder}.business.default.${fieldName}`);\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forwarder.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forwarder.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Forwarder.vue?vue&type=template&id=40d8cd02&\"\nimport script from \"./Forwarder.vue?vue&type=script&lang=js&\"\nexport * from \"./Forwarder.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VForm,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticStyle:{\"outline\":\"1px dashed #5FCE79\",\"stroke-dasharray\":\"5 10\"},attrs:{\"rounded\":\"\",\"height\":\"250\",\"width\":\"95%\",\"color\":\"#F9F9F9\",\"outlined\":\"\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"text-h5 font-weight-bold mt-2 ml-4\",staticStyle:{\"color\":\"#2E343B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.title'))+\" \")]),_c('v-row',{staticClass:\"ml-4 mt-8\",staticStyle:{\"width\":\"350px\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-upload.svg\"}}),_c('v-divider',{staticClass:\"dashed-line pt-4\"}),_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-ruler.svg\"}})],1),_c('v-row',{staticClass:\"ml-4 mt-8\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"x-large\":\"\",\"disabled\":!_vm.userCanQuote},on:{\"click\":_vm.onActionButtonClicked}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.uploadButton'))+\" \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-row',{staticClass:\"mt-6 pt-2 ml-4\"},[_c('div',{staticClass:\"mr-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.3dFiles'))+\" \")]),_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-cube.svg\"}})]),_c('v-row',{staticClass:\"ml-4\"},[_c('div',{staticClass:\"text-body-1 font-weight-bold mt-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.stp'))+\" \")])]),_c('v-row',{staticClass:\"ml-4\"},[_c('div',{staticClass:\"text-body-1 font-weight-bold\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.step'))+\" \")])]),_c('v-row',{staticClass:\"ml-4\"},[_c('div',{staticClass:\"text-body-1 font-weight-bold\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.sldprt'))+\" \")])]),_c('v-row',{staticClass:\"ml-4\"},[_c('p',{staticClass:\"mt-4\",staticStyle:{\"font-size\":\"12px\",\"font-weight\":\"300\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenUploadFileBanner.label1'))+\" \")])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    rounded\n    height=\"250\"\n    width=\"95%\"\n    color=\"#F9F9F9\"\n    outlined\n    style=\"outline: 1px dashed #5FCE79; stroke-dasharray: 5 10;\"\n  >\n    <v-card-text>\n      <v-row>\n        <v-col cols=\"8\">\n          <div class=\"text-h5 font-weight-bold mt-2 ml-4\" style=\"color: #2E343B\">\n            {{ $t('views.dashboard.welcomeScreenUploadFileBanner.title') }}\n          </div>\n          <v-row class=\"ml-4 mt-8\" style=\"width: 350px;\">\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-upload.svg\"\n            >\n            <v-divider class=\"dashed-line pt-4\" />\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-ruler.svg\"\n            >\n          </v-row>\n          <v-row class=\"ml-4 mt-8\" style=\"\">\n            <v-btn\n              color=\"primary\"\n              x-large\n              :disabled=\"!userCanQuote\"\n              @click=\"onActionButtonClicked\"\n            >\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.uploadButton') }}\n            </v-btn>\n          </v-row>\n        </v-col>\n        <v-col cols=\"4\" style=\"\">\n          <v-row class=\"mt-6 pt-2 ml-4\">\n            <div class=\"mr-1\">\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.3dFiles') }}\n            </div>\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-cube.svg\"\n            >\n          </v-row>\n          <v-row class=\"ml-4\">\n            <div class=\"text-body-1 font-weight-bold mt-2\" style=\"color: #4B4B4B\">\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.stp') }}\n            </div>\n          </v-row>\n          <v-row class=\"ml-4\">\n            <div class=\"text-body-1 font-weight-bold\" style=\"color: #4B4B4B\">\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.step') }}\n            </div>\n          </v-row>\n          <v-row class=\"ml-4\">\n            <div class=\"text-body-1 font-weight-bold\" style=\"color: #4B4B4B\">\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.sldprt') }}\n            </div>\n          </v-row>\n          <!-- <v-row class=\"ml-4\">\n            <div class=\"text-body-1 font-weight-bold\" style=\"color: #4B4B4B\">\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.dxf') }}\n            </div>\n          </v-row> -->\n          <v-row class=\"ml-4\">\n            <p class=\"mt-4\" style=\"font-size: 12px; font-weight: 300;\">\n              {{ $t('views.dashboard.welcomeScreenUploadFileBanner.label1') }}\n            </p>\n          </v-row>\n        </v-col>\n      </v-row>\n    </v-card-text>\n  </v-card>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n  name: 'WelcomeScreenUploadFileBanner',\n  computed: {\n    ...mapGetters('auth', { loggedInUser: 'user' }),\n    ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n    userCanQuote: ({ loggedInUser }) => loggedInUser && (loggedInUser.isAdmin || _.get(loggedInUser, 'rights.instantQuote', false)),\n  },\n  methods: {\n    onActionButtonClicked() {\n      this.$router.push({ name: 'EditRFQ', params: { id: this.getTempRfqIdInProgress, openDialog: true } });\n    },\n  },\n};\n</script>\n\n<style scoped>\n.dashed-line {\n  margin: 0 auto; /* Center the line horizontally */\n  border-top: 1px dashed #5FCE79; /* You can adjust the color and thickness as needed */\n  margin-top: 12px;\n  width: 10px\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenUploadFileBanner.vue?vue&type=template&id=6338fc10&scoped=true&\"\nimport script from \"./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenUploadFileBanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WelcomeScreenUploadFileBanner.vue?vue&type=style&index=0&id=6338fc10&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6338fc10\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VDivider,VRow})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnBoarding.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-form',{ref:\"addressForm\",on:{\"input\":function($event){return _vm.$emit('validityChange', $event)}},model:{value:(_vm.isAddressValid),callback:function ($$v) {_vm.isAddressValid=$$v},expression:\"isAddressValid\"}},[(_vm.value)?_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-address-name-input\",\"disabled\":_vm.disableName,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'name'),\"label\":_vm.$t('common.name'),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.CompanyName),callback:function ($$v) {_vm.$set(_vm.value, \"CompanyName\", $$v)},expression:\"value.CompanyName\"}})],1)],1),_vm._l((_vm.addressFormatted),function(r,i){return _c('v-row',{key:(\"row-\" + i)},_vm._l((r),function(c,j){return _c('v-col',{key:(\"col-\" + j),staticClass:\"py-0\"},[(['address1', 'address3', 'address4'].includes(c))?_c('v-text-field',{attrs:{\"maxlength\":\"50\",\"data-cy\":(\"new-address-\" + c + \"-input\"),\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(['address2'].includes(c))?_c('v-text-field',{attrs:{\"maxlength\":\"50\",\"data-cy\":(\"new-address-\" + c + \"-input\"),\"label\":_vm.countryLabels[c],\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'city')?_c('v-text-field',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-address-city-input\",\"label\":_vm.countryLabels.city,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'zip')?_c('v-text-field',{attrs:{\"maxlength\":\"10\",\"data-cy\":\"new-address-postal-code-input\",\"label\":_vm.countryLabels.postalCode,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), c),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value[c]),callback:function ($$v) {_vm.$set(_vm.value, c, $$v)},expression:\"value[c]\"}}):(c === 'country')?_c('v-select',{attrs:{\"maxlength\":\"30\",\"data-cy\":\"new-address-country-input\",\"label\":_vm.countryLabels.country,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'country'),\"items\":_vm.countries,\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.region = ''\n              _vm.value.city = '';\n              _vm.value.zip = '';\n              _vm.$refs.addressForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-address-country-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.country),callback:function ($$v) {_vm.$set(_vm.value, \"country\", $$v)},expression:\"value.country\"}}):(c === 'province')?_c('v-select',{attrs:{\"maxlength\":\"5\",\"data-cy\":\"new-address-region-input\",\"label\":_vm.countryLabels.zone,\"disabled\":_vm._.isEmpty(_vm.regions),\"items\":_vm.regions,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'region'),\"rules\":[_vm.isRequired],\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.value.city = '';\n              _vm.value.zip = '';\n              _vm.$refs.addressForm.resetValidation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-address-region-option\"}},[_vm._v(_vm._s(data.item.name))])]}}],null,true),model:{value:(_vm.value.region),callback:function ($$v) {_vm.$set(_vm.value, \"region\", $$v)},expression:\"value.region\"}}):_vm._e()],1)}),1)}),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{attrs:{\"maxlength\":\"25\",\"data-cy\":\"new-address-phone-input\",\"label\":_vm.countryLabels.phone,\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'phone'),\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.phone),callback:function ($$v) {_vm.$set(_vm.value, \"phone\", $$v)},expression:\"value.phone\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[(_vm.users.length === 0)?_c('v-text-field',{attrs:{\"maxlength\":\"128\",\"data-cy\":\"new-address-email-input\",\"label\":_vm.$t('form.address.fields.email'),\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'email'),\"rules\":[_vm.isEmail],\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}}):_c('v-select',{attrs:{\"maxlength\":\"128\",\"data-cy\":\"new-address-email-select\",\"label\":_vm.$t('form.address.fields.email'),\"placeholder\":_vm.getPlaceholder(_vm._.get(_vm.country, 'code'), 'email'),\"items\":_vm.users,\"item-text\":\"_id\",\"item-value\":\"_id\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"new-address-email-option\"}},[_vm._v(_vm._s(data.item._id))])]}}],null,false,3261114358),model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}})],1)],1),_vm._t(\"default\",null,{\"isAddressValid\":_vm.isAddressValid})],2)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-form\n    ref=\"addressForm\"\n    v-model=\"isAddressValid\"\n    @input=\"$emit('validityChange', $event)\"\n  >\n    <v-row v-if=\"value\">\n      <v-col class=\"py-0\">\n        <v-row>\n          <v-col class=\"py-0\" cols=\"12\">\n            <v-text-field\n              v-model=\"value.CompanyName\"\n              maxlength=\"60\"\n              data-cy=\"new-address-name-input\"\n              :disabled=\"disableName\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'name')\"\n              :label=\"$t('common.name')\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n          </v-col>\n        </v-row>\n\n        <v-row\n          v-for=\"(r, i) in addressFormatted\"\n          :key=\"`row-${i}`\"\n        >\n          <v-col\n            v-for=\"(c, j) in r\"\n            :key=\"`col-${j}`\"\n            class=\"py-0\"\n          >\n            <v-text-field\n              v-if=\"['address1', 'address3', 'address4'].includes(c)\"\n              v-model=\"value[c]\"\n              maxlength=\"50\"\n              :data-cy=\"`new-address-${c}-input`\"\n              :label=\"countryLabels[c]\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n            <v-text-field\n              v-else-if=\"['address2'].includes(c)\"\n              v-model=\"value[c]\"\n              maxlength=\"50\"\n              :data-cy=\"`new-address-${c}-input`\"\n              :label=\"countryLabels[c]\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              outlined\n              dense\n            />\n            <v-text-field\n              v-else-if=\"c === 'city'\"\n              v-model=\"value[c]\"\n              maxlength=\"30\"\n              data-cy=\"new-address-city-input\"\n              :label=\"countryLabels.city\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n            <v-text-field\n              v-else-if=\"c === 'zip'\"\n              v-model=\"value[c]\"\n              maxlength=\"10\"\n              data-cy=\"new-address-postal-code-input\"\n              :label=\"countryLabels.postalCode\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), c)\"\n              :rules=\"[isRequired]\"\n              outlined\n              dense\n            />\n\n            <v-select\n              v-else-if=\"c === 'country'\"\n              v-model=\"value.country\"\n              maxlength=\"30\"\n              data-cy=\"new-address-country-input\"\n              :label=\"countryLabels.country\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'country')\"\n              :items=\"countries\"\n              :rules=\"[isRequired]\"\n              item-text=\"name\"\n              item-value=\"code\"\n              outlined\n              dense\n              @change=\"\n                value.region = ''\n                value.city = '';\n                value.zip = '';\n                $refs.addressForm.resetValidation();\"\n            >\n              <template slot=\"item\" slot-scope=\"data\">\n                <span data-cy=\"new-address-country-option\">{{ data.item.name }}</span>\n              </template>\n            </v-select>\n\n            <v-select\n              v-else-if=\"c === 'province'\"\n              v-model=\"value.region\"\n              maxlength=\"5\"\n              data-cy=\"new-address-region-input\"\n              :label=\"countryLabels.zone\"\n              :disabled=\"_.isEmpty(regions)\"\n              :items=\"regions\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'region')\"\n              :rules=\"[isRequired]\"\n              item-text=\"name\"\n              item-value=\"code\"\n              outlined\n              dense\n              @change=\"\n                value.city = '';\n                value.zip = '';\n                $refs.addressForm.resetValidation();\"\n            >\n              <template slot=\"item\" slot-scope=\"data\">\n                <span data-cy=\"new-address-region-option\">{{ data.item.name }}</span>\n              </template>\n            </v-select>\n          </v-col>\n        </v-row>\n\n        <v-row>\n          <v-col class=\"py-0\">\n            <v-text-field\n              v-model=\"value.phone\"\n              maxlength=\"25\"\n              data-cy=\"new-address-phone-input\"\n              :label=\"countryLabels.phone\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'phone')\"\n              outlined\n              dense\n            />\n          </v-col>\n        </v-row>\n\n        <v-row>\n          <v-col class=\"py-0\">\n            <v-text-field\n              v-if=\"users.length === 0\"\n              v-model=\"value.email\"\n              maxlength=\"128\"\n              data-cy=\"new-address-email-input\"\n              :label=\"$t('form.address.fields.email')\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'email')\"\n              :rules=\"[isEmail]\"\n              hide-details\n              outlined\n              dense\n            />\n            <v-select\n              v-else\n              v-model=\"value.email\"\n              maxlength=\"128\"\n              data-cy=\"new-address-email-select\"\n              :label=\"$t('form.address.fields.email')\"\n              :placeholder=\"getPlaceholder(_.get(country, 'code'), 'email')\"\n              :items=\"users\"\n              item-text=\"_id\"\n              item-value=\"_id\"\n              outlined\n              dense\n              hide-details\n            >\n              <template slot=\"item\" slot-scope=\"data\">\n                <span data-cy=\"new-address-email-option\">{{ data.item._id }}</span>\n              </template>\n            </v-select>\n          </v-col>\n        </v-row>\n\n        <slot :isAddressValid=\"isAddressValid\" />\n      </v-col>\n    </v-row>\n  </v-form>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport AddressFormatter from '@shopify/address';\nimport FormRules from '@/mixins/form-rules';\n\nconst { Company, Country, Regions } = models.api;\n\nexport default {\n  mixins: [\n    FormRules,\n  ],\n\n  props: {\n    addressType: String,\n    disableName: {\n      type: Boolean,\n      default: false\n    },\n    value: {},\n    users: {\n      type: Array,\n      default: () => []\n    }\n  },\n\n  data() {\n    return {\n      chineseForm: null,\n      englishForm: null,\n      fields: 'form.address.fields',\n      placeholder: 'form.address.placeholders',\n      isAddressValid: false,\n      chineseJson: [],\n      englishJson: [],\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n\n    fetchedCountries: () => Country.findInStore({ query: {} }).data,\n\n    fetchedRegions: () => Regions.findInStore({ query: {} }).data,\n\n    company: () => Company.getFromStore(0),\n\n    regions: vm => _.get(vm, 'country.zones', [])\n      .filter(r => vm.fetchedRegions.map(fr => fr.Code).includes(r.code)),\n\n    unfilteredCountries: vm => (vm.locale === 'en-US' ? vm.englishJson : vm.chineseJson),\n\n    country: vm => vm.countries.find(c => c.code === vm.value.country),\n\n    countryLabels: vm => {\n      if (vm.country) {\n        return vm.country.labels;\n      }\n      if (vm.countries.length === 0 || !vm.company) {\n        return {};\n      }\n      return vm.countries.find(c => c.code === vm.company.country).labels;\n    },\n\n    countries: vm => vm.unfilteredCountries.filter(c => vm.fetchedCountries.map(fc => fc.Code).includes(c.code)),\n\n    addressFormatted() {\n      // TODO: Refactor this, probably using a reduce() and simpler JS\n      const DEFAULT_FORM_LAYOUT = '{firstName}{lastName}_{company}'\n          + '_{country}{province}_{address1}_{address2}_{city}_{zip}_{phone}';\n\n      // https://regex101.com/r/SH6ovw/1\n      // TODO: It seem this regex and replace was not working\n      let formatString = _.get(this, 'country.formatting.edit', DEFAULT_FORM_LAYOUT);\n\n      // quick and dirty\n      const province = formatString.includes('{province}') ? '{province}' : '';\n      formatString = formatString.replace('{country}', '');\n      formatString = formatString.replace('{province}', '');\n      formatString = formatString.replace('__', '_');\n\n      const formatCountryProvince = formatString.replace('{company}', `{company}_{country}${province}`);\n\n      return formatCountryProvince.split('_')\n        .map(r => r.split('}{'))\n        .map(r => {\n          r[0] = r[0].replace('{', '');\n          r[r.length - 1] = r[r.length - 1].replace('}', '');\n          return r;\n        });\n    },\n  },\n\n  async created() {\n    this.chineseForm = new AddressFormatter('ZH_CN');\n    this.englishForm = new AddressFormatter('EN');\n    this.chineseJson = await this.chineseForm.getCountries();\n    this.englishJson = await this.englishForm.getCountries();\n    if (this.company.CurrCode === 'CNY') {\n      this.englishJson = this.englishJson.filter(country => (country.code === 'CN'));\n      this.chineseJson = this.chineseJson.filter(country => (country.code === 'CN'));\n    } else {\n      this.englishJson = this.englishJson.filter(country => (country.code !== 'CN'));\n      this.chineseJson = this.chineseJson.filter(country => (country.code !== 'CN'));\n    }\n  },\n\n  methods: {\n\n    /* TODO this needs to be revised. Breaking the new locale json structure for\n    *   now just so the address form continues to work. But eventually it should be\n    *   standardized to work with the new localization json structure */\n    getPlaceholder(countryCode, fieldName) {\n      const key = `${this.placeholder}.${this.addressType}.${countryCode}.${fieldName}`;\n\n      if (this.$te(key)) {\n        return this.$t(key);\n      }\n\n      return this.$t(`${this.placeholder}.${this.addressType}.default.${fieldName}`);\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Address.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Address.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Address.vue?vue&type=template&id=7fcca9e7&\"\nimport script from \"./Address.vue?vue&type=script&lang=js&\"\nexport * from \"./Address.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VForm,VRow,VSelect,VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareProductGroup.vue?vue&type=style&index=0&id=09497cda&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-sheet',{staticClass:\"pa-0\"},[_c('v-menu',{attrs:{\"data-cy\":\"my-part-second-horizontal-grid-view\",\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-x\":\"\",\"left\":\"\",\"z-index\":\"999999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-inline-block pa-0 text-center px-auto font-weight-medium\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"tag\":\"span\",\"data-cy\":\"my-part-price-range-box-grid\"}},'v-sheet',attrs,false),on),[_c('span',{staticClass:\"caption text--secondary\"},[_vm._v(\" # \"+_vm._s(_vm.$t('common.items'))+\" \")]),_c('div',{staticClass:\"pa-0\"},[_c('span',{staticClass:\"font-weight-bold ma-0 pa-0 text-center\",attrs:{\"data-cy\":\"my-part-price-range-grid\"}},[_c('span',{staticStyle:{\"color\":\"#128347\"}},[_vm._v(\" \"+_vm._s(_vm.part.length))])]),_c('span',{staticClass:\"mdi mdi-magnify  rounded d-inline-flex align-center justify-center ml-1 white--text\",staticStyle:{\"background-color\":\"#5FCE79\",\"color\":\"white !important\",\"width\":\"25px\",\"font-weight\":\"bold !important\"}})])])]}}])},[_c('div',{staticClass:\"pa-2\",staticStyle:{\"background-color\":\"white\"}},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('views.rfqs.quantity'))+\" / \"+_vm._s(_vm.$t('common.item')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.part),function(item,index){return [_c('span',{key:(\"qty-\" + index),staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" \"+_vm._s(item.Qty)+\" \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + index)},[_vm._v(\" \"+_vm._s(_vm.getProductDescription(item.Item))+\" \")])]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-sheet class=\"pa-0\">\n    <v-menu\n      data-cy=\"my-part-second-horizontal-grid-view\"\n      open-on-hover\n      bottom\n      offset-x\n      left\n      z-index=\"999999\"\n    >\n      <template v-slot:activator=\"{ on, attrs }\">\n        <v-sheet\n          v-bind=\"attrs\"\n          tag=\"span\"\n          data-cy=\"my-part-price-range-box-grid\"\n          class=\"d-inline-block pa-0 text-center px-auto font-weight-medium\"\n          style=\"border-radius:5px\"\n          v-on=\"on\"\n        >\n          <span class=\"caption text--secondary\">\n            # {{ $t('common.items') }}\n          </span>\n\n          <div class=\"pa-0\">\n            <span\n              class=\"font-weight-bold ma-0 pa-0 text-center\"\n              data-cy=\"my-part-price-range-grid\"\n            >\n              <span style=\"color:#128347\"> {{ part.length }}</span>\n            </span>\n            <span\n              class=\"mdi mdi-magnify  rounded d-inline-flex align-center justify-center ml-1 white--text\"\n              style=\"background-color: #5FCE79; color: white !important; width: 25px; font-weight: bold !important\"\n            />\n          </div>\n        </v-sheet>\n      </template>\n\n      <div style=\"background-color: white\" class=\"pa-2\">\n        <span class=\"body-2 font-weight-bold\">{{ $t('views.rfqs.quantity') }} / {{ $t('common.item') }}</span>\n        <div\n          style=\"display: grid;width: min-content;grid-template-columns: max-content max-content;\"\n        >\n          <template v-for=\"(item,index) in part\">\n            <span :key=\"`qty-${index}`\" style=\"color: #8D8D8D\">\n              {{ item.Qty }} {{ '\\xa0' }}\n            </span>\n            <span :key=\"`price-${index}`\">\n              {{ getProductDescription(item.Item) }}\n            </span>\n          </template>\n        </div>\n      </div>\n    </v-menu>\n  </v-sheet>\n</template>\n\n<script>\n\nimport { models } from 'feathers-vuex';\n\nimport {\n  defineComponent,\n} from '@vue/composition-api';\n\nconst { HardwareProduct } = models.api;\n\nexport default defineComponent({\n  props: {\n    /**\n     * Manipulate the way field's value displays\n     */\n    part: {\n      type: Array,\n      default: () => []\n    },\n  },\n\n  setup() {\n    const getProductDescription = id => (HardwareProduct.getFromStore(id) ? HardwareProduct.getFromStore(id).description : '');\n\n    return {\n      getProductDescription\n    };\n  },\n});\n\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagItemsList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagItemsList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BagItemsList.vue?vue&type=template&id=bf2f82ba&\"\nimport script from \"./BagItemsList.vue?vue&type=script&lang=js&\"\nexport * from \"./BagItemsList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VMenu,VSheet})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-0 pa-0\",staticStyle:{\"display\":\"inline-grid\",\"background-color\":\"transparent\"},attrs:{\"elevation\":\"0\",\"width\":_vm.width,\"height\":_vm.height}},[(!_vm.isLoaded)?[(!_vm.hasError)?_c('v-skeleton-loader',{staticClass:\"d-flex justify-center align-center\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"type\":\"image\"}}):_c('v-tooltip',{attrs:{\"right\":\"\",\"nudge-bottom\":\"50px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-flex justify-center align-center \",attrs:{\"color\":\"#F4F4F4\",\"max-width\":_vm.width,\"height\":_vm.height}},'v-sheet',attrs,false),on),[_c('span',{staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\"?\")])])]}}],null,false,2963087188)},[_c('span',[_vm._v(_vm._s(_vm.$t('common.failedToDownloadThumbnail')))])])]:_vm._e(),_c('v-fade-transition',[_c('v-img',{attrs:{\"aspect-ratio\":\"1\",\"contain\":\"\",\"src\":_vm.thumbnailUri,\"max-height\":_vm.height,\"max-width\":_vm.width,\"alt\":\"thumbnail\"},on:{\"load\":function($event){_vm.isLoaded = true},\"error\":function($event){_vm.hasError = true}}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    elevation=\"0\"\n    class=\"ma-0 pa-0\"\n    :width=\"width\"\n    :height=\"height\"\n    style=\"display: inline-grid;background-color: transparent\"\n  >\n    <template v-if=\"!isLoaded\">\n      <v-skeleton-loader\n        v-if=\"!hasError\"\n        :width=\"width\"\n        :height=\"height\"\n        type=\"image\"\n        class=\"d-flex justify-center align-center\"\n      />\n      <v-tooltip v-else right nudge-bottom=\"50px\">\n        <template v-slot:activator=\"{ on, attrs }\">\n          <v-sheet\n            color=\"#F4F4F4\"\n            :max-width=\"width\"\n            :height=\"height\"\n            v-bind=\"attrs\"\n            class=\"d-flex justify-center align-center \"\n            v-on=\"on\"\n          >\n            <span style=\"color:#8D8D8D\">?</span>\n          </v-sheet>\n        </template>\n        <span>{{ $t('common.failedToDownloadThumbnail') }}</span>\n      </v-tooltip>\n    </template>\n    <v-fade-transition>\n      <v-img\n        aspect-ratio=\"1\"\n        contain\n        :src=\"thumbnailUri\"\n        :max-height=\"height\"\n        :max-width=\"width\"\n        alt=\"thumbnail\"\n        @load=\"isLoaded = true\"\n        @error=\"hasError = true\"\n      />\n    </v-fade-transition>\n  </v-card>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\n\nexport default {\n  /* TODO It would be nice to use Vuetify's image component (v-img), but unfortunately\n    *   there seems to be no simple way to display a skeleton loader until\n    *   a v-img loads using v-show. So we're stuck with a regular image tag */\n  name: 'ThumbnailViewer',\n  props: {\n    imageId: { type: String },\n    width: {\n      type: Number,\n      required: true,\n    },\n    height: {\n      type: Number,\n      required: true,\n    },\n\n  },\n  data: () => ({\n    isLoaded: false,\n    hasError: false,\n  }),\n  computed: {\n    ...mapState('auth', ['accessToken']),\n\n    thumbnailUri: vm => {\n      if (!vm.imageId) {\n        return '/-';\n      }\n      return `/img/hardwareShop/${vm.imageId}.png`;\n      // const host = process.env.VUE_APP_API_URL;\n      // const fileName = `${vm.imageId}.PNG`;\n      // return `${host}hardware/${fileName}/${vm.imageId}`;\n    }\n  },\n};\n</script>\n\n<style scoped>\n/* Without this, there is a random extra ~6 pixels below the image.\nAfter scrutinizing over pixels for a while, I found this: https://stackoverflow.com/a/5804278/9214972 */\nimg {\n  vertical-align: middle;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HardwareThumbnailViewer.vue?vue&type=template&id=8cc35d3e&scoped=true&\"\nimport script from \"./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./HardwareThumbnailViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HardwareThumbnailViewer.vue?vue&type=style&index=0&id=8cc35d3e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8cc35d3e\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VFadeTransition,VImg,VSheet,VSkeletonLoader,VTooltip})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nimport i18n from '../plugins/i18n';\n\nconst servicePath = 'my-parts';\nconst Model = class MyPart extends BaseModel {\n  static modelName = 'MyPart';\n\n  static instanceDefaults() {\n    return {\n      qtyOfPart: 1,\n      defaultQuantity: 1\n    };\n  }\n\n  static setupInstance(data) {\n    if (data.PriceMOQ) {\n      const priceMoq = JSON.parse(data.PriceMOQ);\n      // eslint-disable-next-line no-underscore-dangle\n      this._defaultQuantity = Math.min(...priceMoq.map(o => o.Qty));\n      // eslint-disable-next-line no-underscore-dangle\n      this._qtyOfPart = this._defaultQuantity;\n      // eslint-disable-next-line no-underscore-dangle\n    } else {\n      data.PriceMOQ = [];\n      // eslint-disable-next-line no-underscore-dangle\n      this._defaultQuantity = 1;\n    }\n\n    if (data.ExpiryDate) {\n      data.ExpiryDate = new Date(data.ExpiryDate);\n    }\n    if (data.MaterialStr && data.MaterialSeriesStr) {\n      this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n    }\n    return data;\n  }\n\n  get qtyOfPart() {\n    // eslint-disable-next-line no-underscore-dangle\n    return this._qtyOfPart;\n  }\n\n  set qtyOfPart(value) {\n    // eslint-disable-next-line no-underscore-dangle\n    if (value <= this.defaultQuantity) {\n      // eslint-disable-next-line no-underscore-dangle\n      this._qtyOfPart = this.defaultQuantity;\n      return;\n    }\n    // eslint-disable-next-line no-underscore-dangle\n    this._qtyOfPart = value;\n  }\n\n  get defaultQuantity() {\n    // eslint-disable-next-line no-underscore-dangle\n    return this._defaultQuantity;\n  }\n\n  set defaultQuantity(value) {\n    // eslint-disable-next-line no-underscore-dangle\n    this._defaultQuantity = value;\n  }\n\n  get materialTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n  }\n\n  get materialThicknessTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n  }\n\n  get materialSeriesTranslation() {\n    return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n  }\n\n  get materialFinishTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n  }\n\n  get materialFinishOptionTranslation() {\n    return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n  }\n\n  get toleranceTranslation() {\n    if (!this.Tolerance) {\n      return '-';\n    }\n\n    return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"model-viewer\",on:{\"click\":function($event){return _vm.$emit('model:clicked')}}},[(_vm.isMeshUploaded)?_c('div',[(_vm.isInteractive)?_c('v-btn-toggle',{staticStyle:{\"position\":\"absolute\",\"top\":\"63px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\"},attrs:{\"mandatory\":\"\",\"dark\":\"\",\"borderless\":\"\",\"active-class\":\"active\"},model:{value:(_vm.isUnfolded),callback:function ($$v) {_vm.isUnfolded=$$v},expression:\"isUnfolded\"}},[_c('v-btn',{staticStyle:{\"background-color\":\"#191919\"},attrs:{\"depressed\":\"\",\"value\":false,\"width\":['md','sm'].includes(_vm.$vuetify.breakpoint.name) ? 80 : 180,\"ripple\":false,\"active-class\":\"active\"}},[_c('span',{staticClass:\"mdi mdi-rotate-3d-variant pr-2\",staticStyle:{\"font-size\":\"25px\"}}),_c('span',{staticClass:\"hidden-md-and-down pr-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.3dView'))+\" \")])]),(_vm.showFlat)?_c('v-btn',{staticStyle:{\"background-color\":\"#191919\"},attrs:{\"depressed\":\"\",\"value\":true,\"width\":['md','sm'].includes(_vm.$vuetify.breakpoint.name) ? 80 : 180,\"ripple\":false,\"active-class\":\"active\"}},[_c('span',{staticClass:\"mdi mdi-gamepad pr-2\",staticStyle:{\"font-size\":\"25px\"}}),_c('span',{staticClass:\"hidden-md-and-down pr-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.flat'))+\" \")])]):_vm._e()],1):_vm._e(),(!_vm.isMeshLoaded && _vm.part.uploadProgress <= 100)?_c('v-progress-circular',{attrs:{\"rotate\":360,\"size\":_vm.width,\"width\":8,\"value\":_vm.part.uploadProgress,\"indeterminate\":!!(!_vm.isMeshLoaded && _vm.part.uploadProgress && _vm.part.uploadProgress === 100),\"color\":\"primary\"}},[(!_vm.isMeshUploaded && _vm.part.uploadProgress && _vm.part.uploadProgress === 100)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.analyzing'))+\" \")]):(_vm.isMeshUploaded && !_vm.isMeshLoaded)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.loading'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(Math.round(_vm.part.uploadProgress))+\" \")])]):(!_vm.isMeshLoaded && !_vm.part.uploadProgress)?_c('v-skeleton-loader',{class:{ 'skeleton-container' :!_vm.isMeshLoaded },attrs:{\"id\":(\"model-viewer-placeholder-\" + _vm.viewerId),\"type\":\"avatar\",\"width\":_vm.width,\"height\":_vm.height}}):_vm._e(),_c('v-slide-x-transition',[_c('div',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isMeshLoaded),expression:\"isMeshLoaded\"}],ref:\"modelViewer\",attrs:{\"id\":(\"model-viewer-\" + _vm.viewerId)}},'div',_vm.$attrs,false),_vm.$listeners))])],1):(_vm.isSvgUploaded)?_c('div',[(!_vm.isSvgLoaded)?[_c('v-skeleton-loader',{staticClass:\"my-2\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"type\":\"image\"}})]:_vm._e(),_c('v-fade-transition',[_c('img',_vm._g(_vm._b({ref:\"modelViewer\",staticClass:\"my-2\",style:({'max-width': _vm.width + 'px', 'max-height': _vm.height + 'px', 'min-width': _vm.width + 'px'}),attrs:{\"src\":_vm.meshUrl,\"alt\":\"thumbnail\"},on:{\"load\":function($event){_vm.isSvgLoaded = true;}}},'img',_vm.$attrs,false),_vm.$listeners))])],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"model-viewer\" @click=\"$emit('model:clicked')\">\n    <div v-if=\"isMeshUploaded\">\n      <v-btn-toggle\n        v-if=\"isInteractive\"\n        v-model=\"isUnfolded\"\n        style=\"position:absolute; top: 63px; left: 50%; transform: translateX(-50%);\"\n        mandatory\n        dark\n        borderless\n        active-class=\"active\"\n      >\n        <v-btn\n          depressed\n          style=\"background-color: #191919\"\n          :value=\"false\"\n          :width=\"['md','sm'].includes($vuetify.breakpoint.name) ? 80 : 180\"\n          :ripple=\"false\"\n          active-class=\"active\"\n        >\n          <span class=\"mdi mdi-rotate-3d-variant pr-2\" style=\"font-size: 25px\" />\n          <span class=\"hidden-md-and-down pr-2\">\n            {{ $t('common.3dView') }}\n          </span>\n        </v-btn>\n\n        <v-btn\n          v-if=\"showFlat\"\n          depressed\n          style=\"background-color: #191919\"\n          :value=\"true\"\n          :width=\"['md','sm'].includes($vuetify.breakpoint.name) ? 80 : 180\"\n          :ripple=\"false\"\n          active-class=\"active\"\n        >\n          <span class=\"mdi mdi-gamepad pr-2\" style=\"font-size: 25px\" />\n          <span class=\"hidden-md-and-down pr-2\">\n            {{ $t('common.flat') }}\n          </span>\n        </v-btn>\n      </v-btn-toggle>\n\n      <v-progress-circular\n        v-if=\"!isMeshLoaded && part.uploadProgress <= 100\"\n        :rotate=\"360\"\n        :size=\"width\"\n        :width=\"8\"\n        :value=\"part.uploadProgress\"\n        :indeterminate=\"!!(!isMeshLoaded && part.uploadProgress && part.uploadProgress === 100)\"\n        color=\"primary\"\n      >\n        <span v-if=\"!isMeshUploaded && part.uploadProgress && part.uploadProgress === 100\">\n          {{ $t('common.analyzing') }}\n        </span>\n        <span v-else-if=\"isMeshUploaded && !isMeshLoaded\">\n          {{ $t('common.loading') }}\n        </span>\n        <span v-else>\n          {{ Math.round(part.uploadProgress) }}\n        </span>\n      </v-progress-circular>\n\n      <!-- Setting the height/width of this component does NOT change the height/width\n       of the avatar, it changes the container -->\n      <v-skeleton-loader\n        v-else-if=\"!isMeshLoaded && !part.uploadProgress\"\n        :id=\"`model-viewer-placeholder-${viewerId}`\"\n        :class=\"{ 'skeleton-container' :!isMeshLoaded }\"\n        type=\"avatar\"\n        :width=\"width\"\n        :height=\"height\"\n      />\n      <!-- v-show because we need the DOM element to hook onto\n       https://vuejs.org/v2/guide/conditional.html#v-if-vs-v-show -->\n      <v-slide-x-transition>\n        <div\n          v-show=\"isMeshLoaded\"\n          :id=\"`model-viewer-${viewerId}`\"\n          ref=\"modelViewer\"\n          v-bind=\"$attrs\"\n          v-on=\"$listeners\"\n        />\n      </v-slide-x-transition>\n    </div>\n\n    <div v-else-if=\"isSvgUploaded\">\n      <template v-if=\"!isSvgLoaded\">\n        <v-skeleton-loader\n          :width=\"width\"\n          :height=\"height\"\n          type=\"image\"\n          class=\"my-2\"\n        />\n      </template>\n      <v-fade-transition>\n        <img\n          ref=\"modelViewer\"\n          class=\"my-2\"\n          v-bind=\"$attrs\"\n          :src=\"meshUrl\"\n          alt=\"thumbnail\"\n          :style=\"{'max-width': width + 'px', 'max-height': height + 'px', 'min-width': width + 'px'}\"\n          @load=\"isSvgLoaded = true;\"\n          v-on=\"$listeners\"\n        >\n      </v-fade-transition>\n    </div>\n  </div>\n</template>\n\n<script>\nimport * as THREE from 'three';\nimport { STLLoader } from 'three/examples/jsm/loaders/STLLoader';\nimport { TrackballControls } from 'three/examples/jsm/controls/TrackballControls';\nimport { v4 as uuidv4 } from 'uuid';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'ModelViewer',\n  props: {\n    part: {\n      type: Object,\n    },\n    width: {\n      type: Number,\n      required: true,\n    },\n    height: {\n      type: Number,\n      required: true,\n    },\n    viewport: null,\n    isInteractive: Boolean,\n    // isUnfolded: Boolean,\n    isMeshUploaded: { type: Boolean, default: true },\n    isSvgUploaded: { type: Boolean, default: false }\n  },\n  data() {\n    return {\n      cameraTarget: null,\n      scene: null,\n      mesh: null,\n      controls: null,\n      isMeshLoaded: false,\n      viewerId: uuidv4(),\n      isUnfolded: false,\n      isSvgLoaded: false,\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    viewport3d: vm => vm.viewport || vm.$refs.modelViewer,\n    meshUrl: vm => {\n      const host = process.env.VUE_APP_API_URL;\n      let fileName = `${vm.part.DrawingRowPointer.toLowerCase()}-${vm.isUnfolded ? 'unfolded' : 'folded'}.STL`;\n      if (vm.isSvgUploaded) {\n        fileName = `${vm.part.DrawingRowPointer.toLowerCase()}.SVG`;\n      }\n      return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}/File`;\n    },\n    showFlat: vm => {\n      const machine = _.get(vm.part, 'Machine', undefined) || _.get(vm.part, 'AnalysisData.machine', undefined);\n      return machine !== 'turning';\n    },\n  },\n  watch: {\n    async isMeshUploaded(val) {\n      if (val) {\n        await this.init();\n        this.onResize();\n      }\n    },\n    async isUnfolded() {\n      this.cleanUpThreeJs();\n      await this.init();\n      this.onResize();\n    },\n    width() {\n      this.onResize();\n    },\n    height() {\n      this.onResize();\n    },\n  },\n\n  async mounted() {\n    if (this.isMeshUploaded) {\n      await this.init();\n      this.onResize();\n    }\n  },\n  beforeDestroy() {\n    if (this.isSvgUploaded) {\n      return;\n    }\n    this.cleanUpThreeJs();\n  },\n  methods: {\n    async init() {\n      if (this.isSvgUploaded) {\n        return;\n      }\n      this.scene = new THREE.Scene();\n\n      const VIEW_ANGLE = 35;\n      const ASPECT = this.width / this.height;\n      const NEAR = 0.1;\n      const FAR = 20000;\n\n      this.renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true, preserveDrawingBuffer: true });\n      this.renderer.setClearColor(0x000000, 0); // the default\n      this.renderer.setPixelRatio(window.devicePixelRatio * 1.5);\n      this.renderer.setSize(this.width, this.height);\n\n      this.viewport3d.appendChild(this.renderer.domElement);\n\n      this.camera = new THREE.PerspectiveCamera(\n        VIEW_ANGLE, // Field of view\n        ASPECT, // Aspect ratio\n        NEAR, // Near plane\n        FAR, // Far plane\n      );\n\n      this.camera.position.set(\n        -37.565773010253906,\n        -25.910253524780273,\n        -97.5260238647461,\n      );\n\n      this.scene.add(this.camera);\n\n      this.createLights();\n\n      if (this.isInteractive) {\n        this.initControls();\n      }\n\n      this.loader = new STLLoader();\n\n      const baseMaterial = new THREE.MeshPhongMaterial({ color: 0x777777 });\n\n      // eslint-disable-next-line no-unused-vars\n      const host = process.env.VUE_APP_API_URL;\n\n      await this.loader.load(\n        // `${host}uploads/${this.drawingRowPointer.toLowerCase()}.STL`,\n        this.meshUrl,\n        geometry => {\n          this.mesh = new THREE.Mesh(geometry, baseMaterial);\n          this.mesh.scale.set(0.5, 0.5, 0.5);\n          this.mesh.position.set(0, 0, 0);\n          this.mesh.rotation.set(0, 0, 0);\n\n          const box = new THREE.Box3().setFromObject(this.mesh);\n          const center = box.getCenter(new THREE.Vector3());\n\n          this.mesh.position.x = -center.x;\n          this.mesh.position.y = -center.y;\n          this.mesh.position.z = -center.z;\n\n          this.mesh.traverse(child => {\n            if (child instanceof THREE.Mesh) {\n              child.material = baseMaterial;\n              child.material.side = THREE.DoubleSide;\n\n              if (child.geometry !== undefined) {\n                const edges = new THREE.EdgesGeometry(child.geometry);\n                const line = new THREE.LineSegments(\n                  edges,\n                  new THREE.LineBasicMaterial({ color: 0x000000 }),\n                );\n\n                line.position.x = -center.x;\n                line.position.y = -center.y;\n                line.position.z = -center.z;\n\n                line.scale.set(0.5, 0.5, 0.5);\n                this.scene.add(line);\n              }\n            }\n          });\n\n          this.scene.add(this.mesh);\n          this.$nextTick(() => {\n            this.isMeshLoaded = true;\n          });\n\n          this.$emit('load:mesh');\n\n          this.fitCameraToObject(this.camera, this.mesh, 2.8, null);\n          this.animate();\n        },\n        null,\n        error => {\n          console.error(error);\n        },\n      );\n    },\n    initControls() {\n      this.controls = new TrackballControls(this.camera, this.renderer.domElement);\n      this.controls.rotateSpeed = 10;\n      this.controls.zoomSpeed = 10;\n      this.controls.noZoom = false;\n      this.controls.noPan = true;\n      this.controls.staticMoving = true;\n      this.controls.dynamicDampingFactor = 0.3;\n      /* Default control keys (I think they're arrow keys) */\n      this.controls.keys = [65, 83, 68];\n    },\n    onResize() {\n      if (this.isSvgUploaded) {\n        return;\n      }\n      if (!this.renderer) {\n        return;\n      }\n      this.camera.aspect = this.width / this.height;\n\n      this.camera.updateProjectionMatrix();\n      this.renderer.setSize(this.width, this.height);\n      if (this.isInteractive) {\n        this.controls.handleResize();\n      }\n    },\n    fitCameraToObject(camera, object, offset, speed) {\n      offset = offset || 1.25;\n\n      const boundingBox = new THREE.Box3();\n\n      // get bounding box of object - this will be used to setup controls and camera\n      boundingBox.setFromObject(object);\n\n      const center = boundingBox.getCenter(new THREE.Vector3());\n\n      const size = boundingBox.getSize(new THREE.Vector3());\n\n      // get the max side of the bounding box (fits to width OR height as needed )\n      const maxDim = Math.max(size.x, size.y, size.z);\n      const fov = camera.fov * (Math.PI / 180);\n      // eslint-disable-next-line no-mixed-operators\n      let distanceToMesh = Math.abs(maxDim / 4 * Math.tan(fov * 2));\n\n      distanceToMesh *= offset; // zoom out a little so that objects don't fill the screen\n\n      if (speed) {\n        camera.position.x = Math.cos(speed) * distanceToMesh;\n        camera.position.z = Math.sin(speed) * distanceToMesh;\n      } else {\n        camera.position.z = distanceToMesh;\n      }\n\n      const minZ = boundingBox.min.z;\n      const cameraToFarEdge = (minZ < 0) ? -minZ + distanceToMesh : distanceToMesh - minZ;\n\n      camera.far = cameraToFarEdge * 3;\n      camera.updateProjectionMatrix();\n\n      camera.lookAt(center);\n    },\n    cleanUpThreeJs() {\n      // Removing all children...\n      if (this.scene) {\n        for (let i = this.scene.children.length - 1; i >= 0; i--) {\n          this.scene.remove(this.scene.children[i]);\n        }\n      }\n\n      const baseNode = this.viewport3d;\n      if (baseNode) {\n        while (baseNode.firstChild) {\n          baseNode.removeChild(baseNode.firstChild);\n        }\n      }\n\n      if (this.renderer) {\n        this.renderer.dispose();\n        // Prevents deleting the oldest context after 16 contexts\n        this.renderer.forceContextLoss();\n      }\n      this.scene = null;\n      this.camera = null;\n      this.renderer = null;\n      this.controls = null;\n    },\n    addShadowedLight(x, y, z, color, intensity) {\n      const directionalLight = new THREE.DirectionalLight(color, intensity);\n      directionalLight.position.set(x, y, z);\n      directionalLight.lookAt(0, 0, 0);\n      this.camera.add(directionalLight);\n\n      directionalLight.castShadow = true;\n\n      const d = 1;\n      directionalLight.shadow.camera.left = -d;\n      directionalLight.shadow.camera.right = d;\n      directionalLight.shadow.camera.top = d;\n      directionalLight.shadow.camera.bottom = -d;\n\n      directionalLight.shadow.camera.near = 1;\n      directionalLight.shadow.camera.far = 4;\n\n      directionalLight.shadow.mapSize.width = 64;\n      directionalLight.shadow.mapSize.height = 64;\n\n      directionalLight.shadow.bias = 1;\n    },\n    createLights() {\n      if (this.camera) {\n        // Lights\n        this.camera.add(new THREE.HemisphereLight(0x443333, 0x111122));\n        this.addShadowedLight(1, 1, 1, 0xffffff, 1.35);\n      }\n    },\n    animate() {\n      // Seems to be a timing issue? requestAnimationFrame is called before animate is 'ready'??\n      if (this.scene && this.animate) {\n        requestAnimationFrame(this.animate);\n\n        if (this.isInteractive) {\n          this.controls.update();\n        } else {\n          // using timer as animation\n          const speed = Date.now() * 0.00025;\n          this.camera.position.x = Math.cos(speed) * 80;\n          this.camera.position.z = Math.sin(speed) * 80;\n\n          this.fitCameraToObject(this.camera, this.mesh, 2.8, speed);\n        }\n        this.renderer.render(this.scene, this.camera);\n      }\n    },\n  }\n};\n</script>\n\n<style scoped>\n  .skeleton-container {\n    display: flex; align-items: center; justify-content: center;\n  }\n\n  .active {\n    opacity: 1 !important;\n    color:#5FCE79 !important;\n    background-color:#191919 !important;\n  }\n\n  .active::before{\n    border-bottom: 2px solid #5FCE79 !important;\n    opacity: 1;\n  }\n\n  .v-btn:before {\n    border-radius: 0;\n    background-color: transparent;\n  }\n\n  .btn--active{\n    opacity: 1 !important;\n  }\n\n  .v-btn-toggle > .v-btn.v-btn {\n    opacity: 1;\n  }\n\n  .v-btn--active::before {\n    color: #5FCE79;\n    opacity: 1 !important;\n  }\n\n  .model-viewer:hover {\n    cursor: pointer;\n  }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModelViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModelViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ModelViewer.vue?vue&type=template&id=98f13306&scoped=true&\"\nimport script from \"./ModelViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./ModelViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ModelViewer.vue?vue&type=style&index=0&id=98f13306&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"98f13306\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VBtnToggle } from 'vuetify/lib/components/VBtnToggle';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VSlideXTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VBtn,VBtnToggle,VFadeTransition,VProgressCircular,VSkeletonLoader,VSlideXTransition})\n","const LEVEL = {\n  SUCCESS: 'success',\n  INFO: 'info',\n  WARNING: 'warning',\n  ERROR: 'error',\n};\n\nmodule.exports = {\n  LEVEL,\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.$attrs.value)?_c('v-dialog',_vm._g(_vm._b({},'v-dialog',_vm.$attrs,false),_vm.$listeners),[_c('v-card',{attrs:{\"min-width\":_vm.$attrs['min-width'],\"loading\":_vm.isLoading}},[(_vm.$slots.title)?_c('v-card-title',{staticClass:\"py-4 justify-center text-h5 font-weight-bold\"},[_vm._t(\"title\"),_c('v-btn',{staticStyle:{\"right\":\"16px\"},attrs:{\"icon\":\"\",\"absolute\":\"\",\"data-cy\":\"close-dialog-button\"},on:{\"click\":function($event){return _vm.$emit('click:cancel')}}},[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\" mdi-close \")])],1)],2):_vm._e(),(_vm.$slots.content)?_c('v-card-text',{staticClass:\"pa-4\"},[_vm._t(\"content\")],2):_vm._e(),(_vm.$slots.actions || _vm.type !== _vm.types.custom)?_c('v-card-actions',{staticClass:\"pt-2 pb-8 justify-center\"},[_vm._t(\"actions\",function(){return [(_vm.type !== _vm.types.custom)?[([_vm.types.acknowledgement, _vm.types.confirmation].includes(_vm.type))?_c('v-btn',{staticClass:\"px-8\",attrs:{\"color\":\"primary\",\"loading\":_vm.isLoading,\"data-cy\":\"ok-button-dialog\",\"disabled\":_vm.isLoading || _vm.isOkDisabled},on:{\"click\":function($event){return _vm.$emit('click:ok')}}},[_vm._v(\" \"+_vm._s(_vm.okButtonText || _vm.$t('common.confirm'))+\" \")]):_vm._e(),(_vm.type === _vm.types.confirmation)?_c('v-btn',{staticClass:\"px-8\",attrs:{\"color\":\"primary\",\"text\":\"\",\"data-cy\":\"cancel-button-dialog\",\"disabled\":_vm.isLoading || _vm.isCancelDisabled,\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$emit('click:cancel')}}},[_vm._v(\" \"+_vm._s(_vm.cancelButtonText || _vm.$t('common.cancel'))+\" \")]):_vm._e()]:_vm._e()]})],2):_vm._e()],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <!-- TODO ensure we always have a new instance with v-if so\n   things like form validation don't show errors in a new dialog\n   (similar to lazy validation)-->\n  <v-dialog\n    v-if=\"$attrs.value\"\n    v-bind=\"$attrs\"\n    v-on=\"$listeners\"\n  >\n    <v-card :min-width=\"$attrs['min-width']\" :loading=\"isLoading\">\n      <v-card-title\n        v-if=\"$slots.title\"\n        class=\"py-4 justify-center text-h5 font-weight-bold\"\n      >\n        <slot name=\"title\" />\n        <v-btn\n          icon\n          absolute\n          style=\"right: 16px\"\n          data-cy=\"close-dialog-button\"\n          @click=\"$emit('click:cancel')\"\n        >\n          <v-icon large>\n            mdi-close\n          </v-icon>\n        </v-btn>\n      </v-card-title>\n\n      <v-card-text v-if=\"$slots.content\" class=\"pa-4\">\n        <slot name=\"content\" />\n      </v-card-text>\n\n      <v-card-actions\n        v-if=\"$slots.actions || type !== types.custom\"\n        class=\"pt-2 pb-8 justify-center\"\n      >\n        <slot name=\"actions\">\n          <template v-if=\"type !== types.custom\">\n            <v-btn\n              v-if=\"[types.acknowledgement, types.confirmation].includes(type)\"\n              color=\"primary\"\n              class=\"px-8\"\n              :loading=\"isLoading\"\n              data-cy=\"ok-button-dialog\"\n              :disabled=\"isLoading || isOkDisabled\"\n              @click=\"$emit('click:ok')\"\n            >\n              {{ okButtonText || $t('common.confirm') }}\n            </v-btn>\n            <v-btn\n              v-if=\"type === types.confirmation\"\n              class=\"px-8\"\n              color=\"primary\"\n              text\n              data-cy=\"cancel-button-dialog\"\n              :disabled=\"isLoading || isCancelDisabled\"\n              depressed\n              @click=\"$emit('click:cancel')\"\n            >\n              {{ cancelButtonText || $t('common.cancel') }}\n            </v-btn>\n          </template>\n        </slot>\n      </v-card-actions>\n    </v-card>\n  </v-dialog>\n</template>\n\n<script>\n/* Must be defined externally, since prop validation doesn't have access to 'this' */\nconst types = {\n  confirmation: 'confirmation',\n  acknowledgement: 'acknowledgement',\n  custom: 'custom',\n};\n\nexport default {\n  props: {\n    type: {\n      type: String,\n      required: false,\n      default: () => types.custom,\n      validator: type => Object.values(types).includes(type),\n    },\n    isLoading: Boolean,\n    isOkDisabled: Boolean,\n    okButtonText: String,\n    cancelButtonText: String,\n    isCancelDisabled: Boolean,\n  },\n  data: () => ({\n    types,\n  })\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=12cacff8&scoped=true&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"12cacff8\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VIcon})\n","export default [\n  '*',\n\n  'user.create',\n  'user.read',\n  'user.update',\n  'user.delete',\n\n  'role.create',\n  'role.read',\n  'role.update',\n  'role.delete',\n\n  'address.create',\n  'address.read',\n  'address.update',\n  'address.delete',\n\n  'phone.create',\n  'phone.read',\n  'phone.update',\n  'phone.delete',\n\n  'email.create',\n  'email.read',\n  'email.update',\n  'email.delete',\n\n  'contact.create',\n  'contact.read',\n  'contact.update',\n  'contact.delete',\n\n  'rfq.create',\n  'rfq.read',\n  'rfq.update',\n  'rfq.delete',\n  'order.create',\n  'order.read',\n  'order.update',\n  'order.delete',\n  'newRfq.create',\n  'newRfq.read',\n  'newRfq.update',\n  'newRfq.delete',\n];\n","import localeCn from 'dayjs/locale/zh-cn';\nimport localeEn from 'dayjs/locale/en';\nimport { models } from 'feathers-vuex';\nimport { reset, setStorage } from '../utils/vuex';\nimport rights from '../rights';\nimport vuetify from '../plugins/vuetify';\n\nconst getDefaultLanguage = () => {\n  const localLanguage = (\n    localStorage.locale\n    || window.navigator.userLanguage\n    || window.navigator.language\n    || 'en-US'\n  );\n  return (localLanguage === 'zh' || localLanguage === 'cn') ? 'cn' : 'en-US';\n};\n\nconst state = {\n  color: 'success',\n  title: 'Komacute',\n  sidebarBackgroundColor: 'rgba(27, 27, 27, 0.74)',\n  rights,\n  locale: getDefaultLanguage(),\n  version: process.env.PACKAGE_VERSION || '0.0.0',\n  messages: [],\n  currentOrder: null,\n  userAvatarUrl: null,\n};\n\nconst setLocale = async (context, { $i18n, locale, $FeathersVuex }) => {\n  context.commit('SET_LOCALE', locale);\n  $i18n.locale = locale;\n  const translationDate = locale === 'cn' ? localeCn : localeEn;\n  moment.locale(translationDate);\n  vuetify.framework.lang.current = locale;\n\n  if (!$FeathersVuex) {\n    return;\n  }\n\n  const userId = context.rootState.auth.user._id;\n  const user = await $FeathersVuex.api.User.getFromStore(userId);\n\n  if (user.locale === locale) {\n    return;\n  }\n\n  user.locale = locale;\n  user.save();\n};\n\nexport default {\n  plugin: () => {\n  },\n\n  store: {\n    app: {\n      namespaced: true,\n\n      state,\n\n      getters: {\n        appVersion: s => s.version,\n        currentOrder: s => s.currentOrder,\n        currentOrderItemsCount: s => {\n          if (!s.currentOrder || s.currentOrder.items.length === 0) {\n            return null;\n          }\n          return s.currentOrder.items.length;\n        }\n      },\n\n      mutations: {\n        clearAll: reset(state),\n\n        SET_IMAGE: setStorage('image'),\n        SET_COLOR: setStorage('color'),\n\n        SET_LOCALE: setStorage('locale'),\n\n        PUSH_SNACK: (stateIn, payload) => {\n          stateIn.messages.push(payload);\n        },\n\n        POP_SNACK: stateIn => {\n          stateIn.messages.pop();\n        },\n\n        ACKNOWLEDGE_SNACK_BY_ID: (stateIn, id) => {\n          stateIn.messages.splice(stateIn.messages.map(m => m.id).indexOf(id), 1);\n        },\n\n        SET_CURRENT_ORDER: (stateIn, order) => {\n          stateIn.currentOrder = order;\n        },\n\n        SET_USER_AVATAR_URL: (stateIn, url) => {\n          stateIn.userAvatarUrl = url;\n        },\n      },\n\n      actions: {\n        setColor(context, color) {\n          context.commit('SET_COLOR', color);\n        },\n\n        setImage(context, img) {\n          context.commit('SET_IMAGE', img);\n        },\n\n        setLocale(context, { $i18n, locale, $FeathersVuex }) {\n          setLocale(context, { $i18n, locale: locale || 'en-US', $FeathersVuex });\n        },\n\n        toggleLocale(context, { $i18n, $FeathersVuex }) {\n          const locale = context.state.locale === 'fr' ? 'en-US' : 'fr';\n          setLocale(context, { $i18n, locale: locale || 'en-US', $FeathersVuex });\n        },\n\n        pushSnack(context, snack) {\n          context.commit('PUSH_SNACK', { ...snack, id: _.uniqueId() });\n        },\n\n        popSnack(context) {\n          context.commit('POP_SNACK');\n        },\n\n        /**\n         * Removes the snack with the given id from the snack queue\n         * @param context\n         * @param id\n         */\n        acknowledgeSnackById(context, id) {\n          context.commit('ACKNOWLEDGE_SNACK_BY_ID', id);\n        },\n\n        initCurrentOrder: context => {\n          if (!context.getters.currentOrder) {\n            context.commit('SET_CURRENT_ORDER', new models.api.Order());\n          }\n\n          return context.getters.currentOrder;\n        },\n\n        clearCurrentOrder: context => {\n          context.commit('SET_CURRENT_ORDER', null);\n        },\n\n        setUserAvatarUrl: (context, url) => {\n          context.commit('SET_USER_AVATAR_URL', url);\n        },\n      },\n    },\n  },\n};\n","import currency from 'currency.js';\nimport { models } from 'feathers-vuex';\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport { BagItem } from '@/utils/types';\n\nconst servicePath = 'custom-bags';\n\nconst Model = class CustomBag extends BaseModel {\n  static modelName = 'CustomBag';\n\n  static instanceDefaults() {\n    return {\n      items: [],\n      bagName: '',\n      barCode: '',\n      description: '',\n      qty: 100\n    };\n  }\n\n  static setupInstance() {\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  get currencySymbol() {\n    return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n  }\n\n  get bagTotal() {\n    return currency(this.items.reduce((total, item) => total.add(item.SubTotal), currency(0, { symbol: this.currencySymbol })), { symbol: this.currencySymbol });\n  }\n\n  get SubTotal() {\n    return this.bagTotal.multiply(this.qty);\n  }\n\n  addItem(id, qty, currentId) {\n    const items = this.items.filter(item => item._id === id);\n    if (items.length) {\n      items[0].ReqQty = qty;\n      return;\n    }\n\n    this.items.push(new BagItem(id, qty, currentId));\n  }\n\n  removeItem(id) {\n    const index = this.items.findIndex(item => item._id === id);\n    this.items.splice(index, 1);\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'temp-rfqs';\n\nconst Model = class TempRfq extends BaseModel {\n  static modelName = 'TempRfq';\n\n  static instanceDefaults() {\n    return {\n      isCsi: false,\n      csiRfqId: '',\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n    extend() {\n      return {\n        state: {\n          tempRfqIdInProgress: 'new',\n        },\n        getters: {\n          getTempRfqIdInProgress: state => state.tempRfqIdInProgress,\n        },\n        mutations: {\n          setTempRfqIdInProgress: (state, id) => {\n            state.tempRfqIdInProgress = id || 'new';\n          },\n        },\n        actions: {}\n      };\n    },\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-container',[_c('v-card',[_c('v-card-text',[_c('img',{attrs:{\"src\":_vm.filePath}})])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <v-container>\n      <v-card>\n        <v-card-text>\n          <img :src=\"filePath\">\n        </v-card-text>\n      </v-card>\n    </v-container>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'SvgViewer',\n  props: {\n    filePath: String,\n  },\n  methods: {\n  }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SvgViewer.vue?vue&type=template&id=97a145d2&scoped=true&\"\nimport script from \"./SvgViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./SvgViewer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"97a145d2\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',{attrs:{\"accordion\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"py-1\"},[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t( _vm._.get(_vm.partDesignData[0], 'value')))+\" \")]),_c('v-select',{staticStyle:{\"z-index\":\"999\"},attrs:{\"solo\":\"\",\"flat\":\"\",\"dense\":\"\",\"outlined\":\"\",\"disabled\":\"\",\"label\":_vm.$t('common.metric'),\"items\":[_vm.$t('common.metric'), _vm.$t('common.imperial')],\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mt-2\",attrs:{\"x-small\":\"\",\"dark\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',[_vm._v(\"Coming soon\")])])]},proxy:true}]),model:{value:(_vm.units),callback:function ($$v) {_vm.units=$$v},expression:\"units\"}})],1),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.partDesignData.slice(1)),function(item){return _c('tr',{key:item.field},[_c('td',{staticClass:\"d-flex align-center text-truncate\",staticStyle:{\"color\":\"#747474\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\"},[_vm._v(\" \"+_vm._s((_vm.locale === 'en-US') || (item.valueCHS === '-') ? _vm.$t(item.value) : item.valueCHS)+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expansion-panels accordion>\n    <v-expansion-panel>\n      <v-expansion-panel-header class=\"py-1\">\n        <div class=\"text-subtitle-2\">\n          {{ $t( _.get(partDesignData[0], 'value')) }}\n        </div>\n        <v-select\n          v-model=\"units\"\n          style=\"z-index:999\"\n          solo\n          flat\n          dense\n          outlined\n          disabled\n          :label=\"$t('common.metric')\"\n          :items=\"[$t('common.metric'), $t('common.imperial')]\"\n          hide-details\n          @click.stop\n        >\n          <template #prepend>\n            <v-tooltip bottom>\n              <template v-slot:activator=\"{ on, attrs }\">\n                <v-icon\n                  class=\"mt-2\"\n                  x-small\n                  dark\n                  v-bind=\"attrs\"\n                  v-on=\"on\"\n                >\n                  mdi-information-outline\n                </v-icon>\n              </template>\n              <span>Coming soon</span>\n            </v-tooltip>\n          </template>\n        </v-select>\n      </v-expansion-panel-header>\n      <v-expansion-panel-content>\n        <v-card flat>\n          <v-simple-table dense>\n            <template v-slot:default>\n              <tbody>\n                <tr\n                  v-for=\"(item) in partDesignData.slice(1)\"\n                  :key=\"item.field\"\n                >\n                  <td class=\"d-flex align-center text-truncate\" style=\"color: #747474;\">\n                    <v-icon small class=\"mr-2\" color=\"green\">\n                      {{ item.icon }}\n                    </v-icon>\n                    {{ $t(item.field) }}\n                  </td>\n                  <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n                    <span\n                      class=\"ml-3\"\n                    >\n                      {{ (locale === 'en-US') || (item.valueCHS === '-') ? $t(item.value) : item.valueCHS }}\n                    </span>\n                  </td>\n                </tr>\n              </tbody>\n            </template>\n          </v-simple-table>\n        </v-card>\n      </v-expansion-panel-content>\n    </v-expansion-panel>\n  </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n  name: 'PartDesignTable',\n  props: {\n    part: Object,\n  },\n  data() {\n    return {\n      units: 'Metric',\n      tableData: []\n    };\n  },\n  computed: {\n    ...mapState('app', ['locale']),\n    partDesignData() {\n      let tableData = [];\n      if (this.part) {\n        tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n      }\n      if (_.isEmpty(tableData)) {\n        tableData = [\n          { field: null, value: '3dSideViewer.partsDesignData.title' },\n          { field: '3dSideViewer.partsDesignData.fabricationProcesses', value: '-' },\n          { field: '3dSideViewer.partsDesignData.netWeight', value: '-' },\n          { field: '3dSideViewer.partsDesignData.grossWeight', value: '-' },\n          { field: '3dSideViewer.partsDesignData.materialUsage', value: '-' },\n          { field: '3dSideViewer.partsDesignData.quantitySheet', value: '-' },\n          { field: '3dSideViewer.partsDesignData.material', value: '-' },\n        ];\n      } else {\n        tableData = tableData.filter(datum => datum.Category === 'S2')\n          .filter(datum => (datum.Description ? datum.Description.startsWith('T1') : ''))\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description.replace('T1.', ''), value: datum.Value || '-', valueCHS: datum.ValueCHS || '-' }));\n      }\n\n      const icons = [\n        'mdi-ticket-confirmation',\n        'mdi-dots-horizontal',\n        'mdi-lock-plus',\n        'mdi-text-box-check-outline',\n        'mdi-vibrate',\n        'mdi-chart-donut',\n      ];\n      return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n    }\n  },\n\n};\n\n</script>\n\n<style scoped>\n::v-deep .v-input__slot{\n  margin-top: 2px !important;\n  width: 120px;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartsDesignDataTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartsDesignDataTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartsDesignDataTable.vue?vue&type=template&id=212b5618&scoped=true&\"\nimport script from \"./PartsDesignDataTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PartsDesignDataTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartsDesignDataTable.vue?vue&type=style&index=0&id=212b5618&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"212b5618\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSelect,VSimpleTable,VTooltip})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'forwarders';\n\nconst Model = class Forwarder extends BaseModel {\n  static modelName = 'Forwarder';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('span',{staticClass:\"subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('v-radio-group',{attrs:{\"row\":\"\"},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}},_vm._l((_vm.data),function(option,i){return _c('v-radio',{key:i,attrs:{\"label\":option,\"value\":option}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-col cols=\"auto\">\n    <span class=\"subtitle-2\"> {{ title }} </span>\n    <v-radio-group\n      v-model=\"model\"\n      row\n    >\n      <v-radio\n        v-for=\"(option, i) in data\"\n        :key=\"i\"\n        :label=\"option\"\n        :value=\"option\"\n      />\n    </v-radio-group>\n  </v-col>\n</template>\n\n<script>\nexport default {\n  props: [\n    'title', 'data'\n  ],\n  data: () => ({\n    model: ''\n  })\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadCardBodyRadio.vue?vue&type=template&id=459fa7f8&\"\nimport script from \"./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadCardBodyRadio.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VCol,VRadio,VRadioGroup})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.svgReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',_vm._b({staticClass:\"pr-1\",attrs:{\"text\":\"\",\"depressed\":\"\",\"loading\":_vm.isSvgRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isSVGDownload=true}}},'v-btn',_vm.buttonAttrs,false),[_c('v-icon',_vm._b({attrs:{\"left\":\"\",\"size\":\"20\"}},'v-icon',_vm.buttonIconAttrs,false),[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.viewSvg'))+\" \")],1)],1):[_c('v-btn',_vm._b({attrs:{\"depressed\":\"\",\"text\":\"\",\"disabled\":!(_vm.part.DrawingRowPointer && _vm.part.Item),\"loading\":_vm.isSvgRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},'v-btn',_vm.buttonAttrs,false),[_c('v-icon',_vm._b({attrs:{\"left\":\"\",\"size\":\"25\"}},'v-icon',_vm.buttonIconAttrs,false),[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.uploadSvg'))+\" \")],1)],(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"is-ok-disabled\":!_vm.isFileAdded,\"eager\":true,\"ok-button-text\":_vm.$t('common.upload'),\"is-loading\":_vm.isSvgUploadPending || _vm.isSvgUploadInProgress},on:{\"click:ok\":function($event){return _vm.uploadSvg(_vm.part)},\"click:cancel\":function($event){_vm.display = false;_vm.removeSVG()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.uploadSvg'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-svg\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('svgDrawing.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,6927705),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isSVGDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isSVGDownload),callback:function ($$v) {_vm.isSVGDownload=$$v},expression:\"isSVGDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isSVGDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isSVGDownload)?_c('core-svg-viewer',{attrs:{\"file-path\":_vm.previewSVGUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <div v-if=\"svgReady\" style=\"display: inline\">\n      <v-btn\n        text\n        depressed\n        class=\"pr-1\"\n        :loading=\"isSvgRemoved\"\n        color=\"primary\"\n        v-bind=\"buttonAttrs\"\n        @click=\"isSVGDownload=true\"\n      >\n        <v-icon left size=\"20\" v-bind=\"buttonIconAttrs\">\n          mdi-open-in-new\n        </v-icon>\n        {{ $t('svgDrawing.viewSvg') }}\n      </v-btn>\n    </div>\n    <template v-else>\n      <v-btn\n        depressed\n        text\n        :disabled=\"!(part.DrawingRowPointer && part.Item)\"\n        :loading=\"isSvgRemoved\"\n        color=\"primary\"\n        v-bind=\"buttonAttrs\"\n        @click=\"display=true;\"\n      >\n        <v-icon left size=\"25\" v-bind=\"buttonIconAttrs\">\n          mdi-vector-square\n        </v-icon>\n        {{ $t('svgDrawing.uploadSvg') }}\n      </v-btn>\n    </template>\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"confirmation\"\n      width=\"1000px\"\n      :is-ok-disabled=\"!isFileAdded\"\n      :eager=\"true\"\n      :ok-button-text=\"$t('common.upload')\"\n      :is-loading=\"isSvgUploadPending || isSvgUploadInProgress\"\n      @click:ok=\"uploadSvg(part)\"\n      @click:cancel=\"display = false;removeSVG()\"\n    >\n      <template #title>\n        {{ $t('svgDrawing.uploadSvg') }}\n      </template>\n      <template #content>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-svg\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                {{ $t('svgDrawing.FileSupported') }}\n              </div>\n            </v-card-text>\n          </v-card>\n          {{ $t('myPartPdf.SingleFileOnly') }}\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-overlay :value=\"isSVGDownload\" z-index=\"90\" />\n    <v-navigation-drawer\n      v-model=\"isSVGDownload\"\n      width=\"60%\"\n      fixed\n      stateless\n      hide-overlay\n      right\n      temporary\n      style=\"background-color: #ada6a6;z-index: 99 !important;\"\n    >\n      <div\n        ref=\"rfqViewerContainer\"\n        style=\"height: calc(100% - 52px);\"\n      >\n        <div class=\"d-flex justify-end\">\n          <v-btn\n            icon\n            x-large\n            @click=\"isSVGDownload=false\"\n          >\n            <v-icon>mdi-close</v-icon>\n          </v-btn>\n        </div>\n\n        <core-svg-viewer\n          v-if=\"isSVGDownload\"\n          :file-path=\"previewSVGUrl\"\n          :item-height=\"800\"\n        />\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'UploadSvgDrawing',\n  props: {\n    part: {\n      type: Object\n    },\n    buttonAttrs: {\n      type: Object,\n      default: () => {},\n    },\n    buttonIconAttrs: {\n      type: Object,\n      default: () => {},\n    }\n  },\n  data() {\n    return {\n      svgReady: false,\n      previewSVGUrl: '',\n      isSvgUploadPending: false,\n      isFileAdded: false,\n      showSvgRemoveDialog: false,\n      myDropZone: null,\n      svgPageHeight: 0,\n      svgPageWidth: 0,\n      display: false,\n      isSvgRemoved: false,\n      isSVGDownload: false,\n      isSvgUploadInProgress: false,\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => ({\n      url: '/',\n      paramName: 'file',\n      headers: {\n        Authorization: vm.accessToken,\n      },\n      thumbnailWidth: 150,\n      maxFilesize: 20,\n      timeout: 9999999,\n      maxFiles: 1,\n      parallelUploads: 1,\n      acceptedFiles: '.svg',\n      autoProcessQueue: false,\n      dictDefaultMessage: 'dropZone.dictDefaultMessage',\n      dictFallbackMessage: 'dropZone.dictFallbackMessage',\n      dictFallbackText: 'dropZone.dictFallbackText',\n      dictFileTooBig: 'dropZone.dictFileTooBig',\n      dictInvalidFileType: 'dropZone.dictInvalidFileType',\n      dictResponseError: 'dropZone.dictResponseError',\n      dictCancelUpload: 'dropZone.dictCancelUpload',\n      dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n      dictRemoveFile: 'dropZone.dictRemoveFile',\n      dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n      clickable: '#dropzone-click-target-svg',\n      previewTemplate: vm.template(),\n      init() {\n        this.on('maxfilesexceeded', file => {\n          this.removeAllFiles();\n          this.addFile(file);\n        });\n        this.on('error', async file => {\n          this.removeFile(file);\n        });\n        this.on('success', async () => {\n          vm.isSvgUploadPending = false;\n          vm.display = false;\n          await vm.checkIfSvgExist();\n        });\n\n        this.on('sending', () => {\n          vm.isSvgUploadPending = true;\n        });\n\n        this.on('addedfile', async file => {\n          const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n          vm.previewSVGUrl = URL.createObjectURL(file);\n          vm.$emit('svgUrl', vm.previewSVGUrl);\n          vm.svgReady = true;\n          vm.isFileAdded = true;\n          removeButton.addEventListener('click', e => {\n            e.preventDefault();\n            e.stopPropagation();\n            this.removeFile(file);\n            vm.removeSVG();\n          });\n\n          file.previewElement.children[1].appendChild(removeButton);\n        });\n      }\n\n    }),\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    },\n    svgUrl(val) {\n      if (val) {\n        this.svgReady = true;\n        this.previewSVGUrl = this.svgUrl;\n      } else {\n        this.svgReady = false;\n      }\n    }\n  },\n\n  mounted() {\n    const resizeObserver = new ResizeObserver(() => {\n      /* 70 breathing room */\n      this.svgPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n      const ratio = 8.5 / 11;\n      this.svgPageHeight = this.svgPageWidth / ratio;\n    });\n    resizeObserver.observe(this.$refs.rfqViewerContainer);\n    // If file is already uploaded.\n    if (this.part.SvgFile) {\n      this.svgReady = true;\n      const host = process.env.VUE_APP_API_URL;\n      const fileName = this.part.SvgFile;\n      this.svgUrl = `${host}uploads/${fileName}/${this.accessToken}/${this.part.Item}/File`;\n      this.previewSVGUrl = this.svgUrl;\n    }\n  },\n  methods: {\n    async uploadSvg(part) {\n      this.isSvgUploadInProgress = true;\n      const file = await fetch(this.previewSVGUrl);\n      const blob = await file.blob();\n      const fd = new FormData();\n      fd.append('file', blob, `${part.Item}-2D.svg`);\n      const uploadUrl = `${process.env.VUE_APP_API_URL}upload?rowPointer=${part.DrawingRowPointer}&name=${part.Item}-2D&desc=CustomerDrawings&ext=SVG&uploadToCsi=true`;\n\n      // Need to refactor the upload service.\n      // Don't forget this service is also used by Dropzone\n      // in order to upload the drawing file to the CSI\n      await fetch(uploadUrl, {\n        method: 'POST',\n        headers: {\n          Authorization: this.accessToken,\n        },\n        body: fd,\n      });\n      this.isSvgUploadInProgress = false;\n      this.display = false;\n      // maintaining state\n      this.part.SvgFile = fd.get('file').name;\n      this.part.commit();\n      console.log(uploadUrl);\n    },\n\n    async onFileChanged(e) {\n      const [svgFile] = e.target.files;\n      this.previewSVGUrl = URL.createObjectURL(svgFile);\n      this.$emit('svgUrl', this.previewSVGUrl);\n      this.svgReady = true;\n    },\n    async removeSVG() {\n      URL.revokeObjectURL(this.previewSVGUrl);\n      this.svgReady = false;\n      this.showSvgRemoveDialog = false;\n      this.previewSVGUrl = '';\n      this.$emit('svgUrl', this.previewSVGUrl);\n      this.isFileAdded = false;\n    },\n    template() {\n      return `\n             <div class=\"d-flex align-start flex-column mt-16\">\n                <p style=\"vertical-align: bottom\">Document selected</p>\n                <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n                  <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n                  <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n                </p>\n             </div>`;\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadSvgDrawing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadSvgDrawing.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadSvgDrawing.vue?vue&type=template&id=4c324156&\"\nimport script from \"./UploadSvgDrawing.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadSvgDrawing.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-menu',{attrs:{\"data-cy\":\"my-part-second-horizontal-grid-view\",\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-x\":\"\",\"left\":\"\",\"z-index\":\"9999999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-inline-block font-weight-medium mb-0 pa-1\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"tag\":\"p\",\"min-width\":\"180px\",\"min-height\":\"41px\",\"color\":\"#f0fdf3\",\"data-cy\":\"my-part-price-range-box-grid\"}},'v-sheet',attrs,false),on),[[_c('div',{staticClass:\"mt-n1 text-center\"},[_c('span',{staticClass:\"flex-nowrap align-center colorGreen font-weight-thin\",staticStyle:{\"font-size\":\"16px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPriceVariation'))+\" \")]),_c('span',{staticClass:\"colorGreen mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \",staticStyle:{\"font-size\":\"13px\",\"background-color\":\"#5FCE79\",\"color\":\"white !important\",\"width\":\"20px\",\"font-weight\":\"bold !important\"}})])]],2)]}}])},[_c('div',{staticClass:\"pa-2\",staticStyle:{\"background-color\":\"white\",\"z-index\":\"9999999\"}},[_c('span',{staticClass:\"body-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.sortByQuantity(_vm.internalItems)),function(item,index){return [_c('span',{key:(\"qty-\" + index),staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" \"+_vm._s(item.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + index)},[_vm._v(\" \"+_vm._s(_vm.$t('common.pricePerUnit', {price: item.Price}))+\" \")])]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"pa-0\">\n    <v-menu\n      data-cy=\"my-part-second-horizontal-grid-view\"\n      open-on-hover\n      bottom\n      offset-x\n      left\n      z-index=\"9999999\"\n    >\n      <template v-slot:activator=\"{ on, attrs }\">\n        <v-sheet\n          v-bind=\"attrs\"\n          tag=\"p\"\n          min-width=\"180px\"\n          min-height=\"41px\"\n          color=\"#f0fdf3\"\n          data-cy=\"my-part-price-range-box-grid\"\n          class=\"d-inline-block font-weight-medium mb-0 pa-1\"\n          style=\"border-radius:5px\"\n          v-on=\"on\"\n        >\n          <template>\n            <div class=\"mt-n1 text-center\">\n              <span\n                style=\"font-size: 16px\"\n                class=\"flex-nowrap align-center colorGreen font-weight-thin\"\n              >\n                {{ $t('common.unitPriceVariation') }}\n              </span>\n              <span\n                class=\"colorGreen mdi mdi-magnify rounded d-inline-flex align-center justify-center ml-1 white--text \"\n                style=\"font-size:13px ;background-color: #5FCE79; color: white !important; width: 20px; font-weight: bold !important\"\n              />\n            </div>\n          </template>\n        </v-sheet>\n      </template>\n\n      <div style=\"background-color: white; z-index:9999999\" class=\"pa-2\">\n        <span class=\"body-2 font-weight-bold\">{{ $t('common.unitPricePerQuantity') }}</span>\n        <div\n          style=\"display: grid;width: min-content;grid-template-columns: max-content max-content;\"\n        >\n          <template v-for=\"(item,index) in sortByQuantity(internalItems)\">\n            <span :key=\"`qty-${index}`\" style=\"color: #8D8D8D\">\n              {{ item.Qty }}: {{ '\\xa0' }}\n            </span>\n            <span :key=\"`price-${index}`\">\n              {{ $t('common.pricePerUnit', {price: item.Price}) }}\n            </span>\n          </template>\n        </div>\n      </div>\n    </v-menu>\n  </v-container>\n</template>\n\n<script>\n\nimport { models } from 'feathers-vuex';\n\nimport {\n  computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Part, Company } = models.api;\n\nexport default defineComponent({\n  props: {\n    /**\n     * Manipulate the way field's value displays\n     */\n    part: {\n      type: Object,\n      default: () => {\n      }\n    },\n  },\n\n  setup(props, context) {\n    const t = context.root.$t;\n\n    const company = computed(() => Company.getFromStore(0));\n\n    const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n    const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n    const deleteDialog = ref({\n      display: false,\n      partToDelete: new Part(),\n    });\n\n    const internalItems = computed(() => {\n      if (props.part) {\n        return props.part;\n      }\n      return { ExpiryDate: Date.now() };\n    });\n\n    const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n\n    const sortByQuantity = part => {\n      if (!part) {\n        return [];\n      }\n\n      if (part.PriceMOQ) {\n        let priceMoq;\n        if (typeof part.PriceMOQ === 'string') {\n          priceMoq = JSON.parse(part.PriceMOQ);\n        } else {\n          priceMoq = [...part.PriceMOQ];\n        }\n\n        return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n          ...moq,\n          Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n        }));\n      }\n\n      if (part.priceMOQ) {\n        let priceMoq;\n        if (typeof part.priceMOQ === 'string') {\n          priceMoq = JSON.parse(part.priceMOQ);\n        } else {\n          priceMoq = [...part.priceMOQ];\n        }\n\n        return priceMoq.sort((a, b) => b.Qty - a.Qty).map(moq => ({\n          ...moq,\n          Price: currency(moq.Price, { symbol: currencySymbol.value, precision: 4 }).format(),\n        }));\n      }\n      return [];\n    };\n\n    const priceRange = part => {\n      if ((part.PriceMOQ && part.PriceMOQ.length !== 0) || (part.priceMOQ && part.priceMOQ.length !== 0)) {\n        let priceMoq;\n        if (typeof part.PriceMOQ === 'string') {\n          priceMoq = JSON.parse(part.PriceMOQ);\n          // eslint-disable-next-line no-prototype-builtins\n        } else if (part.hasOwnProperty('priceMOQ')) {\n          priceMoq = [...part.priceMOQ];\n        } else {\n          priceMoq = [...part.PriceMOQ];\n        }\n        const parsedData = priceMoq;\n        const first = parsedData[0];\n        const last = parsedData.pop();\n        return `${last.Price} ${currencySymbol.value} - ${first.Price}${currencySymbol.value} `;\n      }\n      return context.root.$t('common.nA');\n    };\n\n    const isExpired = () => moment().diff(props.part && props.part.ExpireDate ? props.part.ExpireDate : Date.now(), 'days') > 0;\n\n    const refreshMyPartPrice = async part => {\n      const query = {\n        query: {\n          shouldUpdatePrice: true,\n        },\n        notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n      };\n\n      await part.save(query);\n    };\n\n    const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n    const cancelDelete = () => {\n      deleteDialog.value.display = false;\n      deleteDialog.value.partToDelete = new Part();\n    };\n\n    const addToOrder = async part => {\n      // eslint-disable-next-line no-underscore-dangle\n      const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n      order.addItem('part', part._id, part.qtyOfPart);\n    };\n\n    const removeToOrder = part => {\n      if (currentOrder.value) {\n        currentOrder.value.items = currentOrder.value.items.filter(item => item._id !== part._id);\n      }\n    };\n\n    const calculatePrice = computed(() => part => {\n      if (!part.PriceMOQ) {\n        return currency(0, { symbol: currencySymbol.value });\n      }\n\n      let priceMoq;\n      if (typeof part.PriceMOQ === 'string') {\n        priceMoq = JSON.parse(part.PriceMOQ);\n      } else {\n        priceMoq = [...part.PriceMOQ];\n      }\n\n      const findPrice = priceMoq.find(({ Qty }) => part.qtyOfPart <= Qty) || priceMoq;\n\n      if (!findPrice) {\n        const unitPrice = Math.min(...priceMoq.map(o => o.Qty));\n        // eslint-disable-next-line consistent-return\n        const price = parseFloat(unitPrice.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n        const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n        return currency(finalPrice, { symbol: '', precision: 2 }).multiply(part.qtyOfPart);\n      }\n\n      // eslint-disable-next-line consistent-return\n      const price = parseFloat(findPrice.Price.toFixed(2)) === 0.00 ? 0.01 : findPrice.Price;\n      const finalPrice = currency(price, { symbol: currencySymbol.value, precision: 4 });\n\n      return currency(finalPrice, { symbol: currencySymbol.value, precision: 2 }).multiply(part.qtyOfPart);\n    });\n\n    const isPartPresentInCurrentOrder = computed(() => part => {\n      if (currentOrder.value === null) {\n        return false;\n      }\n\n      const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n      return currentPart !== -1;\n    });\n\n    return {\n      sortByQuantity,\n      removeToOrder,\n      addToOrder,\n      cancelDelete,\n      itemRowBackground,\n      refreshMyPartPrice,\n      isExpired,\n      priceRange,\n      deleteDialog,\n      calculatePrice,\n      currencySymbol,\n      currentUser,\n      isPartPresentInCurrentOrder,\n      internalItems,\n      t\n    };\n  },\n});\n\n</script>\n\n<style>\n.notDisplay {\n  visibility: hidden;\n}\n\n.partCard:hover .displayDetail {\n  visibility: visible;\n  display: inline;\n  position: relative;\n}\n\n.partCard:hover .shimmer {\n\n  background: var(--color) -webkit-gradient(linear, 100% 0, 0 0,\n  from(var(--color)), color-stop(0.5, #ffffff),\n  to(var(--color)));\n\n  background-position: -4rem top; /*50px*/\n  background-repeat: no-repeat;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  -webkit-animation-name: shimmer;\n  -webkit-animation-duration: 1.5s;\n  -webkit-animation-iteration-count: infinite;\n  -webkit-background-size: 4rem 100%; /*50px*/\n  -webkit-animation-timing-function: linear;\n}\n\n.colorRed {\n  color: #be2a45 !important;\n  --color: #be2a45 !important\n}\n\n.colorGreen {\n  color: #128347 !important;\n  --color: #128347 !important\n}\n\n@-webkit-keyframes shimmer {\n  0% {\n    background-position: -4rem top; /*50px*/\n  }\n\n  70% {\n    background-position: 12.5rem top; /*200px*/\n  }\n\n  100% {\n    background-position: 12.5rem top; /*200px*/\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangPriceMoqLabel.vue?vue&type=template&id=fd0ff734&\"\nimport script from \"./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"\nexport * from \"./RangPriceMoqLabel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RangPriceMoqLabel.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VContainer,VMenu,VSheet})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'temp-parts';\n\nconst Model = class TempPart extends BaseModel {\n  static modelName = 'TempPart';\n\n  static instanceDefaults() {\n    return {\n      tempRfqId: null,\n      csiRfqId: '',\n      csiLineNumber: '',\n      isCsi: false,\n      uniqueFileName: '',\n      CustItemName: '',\n      CustItemDesc: '...',\n      CustFileName: '',\n      RevisionNumber: '0',\n      Material: '',\n      MaterialSeries: '',\n      MaterialThickness: '',\n      MaterialFinish: '',\n      MaterialFinishOption: '',\n      MaterialStr: '',\n      MaterialSeriesStr: '',\n      MaterialFinishStr: '',\n      MaterialFinishOptionStr: '',\n      MaterialThicknessStr: '',\n      RawMaterial: '',\n      DrawingRowPointer: '',\n      DrawingNumber: '',\n      Item: '',\n      CsiAnalysisData: [],\n      AnalysisData: {},\n      SecondaryAnalysisData: {},\n      ReqQty: 1,\n      Status: 'Planned',\n      shouldStartPreliminaryAnalysis: false,\n      shouldStartFinalAnalysis: false,\n      shouldCalculateCostWithoutFinalAnalysis: false,\n      shouldUploadFilesToCsi: false,\n      PriceMOQ: null,\n      Tolerance: '',\n      Roughness: '',\n      EstimateLineStatus: {\n        isDrawingUploaded: false,\n        isDrawingUploadedCsi: false,\n        isDrawingUploadedMsg: '',\n        isManufacturable: false,\n        isManufacturableMsg: '',\n        isPreliminaryAnalysisInProgress: false,\n        isPreliminaryAnalysisCompleted: false,\n        isPreliminaryAnalysisCompletedMsg: false,\n        isMainAnalysisInProgress: false,\n        isMainAnalysisCompleted: false,\n        isMainAnalysisCompletedMsg: false,\n        isThumbnailUploaded: false,\n        isThumbnailUploadedMsg: '',\n        isObjUploaded: false,\n        isObjUploadedCsi: false,\n        isObjUploadedMsg: '',\n        isDxfUploaded: false,\n        isDxfUploadedCsi: false,\n        isDxfUploadedMsg: '',\n        isMeshUploaded: false,\n        isMeshUploadedCsi: false,\n        isMeshUploadedMsg: '',\n        isThicknessCalculated: false,\n        isThicknessCalculatedMsg: '',\n        CsiErrorParam: ''\n      },\n      machine: 'sheet-metal',\n      executionTime: 90,\n      Threads: '',\n      Countersinks: '',\n      Counterbores: '',\n      MaterialCategory: '',\n    };\n  }\n\n  get materialSeriesShortened() {\n    return this.MaterialSeriesStr.replace(this.MaterialStr, '').trim();\n  }\n\n  get isSheetMetalPart() {\n    const machine = _.get(this, 'AnalysisData.machine', '');\n    return machine === 'sheet-metal';\n  }\n\n  get isTurningPart() {\n    const machine = _.get(this, 'AnalysisData.machine', '');\n    return machine === 'turning';\n  }\n\n  get is2dModel() {\n    if (this.CustFileName) {\n      return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n    }\n    return false;\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath).hooks({\n      error: {\n        all: [\n          context => {\n            context.params.shouldShowNotification = !context.error.message.startsWith('CSIError.');\n            return context;\n          }\n        ],\n      }\n    }),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n// import 'vuetify/dist/vuetify.min.css';\n\nimport en from 'vuetify/src/locale/en.ts';\nimport fr from 'vuetify/src/locale/fr.ts';\n\nimport i18n from './i18n';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n\n  icons: {\n    iconfont: 'mdi',\n  },\n\n  lang: {\n    locales: { en, fr },\n    current: i18n.locale.slice(0, i18n.locale.indexOf('-')),\n  },\n\n  theme: {\n    themes: {\n      light: {\n        // primary: '#4caf50',\n        // TODO decide on color in code review. Invision design is inconsistent\n        primary: '#2C984E',\n        // secondary: '#4caf50',\n        tertiary: '#495057',\n        accent: '#82B1FF',\n        error: '#B00020',\n        info: '#00d3ee',\n        success: '#60ce79',\n        warning: '#ffa21a'\n      },\n      dark: {\n        primary: '#f8f8ff',\n        secondary: '#f8f8ff',\n        tertiary: '#f8f8ff',\n        accent: '#f8f8ff',\n        error: '#B00020',\n        info: '#00d3ee',\n        success: '#60ce79',\n        warning: '#ffa21a'\n      },\n    },\n  },\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareThumbnailViewer.vue?vue&type=style&index=0&id=8cc35d3e&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('core-main',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('form.dashboard.name'))+\" \")]},proxy:true}])},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-2 pb-0 pl-10 transparent\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',[_c('p',{class:['text-h3', {loading :!_vm.user.firstName}],staticStyle:{\"color\":\"#afa9a9\"},attrs:{\"data-cy\":\"greeting-value\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.greeting', {name: _vm.user.firstName}))+\" \")])])],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-upload-file-banner')],1)]),(_vm.showReferralBanner)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-referral')],1)]):_vm._e(),(_vm.showPromotionCountdownBanner)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-promotion-countdown-banner',{attrs:{\"expiry-time\":_vm.newSignUpPromoCode[0].ExpiryDate}})],1)]):_vm._e(),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('div',{staticClass:\"ml-12 pl-3 pa-2 text-h5 font-weight-bold text-capitalize\",staticStyle:{\"color\":\"#2E343B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.simpleProcessLabel'))+\" \")]),_c('img',{staticClass:\"pl-4 pr-2\",staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-bulb.svg\"}}),_c('div',{staticClass:\"pt-4 text-body-2 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel1'))+\" \"),_c('a',{attrs:{\"href\":\"#videoTutorials\"},on:{\"click\":function($event){_vm.expandVideoTutorials = 0;}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel2'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel3'))+\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel4'))+\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel5'))+\" \"),_c('a',{attrs:{\"href\":\"mailto:feedback@komacut.com\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.assistanceLabel6'))+\" \")])])])],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('core-welcome-screen-order-steps-banner')],1)]),_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('v-expansion-panels',{staticClass:\"ml-10 pa-2 pt-0\"},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"elevation-0\",staticStyle:{\"background-color\":\"#F9F9F9\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"#46A55C\"}},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('div',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.whatWeCanDoForYou'))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{staticClass:\"mb-5 pa-2 pl-10 transparent\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',{staticClass:\"mt-2\"},[_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"100px\"}},[_c('img',{attrs:{\"src\":\"/img/laserCuttingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.laserCutting'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"180px\"}},[_c('img',{attrs:{\"src\":\"/img/threadingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.threadingChamfering'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"150px\"}},[_c('img',{attrs:{\"src\":\"img/bendingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.sheetMetalBending'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"130px\"}},[_c('img',{attrs:{\"src\":\"/img/surfaceFinishingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.surfaceFinishing'))+\" \")])])]),_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"100px\"}},[_c('img',{attrs:{\"src\":\"/img/icon-cnc-urning2@1x.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.cncTurning'))+\" \")])])]),_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"200px\"}},[_c('img',{attrs:{\"src\":\"/img/icon-bulk@1x.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.hardwareBulk'))+\" \")])])]),_c('v-col',{staticClass:\"px-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"170px\"}},[_c('img',{attrs:{\"src\":\"/img/icon-custom@1x.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.hardwareCustomBags'))+\" \")])])]),_c('v-col',{staticClass:\"px-0 ml-n4\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"180px\"}},[_c('img',{attrs:{\"src\":\"/img/laserEngravingIcon.svg\",\"width\":\"70\",\"height\":\"70\"}}),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.manufacturingProcesses.laserEngraving'))+\" \")])])])],1)],1)],1)],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"11\"}},[_c('v-expansion-panels',{staticClass:\"ml-10 pa-2 pt-0\",model:{value:(_vm.expandVideoTutorials),callback:function ($$v) {_vm.expandVideoTutorials=$$v},expression:\"expandVideoTutorials\"}},[_c('v-expansion-panel',{model:{value:(_vm.expandVideoTutorials),callback:function ($$v) {_vm.expandVideoTutorials=$$v},expression:\"expandVideoTutorials\"}},[_c('v-expansion-panel-header',{staticClass:\"elevation-0\",staticStyle:{\"background-color\":\"#F9F9F9\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"#46A55C\"}},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('div',{staticClass:\"text-h6\",attrs:{\"id\":\"videoTutorials\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.videoTutorials'))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{staticClass:\"pa-2 transparent\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',{staticStyle:{\"max-width\":\"1100px\"}},_vm._l((_vm.tutorials),function(tutorial){return _c('v-col',{key:tutorial.text,attrs:{\"cols\":\"6\"}},[(tutorial.display)?_c('div',{staticClass:\"tutorials-container py-0 ma-0\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){_vm.tutorialDialog.tutorial = tutorial; _vm.tutorialDialog.isActive = true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"medium\":\"\",\"grey\":\"\",\"active-class\":\"active-filter\"}},[_vm._v(\" mdi-arrow-right-thin \")]),_c('span',{staticClass:\"font-weight-bold\",attrs:{\"data-cy\":(\"video-link-\" + (tutorial.text.split('.').slice(-1)))}},[_vm._v(\" \"+_vm._s(_vm.$t(tutorial.text))+\" \")]),_c('div',{staticStyle:{\"padding-left\":\"30px\"}},[_c('v-icon',{staticClass:\"video-detail\",attrs:{\"small\":\"\",\"color\":\"success\"}},[_vm._v(\" mdi-video \")]),_c('span',{staticClass:\"video-detail\",staticStyle:{\"margin-left\":\"10px\",\"color\":\"#46A55C\"}},[_vm._v(\" \"+_vm._s(_vm.$t(tutorial.duration))+\" \"+_vm._s(_vm.$t('common.minute'))+\" \")])],1)],1):_vm._e()])}),1)],1)],1)],1)],1)],1)],1)],1)],1),_c('core-dialog',{attrs:{\"width\":\"1200px\",\"persistent\":\"\"},on:{\"click:cancel\":function($event){_vm.tutorialDialog.isActive = false;_vm.isVideoLoaderShow = true}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{attrs:{\"data-cy\":\"video-title\"}},[_vm._v(_vm._s(_vm.$t(_vm.tutorialDialog.tutorial.text)))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.tutorialDialog.isActive)?_c('video',{staticClass:\"d-flex\",staticStyle:{\"min-height\":\"500px\"},attrs:{\"data-cy\":\"video-viewer\",\"controls\":\"\",\"preload\":\"auto\",\"autoplay\":\"\",\"width\":\"90%\",\"height\":\"60%\"}},[_c('source',{attrs:{\"src\":_vm.$t(_vm.tutorialDialog.tutorial.link),\"type\":\"video/mp4\"}})]):_vm._e()])]},proxy:true}]),model:{value:(_vm.tutorialDialog.isActive),callback:function ($$v) {_vm.$set(_vm.tutorialDialog, \"isActive\", $$v)},expression:\"tutorialDialog.isActive\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n  methods: {\n    convertCustomerNumberToInt(customerNumber) {\n      let intValue = 0;\n      let multiplier = 1; // To keep track of the position value\n\n      // Iterate over the characters of the customer number from right to left\n      for (let i = customerNumber.length - 1; i >= 0; i--) {\n        const char = customerNumber[i];\n\n        // Check if the character is a digit\n        if (/[0-9]/.test(char)) {\n          // Convert the character to its numeric value and update the integer value\n          intValue += parseInt(char, 10) * multiplier;\n          // Update the multiplier for the next position\n          multiplier *= 10;\n        } else {\n          // Stop iteration if a non-numeric character is encountered\n          break;\n        }\n      }\n\n      return intValue;\n    }\n  },\n};\n","<template>\n  <core-main>\n    <template v-slot:title>\n      {{ $t('form.dashboard.name') }}\n    </template>\n    <v-container fluid>\n      <v-row>\n        <v-col cols=\"12\">\n          <v-card elevation=\"0\" class=\"pa-2 pb-0 pl-10 transparent\">\n            <v-card-text>\n              <v-row>\n                <v-col>\n                  <p\n                    :class=\"['text-h3', {loading :!user.firstName}]\"\n                    data-cy=\"greeting-value\"\n                    style=\"color: #afa9a9\"\n                  >\n                    {{ $t('views.dashboard.greeting', {name: user.firstName}) }}\n                  </p>\n                </v-col>\n              </v-row>\n            </v-card-text>\n          </v-card>\n        </v-col>\n        <v-col cols=\"12\">\n          <div class=\"ml-10 pa-2 pt-0\">\n            <core-welcome-screen-upload-file-banner />\n          </div>\n        </v-col>\n        <v-col v-if=\"showReferralBanner\" cols=\"12\">\n          <div class=\"ml-10 pa-2 pt-0\">\n            <core-welcome-screen-referral />\n          </div>\n        </v-col>\n        <v-col v-if=\"showPromotionCountdownBanner\" cols=\"12\">\n          <div class=\"ml-10 pa-2 pt-0\">\n            <core-welcome-screen-promotion-countdown-banner :expiry-time=\"newSignUpPromoCode[0].ExpiryDate\" />\n          </div>\n        </v-col>\n        <v-col cols=\"12\">\n          <v-row>\n            <div class=\"ml-12 pl-3 pa-2 text-h5 font-weight-bold text-capitalize\" style=\"color: #2E343B;\">\n              {{ $t('views.dashboard.simpleProcessLabel') }}\n            </div>\n            <img\n              class=\"pl-4 pr-2\"\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-bulb.svg\"\n            >\n            <div class=\"pt-4 text-body-2 font-weight-bold\">\n              {{ $t('views.dashboard.assistanceLabel1') }}\n              <a href=\"#videoTutorials\" @click=\"expandVideoTutorials = 0;\">\n                {{ $t('views.dashboard.assistanceLabel2') }}\n              </a>\n              {{ $t('views.dashboard.assistanceLabel3') }}\n              {{ $t('views.dashboard.assistanceLabel4') }}\n              {{ $t('views.dashboard.assistanceLabel5') }}\n              <a href=\"mailto:feedback@komacut.com\">\n                {{ $t('views.dashboard.assistanceLabel6') }}\n              </a>\n            </div>\n          </v-row>\n        </v-col>\n        <v-col cols=\"12\">\n          <div class=\"ml-10 pa-2 pt-0\">\n            <core-welcome-screen-order-steps-banner />\n          </div>\n        </v-col>\n        <v-col cols=\"11\">\n          <v-expansion-panels class=\"ml-10 pa-2 pt-0\">\n            <v-expansion-panel>\n              <v-expansion-panel-header class=\"elevation-0\" style=\"background-color: #F9F9F9;\">\n                <div class=\"text-h6\">\n                  {{ $t('views.dashboard.whatWeCanDoForYou') }}\n                </div>\n                <template v-slot:actions>\n                  <v-icon color=\"#46A55C\">\n                    $expand\n                  </v-icon>\n                </template>\n              </v-expansion-panel-header>\n              <v-expansion-panel-content>\n                <v-card elevation=\"0\" class=\"mb-5 pa-2 pl-10 transparent\">\n                  <v-card-text>\n                    <v-row class=\"mt-2\">\n                      <v-col class=\"px-0\" cols=\"2\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 100px\">\n                          <img\n                            src=\"/img/laserCuttingIcon.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.laserCutting') }}\n                          </span>\n                        </div>\n                      </v-col>\n\n                      <v-col cols=\"3\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 180px\">\n                          <img\n                            src=\"/img/threadingIcon.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.threadingChamfering') }}\n                          </span>\n                        </div>\n                      </v-col>\n\n                      <v-col cols=\"3\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 150px\">\n                          <img\n                            src=\"img/bendingIcon.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.sheetMetalBending') }}\n                          </span>\n                        </div>\n                      </v-col>\n\n                      <v-col cols=\"3\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 130px\">\n                          <img\n                            src=\"/img/surfaceFinishingIcon.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.surfaceFinishing') }}\n                          </span>\n                        </div>\n                      </v-col>\n                      <v-col class=\"px-0\" cols=\"2\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 100px\">\n                          <img\n                            src=\"/img/icon-cnc-urning2@1x.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.cncTurning') }}\n                          </span>\n                        </div>\n                      </v-col>\n                      <v-col class=\"px-0\" cols=\"3\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 200px\">\n                          <img\n                            src=\"/img/icon-bulk@1x.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.hardwareBulk') }}\n                          </span>\n                        </div>\n                      </v-col>\n                      <v-col class=\"px-0\" cols=\"3\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 170px\">\n                          <img\n                            src=\"/img/icon-custom@1x.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.hardwareCustomBags') }}\n                          </span>\n                        </div>\n                      </v-col>\n                      <v-col class=\"px-0 ml-n4\" cols=\"3\">\n                        <div class=\"d-flex flex-column align-center\" style=\"width: 180px\">\n                          <img\n                            src=\"/img/laserEngravingIcon.svg\"\n                            width=\"70\"\n                            height=\"70\"\n                          >\n                          <span class=\"font-weight-bold\">\n                            {{ $t('views.dashboard.manufacturingProcesses.laserEngraving') }}\n                          </span>\n                        </div>\n                      </v-col>\n                    </v-row>\n                  </v-card-text>\n                </v-card>\n              </v-expansion-panel-content>\n            </v-expansion-panel>\n          </v-expansion-panels>\n        </v-col>\n        <v-col cols=\"11\">\n          <v-expansion-panels v-model=\"expandVideoTutorials\" class=\"ml-10 pa-2 pt-0\">\n            <v-expansion-panel v-model=\"expandVideoTutorials\">\n              <v-expansion-panel-header class=\"elevation-0\" style=\"background-color: #F9F9F9;\">\n                <div id=\"videoTutorials\" class=\"text-h6\">\n                  {{ $t('views.dashboard.videoTutorials') }}\n                </div>\n                <template v-slot:actions>\n                  <v-icon color=\"#46A55C\">\n                    $expand\n                  </v-icon>\n                </template>\n              </v-expansion-panel-header>\n              <v-expansion-panel-content>\n                <v-card elevation=\"0\" class=\"pa-2 transparent\">\n                  <v-card-text>\n                    <v-row style=\"max-width: 1100px\">\n                      <v-col\n                        v-for=\"tutorial in tutorials\"\n                        :key=\"tutorial.text\"\n                        cols=\"6\"\n                      >\n                        <div\n                          v-if=\"tutorial.display\"\n                          class=\"tutorials-container py-0 ma-0\"\n                          style=\"cursor: pointer;\"\n                          @click=\"tutorialDialog.tutorial = tutorial; tutorialDialog.isActive = true;\"\n                        >\n                          <v-icon\n                            left\n                            medium\n                            grey\n                            active-class=\"active-filter\"\n                          >\n                            mdi-arrow-right-thin\n                          </v-icon>\n                          <span\n                            class=\"font-weight-bold\"\n                            :data-cy=\"`video-link-${tutorial.text.split('.').slice(-1)}`\"\n                          >\n                            {{ $t(tutorial.text) }}\n                          </span>\n                          <div\n                            style=\"padding-left: 30px;\"\n                          >\n                            <v-icon\n                              small\n                              class=\"video-detail\"\n                              color=\"success\"\n                            >\n                              mdi-video\n                            </v-icon>\n                            <span\n                              class=\"video-detail\"\n                              style=\"margin-left: 10px;color:#46A55C;\"\n                            >\n                              {{ $t(tutorial.duration) }} {{ $t('common.minute') }}\n                            </span>\n                          </div>\n                        </div>\n                      </v-col>\n                    </v-row>\n                  </v-card-text>\n                </v-card>\n              </v-expansion-panel-content>\n            </v-expansion-panel>\n          </v-expansion-panels>\n        </v-col>\n      </v-row>\n    </v-container>\n\n    <core-dialog\n      v-model=\"tutorialDialog.isActive\"\n      width=\"1200px\"\n      persistent\n      @click:cancel=\"tutorialDialog.isActive = false;isVideoLoaderShow = true\"\n    >\n      <template #title>\n        <span data-cy=\"video-title\">{{ $t(tutorialDialog.tutorial.text) }}</span>\n      </template>\n      <template #content>\n        <div class=\"d-flex justify-center\">\n          <video\n            v-if=\"tutorialDialog.isActive\"\n            style=\"min-height: 500px\"\n            data-cy=\"video-viewer\"\n            class=\"d-flex\"\n            controls\n            preload=\"auto\"\n            autoplay\n            width=\"90%\"\n            height=\"60%\"\n          >\n            <source :src=\"$t(tutorialDialog.tutorial.link)\" type=\"video/mp4\">\n          </video>\n        </div>\n      </template>\n    </core-dialog>\n  </core-main>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\n\nimport companyNumberToInt from '@/mixins/companyNumberToInt';\n\nexport default {\n  mixins: [companyNumberToInt],\n  data: () => ({\n    isVideoLoaderShow: true,\n    tutorialDialog: {\n      isActive: false,\n      tutorial: null,\n    },\n    expandVideoTutorials: undefined,\n  }),\n  computed: {\n    ...mapState('auth', [\n      'user',\n    ]),\n    company: () => models.api.Company.getFromStore(0),\n    User: () => models.api.User,\n    currentUser: vm => vm.User.getFromStore(vm.user._id),\n    showReferralBanner: vm => (\n      vm.company\n      && vm.company.CurrCode === 'USD'\n      && (vm.convertCustomerNumberToInt(vm.company.CustNum) >= 8)\n    ),\n    newSignUpPromoCode: () => models.api.PromoCode.findInStore({ query: { PromoId: 'NewSignup10' } }).data,\n    showPromotionCountdownBanner: vm => (\n      vm.company\n      && vm.company.CurrCode === 'USD'\n      && vm.newSignUpPromoCode.length\n    ),\n    tutorials: () => [\n      {\n        icon: 'mdi-pencil',\n        text: 'views.dashboard.getInstantQuote',\n        link: 'views.dashboard.getInstantQuoteVideoUrl',\n        duration: '1:45',\n        display: true,\n      },\n\n      {\n        icon: 'mdi-currency-usd',\n        text: 'views.dashboard.reviewCosts',\n        link: 'views.dashboard.reviewCostsVideoUrl',\n        duration: '1:44',\n        display: true,\n      },\n      {\n        icon: 'mdi-format-list-bulleted',\n        text: 'views.dashboard.requestForQuote',\n        link: 'views.dashboard.requestForQuoteVideoUrl',\n        duration: '1:13',\n        display: true,\n      },\n      {\n        icon: 'mdi-bookmark-outline',\n        text: 'views.dashboard.createPartsCatalog',\n        link: 'views.dashboard.createPartsCatalogVideoUrl',\n        duration: '1:20',\n        display: true,\n      },\n      {\n        icon: 'mdi-ballot',\n        text: 'views.dashboard.placeOrder',\n        link: 'views.dashboard.placeOrderVideoUrl',\n        duration: '1:29',\n        display: true,\n      },\n      {\n        icon: 'mdi-tune',\n        text: 'views.dashboard.updateAccountPreferences',\n        link: 'views.dashboard.updateAccountPreferencesVideoUrl',\n        duration: '1:31',\n        display: true,\n      },\n\n      {\n        icon: 'mdi-tune',\n        text: 'Hardware bulk',\n        link: 'views.dashboard.updateAccountPreferencesVideoUrl',\n        duration: '1:31',\n        display: false,\n      },\n      {\n        icon: 'mdi-tune',\n        text: 'Hardware Custom Bag',\n        link: 'views.dashboard.updateAccountPreferencesVideoUrl',\n        duration: '1:31',\n        display: false,\n      },\n    ],\n  },\n  mounted() {\n    models.api.PromoCode.find();\n  }\n};\n</script>\n<style>\n.tutorials-container:hover {\n  background-color: #fff;\n  color: #46A55C;\n}\n\n.tutorials-container:hover .video-detail {\n  color: rgba(0, 0, 0, 0.54) !important\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=766198e7&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl pa-0\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex justify-space-between align-center\"},[_c('img',{staticClass:\"ml-8 mt-4\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"160px\"}}),_c('v-select',{staticClass:\"mr-8 mt-2\",staticStyle:{\"max-width\":\"130px\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"background-color\":\"transparent\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")]),_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])})],1),_c('v-row',{staticClass:\"mt-16\"},[_c('v-col',{staticClass:\"d-flex flex-column align-start mt-16\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('span',{staticClass:\"text-h5 font-weight-bold my-10 mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.login.login'))+\" \")]),_c('span',{staticClass:\"text--secondary caption\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.login.loginMessage'))+\" \")]),_c('v-form',{ref:\"loginForm\",staticClass:\"mt-6\",staticStyle:{\"width\":\"100%\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.loginSubmit.apply(null, arguments)}},model:{value:(_vm.isLoginFormValid),callback:function ($$v) {_vm.isLoginFormValid=$$v},expression:\"isLoginFormValid\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.email'),\"rules\":[_vm.isRequired, _vm.isEmail],\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"data-cy\":\"email-login\"},model:{value:(_vm.user._id),callback:function ($$v) {_vm.$set(_vm.user, \"_id\", $$v)},expression:\"user._id\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('views.login.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"password-login\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}}),_c('div',{staticClass:\"d-flex justify-end mb-6 mt-1\"},[_c('router-link',{staticClass:\"caption text-decoration-none\",attrs:{\"to\":\"/forgotten_password\",\"data-cy\":\"forgotten-password-login\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.login.forgotPassword'))+\" \")])],1),_c('v-btn',{attrs:{\"loading\":_vm.isAuthenticatePending,\"disabled\":!_vm.isLoginFormValid || _vm.isAuthenticatePending,\"color\":\"success\",\"type\":\"submits\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"submit-login\"}},[(_vm.isAuthenticated)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.login.login'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.login.login'))+\" \")])])],1)],1)],1),_c('p',{staticClass:\"text--secondary caption text-center\",staticStyle:{\"color\":\"black !important\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('views.login.loginFooter'))}}),_c('p',{staticClass:\"text--secondary caption text-center\",staticStyle:{\"margin-top\":\"300px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; height: 100%\">\n    <v-row class=\"fill-height\">\n      <v-col\n        class=\"rounded-xl pa-0\"\n        style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n        cols=\"6\"\n      >\n        <v-row class=\"d-flex justify-space-between align-center\">\n          <img\n            class=\"ml-8 mt-4\"\n            src=\"/img/Komacut-logo.svg\"\n            width=\"160px\"\n          >\n          <v-select\n            style=\"max-width: 130px;\"\n            class=\"mr-8 mt-2\"\n            :value=\"locale\"\n            :items=\"langList\"\n            item-value=\"value\"\n            item-text=\"label\"\n            background-color=\"transparent\"\n            solo\n            flat\n            hide-details\n            @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n          >\n            <template slot=\"selection\" slot-scope=\"data\">\n              <v-icon class=\"mr-2\" color=\"primary\">\n                mdi-web\n              </v-icon>\n              <span style=\"color: #2c984e;\">{{ data.item.label }}</span>\n            </template>\n          </v-select>\n        </v-row>\n\n        <v-row class=\"mt-16\">\n          <v-col\n            offset=\"2\"\n            cols=\"8\"\n            class=\"d-flex flex-column align-start mt-16\"\n          >\n            <span class=\"text-h5 font-weight-bold my-10 mb-0\">\n              {{ $t('views.login.login') }}\n            </span>\n            <span class=\"text--secondary caption\" style=\"color: black !important;\">\n              {{ $t('views.login.loginMessage') }}\n            </span>\n\n            <v-form\n              ref=\"loginForm\"\n              v-model=\"isLoginFormValid\"\n              class=\"mt-6\"\n              style=\"width: 100%;\"\n              @submit.prevent=\"loginSubmit\"\n            >\n              <v-text-field\n                v-model=\"user._id\"\n                :label=\"$t('common.email')\"\n                :rules=\"[isRequired, isEmail]\"\n                outlined\n                dense\n                autofocus\n                data-cy=\"email-login\"\n              />\n\n              <v-text-field\n                v-model=\"user.password\"\n                :label=\"$t('views.login.password')\"\n                :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n                :type=\"isPasswordVisible ? 'text' : 'password'\"\n                :rules=\"[isRequired]\"\n                outlined\n                dense\n                required\n                hide-details\n                data-cy=\"password-login\"\n                @click:append=\"isPasswordVisible = !isPasswordVisible\"\n              />\n\n              <div class=\"d-flex justify-end mb-6 mt-1\">\n                <router-link to=\"/forgotten_password\" data-cy=\"forgotten-password-login\" class=\"caption text-decoration-none\">\n                  {{ $t('views.login.forgotPassword') }}\n                </router-link>\n              </div>\n\n              <v-btn\n                :loading=\"isAuthenticatePending\"\n                :disabled=\"!isLoginFormValid || isAuthenticatePending\"\n                color=\"success\"\n                type=\"submits\"\n                large\n                block\n                data-cy=\"submit-login\"\n              >\n                <span v-if=\"isAuthenticated\">\n                  {{ $t('views.login.login') }}\n                </span>\n                <!-- Not sure if this is ever rendered??? -->\n                <span v-else>\n                  {{ $t('views.login.login') }}\n                </span>\n              </v-btn>\n            </v-form>\n          </v-col>\n        </v-row>\n        <p\n          class=\"text--secondary caption text-center\"\n          style=\"color: black !important;\"\n          v-html=\"$t('views.login.loginFooter')\"\n        />\n        <p class=\"text--secondary caption text-center\" style=\"margin-top: 300px !important\">\n          {{ $t('common.footerRight') }}  <a href=\"https://komacut.com/about-us/contact-us/\" class=\"text-decoration-none\"> {{ $t('common.contactUs') }}</a>\n        </p>\n      </v-col>\n      <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n        <core-promotional />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\nimport { resetStores } from '../store';\nimport { LEVEL } from '../utils/log';\n\nexport default {\n  name: 'login',\n\n  mixins: [\n    FormRules,\n  ],\n\n  data() {\n    return {\n      langList: [\n        { label: 'English', value: 'en-US' },\n        { label: '中文', value: 'cn' }\n      ],\n      i18n,\n      authenticating: false,\n      user: {\n        _id: '',\n        password: '',\n      },\n      isPasswordVisible: false,\n      isLoginFormValid: false,\n    };\n  },\n\n  computed: {\n    ...mapState('auth', [\n      'isAuthenticatePending',\n    ]),\n    ...mapState('auth', { loggedInUser: 'user' }),\n    ...mapState('app', ['locale']),\n    ...mapGetters('auth', [\n      'isAuthenticated',\n    ]),\n\n    ...mapGetters('app', [\n      'appVersion'\n    ]),\n\n  },\n\n  mounted() {\n    resetStores();\n    const navLang = navigator.language;\n    let currentLang = navLang.split('-')[0];\n    // The standard for Chinese localization is not cn but zh cf :\n    // http:// www.lingoes.net/en/translator/langcode.htm\n    currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n    this.setLocale({ $i18n: this.i18n, locale: currentLang });\n  },\n\n  methods: {\n    ...mapActions('auth', { secureLogin: 'login' }),\n    ...mapActions('app', ['pushSnack', 'setLocale']),\n\n    async loginSubmit() {\n      try {\n        this.isLoginFormValid = this.$refs.loginForm.validate();\n\n        localStorage.removeItem('feathers-jwt');\n\n        await this.secureLogin({ user: this.user });\n        // window.$chatwoot.reset();\n\n        this.pushSnack({\n          snack: { message: this.$t('views.login.loginSuccess') },\n          level: LEVEL.SUCCESS,\n        });\n        if (this.loggedInUser.rights.supportUser) {\n          this.$router.push('/support');\n        } else {\n          this.$router.push('/');\n        }\n      } catch (e) {\n        console.error(e);\n        this.pushSnack({\n          snack: { message: e.code === 401 ? this.$t('views.login.loginFailure') : e.message },\n          level: LEVEL.ERROR,\n        });\n      }\n    },\n  },\n};\n</script>\n\n<style scoped >\n.login-card {\n  z-index: 5;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=40792b12&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=40792b12&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"40792b12\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('core-home-hero',[_c('v-row',{staticClass:\"fill-height\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-card',{staticClass:\"logout-card\",attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[_c('v-card-title',{attrs:{\"align\":\"center\"}},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"views.logout.title\"))+\" \")])]),_c('v-card-text',[(_vm.working)?_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"indeterminate\":\"\"}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.working ? _vm.$t(\"views.logout.loggingOut\") : _vm.$t(\"views.logout.loggedOut\"))+\" \")],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <core-home-hero>\n    <v-row\n      class=\"fill-height\"\n      align=\"center\"\n      justify=\"center\"\n    >\n      <v-card\n        class=\"logout-card\"\n        color=\"transparent\"\n        flat\n      >\n        <v-card-title align=\"center\">\n          <span class=\"title\">\n            {{ $t(\"views.logout.title\") }}\n          </span>\n        </v-card-title>\n\n        <v-card-text>\n          <v-progress-circular\n            v-if=\"working\"\n            class=\"mr-2\"\n            color=\"primary\"\n            indeterminate\n          />\n\n          {{ working ? $t(\"views.logout.loggingOut\") : $t(\"views.logout.loggedOut\") }}\n        </v-card-text>\n      </v-card>\n    </v-row>\n  </core-home-hero>\n</template>\n\n<script>\nimport { mapActions } from 'vuex';\n\nexport default {\n  name: 'Logout',\n\n  data() {\n    return {\n      working: false,\n    };\n  },\n\n  mounted() {\n    setTimeout(async () => {\n      this.working = true;\n      await this.logout();\n      // window.$chatwoot.reset();\n      this.working = false;\n\n      localStorage.removeItem('feathers-jwt');\n      this.$router.go('/');\n    }, 1000);\n  },\n\n  methods: {\n    ...mapActions('auth', ['logout'])\n  }\n};\n</script>\n\n<style scoped>\n.logout-card {\n  z-index: 5;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logout.vue?vue&type=template&id=3056b065&scoped=true&\"\nimport script from \"./Logout.vue?vue&type=script&lang=js&\"\nexport * from \"./Logout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logout.vue?vue&type=style&index=0&id=3056b065&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3056b065\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"margin-top\":\"25px\",\"width\":\"900px\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('div',{staticClass:\"text-center\"},[_c('p',{staticClass:\"display-1 mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.welcomeToKomacut'))+\" \")]),_c('p',{staticClass:\"mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.enterInformation'))+\" \")])])]),_c('v-form',{ref:\"form\",model:{value:(_vm.validation),callback:function ($$v) {_vm.validation=$$v},expression:\"validation\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"data-cy\":\"email-input\",\"label\":_vm.$t('common.email'),\"disabled\":_vm.invitationMail,\"placeholder\":_vm.$t('views.signUp.sameEmailAsInvited'),\"rules\":[_vm.isRequired],\"required\":\"\",\"hide-details\":\"\"},model:{value:(_vm.userData._id),callback:function ($$v) {_vm.$set(_vm.userData, \"_id\", $$v)},expression:\"userData._id\"}})],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"offset\":\"1\",\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[_vm.isRequired],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"password-input\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.userData.password),callback:function ($$v) {_vm.$set(_vm.userData, \"password\", $$v)},expression:\"userData.password\"}})],1),_c('v-col',{staticClass:\"pa-0 align-center\",attrs:{\"cols\":\"1\"}},[_c('div',{staticClass:\"text-center mt-7\",staticStyle:{\"width\":\"100px\"}},[_c('p',{staticClass:\"text-center caption \",staticStyle:{\"margin\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.strength'))+\" \")]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"dark\":\"\",\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-help-circle-outline \")])]}}])},[_c('p',[_vm._v(_vm._s(_vm.$t('views.resetPassword.mustContain')))]),_c('ul',[_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.minCharacters')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneLower')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneUpper')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneDigit')))]),_c('li',[_vm._v(_vm._s(_vm.$t('views.resetPassword.oneSpecial')))])])]),_vm._l((_vm.force),function(value){return _c('span',{key:value,staticClass:\"dot\",style:([ value < _vm.passwordStrength(_vm.userData.password) ? { 'background-color':_vm.getColor(_vm.passwordStrength(_vm.userData.password))} : { 'background-color':'#D4D8DC'}])})})],2)])],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"data-cy\":\"confirm-password-input\",\"label\":_vm.$t('views.signUp.confirmPassword'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[(_vm.userData.password === _vm.confirmPassword) || _vm.$t('views.signUp.passwordMustMatch')],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1)],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-btn',{attrs:{\"loading\":_vm.statePending,\"disabled\":!_vm.isFormValid,\"color\":\"success\",\"type\":\"submits\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"create-account-button\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.createAccount'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container style=\"margin-top: 25px; width:900px\">\n    <v-row justify=\"center\">\n      <div class=\"text-center\">\n        <p class=\"display-1 mb-4\">\n          {{ $t('views.signUp.welcomeToKomacut') }}\n        </p>\n\n        <p class=\"mb-4\">\n          {{ $t('views.signUp.enterInformation') }}\n        </p>\n      </div>\n    </v-row>\n\n    <v-form ref=\"form\" v-model=\"validation\">\n      <v-row justify=\"center\">\n        <v-col cols=\"10\">\n          <v-text-field\n            v-model=\"userData._id\"\n            outlined\n            dense\n            data-cy=\"email-input\"\n            :label=\"$t('common.email')\"\n            :disabled=\"invitationMail\"\n            :placeholder=\"$t('views.signUp.sameEmailAsInvited')\"\n            :rules=\" [isRequired]\"\n            required\n            hide-details\n          />\n        </v-col>\n      </v-row>\n\n      <v-row justify=\"center\">\n        <v-col\n          offset=\"1\"\n          cols=\"10\"\n        >\n          <v-text-field\n            v-model=\"userData.password\"\n            :label=\"$t('views.signUp.password')\"\n            :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n            :type=\"isPasswordVisible ? 'text' : 'password'\"\n            :rules=\"[isRequired]\"\n            outlined\n            dense\n            required\n            hide-details\n            data-cy=\"password-input\"\n            @click:append=\"isPasswordVisible = !isPasswordVisible\"\n          />\n        </v-col>\n        <v-col cols=\"1\" class=\"pa-0 align-center\">\n          <div class=\"text-center mt-7\" style=\"width: 100px\">\n            <p class=\"text-center caption \" style=\"margin:0\">\n              {{ $t('views.signUp.strength') }}\n            </p>\n            <v-tooltip bottom>\n              <template v-slot:activator=\"{ on, attrs }\">\n                <v-icon\n                  class=\"mr-2\"\n                  color=\"primary\"\n                  dark\n                  small\n                  v-bind=\"attrs\"\n                  v-on=\"on\"\n                >\n                  mdi-help-circle-outline\n                </v-icon>\n              </template>\n              <p>{{ $t('views.resetPassword.mustContain') }}</p>\n              <ul>\n                <li>{{ $t('views.resetPassword.minCharacters') }}</li>\n                <li>{{ $t('views.resetPassword.oneLower') }}</li>\n                <li>{{ $t('views.resetPassword.oneUpper') }}</li>\n                <li>{{ $t('views.resetPassword.oneDigit') }}</li>\n                <li>{{ $t('views.resetPassword.oneSpecial') }}</li>\n              </ul>\n            </v-tooltip>\n            <span\n              v-for=\"value in force\"\n              :key=\"value\"\n              class=\"dot\"\n              :style=\"[ value < passwordStrength(userData.password) ? { 'background-color':getColor(passwordStrength(userData.password))} : { 'background-color':'#D4D8DC'}]\"\n            />\n          </div>\n        </v-col>\n      </v-row>\n\n      <v-row justify=\"center\">\n        <v-col\n          cols=\"10\"\n        >\n          <v-text-field\n            v-model=\"confirmPassword\"\n            data-cy=\"confirm-password-input\"\n            :label=\"$t('views.signUp.confirmPassword')\"\n            :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n            :type=\"isPasswordVisible ? 'text' : 'password'\"\n            :rules=\"[(userData.password === confirmPassword) || $t('views.signUp.passwordMustMatch')]\"\n            outlined\n            dense\n            required\n            hide-details\n            @click:append=\"isPasswordVisible = !isPasswordVisible\"\n          />\n        </v-col>\n      </v-row>\n    </v-form>\n    <v-row justify=\"center\">\n      <v-col cols=\"10\">\n        <v-btn\n          :loading=\"statePending\"\n          :disabled=\"!isFormValid\"\n          color=\"success\"\n          type=\"submits\"\n          large\n          block\n          data-cy=\"create-account-button\"\n          @click=\"submit\"\n        >\n          {{ $t('views.signUp.createAccount') }}\n        </v-btn>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\nimport { LEVEL } from '../utils/log';\n\nconst { User } = models.api;\n\nexport default {\n  name: 'OnBoarding',\n\n  mixins: [\n    FormRules,\n  ],\n\n  data() {\n    return {\n      force: [20, 40, 60, 80, 100],\n      token: '',\n      confirmPassword: '',\n      isPasswordVisible: false,\n      statePending: false,\n      email: '',\n      onBoardingUser: {},\n      invitationMail: false,\n      loading: false,\n      confirmationPassword: '',\n      validation: false,\n      firstName: '',\n      lastName: '',\n      userData: {\n        _id: '',\n        FirstName: '',\n        LastName: '',\n        officePhone: '',\n        password: '',\n        ContactEmail: '',\n      },\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n    isFormValid() {\n      return this.validation && this.isPasswordValid;\n    },\n    isPasswordValid() {\n      return this.passwordStrength(this.userData.password) >= 100;\n    }\n  },\n  created() {\n    const navLang = navigator.language;\n    let currentLang = navLang.split('-')[0];\n    // The standard for Chinese localization is not cn but zh cf :\n    // http:// www.lingoes.net/en/translator/langcode.htm\n    currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n    i18n.locale = currentLang;\n    const { token, id, fn, ln } = this.$route.query;\n    this.token = token;\n    this.userData.lastName = fn;\n    this.userData.firstName = ln;\n    this.invitationMail = !!id;\n    this.userData._id = id || '';\n  },\n\n  methods: {\n    ...mapActions('app', ['pushSnack', 'setLocale']),\n    getColor(force) {\n      if (force >= 60 && force < 80) {\n        return '#C77500';\n      }\n      if (force >= 80) {\n        return '#036F35';\n      }\n      return '#B00020';\n    },\n    passwordStrength(pass) {\n      let score = 0;\n      if (!pass) {\n        return score;\n      }\n\n      // award every unique letter until 5 repetitions\n      const letters = {};\n      for (let i = 0; i < pass.length; i++) {\n        letters[pass[i]] = (letters[pass[i]] || 0) + 1;\n        score += 5.0 / letters[pass[i]];\n      }\n\n      // bonus points for mixing it up\n      const variations = {\n        digits: /\\d/.test(pass),\n        lower: /[a-z]/.test(pass),\n        upper: /[A-Z]/.test(pass),\n        nonWords: /\\W/.test(pass),\n      };\n\n      let variationCount = 0;\n      // eslint-disable-next-line guard-for-in\n      for (const check in variations) {\n        variationCount += variations[check] === true ? 1 : 0;\n      }\n      score += (variationCount - 1) * 20;\n\n      return parseInt(score, 10);\n    },\n    async invitationAccount(token) {\n      this.statePending = true;\n      try {\n        await this.$feathers.service('authManagement').create({\n          action: 'verifySignupSetPasswordLong',\n          value: { token, password: this.userData.password }\n        });\n\n        // TODO logout & go to the login page or keep login & go to the dashboard\n        await this.$store.dispatch('auth/logout');\n        this.pushSnack({\n          snack: { message: this.$t('views.signUp.signUpSuccessMessage') },\n          level: LEVEL.SUCCESS,\n        });\n\n        this.statePending = false;\n        this.$router.push('/login');\n      } catch (error) {\n        this.statePending = false;\n        console.error('Error authenticating!', error);\n      }\n    },\n\n    createUser() {\n      this.statePending = true;\n      this.userData.ContactEmail = this.userData._id;\n      this.onBoardingUser = new User(this.userData);\n      this.onBoardingUser.create().then(() => {\n        this.statePending = false;\n      });\n    },\n\n    onBoardingAccount() {\n      if (this.token) {\n        this.invitationAccount(this.token);\n      } else {\n        this.createUser();\n      }\n    },\n    submit() {\n      if (this.validation) {\n        this.onBoardingAccount();\n      } else {\n        this.$refs.form.validate();\n      }\n    }\n  },\n};\n</script>\n<style>\n.dot {\n    height: 10px;\n    width: 10px;\n    background-color: #D4D8DC;\n    border-radius: 50%;\n    display: inline-block;\n    margin-right: 5px;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnBoarding.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnBoarding.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OnBoarding.vue?vue&type=template&id=41a47efe&\"\nimport script from \"./OnBoarding.vue?vue&type=script&lang=js&\"\nexport * from \"./OnBoarding.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OnBoarding.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"min-width\":\"1800px\"},attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"d-flex justify-center mt-16\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"200px\"}})]),_c('v-row',{staticClass:\"d-flex flex-column align-center justify-center\",staticStyle:{\"height\":\"50vh\"}},[(_vm.success)?_c('v-card',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"flex-column justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.title'))+\" \")]),_c('v-card-text',{staticClass:\"pa-5\",attrs:{\"align\":\"center\"}},[_c('p',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.thankYou'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.useTheLinkBelow'))+\" \")]),_c('v-card-actions',{staticClass:\"justify-center pa-5\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1):_c('v-card',{attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[(_vm.accountAlreadyExist)?_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.alreadyVerified'))+\" \")]):_c('v-card-title',[_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"indeterminate\":\"\"}}),_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.verifying'))+\" \")],1),(_vm.accountAlreadyExist)?_c('v-card-actions',{staticClass:\"justify-center pa-5\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container fluid style=\"min-width: 1800px\">\n    <div class=\"d-flex justify-center mt-16\">\n      <img src=\"/img/Komacut-logo.svg\" width=\"200px\">\n    </div>\n    <v-row\n      style=\"height: 50vh;\"\n      class=\"d-flex flex-column align-center justify-center\"\n    >\n      <v-card\n        v-if=\"success\"\n        style=\"background-color: transparent;\"\n        flat\n      >\n        <v-card-title class=\"flex-column justify-center\">\n          {{ $t('views.accountActivation.title') }}\n        </v-card-title>\n        <v-card-text align=\"center\" class=\"pa-5\">\n          <p class=\"text-center\">\n            {{ $t('views.accountActivation.thankYou') }}\n          </p>\n          {{ $t('views.accountActivation.useTheLinkBelow') }}\n        </v-card-text>\n        <v-card-actions class=\"justify-center pa-5\">\n          <v-btn color=\"primary\" depressed @click=\"$router.push('/login')\">\n            {{ $t('views.accountActivation.goToLogin') }}\n          </v-btn>\n        </v-card-actions>\n      </v-card>\n\n      <v-card v-else color=\"transparent\" flat>\n        <v-card-title v-if=\"accountAlreadyExist\">\n          {{ $t('views.accountActivation.alreadyVerified') }}\n        </v-card-title>\n        <v-card-title v-else>\n          <v-progress-circular\n            class=\"mr-2\"\n            color=\"primary\"\n            indeterminate\n          />\n          {{ $t('views.accountActivation.verifying') }}\n        </v-card-title>\n        <v-card-actions v-if=\"accountAlreadyExist\" class=\"justify-center pa-5\">\n          <v-btn color=\"primary\" depressed @click=\"$router.push('/login')\">\n            {{ $t('views.accountActivation.goToLogin') }}\n          </v-btn>\n        </v-card-actions>\n      </v-card>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nexport default {\n  data() {\n    return {\n      success: false,\n      accountAlreadyExist: false,\n    };\n  },\n  mounted() {\n    setTimeout(() => {\n      this.verifyAccount();\n    }, 1000);\n  },\n  methods: {\n    async verifyAccount() {\n      const { token } = this.$route.query;\n      try {\n        if (token) {\n          await this.$feathers.service('authManagement').create({\n            action: 'verifySignupLong',\n            value: token\n          });\n          this.success = true;\n        }\n      } catch (e) {\n        this.accountAlreadyExist = true;\n      }\n    }\n  }\n};\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirmation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Confirmation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Confirmation.vue?vue&type=template&id=e6ad8ce2&\"\nimport script from \"./Confirmation.vue?vue&type=script&lang=js&\"\nexport * from \"./Confirmation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VContainer,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl pa-0\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex justify-space-between align-center\"},[_c('img',{staticClass:\"ml-8 mt-4\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"160px\"}}),_c('v-select',{staticClass:\"mr-8 mt-2\",staticStyle:{\"max-width\":\"130px\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"background-color\":\"transparent\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")]),_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])})],1),_c('v-row',{staticClass:\"mt-16\"},[_c('v-col',{staticClass:\"d-flex flex-column align-start mt-16\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('div',{staticClass:\"mt-16 d-flex justify-start\",staticStyle:{\"width\":\"100%\"}},[_c('v-btn',{staticClass:\"pl-0\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',[_vm._v(\"mdi-chevron-left\")]),_vm._v(\" \"+_vm._s(_vm.$t('common.backToLogin'))+\" \")],1)],1),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.forgotYourPassword'))+\" \")]),_c('span',{staticClass:\"text--secondary caption mt-1\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.dontWorry'))+\" \")]),_c('v-form',{ref:\"loginForm\",staticClass:\"mt-6\",staticStyle:{\"width\":\"100%\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.emailSubmit.apply(null, arguments)}},model:{value:(_vm.isLoginFormValid),callback:function ($$v) {_vm.isLoginFormValid=$$v},expression:\"isLoginFormValid\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.email'),\"rules\":[_vm.isRequired],\"data-cy\":\"forgotten-password-email-input\",\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submits\",\"disabled\":_vm.isSendResetPwdPending,\"loading\":_vm.isSendResetPwdPending,\"data-cy\":\"reset-password-button\",\"large\":\"\",\"block\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.resetPassword'))+\" \")])],1)],1)],1),_c('p',{staticClass:\"text--secondary caption text-center\",staticStyle:{\"margin-top\":\"315px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; max-height: 100%\">\n    <v-row class=\"fill-height\">\n      <v-col\n        class=\"rounded-xl pa-0\"\n        style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n        cols=\"6\"\n      >\n        <v-row class=\"d-flex justify-space-between align-center\">\n          <img\n            class=\"ml-8 mt-4\"\n            src=\"/img/Komacut-logo.svg\"\n            width=\"160px\"\n          >\n          <v-select\n            style=\"max-width: 130px;\"\n            class=\"mr-8 mt-2\"\n            :value=\"locale\"\n            :items=\"langList\"\n            item-value=\"value\"\n            item-text=\"label\"\n            background-color=\"transparent\"\n            solo\n            flat\n            hide-details\n            @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n          >\n            <template slot=\"selection\" slot-scope=\"data\">\n              <v-icon class=\"mr-2\" color=\"primary\">\n                mdi-web\n              </v-icon>\n              <span style=\"color: #2c984e;\">{{ data.item.label }}</span>\n            </template>\n          </v-select>\n        </v-row>\n        <v-row class=\"mt-16\">\n          <v-col\n            offset=\"2\"\n            cols=\"8\"\n            class=\"d-flex flex-column align-start mt-16\"\n          >\n            <div style=\"width: 100%;\" class=\"mt-16 d-flex justify-start\">\n              <v-btn\n                class=\"pl-0\"\n                color=\"primary\"\n                text\n                @click=\"$router.go(-1)\"\n              >\n                <v-icon>mdi-chevron-left</v-icon>\n                {{ $t('common.backToLogin') }}\n              </v-btn>\n            </div>\n            <span class=\"text-h5 font-weight-bold mt-8\">\n              {{ $t('views.forgottenPassword.forgotYourPassword') }}\n            </span>\n            <span class=\"text--secondary caption mt-1\" style=\"color: black !important;\">\n              {{ $t('views.forgottenPassword.dontWorry') }}\n            </span>\n\n            <v-form\n              ref=\"loginForm\"\n              v-model=\"isLoginFormValid\"\n              style=\"width: 100%;\"\n              class=\"mt-6\"\n              @submit.prevent=\"emailSubmit\"\n            >\n              <v-text-field\n                v-model=\"email\"\n                :label=\"$t('common.email')\"\n                :rules=\"[isRequired]\"\n                data-cy=\"forgotten-password-email-input\"\n                outlined\n                dense\n                autofocus\n              />\n\n              <v-btn\n                color=\"success\"\n                type=\"submits\"\n                :disabled=\"isSendResetPwdPending\"\n                :loading=\"isSendResetPwdPending\"\n                data-cy=\"reset-password-button\"\n                large\n                block\n              >\n                {{ $t('views.forgottenPassword.resetPassword') }}\n              </v-btn>\n            </v-form>\n          </v-col>\n        </v-row>\n        <p class=\"text--secondary caption text-center\" style=\"margin-top: 315px !important\">\n          {{ $t('common.footerRight') }}  <a href=\"https://komacut.com/about-us/contact-us/\" class=\"text-decoration-none\"> {{ $t('common.contactUs') }}</a>\n        </p>\n      </v-col>\n      <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n        <core-promotional />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\n\nimport { mapActions, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\n\nexport default {\n  name: 'login',\n\n  mixins: [\n    FormRules,\n  ],\n\n  data() {\n    return {\n      email: '',\n      isLoginFormValid: false,\n      isSendResetPwdPending: false,\n      langList: [\n        { label: 'English', value: 'en-US' },\n        { label: '中文', value: 'cn' }\n      ],\n      i18n,\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n  },\n\n  mounted() {\n    const navLang = navigator.language;\n    let currentLang = navLang.split('-')[0];\n    // The standard for Chinese localization is not cn but zh cf :\n    // http:// www.lingoes.net/en/translator/langcode.htm\n    currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n    this.setLocale({ $i18n: this.i18n, locale: currentLang });\n  },\n\n  methods: {\n    ...mapActions('app', ['pushSnack', 'setLocale']),\n    async emailSubmit() {\n      try {\n        this.isSendResetPwdPending = true;\n        await this.$feathers.service('authManagement').create({\n          action: 'sendResetPwd',\n          value: {\n            _id: this.email,\n          }\n        });\n        this.isSendResetPwdPending = false;\n        this.$router.push('/resetpassword_send_email');\n      } catch (e) {\n        console.error(e);\n      }\n    },\n  },\n};\n</script>\n\n<style scoped>\n.login-card {\n  z-index: 5;\n}\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForgottenPassword.vue?vue&type=template&id=282c8aed&scoped=true&\"\nimport script from \"./ForgottenPassword.vue?vue&type=script&lang=js&\"\nexport * from \"./ForgottenPassword.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ForgottenPassword.vue?vue&type=style&index=0&id=282c8aed&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"282c8aed\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-form',{ref:\"form\",staticClass:\"fill-height\",staticStyle:{\"width\":\"100%\"},model:{value:(_vm.validation),callback:function ($$v) {_vm.validation=$$v},expression:\"validation\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"mb-5 mt-10\"},[_c('v-col',{staticClass:\"d-flex flex-column align-center\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}}),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.changePassword'))+\" \")]),_c('span',{staticClass:\"mt-5\"},[_vm._v(_vm._s(_vm.$t('views.resetPassword.pleaseEnterPW')))])])],1),_c('v-row',[_c('v-col',{staticClass:\"mt-16\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[function (v) { return (v && v.length >= 8); } ,\n                       function (v) { return /(?=.*[A-Z])/.test(v); } ,\n                       function (v) { return /(?=.*\\d)/.test(v); } ,\n                       function (v) { return /([!@$%])/.test(v); }],\"data-cy\":\"change-password-input\",\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.mustContain'))+\" \")]),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': _vm.password.length >= 8 }},[(_vm.password.length >= 8)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.minCharacters'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[a-z])/.test(_vm.password)}},[(/(?=.*[a-z])/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneLower'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[A-Z])/.test(_vm.password) }},[(/(?=.*[A-Z])/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneUpper'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*\\d)/.test(_vm.password) }},[(/(?=.*\\d)/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneDigit'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(_vm.password) }},[(/([!@$%])/.test(_vm.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneSpecial'))+\" \")],1)])],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.confirmPassword'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[(_vm.password === _vm.confirmPassword) || _vm.$t('views.signUp.passwordMustMatch')],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"data-cy\":\"change-confirm-password-input\",\"hide-details\":\"\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-btn',{attrs:{\"disabled\":!_vm.isFormValid || _vm.isResetPwdLongPending,\"color\":\"success\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"change-password-button\",\"loading\":_vm.isResetPwdLongPending},on:{\"click\":_vm.passwordSubmit}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.changePassword'))+\" \")])])],1),_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"text--secondary caption\",staticStyle:{\"position\":\"relative\",\"top\":\"190px\",\"left\":\"40px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])])],1)],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; max-height: 100%\">\n    <v-form\n      ref=\"form\"\n      v-model=\"validation\"\n      style=\"width:100%\"\n      class=\"fill-height\"\n    >\n      <v-row class=\"fill-height\">\n        <v-col\n          class=\"rounded-xl\"\n          style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n          cols=\"6\"\n        >\n          <v-row class=\"mb-5 mt-10\">\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n              class=\"d-flex flex-column align-center\"\n            >\n              <img src=\"/img/Komacut-logo.svg\" width=\"180px\">\n\n              <span class=\"text-h5 font-weight-bold mt-8\">\n                {{ $t('views.resetPassword.changePassword') }}\n              </span>\n              <span class=\"mt-5\">{{ $t('views.resetPassword.pleaseEnterPW') }}</span>\n            </v-col>\n          </v-row>\n\n          <v-row>\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n              class=\"mt-16\"\n            >\n              <v-text-field\n                v-model=\"password\"\n                :label=\"$t('views.signUp.password')\"\n                :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n                :type=\"isPasswordVisible ? 'text' : 'password'\"\n                :rules=\"[v => (v && v.length >= 8) ,\n                         v => /(?=.*[A-Z])/.test(v) ,\n                         v => /(?=.*\\d)/.test(v) ,\n                         v => /([!@$%])/.test(v)]\"\n                data-cy=\"change-password-input\"\n                outlined\n                dense\n                required\n                hide-details\n                @click:append=\"isPasswordVisible = !isPasswordVisible\"\n              />\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n              class=\"py-0\"\n            >\n              <p class=\"ma-0\">\n                {{ $t('views.resetPassword.mustContain') }}\n              </p>\n\n              <p class=\"red--text ma-0\" :class=\"{ 'green--text': password.length >= 8 }\">\n                <v-icon v-if=\"password.length >= 8\" small color=\"green\">\n                  mdi-check\n                </v-icon>\n\n                <v-icon v-else small color=\"red\">\n                  mdi-close\n                </v-icon>\n                {{ $t('views.resetPassword.minCharacters') }}\n              </p>\n              <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[a-z])/.test(password)}\">\n                <v-icon v-if=\"/(?=.*[a-z])/.test(password)\" small color=\"green\">\n                  mdi-check\n                </v-icon>\n\n                <v-icon v-else small color=\"red\">\n                  mdi-close\n                </v-icon>\n                {{ $t('views.resetPassword.oneLower') }}\n              </p>\n              <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[A-Z])/.test(password) }\">\n                <v-icon v-if=\"/(?=.*[A-Z])/.test(password)\" small color=\"green\">\n                  mdi-check\n                </v-icon>\n\n                <v-icon v-else small color=\"red\">\n                  mdi-close\n                </v-icon>\n                {{ $t('views.resetPassword.oneUpper') }}\n              </p>\n              <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*\\d)/.test(password) }\">\n                <v-icon v-if=\"/(?=.*\\d)/.test(password)\" small color=\"green\">\n                  mdi-check\n                </v-icon>\n\n                <v-icon v-else small color=\"red\">\n                  mdi-close\n                </v-icon>\n                {{ $t('views.resetPassword.oneDigit') }}\n              </p>\n              <p\n                class=\"red--text ma-0\"\n                :class=\"{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(password) }\"\n              >\n                <v-icon v-if=\"/([!@$%])/.test(password)\" small color=\"green\">\n                  mdi-check\n                </v-icon>\n\n                <v-icon v-else small color=\"red\">\n                  mdi-close\n                </v-icon>\n                {{ $t('views.resetPassword.oneSpecial') }}\n              </p>\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n            >\n              <v-text-field\n                v-model=\"confirmPassword\"\n                :label=\"$t('views.signUp.confirmPassword')\"\n                :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n                :type=\"isPasswordVisible ? 'text' : 'password'\"\n                :rules=\"[(password === confirmPassword) || $t('views.signUp.passwordMustMatch')]\"\n                outlined\n                dense\n                required\n                data-cy=\"change-confirm-password-input\"\n                hide-details\n                @click:append=\"isPasswordVisible = !isPasswordVisible\"\n              />\n            </v-col>\n          </v-row>\n\n          <v-row>\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n            >\n              <v-btn\n                :disabled=\"!isFormValid || isResetPwdLongPending\"\n                color=\"success\"\n                large\n                block\n                data-cy=\"change-password-button\"\n                :loading=\"isResetPwdLongPending\"\n                @click=\"passwordSubmit\"\n              >\n                <span>\n                  {{ $t('views.resetPassword.changePassword') }}\n                </span>\n              </v-btn>\n            </v-col>\n            <v-col offset=\"2\" cols=\"8\">\n              <p class=\"text--secondary caption\" style=\"position: relative; top:190px; left:40px\">\n                {{ $t('common.footerRight') }} <a\n                  href=\"https://komacut.com/about-us/contact-us/\"\n                  class=\"text-decoration-none\"\n                > {{ $t('common.contactUs') }}</a>\n              </p>\n            </v-col>\n          </v-row>\n        </v-col>\n        <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n          <core-promotional />\n        </v-col>\n      </v-row>\n    </v-form>\n  </v-container>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n  name: 'restPassword',\n\n  mixins: [\n    FormRules,\n  ],\n\n  data() {\n    return {\n      validation: false,\n      password: '',\n      token: '',\n      confirmPassword: '',\n      isPasswordVisible: false,\n      isResetPwdLongPending: false,\n    };\n  },\n  computed: {\n    ...mapState('app', ['locale']),\n    isFormValid() {\n      return this.validation;\n    },\n  },\n  created() {\n    const { token } = this.$route.query;\n    this.token = token;\n  },\n  methods: {\n    async passwordSubmit() {\n      console.log('test');\n      if (this.validation) {\n        try {\n          this.isResetPwdLongPending = true;\n          await this.$feathers.service('authManagement').create({\n            action: 'resetPwdLong',\n            value: { token: this.token, password: this.password }\n          });\n          this.isResetPwdLongPending = false;\n          this.$router.push('/resetpassword_success');\n        } catch (e) {\n          console.error(e);\n        }\n      } else {\n        this.$refs.form.validate();\n      }\n    },\n  },\n};\n</script>\n\n<style scoped>\n.login-card {\n  z-index: 5;\n}\n\n.dot {\n  height: 10px;\n  width: 10px;\n  background-color: #D4D8DC;\n  border-radius: 50%;\n  display: inline-block;\n  margin-right: 5px;\n}\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=2f939555&scoped=true&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=js&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=2f939555&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2f939555\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1400px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl pa-0\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex justify-space-between align-center\"},[_c('img',{staticClass:\"ml-8 mt-4\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"160px\"}}),_c('v-select',{staticClass:\"mr-8 mt-2\",staticStyle:{\"max-width\":\"130px\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"background-color\":\"transparent\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")]),_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])})],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-start mt-8\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('span',{staticClass:\"text-h5 font-weight-bold mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.signUpToKomacut'))+\" \")]),_c('span',{staticClass:\"text--secondary caption\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.signUpMessage'))+\" \")])])],1),_c('v-form',{ref:\"form\",model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{staticStyle:{\"width\":\"800px\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"label\":_vm.$t('common.email'),\"rules\":[_vm.isRequired, _vm.isEmail],\"data-cy\":\"email-input\",\"messages\":_vm.$t('views.signUp.emailFieldInstruction'),\"required\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();}},model:{value:(_vm.user._id),callback:function ($$v) {_vm.$set(_vm.user, \"_id\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user._id\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"15\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"first-name-input\",\"label\":_vm.$t('common.firstName'),\"rules\":[_vm.isRequired]},model:{value:(_vm.user.firstName),callback:function ($$v) {_vm.$set(_vm.user, \"firstName\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"30\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"last-name-input\",\"label\":_vm.$t('common.lastName'),\"rules\":[_vm.isRequired]},model:{value:(_vm.user.lastName),callback:function ($$v) {_vm.$set(_vm.user, \"lastName\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"user.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('vue-tel-input-vuetify',{attrs:{\"maxlength\":\"60\",\"label\":_vm.$t('views.signUp.phone'),\"placeholder\":_vm.$t('views.signUp.phonePlaceholder'),\"outlined\":\"\",\"dense\":\"\",\"data-cy\":\"phone-input\",\"prefix\":_vm.countryCode,\"only-countries\":_vm.getCountryCodes,\"rules\":[function (v) { return !!v && _vm.isValid; }]},on:{\"country-changed\":function (v) {_vm.countryCode = v.dialCode},\"onInput\":_vm.onInput},model:{value:(_vm.phone),callback:function ($$v) {_vm.phone=$$v},expression:\"phone\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"label\":_vm.$t('views.signUp.companyName'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"company-name-input\",\"rules\":[_vm.isRequired],\"required\":\"\"},model:{value:(_vm.user.CompanyName),callback:function ($$v) {_vm.$set(_vm.user, \"CompanyName\", $$v)},expression:\"user.CompanyName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-select',{attrs:{\"maxlength\":\"50\",\"items\":_vm.userDepartments,\"label\":_vm.$t('views.preferences.tabs.userManagement.department'),\"rules\":[_vm.isRequired],\"outlined\":\"\",\"data-cy\":\"department-input\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"department-option\"}},[_vm._v(_vm._s(data.item))])]}}]),model:{value:(_vm.user.Department),callback:function ($$v) {_vm.$set(_vm.user, \"Department\", $$v)},expression:\"user.Department\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-select',{attrs:{\"items\":_vm.countries,\"label\":_vm.$t('views.signUp.country'),\"item-text\":\"name\",\"item-value\":\"code\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"data-cy\":\"country-input\",\"rules\":[_vm.isRequired],\"required\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"country-option\"}},[_vm._v(_vm._s(data.item.name))])]}}]),model:{value:(_vm.user.Country),callback:function ($$v) {_vm.$set(_vm.user, \"Country\", $$v)},expression:\"user.Country\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pb-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.password'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"password-input\",\"rules\":[function (v) { return (v && v.length >= 8); } ,\n                       function (v) { return /(?=.*[A-Z])/.test(v); } ,\n                       function (v) { return /(?=.*\\d)/.test(v); } ,\n                       function (v) { return /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(v); }]},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})],1)],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"ma-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.mustContain'))+\" \")]),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': _vm.user.password.length >= 8 }},[(_vm.user.password.length >= 8)?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.minCharacters'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[a-z])/.test(_vm.user.password)}},[(/(?=.*[a-z])/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneLower'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*[A-Z])/.test(_vm.user.password) }},[(/(?=.*[A-Z])/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneUpper'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /(?=.*\\d)/.test(_vm.user.password) }},[(/(?=.*\\d)/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneDigit'))+\" \")],1),_c('p',{staticClass:\"red--text ma-0\",class:{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(_vm.user.password) }},[(/([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(_vm.user.password))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check \")]):_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.oneSpecial'))+\" \")],1)]),_c('v-row',[_c('v-col',{attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('views.signUp.confirmPassword'),\"append-icon\":_vm.isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.isPasswordVisible ? 'text' : 'password',\"rules\":[_vm.isRequired,(_vm.user.password === _vm.confirmPassword) || _vm.$t('views.signUp.passwordMustMatch')],\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"\",\"data-cy\":\"confirm-password-input\"},on:{\"click:append\":function($event){_vm.isPasswordVisible = !_vm.isPasswordVisible}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\",\"offset\":\"2\"}},[_c('v-btn',{attrs:{\"loading\":_vm.user.isSavePending,\"color\":\"success\",\"type\":\"submits\",\"large\":\"\",\"block\":\"\",\"data-cy\":\"sign-up-button\"},on:{\"click\":_vm.createUser}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.signUp'))+\" \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column text--secondary align-center caption text-decoration-none mb-2\",attrs:{\"offset\":\"2\",\"cols\":\"8\"}},[_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.alreadyHaveAnAccount'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"/login\"}},[_vm._v(_vm._s(_vm.$t('views.login.login')))])]),_c('p',{staticClass:\"mb-0\",staticStyle:{\"color\":\"black !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.bySigning'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/legal/general-terms-and-conditions/\"}},[_vm._v(_vm._s(_vm.$t('views.signUp.termsAndConditions')))])])])],1),_c('p',{staticClass:\"text--secondary caption text-center  mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height px-5\" style=\"min-width: 1400px; max-width: 1400px; max-height: 100%\">\n    <v-row class=\"fill-height\">\n      <v-col\n        class=\"rounded-xl pa-0\"\n        style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n        cols=\"6\"\n      >\n        <v-row class=\"d-flex justify-space-between align-center\">\n          <img\n            class=\"ml-8 mt-4\"\n            src=\"/img/Komacut-logo.svg\"\n            width=\"160px\"\n          >\n          <v-select\n            style=\"max-width: 130px;\"\n            class=\"mr-8 mt-2\"\n            :value=\"locale\"\n            :items=\"langList\"\n            item-value=\"value\"\n            item-text=\"label\"\n            background-color=\"transparent\"\n            solo\n            flat\n            hide-details\n            @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n          >\n            <template slot=\"selection\" slot-scope=\"data\">\n              <v-icon class=\"mr-2\" color=\"primary\">\n                mdi-web\n              </v-icon>\n              <span style=\"color: #2c984e;\">{{ data.item.label }}</span>\n            </template>\n          </v-select>\n        </v-row>\n\n        <v-row>\n          <v-col\n            offset=\"2\"\n            cols=\"8\"\n            class=\"d-flex flex-column align-start mt-8\"\n          >\n            <span class=\"text-h5 font-weight-bold mb-0\">\n              {{ $t('views.signUp.signUpToKomacut') }}\n            </span>\n            <span class=\"text--secondary caption\" style=\"color: black !important;\">\n              {{ $t('views.signUp.signUpMessage') }}\n            </span>\n          </v-col>\n        </v-row>\n\n        <v-form ref=\"form\" v-model=\"isFormValid\">\n          <v-row>\n            <v-col class=\"pb-0\" offset=\"2\" cols=\"8\">\n              <v-text-field\n                v-model.trim=\"user._id\"\n                style=\"width: 800px\"\n                outlined\n                dense\n                :label=\"$t('common.email')\"\n                :rules=\" [isRequired, isEmail]\"\n                data-cy=\"email-input\"\n                :messages=\"$t('views.signUp.emailFieldInstruction')\"\n                required\n                @keydown.space.prevent\n              />\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col offset=\"2\" cols=\"4\">\n              <v-text-field\n                v-model.trim=\"user.firstName\"\n                maxlength=\"15\"\n                outlined\n                dense\n                hide-details\n                data-cy=\"first-name-input\"\n                :label=\"$t('common.firstName')\"\n                :rules=\" [isRequired]\"\n              />\n            </v-col>\n            <v-col cols=\"4\">\n              <v-text-field\n                v-model.trim=\"user.lastName\"\n                maxlength=\"30\"\n                outlined\n                dense\n                hide-details\n                data-cy=\"last-name-input\"\n                :label=\"$t('common.lastName')\"\n                :rules=\" [isRequired]\"\n              />\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col class=\"pb-0\" offset=\"2\" cols=\"8\">\n              <vue-tel-input-vuetify\n                v-model=\"phone\"\n                maxlength=\"60\"\n                :label=\"$t('views.signUp.phone')\"\n                :placeholder=\"$t('views.signUp.phonePlaceholder')\"\n                outlined\n                dense\n                data-cy=\"phone-input\"\n                :prefix=\"countryCode\"\n                :only-countries=\"getCountryCodes\"\n                :rules=\" [v => !!v && isValid]\"\n                @country-changed=\"(v) => {countryCode = v.dialCode}\"\n                @onInput=\"onInput\"\n              />\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col offset=\"2\" cols=\"8\">\n              <v-text-field\n                v-model=\"user.CompanyName\"\n                maxlength=\"60\"\n                :label=\"$t('views.signUp.companyName')\"\n                outlined\n                dense\n                hide-details\n                data-cy=\"company-name-input\"\n                :rules=\" [isRequired]\"\n                required\n              />\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col offset=\"2\" cols=\"8\">\n              <v-select\n                v-model=\"user.Department\"\n                maxlength=\"50\"\n                :items=\"userDepartments\"\n                :label=\"$t('views.preferences.tabs.userManagement.department')\"\n                :rules=\"[isRequired]\"\n                outlined\n                data-cy=\"department-input\"\n                dense\n                hide-details\n              >\n                <template slot=\"item\" slot-scope=\"data\">\n                  <span data-cy=\"department-option\">{{ data.item }}</span>\n                </template>\n              </v-select>\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col offset=\"2\" cols=\"8\">\n              <v-select\n                v-model=\"user.Country\"\n                :items=\"countries\"\n                :label=\"$t('views.signUp.country')\"\n                item-text=\"name\"\n                item-value=\"code\"\n                outlined\n                dense\n                hide-details\n                data-cy=\"country-input\"\n                :rules=\" [isRequired]\"\n                required\n              >\n                <template slot=\"item\" slot-scope=\"data\">\n                  <span data-cy=\"country-option\">{{ data.item.name }}</span>\n                </template>\n              </v-select>\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n              class=\"pb-0\"\n            >\n              <v-text-field\n                v-model=\"user.password\"\n                :label=\"$t('views.signUp.password')\"\n                :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n                :type=\"isPasswordVisible ? 'text' : 'password'\"\n                outlined\n                dense\n                required\n                hide-details\n                data-cy=\"password-input\"\n                :rules=\"[v => (v && v.length >= 8) ,\n                         v => /(?=.*[A-Z])/.test(v) ,\n                         v => /(?=.*\\d)/.test(v) ,\n                         v => /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(v)]\"\n                @click:append=\"isPasswordVisible = !isPasswordVisible\"\n              />\n            </v-col>\n          </v-row>\n          <v-col\n            offset=\"2\"\n            cols=\"8\"\n            class=\"py-0\"\n          >\n            <p class=\"ma-0\">\n              {{ $t('views.resetPassword.mustContain') }}\n            </p>\n\n            <p class=\"red--text ma-0\" :class=\"{ 'green--text': user.password.length >= 8 }\">\n              <v-icon v-if=\"user.password.length >= 8\" small color=\"green\">\n                mdi-check\n              </v-icon>\n\n              <v-icon v-else small color=\"red\">\n                mdi-close\n              </v-icon>\n              {{ $t('views.resetPassword.minCharacters') }}\n            </p>\n            <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[a-z])/.test(user.password)}\">\n              <v-icon v-if=\"/(?=.*[a-z])/.test(user.password)\" small color=\"green\">\n                mdi-check\n              </v-icon>\n\n              <v-icon v-else small color=\"red\">\n                mdi-close\n              </v-icon>\n              {{ $t('views.resetPassword.oneLower') }}\n            </p>\n            <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*[A-Z])/.test(user.password) }\">\n              <v-icon v-if=\"/(?=.*[A-Z])/.test(user.password)\" small color=\"green\">\n                mdi-check\n              </v-icon>\n\n              <v-icon v-else small color=\"red\">\n                mdi-close\n              </v-icon>\n              {{ $t('views.resetPassword.oneUpper') }}\n            </p>\n            <p class=\"red--text ma-0\" :class=\"{ 'green--text': /(?=.*\\d)/.test(user.password) }\">\n              <v-icon v-if=\"/(?=.*\\d)/.test(user.password)\" small color=\"green\">\n                mdi-check\n              </v-icon>\n\n              <v-icon v-else small color=\"red\">\n                mdi-close\n              </v-icon>\n              {{ $t('views.resetPassword.oneDigit') }}\n            </p>\n            <p\n              class=\"red--text ma-0\"\n              :class=\"{ 'green--text': /([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(user.password) }\"\n            >\n              <v-icon v-if=\"/([@%+\\\\/'!#$^?:,(){}\\[\\]~`\\-_.])/.test(user.password)\" small color=\"green\">\n                mdi-check\n              </v-icon>\n\n              <v-icon v-else small color=\"red\">\n                mdi-close\n              </v-icon>\n              {{ $t('views.resetPassword.oneSpecial') }}\n            </p>\n          </v-col>\n          <v-row>\n            <v-col\n              offset=\"2\"\n              cols=\"8\"\n            >\n              <v-text-field\n                v-model=\"confirmPassword\"\n                :label=\"$t('views.signUp.confirmPassword')\"\n                :append-icon=\"isPasswordVisible ? 'mdi-eye' : 'mdi-eye-off'\"\n                :type=\"isPasswordVisible ? 'text' : 'password'\"\n                :rules=\"[isRequired,(user.password === confirmPassword) || $t('views.signUp.passwordMustMatch')]\"\n                outlined\n                dense\n                required\n                hide-details\n                data-cy=\"confirm-password-input\"\n                @click:append=\"isPasswordVisible = !isPasswordVisible\"\n              />\n            </v-col>\n          </v-row>\n        </v-form>\n        <v-row>\n          <v-col cols=\"8\" offset=\"2\">\n            <v-btn\n              :loading=\"user.isSavePending\"\n              color=\"success\"\n              type=\"submits\"\n              large\n              block\n              data-cy=\"sign-up-button\"\n              @click=\"createUser\"\n            >\n              {{ $t('views.signUp.signUp') }}\n            </v-btn>\n          </v-col>\n        </v-row>\n        <v-row>\n          <v-col offset=\"2\" cols=\"8\" class=\"d-flex flex-column text--secondary align-center caption text-decoration-none mb-2\">\n            <p class=\"mb-0\" style=\"color: black !important;\">\n              {{ $t('views.signUp.alreadyHaveAnAccount') }} <a\n                class=\"text-decoration-none\"\n                href=\"/login\"\n              >{{ $t('views.login.login') }}</a>\n            </p>\n            <p class=\"mb-0\" style=\"color: black !important;\">\n              {{ $t('views.signUp.bySigning') }}\n              <a\n                class=\"text-decoration-none\"\n                href=\"https://komacut.com/legal/general-terms-and-conditions/\"\n              >{{\n                $t('views.signUp.termsAndConditions')\n              }}</a>\n            </p>\n          </v-col>\n        </v-row>\n        <p class=\"text--secondary caption text-center  mb-4\">\n          {{ $t('common.footerRight') }} <a\n            href=\"https://komacut.com/about-us/contact-us/\"\n            class=\"text-decoration-none\"\n          > {{ $t('common.contactUs') }}</a>\n        </p>\n      </v-col>\n      <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n        <core-promotional />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport AddressFormatter from '@shopify/address';\nimport FormRules from '@/mixins/form-rules';\nimport i18n from '@/plugins/i18n';\n\nconst { User, Referral } = models.api;\nexport default {\n  name: 'signUp',\n\n  mixins: [\n    FormRules,\n  ],\n\n  data() {\n    return {\n      langList: [\n        { label: 'English', value: 'en-US' },\n        { label: '中文', value: 'cn' }\n      ],\n      i18n,\n      chineseForm: null,\n      englishForm: null,\n      user: new User(),\n      confirmPassword: '',\n      isPasswordVisible: false,\n      isFormValid: false,\n      chineseJson: [],\n      englishJson: [],\n      phone: '',\n      countryCode: '',\n      isValid: false,\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n    Country: () => models.api.Country,\n    fetchedCountries: vm => vm.Country.findInStore().data,\n    unfilteredCountries: vm => (vm.locale === 'en-US' ? vm.englishJson : vm.chineseJson),\n    countries: vm => vm.unfilteredCountries.filter(c => vm.fetchedCountries.map(fc => fc.Code).includes(c.code)),\n\n    userDepartments: vm => ([\n      vm.$t('views.preferences.tabs.userManagement.departments.designAndEngineering'),\n      vm.$t('views.preferences.tabs.userManagement.departments.management'),\n      vm.$t('views.preferences.tabs.userManagement.departments.purchasing'),\n      vm.$t('views.preferences.tabs.userManagement.departments.strategicProcurement'),\n      vm.$t('views.preferences.tabs.userManagement.departments.logistics'),\n      vm.$t('views.preferences.tabs.userManagement.departments.production'),\n      vm.$t('views.preferences.tabs.userManagement.departments.finance'),\n    ]),\n    getCountryCodes: vm => vm.fetchedCountries.map(c => c.Code),\n\n  },\n  async created() {\n    const navLang = navigator.language;\n    let currentLang = navLang.split('-')[0];\n    // The standard for Chinese localization is not cn but zh cf :\n    // http:// www.lingoes.net/en/translator/langcode.htm\n    currentLang = (currentLang === 'zh') ? 'cn' : 'en-US';\n    i18n.locale = currentLang;\n    this.chineseForm = new AddressFormatter('ZH_CN');\n    this.englishForm = new AddressFormatter('EN');\n    this.chineseJson = await this.chineseForm.getCountries();\n    this.englishJson = await this.englishForm.getCountries();\n    const { refCode } = this.$route.query;\n    if (refCode) {\n      this.user.refCode = refCode;\n      const referral = await Referral.get(refCode);\n      this.user.firstName = referral.firstName;\n      this.user.lastName = referral.lastName;\n      this.user._id = referral.email;\n      this.user.CompanyName = referral.company;\n    }\n  },\n\n  methods: {\n    ...mapActions('app', ['pushSnack']),\n    ...mapActions('app', ['pushSnack', 'setLocale']),\n\n    onInput(e) {\n      this.isValid = e.valid;\n    },\n\n    async createUser() {\n      this.$refs.form.validate();\n      if (this.isFormValid) {\n        // eslint-disable-next-line no-underscore-dangle\n        this.user.__id = this.user._id;\n        this.user.ContactEmail = this.user._id;\n        this.user.signUp = true;\n        this.user.locale = this.locale;\n        this.user.officePhone = `${this.countryCode} ${this.phone}`;\n        await this.user.create();\n        this.trackLead(this.user._id);\n        this.$router.push({\n          name: 'SignUpSendEmail',\n          params: { id: this.user._id }\n        });\n      }\n    },\n\n    trackLead(emailId) {\n      window.Mastutrack.lead({ email: emailId, uid: emailId });\n    }\n\n  },\n};\n</script>\n\n<style scoped>\n>>> .v-text-field__details {\n  padding-left: 2px !important;\n  padding-right: 4px !important;\n}\n\n.dot {\n  height: 10px;\n  width: 10px;\n  background-color: #D4D8DC;\n  border-radius: 50%;\n  display: inline-block;\n  margin-right: 5px;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SignUp.vue?vue&type=template&id=d118f208&scoped=true&\"\nimport script from \"./SignUp.vue?vue&type=script&lang=js&\"\nexport * from \"./SignUp.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SignUp.vue?vue&type=style&index=0&id=d118f208&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d118f208\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VContainer,VForm,VIcon,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height d-flex align-center justify-center flex-column flex-fill\"},[_c('img',{staticClass:\"my-16\",attrs:{\"src\":\"/img/illustration@1x.svg\"},on:{\"click\":function($event){return _vm.$router.push('/')}}}),_c('p',{staticClass:\"text-h2 font-weight-bold mb-16\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.pageNotFound'))+\" \")]),_c('p',{staticClass:\"text-h5 mb-16 font-weight-medium\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.sorryPageNotFound'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary mb-16\",\"x-large\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/')}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.homePage'))+\" \")]),_c('img',{staticClass:\"mt-16\",attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"189px\",\"height\":\"59px\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height d-flex align-center justify-center flex-column flex-fill\">\n    <img\n      src=\"/img/illustration@1x.svg\"\n      class=\"my-16\"\n      @click=\"$router.push('/')\"\n    >\n    <p class=\"text-h2 font-weight-bold mb-16\">\n      {{ $t('common.pageNotFound') }}\n    </p>\n    <p class=\"text-h5 mb-16 font-weight-medium\">\n      {{ $t('common.sorryPageNotFound') }}\n    </p>\n\n    <v-btn\n      color=\"primary mb-16\"\n      x-large\n      depressed\n      @click=\"$router.push('/')\"\n    >\n      {{ $t('common.homePage') }}\n    </v-btn>\n\n    <img\n      src=\"/img/Komacut-logo.svg\"\n      class=\"mt-16\"\n      width=\"189px\"\n      height=\"59px\"\n    >\n  </v-container>\n</template>\n\n<script>\nexport default {\n  name: 'PageNotFound'\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageNotFound.vue?vue&type=template&id=04fa032e&scoped=true&\"\nimport script from \"./PageNotFound.vue?vue&type=script&lang=js&\"\nexport * from \"./PageNotFound.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"04fa032e\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center mt-10\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}})]),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\",attrs:{\"data-cy\":\"email-sent-message\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.EmailSent'))+\" \")]),_c('span',{staticClass:\"mt-4\"},[_vm._v(_vm._s(_vm.$t('views.signUp.EmailSendInstruction')))]),_c('v-card',{staticClass:\"transparent d-flex justify-center align-center mt-16\",attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('img',{attrs:{\"src\":\"/img/img_mailsent@3x.png\",\"height\":\"300px\"}})])],1),_c('v-btn',{staticClass:\"my-16\",attrs:{\"color\":\"primary\",\"depressed\":\"\",\"data-cy\":\"go-to-login-button\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1),_c('p',{staticClass:\"text--secondary caption text-center mb-0\",staticStyle:{\"margin-top\":\"20px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height px-5\" style=\"min-width: 1190px; max-width: 1400px; max-height: 100%\">\n    <v-row class=\"fill-height\">\n      <v-col\n        class=\"rounded-xl\"\n        style=\"z-index:99; background-color: white;height: 100%; min-width: 550px;\"\n        cols=\"6\"\n      >\n        <v-row>\n          <v-col\n            style=\"width:100%\"\n            class=\"d-flex flex-column align-center mt-10\"\n          >\n            <div class=\"d-flex justify-center\">\n              <img src=\"/img/Komacut-logo.svg\" width=\"180px\">\n            </div>\n            <span class=\"text-h5 font-weight-bold mt-8\" data-cy=\"email-sent-message\">\n              {{ $t('views.signUp.EmailSent') }}\n            </span>\n            <span class=\"mt-4\">{{ $t('views.signUp.EmailSendInstruction') }}</span>\n            <v-card\n              class=\"transparent d-flex justify-center align-center mt-16\"\n              flat\n            >\n              <v-card-text>\n                <img\n                  src=\"/img/img_mailsent@3x.png\"\n                  height=\"300px\"\n                >\n              </v-card-text>\n            </v-card>\n            <v-btn\n              class=\"my-16\"\n              color=\"primary\"\n              depressed\n              data-cy=\"go-to-login-button\"\n              @click=\"$router.push('/login')\"\n            >\n              {{ $t('views.accountActivation.goToLogin') }}\n            </v-btn>\n          </v-col>\n        </v-row>\n        <p class=\"text--secondary caption text-center mb-0\" style=\"margin-top: 20px !important\">\n          {{ $t('common.footerRight') }} <a\n            href=\"https://komacut.com/about-us/contact-us/\"\n            class=\"text-decoration-none\"\n          > {{ $t('common.contactUs') }}</a>\n        </p>\n      </v-col>\n      <v-col cols=\"6\" class=\"pl-0 d-flex justify-center align-center\">\n        <core-promotional />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nexport default {\n\n  mounted() {\n    window.dataLayer.push({\n      event: 'Enhanced_signup',\n      enhanced_conversion_data: {\n        email: this.$route.params.id\n      }\n    });\n  }\n};\n\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpSendEmail.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpSendEmail.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SignUpSendEmail.vue?vue&type=template&id=e447993a&\"\nimport script from \"./SignUpSendEmail.vue?vue&type=script&lang=js&\"\nexport * from \"./SignUpSendEmail.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center mt-10\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}})]),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.resetPassword'))+\" \")]),_c('span',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.successEmailSend'))+\" \")]),_c('v-card',{staticClass:\"transparent d-flex justify-center align-center mt-16\",attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('img',{attrs:{\"src\":\"/img/img_mailsent@3x.png\",\"height\":\"300px\"}})])],1),_c('v-btn',{staticClass:\"my-16\",attrs:{\"color\":\"primary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1),_c('p',{staticClass:\"text--secondary caption text-center mb-0\",staticStyle:{\"margin-top\":\"40px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ResetPasswordSendEmail.vue?vue&type=template&id=542be6f4&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height px-5\",staticStyle:{\"min-width\":\"1190px\",\"max-width\":\"1400px\",\"max-height\":\"100%\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticClass:\"rounded-xl\",staticStyle:{\"z-index\":\"99\",\"background-color\":\"white\",\"height\":\"100%\",\"min-width\":\"550px\"},attrs:{\"cols\":\"6\"}},[_c('v-row',[_c('v-col',{staticClass:\"d-flex flex-column align-center mt-10\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"180px\"}})]),_c('span',{staticClass:\"text-h5 font-weight-bold mt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.forgottenPassword.resetPassword'))+\" \")]),_c('span',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.resetPassword.passwordChangedSuccessMessage'))+\" \")]),_c('v-card',{staticClass:\"transparent d-flex justify-center align-center mt-16\",attrs:{\"flat\":\"\"}},[_c('v-card-text',[_c('img',{attrs:{\"src\":\"/img/img_mailsent@3x.png\",\"height\":\"300px\"}})])],1),_c('v-btn',{staticClass:\"my-16\",attrs:{\"color\":\"primary\",\"depressed\":\"\",\"data-cy\":\"login-after-reset-password-button\"},on:{\"click\":function($event){return _vm.$router.push('/login')}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.accountActivation.goToLogin'))+\" \")])],1)],1),_c('p',{staticClass:\"text--secondary caption text-center mb-0\",staticStyle:{\"margin-top\":\"20px !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/about-us/contact-us/\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.contactUs')))])])],1),_c('v-col',{staticClass:\"pl-0 d-flex justify-center align-center\",attrs:{\"cols\":\"6\"}},[_c('core-promotional')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ResetPasswordSuccess.vue?vue&type=template&id=ec7c7610&scoped=true&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ec7c7610\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VContainer,VRow})\n","import Vue from 'vue';\nimport Router from 'vue-router';\nimport { isJwtExpired } from 'jwt-check-expiration';\n\n/** Add/replace client's router here */\nimport Dashboard from '@/views/Dashboard.vue';\nimport Login from '@/views/Login.vue';\nimport Logout from '@/views/Logout.vue';\nimport OnBoarding from '@/views/OnBoarding.vue';\nimport Confirmation from '@/views/Confirmation.vue';\nimport ForgottenPassword from '@/views/ForgottenPassword.vue';\nimport ResetPassword from '@/views/ResetPassword.vue';\nimport SignUp from '@/views/SignUp.vue';\nimport PageNotFound from '@/views/PageNotFound.vue';\nimport SignUpSendEmail from '@/views/SignUpSendEmail.vue';\nimport ResetPasswordSendEmail from '@/views/ResetPasswordSendEmail.vue';\nimport ResetPasswordSuccess from '@/views/ResetPasswordSuccess.vue';\nimport { LEVEL } from '@/utils/log';\nimport Store from './store/index';\n\nimport ddlogger from './utils/logger';\n\nVue.use(Router);\n\nconst router = new Router({\n  mode: 'history',\n  base: process.env.BASE_URL,\n  routes: [\n    {\n      path: '/',\n      component: Dashboard,\n      name: 'Dashboard',\n    },\n    {\n      path: '/login',\n      component: Login,\n      name: 'Login',\n    },\n    {\n      path: '/signup',\n      name: 'SignUp',\n      component: SignUp,\n    },\n    {\n      path: '/logout',\n      component: Logout,\n      name: 'Logout',\n    },\n    {\n      path: '/404',\n      component: PageNotFound,\n      name: 'PageNotFound',\n    },\n    {\n      path: '/signup_send_email',\n      component: SignUpSendEmail,\n      name: 'SignUpSendEmail',\n    },\n    {\n      path: '/resetpassword_send_email',\n      component: ResetPasswordSendEmail,\n      name: 'ResetPasswordSendEmail',\n    },\n    {\n      path: '/resetpassword_success',\n      component: ResetPasswordSuccess,\n      name: 'ResetPasswordSuccess',\n    },\n    {\n      path: '/on_boarding',\n      component: OnBoarding,\n      name: 'OnBoarding'\n    },\n    {\n      path: '/confirmation',\n      component: Confirmation,\n      name: 'Confirmation',\n    },\n    {\n      path: '/forgotten_password',\n      component: ForgottenPassword,\n      name: 'ForgottenPassword',\n    },\n    {\n      path: '/reset_password',\n      component: ResetPassword,\n      name: 'ResetPassword',\n    },\n    {\n      path: '/rfqs',\n      name: 'RFQS',\n      component: () => import(/* webpackChunkName: \"RFQS\" */ './views/RFQS.vue'),\n      meta: { requiredPermission: 'rfqs' },\n    },\n    {\n      path: '/rfqs/:id',\n      name: 'EditRFQ',\n      component: () => import(/* webpackChunkName: \"EditRFQ\" */ './views/EditRFQ.vue'),\n      meta: { requiredPermission: 'instantQuote' },\n    },\n    {\n      path: '/hardware_categories',\n      name: 'HardwareCategories',\n      component: () => import(/* webpackChunkName: \"Hardware\" */ './views/HardwareCategories.vue'),\n    },\n    {\n      path: '/hardware_categories/:id',\n      name: 'HardwareCategory',\n      props: true,\n      component: () => import(/* webpackChunkName: \"HardwareCategory\" */ './views/HardwareCategory.vue'),\n    },\n    {\n      path: '/orders',\n      name: 'Orders',\n      component: () => import(/* webpackChunkName: \"Orders\" */ './views/Orders.vue'),\n      meta: { requiredPermission: 'orders' },\n    },\n    {\n      path: '/order/new',\n      name: 'NewOrder',\n      props: true,\n      component: () => import(/* webpackChunkName: \"NewOrder\" */ './views/EditOrder.vue'),\n      meta: { requiredPermission: 'placeOrder' },\n    },\n    // {\n    //   path: '/order/new/:type/:id',\n    //   name: 'NewOrderWithData',\n    //   props: true,\n    //   component: () => import(/* webpackChunkName: \"NewOrderWithData\" */ './views/EditOrder.vue'),\n    //   meta: { requiredPermission: 'placeOrder' },\n    // },\n    {\n      path: '/order/confirmed',\n      name: 'confirmedOrder',\n      props: true,\n      component: () => import(/* webpackChunkName: \"confirmedOrder\" */ './views/ConfirmedOrder.vue'),\n      meta: { requiredPermission: 'placeOrder' },\n    },\n    {\n      path: '/my_parts',\n      name: 'MyParts',\n      component: () => import(/* webpackChunkName: \"MyParts\" */ './views/MyParts.vue'),\n      meta: { requiredPermission: 'myParts' },\n    },\n    {\n      path: '/support',\n      name: 'Support',\n      props: true,\n      component: () => import(/* webpackChunkName: \"Support\" */ './views/Support.vue'),\n      meta: { requiredPermission: 'supportUser' },\n    },\n    {\n      path: '/settings',\n      name: 'Settings',\n      component: () => import(/* webpackChunkName: \"CompanySettings\" */ './views/Settings/Index.vue'),\n      children: [\n        {\n          path: 'profile',\n          name: 'Profile',\n          component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/UserPreferences.vue'),\n          meta: { requiredPermission: 'userManagement' },\n        },\n        {\n          path: 'company',\n          name: 'CompanySettings',\n          component: () => import(/* webpackChunkName: \"CompanySettings\" */ './views/Settings/CompanySettings.vue'),\n          meta: { requiredPermission: 'companyManagement' },\n        },\n        {\n          path: 'forwarders',\n          name: 'ForwardersSettings',\n          component: () => import(/* webpackChunkName: \"ForwardersSettings\" */ './views/Settings/Forwarders.vue'),\n          meta: { requiredPermission: 'forwarderManagement' },\n        },\n        {\n          path: 'user-management',\n          name: 'UsersManagement',\n          component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/UserManager.vue'),\n          meta: { requiredPermission: 'userManagement' },\n        },\n        {\n          path: 'account',\n          name: 'AccountPreferences',\n          component: () => import(/* webpackChunkName: \"AccountPreferences\" */ './views/Preferences/AccountStatementTab.vue'),\n        },\n        {\n          path: 'billing',\n          name: 'BillingPreferences',\n          component: () => import(/* webpackChunkName: \"BillingPreferences\" */ './views/Preferences/BillingTab.vue'),\n          meta: { requiredPermission: 'companyManagement' },\n        },\n        {\n          path: 'statements',\n          name: 'StatementPreferences',\n          component: () => import(/* webpackChunkName: \"StatementPreferences\" */ './views/Preferences/AccountStatementTab.vue'),\n          meta: { requiredPermission: 'accountStatement' },\n        },\n      ],\n    },\n    {\n      path: '/preferences',\n      name: 'Preferences',\n      component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/Index.vue'),\n      children: [\n        {\n          path: 'users',\n          name: 'UsersPreferences',\n          component: () => import(/* webpackChunkName: \"UsersPreferences\" */ './views/Preferences/UserManager.vue'),\n          meta: { requiredPermission: 'userManagement' },\n        },\n        {\n          path: 'account',\n          name: 'AccountPreferences',\n          component: () => import(/* webpackChunkName: \"AccountPreferences\" */ './views/Preferences/UserPreferences.vue'),\n        },\n        {\n          path: 'billing',\n          name: 'BillingPreferences',\n          component: () => import(/* webpackChunkName: \"BillingPreferences\" */ './views/Preferences/BillingTab.vue'),\n          meta: { requiredPermission: 'companyManagement' },\n        },\n        {\n          path: 'statements',\n          name: 'StatementPreferences',\n          component: () => import(/* webpackChunkName: \"StatementPreferences\" */ './views/Preferences/AccountStatementTab.vue'),\n          meta: { requiredPermission: 'accountStatement' },\n        },\n      ],\n    },\n    {\n      path: '/tools',\n      name: 'EngineeringTools',\n      component: () => import(/* webpackChunkName: \"EngineeringTools\" */ './views/Tools/Index.vue'),\n      children: [\n        {\n          path: '/tools/materials',\n          name: 'MaterialsTools',\n          component: () => import(/* webpackChunkName: \"MaterialsTool\" */ './views/Tools/MaterialProperties.vue'),\n        },\n        {\n          path: '/tools/surface',\n          name: 'SurfaceTools',\n          component: () => import(/* webpackChunkName: \"FinishingTool\" */ './views/Tools/SurfaceFinish.vue'),\n        },\n        {\n          path: '/tools/process',\n          name: 'ToleranceTools',\n          component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/ProcessTolerances.vue'),\n        },\n        {\n          path: '/tools/finish',\n          name: 'FinishTools',\n          component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/FinishColor.vue'),\n        },\n        {\n          path: '/tools/design',\n          name: 'DesignTools',\n          component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/DesignForManufacturing.vue'),\n        },\n        {\n          path: '/tools/guideline',\n          name: 'GuideLine',\n          component: () => import(/* webpackChunkName: \"ToleranceTool\" */ './views/Tools/GuideLine.vue'),\n        },\n      ],\n    },\n    {\n      path: '/internal/3d-packaging-tool',\n      component: () => import(/* webpackChunkName: \"ThreeDPackagingTool\" */ './views/ThreeDPackagingTool.vue'),\n      name: 'ThreeDPackagingTool',\n    },\n    {\n      path: '/internal/3d-to-2d',\n      component: () => import(/* webpackChunkName: \"DrawingApp\" */ './views/DrawingApp.vue'),\n      name: 'DrawingApp',\n    },\n  ],\n});\n\n// Must check string value\nif (process.env.VUE_APP_DO_SHOW_SANDBOX === 'true') {\n  router.addRoute({\n    path: '/sandbox',\n    name: 'Sandbox',\n    component: () => import(/* webpackChunkName: \"Sandbox\" */ './views/Sandbox.vue'),\n  });\n}\n\n// Global session route dispatching\nrouter.beforeEach(async (to, from, next) => {\n  const jwtToken = localStorage.getItem('feathers-jwt');\n  if (jwtToken) {\n    if (isJwtExpired(jwtToken)) {\n      localStorage.removeItem('feathers-jwt');\n      router.push('/login');\n    }\n  }\n\n  // validate URL\n  const link = router.resolve(to.path);\n  if (link.resolved.matched.length === 0) {\n    next('/404');\n    return;\n  }\n\n  if (to.name === 'DrawingApp' || to.name === 'ThreeDPackagingTool') {\n    if (!to.query.sessionId) {\n      next('/404');\n      return;\n    }\n    localStorage.removeItem('feathers-jwt');\n    await router.app.$store.dispatch(\n      'auth/login',\n      {\n        user: {\n          _id: process.env.VUE_APP_DRAWING_APP_AUTOLOGIN_USER_ID,\n          password: process.env.VUE_APP_DRAWING_APP_AUTOLOGIN_PASSWORD,\n        },\n      },\n    );\n    next();\n  }\n\n  // Authenticate with the local email/password strategy\n  const isOnLoginPage = ['SignUp', 'Login', 'Confirmation', 'OnBoarding', 'ForgottenPassword', 'ResetPassword', 'SignUpSendEmail', 'ResetPasswordSendEmail', 'ResetPasswordSuccess'].includes(to.name);\n  try {\n    /* TODO Implement JWT expiry validation */\n    const auth = await router.app.$store.dispatch('auth/authenticate');\n    let user;\n    if (_.get(auth, 'user._id', false)) {\n      user = router.app.$store.getters['users/get'](auth.user._id);\n      if (!user.hasCsiData) {\n        user = await router.app.$store.dispatch('users/get', [auth.user._id]);\n        // No need to fetch company as for support user session token not set to CSI.\n        if (to.name !== 'Support') {\n          await router.app.$store.dispatch('company/find');\n        }\n      }\n    }\n\n    ddlogger.logger.debug('navigation', {\n      route: to.name,\n      author: _.get(auth, 'user._id', 'anonymous')\n    });\n\n    if (to.meta.requiredPermission && !_.get(user, 'isAdmin', false)) {\n      const required = Array.isArray(to.meta.requiredPermission) ? to.meta.requiredPermission : [to.meta.requiredPermission];\n      const rights = _.get(user, 'rights', {});\n      if (required.length > 0) {\n        if (!required.some(req => rights[req]) && to.name !== 'Dashboard') {\n          Store.dispatch('app/pushSnack', {\n            snack: { message: 'rightError' },\n            level: LEVEL.ERROR,\n          });\n          ddlogger.logger.error('unauthorized', {\n            route: to.name,\n            author: _.get(auth, 'user._id', 'anonymous')\n          });\n          router.push('/');\n        }\n      }\n    }\n    next();\n  } catch (e) {\n    if (!isOnLoginPage) {\n      router.push('/login');\n    } else {\n      next();\n    }\n  }\n  const nbrCountries = Store.getters['countries/list'].length;\n  if (!nbrCountries) {\n    await Store.dispatch('countries/find');\n  }\n  next();\n});\n\nexport default router;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FooterButtonActions.vue?vue&type=style&index=0&id=2f7b9d9b&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartCard.vue?vue&type=style&index=0&id=0f966d25&scoped=true&lang=css&\"","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { FeathersVuex, models } from '@/plugins/feathers-client';\n\nVue.use(Vuex);\nVue.use(FeathersVuex);\n\nconst requireModule = require.context('./', false, /.js$/);\nconst appModules = requireModule.keys().filter(path => path !== './index.js').map(path => requireModule(path).default);\n\nconst modules = {\n  ...appModules.reduce((acc, mod) => ({ ...acc, ...mod.store }), {}),\n};\nconst plugins = [...appModules.map(mod => mod.plugin)];\n\nconst store = new Vuex.Store({\n  modules,\n  plugins,\n});\n\nconst resetStore = name => {\n  const model = models.api.byServicePath[name];\n  if (model.namespace) {\n    model.store.commit(`${model.namespace}/clearAll`);\n  }\n};\n\nconst resetStores = () => {\n  store.commit('app/clearAll');\n  store.commit('auth/clearAll');\n  // store.commit('tabs/clearAll');\n\n  for (const name of Object.keys(models.api.byServicePath)) {\n    if (!['countries', 'regions'].includes(name)) {\n      resetStore(name);\n    }\n  }\n};\n\nexport {\n  modules,\n  plugins,\n  resetStore,\n  resetStores,\n};\n\nexport default store;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[(_vm.product.myItem.ProductCode === 'HW-Bag')?_c('div',{staticClass:\"body-2\"},[_c('span',{staticClass:\"font-weight-bold ml-2\",attrs:{\"data-cy\":\"purchase-order-option\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.CustItemName || 'Bag Name Missing')+\" - \"+_vm._s(_vm.product.myItem.CustItemDesc || 'Bag Description Missing')+\" \")]),_c('span',{staticClass:\"ml-2 pa-2\",staticStyle:{\"background-color\":\"#FFFADA\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.FactoryName)+\" \")])]):_vm._e(),(_vm.product.myItem.ProductCode === 'FG')?_c('div',{staticClass:\"body-2\"},[_c('span',{staticClass:\"font-weight-bold ml-2\",attrs:{\"data-cy\":\"purchase-order-option\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.CustItemName)+\" - \"+_vm._s(_vm.$t('common.revision', {revision: _vm.product.myItem.CustItemRevision}))+\" \")]),_vm._v(\" \"+_vm._s(_vm.product.materialTranslation ? (\"- \" + (_vm.product.materialTranslation)) : '')+\" \"+_vm._s(_vm.product.materialFinishTranslation || _vm.product.materialFinishOptionTranslation ? (\"- \" + (_vm.product.materialFinishTranslation || _vm.product.materialFinishOptionTranslation)) : '')+\" \"+_vm._s(_vm.product.materialSeriesTranslation ? (\"- \" + (_vm.product.materialSeriesTranslation)) : '')+\" \"+_vm._s(_vm.product.myItem.MaterialThicknessStr ? (\"- \" + (_vm.product.myItem.MaterialThicknessStr)) : '')+\" \"+_vm._s(_vm.product.toleranceTranslation ? (\"- \" + (_vm.product.toleranceTranslation)) : '')+\" \"),_c('span',{staticClass:\"ml-2 pa-2\",staticStyle:{\"background-color\":\"#FFFADA\"}},[_vm._v(\" \"+_vm._s(_vm.product.myItem.FactoryName)+\" \")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-row no-gutters align=\"center\">\n    <div v-if=\"product.myItem.ProductCode === 'HW-Bag'\" class=\"body-2\">\n      <span class=\"font-weight-bold ml-2\" data-cy=\"purchase-order-option\">\n        {{\n          product.myItem.CustItemName || 'Bag Name Missing'\n        }} - {{ product.myItem.CustItemDesc || 'Bag Description Missing' }}\n      </span>\n      <span class=\"ml-2 pa-2\" style=\"background-color: #FFFADA\">\n        {{ product.myItem.FactoryName }}\n      </span>\n    </div>\n\n    <div v-if=\"product.myItem.ProductCode === 'FG'\" class=\"body-2\">\n      <span class=\"font-weight-bold ml-2\" data-cy=\"purchase-order-option\">\n        {{ product.myItem.CustItemName }} -  {{ $t('common.revision', {revision: product.myItem.CustItemRevision}) }}\n      </span>\n\n      {{ product.materialTranslation ? `- ${product.materialTranslation}` : '' }}\n      {{\n        product.materialFinishTranslation || product.materialFinishOptionTranslation ? `- ${product.materialFinishTranslation || product.materialFinishOptionTranslation}` : ''\n      }}\n      {{ product.materialSeriesTranslation ? `- ${product.materialSeriesTranslation}` : '' }}\n      {{ product.myItem.MaterialThicknessStr ? `- ${product.myItem.MaterialThicknessStr}` : '' }}\n      {{ product.toleranceTranslation ? `- ${product.toleranceTranslation}` : '' }}\n      <span class=\"ml-2 pa-2\" style=\"background-color: #FFFADA\">\n        {{ product.myItem.FactoryName }}\n      </span>\n    </div>\n  </v-row>\n</template>\n\n<script>\nexport default {\n  name: 'EditOrderDropDownInformation.vue',\n  props: {\n    product: {\n      type: Object,\n      default: () => {\n      }\n    }\n  }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditOrderDropDownInformation.vue?vue&type=template&id=01707129&scoped=true&\"\nimport script from \"./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"\nexport * from \"./EditOrderDropDownInformation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"01707129\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VRow})\n","import feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'roles';\n\nconst Model = class Role extends BaseModel {\n  static modelName = 'Role';\n\n  static instanceDefaults() {\n    return {\n      name: '',\n      rights: [],\n      inactive: false,\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","import feathers from '@feathersjs/feathers';\nimport socketio from '@feathersjs/socketio-client';\nimport authClient from '@feathersjs/authentication-client';\nimport io from 'socket.io-client';\nimport feathersVuex from 'feathers-vuex';\n\nimport { LEVEL } from '@/utils/log';\nimport ddlogger from '@/utils/logger';\n\nconst errorHandler = async context => {\n  const { error, params } = context;\n  console.error('errorHandler', error);\n  console.error('Error feathers-client', error);\n\n  if (_.get(error, 'code') === 401) {\n    const availablePathsWithoutJwt = [\n      '/login',\n      '/signup',\n      '/on_boarding',\n      '/confirmation',\n      '/forgotten_password',\n      '/reset_password',\n      '/signup_send_email',\n      '/resetpassword_send_email',\n      '/resetpassword_success'\n    ];\n    if (!availablePathsWithoutJwt.some(v => window.location.href.includes(v))) {\n      window.location.href = '/login';\n    }\n    return context;\n  }\n  const errorMessage = _.omit(error, 'hook');\n  console.error(errorMessage);\n  if (params.shouldShowNotification === false) {\n    return context;\n  }\n\n  // eslint-disable-next-line no-use-before-define\n  BaseModel.store.dispatch('app/pushSnack', {\n    snack: errorMessage,\n    level: LEVEL.ERROR,\n  });\n\n  return context;\n};\n\nconst notifyViaSnackbar = async context => {\n  const { params, method } = context;\n  if (params.notificationMessage) {\n    params.shouldShowNotification = true;\n  }\n\n  if (!params.shouldShowNotification) {\n    return context;\n  }\n  let message = params.notificationMessage;\n  if (!message) {\n    switch (method) {\n      case 'create':\n      case 'patch':\n        message = 'common.saveSuccess';\n        break;\n      case 'remove':\n        message = 'common.deleteSuccess';\n        break;\n      default:\n        break;\n    }\n  }\n\n  // eslint-disable-next-line no-use-before-define\n  BaseModel.store.dispatch('app/pushSnack', {\n    snack: { message },\n    level: LEVEL.SUCCESS,\n  });\n  return context;\n};\n\nconst host = process.env.VUE_APP_API_URL;\nconst socket = io(host, { transports: ['websocket'] });\n\nconst feathersClient = feathers()\n  .configure(socketio(socket, { timeout: 1000 * 60 }))\n  // .configure(socketio(socket, { timeout: 1000 * 60 * 5 }))\n  .configure(authClient({ storage: window.localStorage }))\n  .hooks({\n    after: {\n      create: [\n        notifyViaSnackbar,\n      ],\n      patch: [\n        notifyViaSnackbar,\n      ],\n      remove: [\n        notifyViaSnackbar,\n      ],\n    },\n    error: {\n      all: [\n        context => {\n          console.error(context);\n        },\n        errorHandler,\n      ],\n    },\n  });\n// TODO fix the duplicate item (temp and save) when the analysis engin time up change the backend algo\nfeathersClient.service('temp-parts').timeout = 70 * 1000;\n\nconst {\n  makeServicePlugin,\n  makeAuthPlugin,\n  BaseModel: CoreModel,\n  models,\n  clients,\n  FeathersVuex,\n} = feathersVuex(feathersClient, {\n  serverAlias: 'api',\n  idField: '_id',\n});\n\nclass BaseModel extends CoreModel {\n  async create(...data) {\n    const start = performance.now();\n    try {\n      await super.create(...data);\n      ddlogger.logger.debug('action', {\n        action: 'create',\n        type: this.constructor.name,\n        author: this.createdById,\n        perfMetric: (performance.now() - start),\n      });\n    } catch (err) {\n      console.error(err);\n      ddlogger.logger.error('error', {\n        action: 'create',\n        error: err,\n        type: this.constructor.name,\n        author: this.createdById,\n        perfMetric: (performance.now() - start),\n      });\n      throw err;\n    }\n    return this;\n  }\n\n  async save(...data) {\n    const start = performance.now();\n    try {\n      await super.save(...data);\n      ddlogger.logger.debug('action', {\n        action: 'save',\n        type: this.constructor.name,\n        author: this.createdById,\n        perfMetric: (performance.now() - start),\n      });\n    } catch (err) {\n      console.error(err);\n      ddlogger.logger.error('error', {\n        action: 'save',\n        error: err,\n        type: this.constructor.name,\n        author: this.createdById,\n        perfMetric: (performance.now() - start),\n      });\n      throw err;\n    }\n    return this;\n  }\n}\n\nfunction makeServiceStore(options, rest) {\n  return {\n    [options.servicePath]: {\n      namespaced: true,\n\n      ...(rest || {}),\n    },\n  };\n}\n\nexport {\n  makeAuthPlugin,\n  makeServicePlugin,\n  makeServiceStore,\n  BaseModel,\n  models,\n  clients,\n  FeathersVuex,\n};\n\nexport default feathersClient;\n","const requireComponent = require.context('./', true, /\\.js$/);\n\nrequireComponent.keys().forEach(fileName => {\n  if (fileName === './index.js') { return; }\n\n  requireComponent(fileName);\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstantQuoteGuideLine.vue?vue&type=style&index=0&id=26360ced&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-list',{attrs:{\"color\":\"transparent\"}},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s('Filters')+\" \")])],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)],1)],1)],1),_c('v-divider'),_vm._l((_vm.localValue),function(filter,i){return [_c('v-list',{key:(\"list-\" + i),attrs:{\"color\":\"transparent\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(filter.section)+\" \")]),_c(_vm.getFilter(filter.type),_vm._b({tag:\"component\",model:{value:(filter.value),callback:function ($$v) {_vm.$set(filter, \"value\", $$v)},expression:\"filter.value\"}},'component',filter,false))],1),((i + 1) !== Object.keys(_vm.localValue).length)?_c('v-divider',{key:(\"divider-\" + i)}):_vm._e()]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-row>\n    <v-col>\n      <v-list color=\"transparent\">\n        <v-list-item>\n          <v-list-item-content>\n            <v-list-item-title\n              class=\"title\"\n            >\n              {{ 'Filters' }}\n            </v-list-item-title>\n          </v-list-item-content>\n\n          <v-list-item-action>\n            <v-btn\n              icon\n            >\n              <v-icon>\n                mdi-close\n              </v-icon>\n            </v-btn>\n          </v-list-item-action>\n        </v-list-item>\n      </v-list>\n\n      <v-divider />\n\n      <template v-for=\"(filter, i) in localValue\">\n        <v-list\n          :key=\"`list-${i}`\"\n          color=\"transparent\"\n        >\n          <v-subheader>\n            {{ filter.section }}\n          </v-subheader>\n\n          <component\n            :is=\"getFilter(filter.type)\"\n            v-model=\"filter.value\"\n            v-bind=\"filter\"\n          />\n        </v-list>\n\n        <v-divider\n          v-if=\"(i + 1) !== Object.keys(localValue).length\"\n          :key=\"`divider-${i}`\"\n        />\n      </template>\n    </v-col>\n  </v-row>\n</template>\n\n<script>\nexport default {\n  props: ['show', 'onclose', 'value'],\n\n  computed: {\n\n    filterTypes() {\n      return new Map([\n        ['checkbox', 'core-filter-checkbox-group'],\n        ['switch', 'core-filter-switch-group'],\n        ['radio', 'core-filter-radio-group'],\n        ['rangeSlider', 'core-filter-range-slider'],\n      ]);\n    },\n\n    localValue: {\n      get() {\n        return this.value;\n      },\n\n      set(value) {\n        this.$emit('input', value);\n      },\n    },\n  },\n\n  methods: {\n    getFilter(filterType) {\n      if (this.filterTypes.has(filterType)) {\n        return this.filterTypes.get(filterType);\n      }\n      return 'span';\n    },\n  },\n};\n</script>\n\n<style scoped>\n  .v-list-item {\n    min-height: 30px;\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Filter.vue?vue&type=template&id=3ebbc123&scoped=true&\"\nimport script from \"./Filter.vue?vue&type=script&lang=js&\"\nexport * from \"./Filter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Filter.vue?vue&type=style&index=0&id=3ebbc123&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3ebbc123\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemTitle,VRow,VSubheader})\n","var map = {\n\t\"./cn.json\": \"f4a5\",\n\t\"./en-US.json\": \"e0e1\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"49f8\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUp.vue?vue&type=style&index=0&id=d118f208&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',{staticStyle:{\"background-color\":\"#4fb052\",\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm._.get(_vm.analysisData[0], 'value'))+\" \")]),_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{'dark': (i % 2 !== 0)}},[_c('td',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticClass:\"mr-1\",attrs:{\"src\":(\"/img/\" + (item.icon) + \".svg\"),\"width\":\"21px\",\"height\":\"21px\"}}),_vm._v(\" \"+_vm._s(item.field)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.value)+\" \")])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card>\n    <v-card-title\n      style=\"background-color: #4fb052; color: white;\"\n    >\n      {{ _.get(analysisData[0], 'value') }}\n    </v-card-title>\n\n    <v-simple-table dense>\n      <template v-slot:default>\n        <tbody>\n          <tr\n            v-for=\"(item, i) in analysisData.slice(1)\"\n            :key=\"item.field\"\n            :class=\"{'dark': (i % 2 !== 0)}\"\n          >\n            <td style=\"display: flex; align-items: center;\">\n              <img\n                :src=\"`/img/${item.icon}.svg`\"\n                class=\"mr-1\"\n                width=\"21px\"\n                height=\"21px\"\n              >\n              {{ item.field }}\n            </td>\n            <td>\n              {{ item.value }}\n            </td>\n          </tr>\n        </tbody>\n      </template>\n    </v-simple-table>\n  </v-card>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n  name: 'PartAnalysisTable',\n  props: {\n    part: Object,\n  },\n  computed: {\n    analysisData() {\n      let tableData = [];\n\n      if (this.part) {\n        tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n      }\n\n      if (_.isEmpty(tableData)) {\n        tableData = [\n          { field: null, value: 'Manufacturability & Design' },\n          { field: 'Unfolding', value: '-' },\n          { field: 'Bend to Hole', value: '-' },\n          { field: 'Hole to Edge', value: '-' },\n          { field: 'Bend Radius', value: '-' },\n          { field: 'Bend to Edge', value: '-' },\n          { field: 'Hole Size vs Thickness', value: '-' },\n        ];\n      } else {\n        tableData = tableData.filter(datum => datum.Category === 'T1')\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description, value: datum.Value }));\n      }\n\n      const message = _.get(this.part, 'EstimateLineStatus.isManufacturableMsg', '-');\n      const isManufacturable = _.get(this.part, 'EstimateLineStatus.isManufacturable');\n      tableData.push({\n        field: 'Warnings', value: (isManufacturable ? message : '-'), color: 'error',\n      });\n      tableData.push({\n        field: 'Errors', value: (isManufacturable ? '-' : message), icon: 'clock', color: 'grey',\n      });\n\n      const icons = { Pass: 'check-mark', Fail: 'error' };\n      return tableData.map(row => ({ ...{ icon: _.get(icons, row.value, 'error') }, ...row }));\n    },\n  }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartAnalysisTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartAnalysisTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartAnalysisTable.vue?vue&type=template&id=4e550506&scoped=true&\"\nimport script from \"./PartAnalysisTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PartAnalysisTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4e550506\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"1070px\"}},[(!(_vm.status.isMeshUploaded || _vm.status.isSvgUploaded) || _vm.currentErrorMessage)?_c('v-card',{staticClass:\"pa-4\"},[_c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[(_vm.showWaitingInfoLabel)?_c('v-alert',{staticClass:\"ma-0\",attrs:{\"color\":\"#E7F1F8\"}},[_c('div',{staticClass:\"body-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#1479BD\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}],null,false,132282453)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.infoTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t('common.Info'))+\" - \"+_vm._s(_vm.$t('common.infoWaitingTooltip'))+\" \")],1)]):_vm._e(),_vm._l((_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', [])),function(we,index){return _c('v-alert',{key:index,attrs:{\"close\":\"ma-0\",\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' : '#f8f2ec'}},[_c('div',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline')+\" \")])]}}],null,true)},[(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t((\"common.\" + (_vm.ErrorAndWarningCodeMapping[we.code]))))+\" - \"+_vm._s(_vm.$t((\"errorAndWarning.\" + (we.code))))+\" \")],1),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' && we.code === 202)?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.unsupportedSldprtVersionCaption'))+\" \")]):(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.errorThicknessCaption'))+\" \")]):(_vm.ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== '301'))?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningCaption'))+\" \")]):_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningThicknessCaption'))+\" \")]),_c('a',{staticClass:\"caption font-weight-bold mr-0\",on:{\"click\":function($event){_vm.isGuideLineVisible = true}}},[_vm._v(_vm._s(_vm.$t('errorAndWarning.reviewGuidelines'))),_c('span',{staticClass:\" mdi mdi-chevron-right\",staticStyle:{\"font-size\":\"20px\",\"vertical-align\":\"bottom\"}})])])}),(_vm.currentErrorMessage)?_c('v-alert',{attrs:{\"color\":\"#F3D9DE\"}},[_c('div',{staticClass:\"body-2 font-weight-bold\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-1\",staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#B00020\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle-outline \")])]}}],null,false,1649899894)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),_c('div',{staticClass:\"d-inline\"},[_c('span',{staticClass:\"text-uppercase\"},[(_vm.$te(_vm.currentErrorMessage))?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.Error'))+\" - \"+_vm._s(_vm.$t(_vm.currentErrorMessage))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.Error'))+\" - \"+_vm._s(_vm.$t('common.serverResponseError'))+\" \"),(_vm.part.is2dModel)?_c('p',{staticClass:\"text--secondary caption mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.pleaseCheckUploadedDxfFilesErrorMessage'))+\" \"),_c('a',{attrs:{\"href\":\"https://www.komacut.com/resources/drawing-guidelines/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.drawingGuidelines'))+\" \")])]):_c('p',{staticClass:\"text--secondary caption mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.modelIsBrokenCaption'))+\" \")])])])])],1)]):_vm._e()],2)],1),_c('v-row',[_c('v-col',{staticClass:\"text-left d-flex\"},[_c('v-icon',{attrs:{\"color\":_vm.currentErrorMessage ? 'error' : 'primary',\"x-large\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.currentErrorMessage ? 'mdi-alert-circle-outline' : 'mdi-file-image-outline')+\" \")]),_c('div',{staticClass:\"ml-5 d-flex justify-center flex-column\"},[_c('span',{class:[{ 'error--text': _vm.currentErrorMessage }, 'font-weight-bold d-flex']},[_vm._v(\" \"+_vm._s(_vm.part.CustFileName)+\" \")]),(!_vm.currentErrorMessage)?_c('span',{staticClass:\"font-weight-light\",attrs:{\"data-cy\":\"status-upload\"}},[_vm._v(\" \"+_vm._s(_vm.currentUploadStatus)+\" \")]):_vm._e()])],1),(_vm.currentErrorMessage)?_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"cols\":\"3\"}},[(_vm.isEngineDetectionError || _vm.showReRunAsTurningButton)?[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part, 'sheet-metal')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUploadAsSheetMetal'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part, 'turning')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUploadAsTurning'))+\" \")],1)]:[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUpload'))+\" \")],1)]],2):_vm._e(),_c('v-col',{staticClass:\"d-flex justify-end align-center\"},[(!_vm.currentErrorMessage)?_c('span',{staticClass:\"mr-10\"},[_vm._v(\" \"+_vm._s(Math.round(_vm.part.uploadProgress))+\"% \"+_vm._s(_vm.$t('common.of'))+\" \"+_vm._s(_vm.part.fileSize === 'NaNundefined' ? '0kB' : _vm.part.fileSize)+\" \"+_vm._s(_vm.$t('common.uploaded'))+\" \")]):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"color\":!_vm.currentErrorMessage ? 'primary' : 'error'},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('remove', _vm.part)}}},[_c('v-icon',[_vm._v(\" mdi-close \")])],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0\"},[_c('v-progress-linear',{attrs:{\"value\":_vm.currentErrorMessage ? 100 : _vm.uploadProgress,\"height\":\"10\",\"rounded\":\"\",\"indeterminate\":!_vm.currentErrorMessage && _vm.uploadProgress === 100,\"color\":_vm.currentErrorMessage ? 'error' : 'primary'}})],1)],1)],1)],1):(_vm.part.Status === 'Working')?_c('v-card',[_c('core-compact-part-card',{attrs:{\"part\":_vm.part,\"customer-price-range\":_vm.customerPriceRange,\"upload-thumbnail\":_vm.uploadThumbnail,\"is-mesh-visible\":_vm.isMeshVisible,\"on-thumb-click\":function () { return _vm.$emit('thumbnail:clicked', _vm.part); }}})],1):_c('v-card',{staticClass:\"pa-5\",attrs:{\"max-width\":\"1170px\"}},[(!_vm._.isEmpty(_vm.infoLabels))?_c('v-alert',{attrs:{\"color\":\"#E7F1F8\"}},[_c('div',{staticClass:\"body-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#1479BD\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}],null,false,132282453)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.infoTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t('common.Info'))+\" - \"),_vm._l((_vm.infoLabels),function(value,key,index){return _c('span',{key:key},[(key === 'bendsInfoLabel' && value === 0)?_c('span',[(Object.keys(_vm.infoLabels).length - 1 !== index)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('infoLabels.noBendDetectedLabel'))+\", \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('infoLabels.noBendDetectedLabel'))+\" \")])]):(Object.keys(_vm.infoLabels).length - 1 !== index)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t((\"infoLabels.\" + key), { 'Param': value }))+\", \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t((\"infoLabels.\" + key), { 'Param': value }))+\" \")])])}),_vm._v(\" \"+_vm._s(_vm.$t('common.detected'))+\" \")],2)]):_vm._e(),(_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', []).filter(function (e) { return _vm.ErrorAndWarningCodeMapping[e.code] === 'Warning'; }).length)?_c('v-alert',{attrs:{\"color\":\"#f8f2ec\"}},_vm._l((_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', []).filter(function (e) { return _vm.ErrorAndWarningCodeMapping[e.code] === 'Warning'; })),function(we,index){return _c('span',{key:index},[_c('div',{staticClass:\"body-2\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline')+\" \")])]}}],null,true)},[(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.waringTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t((\"common.\" + (_vm.ErrorAndWarningCodeMapping[we.code]))))+\" - \"+_vm._s(_vm.$t((\"errorAndWarning.\" + (we.code))))+\" \")],1)])}),0):_vm._e(),_vm._l((_vm._.get(_vm.part, 'AnalysisData.errors_and_warnings', []).filter(function (e) { return _vm.ErrorAndWarningCodeMapping[e.code] === 'Error'; })),function(we,index){return _c('v-alert',{key:index,attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' :'#f8f2ec'}},[_c('div',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline')+\" \")])]}}],null,true)},[(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}}):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.waringTooltip'))}})]),_vm._v(\" \"+_vm._s(_vm.$t((\"common.\" + (_vm.ErrorAndWarningCodeMapping[we.code]))))+\" - \"+_vm._s(_vm.$t((\"errorAndWarning.\" + (we.code))))+\" \"),(_vm.showReRunAsTurningButton)?_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.retryUpload(_vm.part, 'turning')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" mdi-reload \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.retryUploadAsTurning'))+\" \")],1):_vm._e()],1),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Error')?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.errorCaption'))+\" \")]):_vm._e(),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== 301))?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningCaption'))+\" \")]):_vm._e(),(_vm.ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code === 301))?_c('span',{staticClass:\"text--secondary caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('errorAndWarning.warningThicknessCaption'))+\" \")]):_vm._e(),_c('a',{staticClass:\"caption font-weight-bold mr-0\",on:{\"click\":function($event){_vm.isGuideLineVisible = true}}},[_vm._v(_vm._s(_vm.$t('errorAndWarning.reviewGuidelines'))),_c('span',{staticClass:\" mdi mdi-chevron-right\",staticStyle:{\"font-size\":\"20px\",\"vertical-align\":\"bottom\"}})])])}),(_vm.part.EstimateLineStatus.isMainAnalysisCompletedMsg)?_c('v-alert',{attrs:{\"color\":\"#F3D9DE\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-1\",staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#B00020\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle-outline \")])]}}],null,false,1649899894)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),(_vm.isOdooError)?[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(_vm._s(_vm.$t('common.Error')))]),_vm._v(\" - \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.odooErrorMessage)}}),_c('a',{staticClass:\"mr-0\",on:{\"click\":function($event){return _vm.$router.push('/tools/process')}}},[_vm._v(\" \"+_vm._s(_vm.$t('CSIError.ProcessLimitations.LinkLabel'))+\" \")])]:(_vm.checkErrorMessage(_vm.status.isMainAnalysisCompletedMsg))?[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.Error'))+\" \")]),_c('br'),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.errorFormat(_vm.status.isMainAnalysisCompletedMsg))}})]:[(_vm.checkTranslation(_vm.$t(_vm.status.isMainAnalysisCompletedMsg)))?[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(_vm._s(_vm.$t('common.Error')))]),_vm._v(\" - \"+_vm._s(_vm.removeLinklabel(_vm.$t(_vm.status.isMainAnalysisCompletedMsg)))+\" \"),_c('a',{staticClass:\"mr-0\",on:{\"click\":function($event){return _vm.$router.push('/tools/process')}}},[_vm._v(_vm._s(_vm.$t('CSIError.ProcessLimitations.LinkLabel')))])]:[_c('span',{staticClass:\"body-2 font-weight-bold text-uppercase\"},[_vm._v(_vm._s(_vm.$t('common.Error')))]),_vm._v(\" - \"+_vm._s(_vm.$t(_vm.status.isMainAnalysisCompletedMsg, {Param1: _vm.status.CsiErrorParam}))+\" \")]]],2):_vm._e(),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"min-content auto\"}},[_c('div',{staticStyle:{\"width\":\"174px\",\"display\":\"flex\",\"flex-direction\":\"column\",\"align-items\":\"center\"}},[_c('core-model-viewer',{class:{ 'blip-3d': _vm.isMeshVisible },attrs:{\"part\":_vm.part,\"width\":150,\"height\":150,\"is-mesh-uploaded\":_vm.status.isMeshUploaded,\"is-svg-uploaded\":_vm.status.isSvgUploaded},on:{\"click\":function($event){$event.stopPropagation();return (function () {\n            _vm.$emit('thumbnail:clicked', _vm.part);\n          }).apply(null, arguments)},\"load:mesh\":_vm.uploadThumbnail}}),(_vm.isSheetMetalMachine && !_vm.part.is2dModel)?[(!_vm.status.isManufacturableMsg)?_c('div',{staticClass:\"caption font-weight-light grey--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.detectedThickness'))+\" \")]):_vm._e(),_c('div',{staticClass:\"font-weight-bold\"},[(_vm.checkThickness)?_c('v-icon',{staticStyle:{\"vertical-align\":\"unset\"},attrs:{\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]):_vm._e(),_c('span',{style:(_vm.checkThickness ? {'color':'#C77500'} : {})},[_vm._v(\" \"+_vm._s(_vm.detectedThickness === 0 ? _vm.$t('views.instantQuote.detectingThickness') : _vm.detectedThickness ? (\" \" + _vm.detectedThickness + \"mm\") : '-')+\" \")])],1)]:(!_vm.isSheetMetalMachine)?[(!_vm.status.isManufacturableMsg)?_c('div',{staticClass:\"caption font-weight-light grey--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.detectedOuterDia'))+\" \")]):_vm._e(),_c('div',{staticClass:\"font-weight-bold\"},[(_vm.checkOuterDia)?_c('v-icon',{staticStyle:{\"vertical-align\":\"unset\"},attrs:{\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]):_vm._e(),_c('span',{style:(_vm.checkOuterDia ? {'color':'#C77500'} : {})},[_vm._v(\" \"+_vm._s(_vm.detectedOuterDia === 0 ? _vm.$t('views.instantQuote.detectingOuterDia') : _vm.detectedOuterDia ? (\" \" + _vm.detectedOuterDia + \"mm\") : '-')+\" \")])],1)]:_vm._e(),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"data-cy\":\"view-details-upload\"},on:{\"click\":function($event){$event.stopPropagation();return (function () {\n            _vm.$emit('thumbnail:clicked', _vm.part);\n          }).apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],2),_c('div',[_c('div',{staticClass:\"pb-2\",staticStyle:{\"display\":\"flex\",\"width\":\"725px\"}},[_c('span',{staticClass:\"text-h6 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.part.CustFileName)+\" \")]),_c('v-spacer'),_c('div',{staticClass:\"font-weight-light text-uppercase\",class:{\n              'grey--text': !_vm.status.isMainAnalysisCompleted,\n              calculateCostOk : _vm.status.isMainAnalysisCompleted\n            }},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.status.isMainAnalysisCompleted ? 'views.instantQuote.calculated' : 'views.instantQuote.notCalculated'))+\" \"),_c('v-icon',{class:{ calculateCostOk : _vm.status.isMainAnalysisCompleted },attrs:{\"right\":\"\",\"size\":\"30\"}},[_vm._v(\" mdi-check \")])],1)],1),_c('v-form',{ref:\"partOptions\",model:{value:(_vm.arePartOptionsValid),callback:function ($$v) {_vm.arePartOptionsValid=$$v},expression:\"arePartOptionsValid\"}},[_c('div',{staticClass:\"pb-2\",staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"3fr 1fr 3fr 2.8fr\",\"grid-column-gap\":\"10px\"}},[_c('v-text-field',{staticClass:\"inputHeight\",attrs:{\"maxlength\":\"21\",\"data-cy\":\"part-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"placeholder\":_vm.$t('views.instantQuote.partNumberPlaceholder'),\"label\":_vm.$t('views.instantQuote.partNumber'),\"rules\":[_vm.isRequired,_vm.maxLength(20),_vm.containAlphabetsNumbersHyphensUnderscoreSpace],\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.CustItemName),callback:function ($$v) {_vm.$set(_vm.part, \"CustItemName\", $$v)},expression:\"part.CustItemName\"}}),_c('v-text-field',{staticClass:\"inputHeight\",attrs:{\"min\":\"0\",\"max\":\"99\",\"data-cy\":\"revision-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"rules\":[_vm.isZeroOrGreaterInteger],\"type\":\"number\",\"label\":_vm.$t('views.instantQuote.revision'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},nativeOn:{\"input\":function($event){_vm.part.RevisionNumber = Math.abs(Math.trunc($event.target.value));\n                _vm.part.RevisionNumber = _vm.part.RevisionNumber > 99 ? 99 : _vm.part.RevisionNumber\n                _vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.RevisionNumber),callback:function ($$v) {_vm.$set(_vm.part, \"RevisionNumber\", $$v)},expression:\"part.RevisionNumber\"}}),_c('v-text-field',{staticClass:\"inputHeight\",attrs:{\"maxlength\":\"40\",\"data-cy\":\"description-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"placeholder\":_vm.$t('views.instantQuote.descriptionPlaceholder'),\"rules\":[_vm.isRequired],\"label\":_vm.$t('common.description'),\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.CustItemDesc),callback:function ($$v) {_vm.$set(_vm.part, \"CustItemDesc\", $$v)},expression:\"part.CustItemDesc\"}}),_c('v-radio-group',{staticClass:\"mt-n1\",attrs:{\"row\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.resetPartFormFields},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-subtitle-2\"},[_vm._v(\"Select Production Location \"),_c('span',{staticClass:\"font-weight-bold\",staticStyle:{\"color\":\"black\",\"background-color\":\"#95FC91\",\"border\":\"1px solid #95FC91\",\"border-radius\":\"5px\",\"padding\":\"0px 2px\"}},[_vm._v(\"NEW\")])])]},proxy:true}]),model:{value:(_vm.part.FactoryId),callback:function ($$v) {_vm.$set(_vm.part, \"FactoryId\", $$v)},expression:\"part.FactoryId\"}},[_c('v-radio',{attrs:{\"value\":_vm.chinaFactoryId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-subtitle-1\"},[_vm._v(\"China\")])]},proxy:true}])}),(_vm.isMexicoQuotationAllowed)?_c('v-radio',{attrs:{\"value\":_vm.mexicoFactoryId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-subtitle-1\"},[_vm._v(\"Mexico\")])]},proxy:true}],null,false,1671111355)}):_vm._e()],1)],1),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"200px 200px 190px auto\",\"grid-gap\":\"10px\"}},[_c('div',[_c('v-select',{ref:\"materialSelector\",staticClass:\"pb-2\",attrs:{\"data-cy\":\"material-input-upload\",\"items\":_vm.materials,\"label\":_vm.$t('views.instantQuote.material'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"rules\":[_vm.isRequired],\"item-text\":_vm.locale === 'en-US' ? 'Description' : 'DescriptionCHS',\"item-value\":\"RowPointer\",\"persistent-hint\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.part.MaterialStr = _vm.materials.find(function (m) { return m.RowPointer === $event; }).Description;\n                  _vm.part.MaterialStrCHS = _vm.materials.find(function (m) { return m.RowPointer === $event; }).DescriptionCHS;\n                  _vm.part.MaterialCategory = _vm.materials.find(function (m) { return m.RowPointer === $event; }).Category;\n                  _vm.part.MaterialSeries = '';\n                  _vm.part.MaterialSeriesStr = '';\n                  _vm.part.MaterialThickness = '';\n                  _vm.part.MaterialThicknessValue = null;\n                  _vm.part.MaterialThicknessStr = '';\n                  _vm.part.MaterialFinish = '';\n                  _vm.part.MaterialFinishStr = '';\n                  _vm.part.MaterialFinishOption = '';\n                  _vm.part.MaterialFinishOptionStr = '';\n                  _vm.status.isMainAnalysisCompleted = false;\n                  _vm.part.MaterialDimensions = {};\n                  _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.Material),callback:function ($$v) {_vm.$set(_vm.part, \"Material\", $$v)},expression:\"part.Material\"}}),_c('v-select',{ref:\"finishSelector\",staticClass:\"pb-2\",attrs:{\"data-cy\":\"finish-input-upload\",\"items\":_vm.finishes,\"rules\":[_vm.isRequired],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected || !_vm.part.MaterialThickness || _vm.isFinishesFindPending,\"item-disabled\":function (finish) { return !_vm.legalFinishes.some(function (lf) { return lf.RowPointer === finish.RowPointer; }); },\"loading\":_vm.isFinishesFindPending,\"label\":_vm.$t('views.instantQuote.finish'),\"item-text\":_vm.locale === 'en-US' ? 'Description' : 'DescriptionCHS',\"item-value\":\"_id\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.$refs.partOptions.validate();\n                  _vm.part.MaterialFinishStr = _vm.finishes.find(function (m) { return m._id === $event; }).Description\n                  _vm.part.MaterialFinishStrCHS = _vm.finishes.find(function (m) { return m._id === $event; }).DescriptionCHS\n                  _vm.part.MaterialFinishOption = '';\n                  _vm.part.MaterialFinishOptionStr = '';\n                  _vm.status.isMainAnalysisCompleted = false;\n                  _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.MaterialFinish),callback:function ($$v) {_vm.$set(_vm.part, \"MaterialFinish\", $$v)},expression:\"part.MaterialFinish\"}}),_c('v-text-field',{staticClass:\"d-flex pb-2\",attrs:{\"data-cy\":\"quantity-input-upload\",\"min\":_vm.minReqQty,\"label\":_vm.$t('views.instantQuote.quantity'),\"rules\":[_vm.isPositiveInteger],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.ReqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false;}},model:{value:(_vm.part.ReqQty),callback:function ($$v) {_vm.$set(_vm.part, \"ReqQty\", _vm._n($$v))},expression:\"part.ReqQty\"}}),(_vm.showCountersinkField)?_c('v-text-field',{staticClass:\"d-flex pb-2\",attrs:{\"data-cy\":\"countersinks-input-upload\",\"min\":\"0\",\"max\":_vm.noOfHoles,\"label\":_vm.$t('views.instantQuote.countersinks'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.Countersinks = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false; _vm.addCountersinks();}},model:{value:(_vm.part.Countersinks),callback:function ($$v) {_vm.$set(_vm.part, \"Countersinks\", _vm._n($$v))},expression:\"part.Countersinks\"}}):_vm._e()],1),_c('div',[_c('v-select',{staticClass:\"pb-2\",attrs:{\"data-cy\":\"series-input-upload\",\"items\":_vm.series,\"label\":_vm.$t('views.instantQuote.series'),\"rules\":[_vm.isRequired],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected || !_vm.part.Material,\"item-text\":_vm.locale === 'en-US' ? _vm.getTranslationSeries('Description') : _vm.getTranslationSeries('DescriptionCHS'),\"item-value\":\"RowPointer\",\"persistent-hint\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){_vm.part.MaterialSeriesStr = _vm.series.find(function (m) { return m.RowPointer === $event; }).Description;\n                  _vm.part.MaterialSeriesStrCHS = _vm.series.find(function (m) { return m.RowPointer === $event; }).DescriptionCHS;\n                  _vm.part.MaterialFinish = '';\n                  _vm.part.MaterialFinishOption = '';\n                  _vm.status.isMainAnalysisCompleted = false;\n                  _vm.part.MaterialDimensions = {};\n                  _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.MaterialSeries),callback:function ($$v) {_vm.$set(_vm.part, \"MaterialSeries\", $$v)},expression:\"part.MaterialSeries\"}}),_c('v-select',{staticClass:\"pb-2\",attrs:{\"data-cy\":\"finish-options-input-upload\",\"items\":_vm.options,\"rules\":[function (v) { return _vm.options.length === 0 || _vm.isRequired(v); }],\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected || !_vm.part.MaterialFinish || _vm.options.length === 0,\"label\":_vm.$t('views.instantQuote.finishOption'),\"item-text\":_vm.locale === 'en-US' ? _vm.getTranslationFinish('Description') : _vm.getTranslationFinish('DescriptionCHS'),\"item-value\":\"RowPointer\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.part.MaterialFinishOptionStr = _vm.options.find(function (m) { return m.RowPointer === $event; }).Description;\n                  _vm.status.isMainAnalysisCompleted = false;\n                  _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.MaterialFinishOption),callback:function ($$v) {_vm.$set(_vm.part, \"MaterialFinishOption\", $$v)},expression:\"part.MaterialFinishOption\"}}),(_vm.showThreadField)?_c('v-text-field',{staticClass:\"d-flex\",attrs:{\"data-cy\":\"thread-input-upload\",\"min\":\"0\",\"max\":_vm.noOfHoles,\"label\":_vm.$t('views.instantQuote.threads'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.Threads = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false; _vm.addThreads();}},model:{value:(_vm.part.Threads),callback:function ($$v) {_vm.$set(_vm.part, \"Threads\", _vm._n($$v))},expression:\"part.Threads\"}}):_vm._e(),(_vm.showCounterboreField)?_c('v-text-field',{staticClass:\"d-flex pb-2 mt-2\",attrs:{\"data-cy\":\"counterbores-input-upload\",\"min\":\"0\",\"max\":_vm.noOfHoles,\"label\":_vm.$t('views.instantQuote.counterbores'),\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.Counterbores = Math.max(Math.abs(Math.trunc($event.target.value)), 0);_vm.status.isMainAnalysisCompleted = false; _vm.addCounterbores();}},model:{value:(_vm.part.Counterbores),callback:function ($$v) {_vm.$set(_vm.part, \"Counterbores\", _vm._n($$v))},expression:\"part.Counterbores\"}}):_vm._e()],1),_c('div',[_c('div',{staticClass:\"pb-3\"},[(_vm.isSheetMetalMachine || _vm.isDebugModeEnabled)?_c('v-select',{attrs:{\"value\":_vm.part.MaterialThickness,\"items\":_vm.thicknesses,\"rules\":[_vm.isRequired],\"disabled\":_vm.isCalculatingCost || !_vm.part.MaterialSeries || _vm.isErrorDetected,\"label\":_vm.$t('views.instantQuote.thickness'),\"item-text\":_vm.locale === 'en-US' ? 'Description' : 'DescriptionCHS',\"item-value\":\"_id\",\"data-cy\":\"thickness-input-upload\",\"dense\":\"\",\"return-object\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.part.MaterialThickness = $event._id;\n                    _vm.part.MaterialThicknessValue = _vm.generateThicknessFromCode($event.Code);\n                    _vm.part.MaterialThicknessStr = _vm.selectedThickness.Description;\n                    _vm.part.MaterialThicknessStrCHS = _vm.selectedThickness.DescriptionCHS;\n                    _vm.part.MaterialDimensions = {\n                      SheetLength: $event.SheetLength,\n                      SheetWidth: $event.SheetWidth,\n                    };\n                    _vm.part.MaterialFinish = '';\n                    _vm.part.MaterialFinishOption = '';\n                    _vm.status.isMainAnalysisCompleted = false;\n                    _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}}}):_vm._e(),(_vm.isTurningMachine)?_c('v-select',{attrs:{\"data-cy\":\"roughness-input-upload\",\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"items\":_vm.roughnessValues,\"item-text\":\"label\",\"item-value\":\"value\",\"label\":(\"\" + (_vm.$t('views.instantQuote.roughness'))),\"rules\":[_vm.isRequired],\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;\n                    _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.Roughness),callback:function ($$v) {_vm.$set(_vm.part, \"Roughness\", $$v)},expression:\"part.Roughness\"}}):_vm._e(),_c('v-select',{staticClass:\"pb-2 mt-2\",attrs:{\"data-cy\":\"tolerances-input-upload\",\"full-width\":false,\"disabled\":_vm.isCalculatingCost || _vm.isErrorDetected,\"items\":_vm.toleranceValues,\"item-text\":\"label\",\"item-value\":\"value\",\"label\":((_vm.$t('views.instantQuote.tolerances')) + \"        \"),\"rules\":[_vm.isRequired],\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){_vm.status.isMainAnalysisCompleted = false;\n                    _vm.part.PriceMOQ ? _vm.part.PriceMOQ = null : '';}},model:{value:(_vm.part.Tolerance),callback:function ($$v) {_vm.$set(_vm.part, \"Tolerance\", $$v)},expression:\"part.Tolerance\"}}),_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"5\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n                    var on = ref.on;\n                    var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mb-2\",staticStyle:{\"position\":\"relative\",\"top\":\"-62px\",\"right\":\"-72px\",\"cursor\":\"pointer\"},attrs:{\"color\":\"primary\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information \")])]}}])},[(_vm.isSheetMetalMachine)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.instantQuote.toleranceTooltip'))}}):_c('span',[_c('v-simple-table',{staticStyle:{\"background-color\":\"transparent\",\"color\":\"inherit\"},attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-uppercase text-center\",staticStyle:{\"color\":\"inherit\"},attrs:{\"colspan\":\"4\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.linearDimensions'))+\" \")])])]),_c('tbody',{staticClass:\"text-center\"},[_c('tr',[_c('td',{staticClass:\"header\",staticStyle:{\"width\":\"180px\"},attrs:{\"rowspan\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.deviations'))+\" \")]),_c('td',{staticClass:\"header\",staticStyle:{\"width\":\"250px\"},attrs:{\"colspan\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.toleranceClass'))+\" \")])]),_c('tr',[_c('td',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.fineIso'))),_c('br'),_vm._v(\" (\"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.fine'))+\") \")]),_c('td',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.mediumIso'))),_c('br'),_vm._v(\" (\"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.medium'))+\") \")]),_c('td',{staticClass:\"header\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.coarseIso'))),_c('br'),_vm._v(\" (\"+_vm._s(_vm.$t('views.engineeringTools.tabs.processLimitations.coarse'))+\") \")])]),_vm._l((_vm.cncTurningLinearDimensions),function(item,index){return _c('tr',{key:index},[_c('td',{staticClass:\"font-weight-bold text-left\"},[_vm._v(\" \"+_vm._s(item.deviations)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.fine)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.medium)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.coarse)+\" \")])])})],2)]},proxy:true}])}),_c('i',[_vm._v(\"More details, please see Engineering tools/Process Detail\")])],1)]),_c('v-btn',{staticStyle:{\"margin-top\":\"-30px\"},attrs:{\"color\":\"primary\",\"data-cy\":\"calculate-upload\",\"disabled\":!_vm.canCalculateCost,\"loading\":_vm.isCalculatingCost,\"outlined\":\"\",\"block\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.errorArray;_vm.part.EstimateLineStatus.isMainAnalysisCompletedMsg = ''; _vm.part.need2dDrawing = _vm.needPdf; _vm.$emit('calculatecost', _vm.part)}}},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.part.EstimateLineStatus.isMainAnalysisEverCalled ? 'views.instantQuote.recalculateThis' : 'views.instantQuote.calculateThis'))+\" \")])],1)]),_c('div',[_c('core-price-moq-table-unit-price-variation',{attrs:{\"part\":_vm.part}})],1)])])],1)]),_c('div',{staticStyle:{\"display\":\"grid\",\"grid-template-columns\":\"550px auto\"}},[_c('div',[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"data-cy\":\"delete-upload\"},on:{\"click\":function($event){$event.stopPropagation();_vm.deleteDialog = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-delete \")]),_vm._v(\" \"+_vm._s(_vm.$t('common.delete'))+\" \")],1),(_vm.needSvg)?_c('core-upload-svg-drawing',{attrs:{\"part\":_vm.part}}):_vm._e(),(_vm.needPdf)?_c('core-technical-drawing-pdf',{attrs:{\"part\":_vm.part}}):_vm._e()],1)]),(_vm.isDebugModeEnabled)?_c('div',[_c('span',{staticClass:\"text-h6 font-weight-bold\"},[_vm._v(\"Add Custom Data to Engine Response\")]),_c('v-form',{ref:\"customDataToAddForm\",staticClass:\"ma-2\",on:{\"submit\":function($event){$event.preventDefault();return _vm.addCustomDataToEngineResponse.apply(null, arguments)}}},[_c('v-row',[_c('v-text-field',{staticClass:\"mt-4\",attrs:{\"min\":\"0\",\"type\":\"number\",\"rules\":[_vm.isPositiveInteger],\"outlined\":\"\",\"dense\":\"\",\"label\":\"Total Threads\",\"placeholder\":\"Enter total number of threaded holes\",\"hide-details\":\"\"},model:{value:(_vm.customThreadCountToAdd),callback:function ($$v) {_vm.customThreadCountToAdd=$$v},expression:\"customThreadCountToAdd\"}})],1),_c('v-row',[_c('v-spacer'),_c('v-btn',{staticClass:\"my-4\",attrs:{\"color\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.isPatchPending,\"loading\":_vm.isPatchPending,\"outlined\":\"\"}},[_vm._v(\" Add Custom Data \")])],1)],1),_c('v-divider'),_c('pre',[_vm._v(\"        \"+_vm._s(_vm._.get(_vm.part, 'AnalysisData', 'No results'))+\"\\n      \")]),_c('v-divider'),_c('pre',[_vm._v(\"        \"+_vm._s(_vm._.get(_vm.part, 'PricingData', '{}'))+\"\\n      \")]),_c('v-divider'),_c('pre',[_vm._v(\"        \"+_vm._s(_vm._.get(_vm.part, 'SecondaryAnalysisData', 'No results'))+\"\\n      \")]),(_vm.twoDNestingResultSvgUrl)?_c('img',{staticClass:\"my-2\",staticStyle:{\"min-width\":\"100%\"},attrs:{\"src\":_vm.twoDNestingResultSvgUrl,\"alt\":\"nestingEngineOutput\"}}):_vm._e()],1):_vm._e()],2),(_vm.deleteDialog)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"data-cy\":\"delete-dialog-upload\",\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":function($event){_vm.part.remove();\n               _vm.deleteDialog = false;},\"click:cancel\":function($event){_vm.deleteDialog = false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.deleteDialogTitle'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.part.CustFileName }))}})])]},proxy:true}],null,false,3342648333),model:{value:(_vm.deleteDialog),callback:function ($$v) {_vm.deleteDialog=$$v},expression:\"deleteDialog\"}}):_vm._e(),_c('v-navigation-drawer',{staticClass:\"px-4\",staticStyle:{\"background-color\":\"#f5f5f5\",\"overflow-x\":\"visible !important\",\"z-index\":\"199 !important\"},attrs:{\"width\":\"860\",\"fixed\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isGuideLineVisible),callback:function ($$v) {_vm.isGuideLineVisible=$$v},expression:\"isGuideLineVisible\"}},[_c('div',{staticClass:\"mt-3\",staticStyle:{\"min-width\":\"800px\",\"overflow-x\":\"visible !important\"}},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"d-flex mr-9 font-weight-medium\",staticStyle:{\"font-size\":\"16px\"}},[_vm._v(_vm._s(_vm.$t(\"sidePanelErrorAndWarning.title\")))]),_c('div',{staticClass:\"caption mb-3\",staticStyle:{\"width\":\"450px\",\"line-height\":\"0 !important\"}},[_c('v-icon',{staticStyle:{\"vertical-align\":\"baseline\"},attrs:{\"left\":\"\",\"color\":\"#B00020\"}},[_vm._v(\" mdi-alert-circle-outline \")]),_c('div',{staticClass:\"d-inline mb-0\"},[_c('span',{staticStyle:{\"vertical-align\":\"super\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errors'))}})]),_c('p',{staticClass:\"mb-1 mt-0\"},[_c('v-icon',{staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"left\":\"\",\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]),_c('span',{staticStyle:{\"vertical-align\":\"sub\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.warnings'))}})],1)],1),_c('v-btn',{staticClass:\"justify-end ml-5 mt-0\",attrs:{\"icon\":\"\",\"plain\":\"\",\"text\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isGuideLineVisible = false}}},[_c('v-icon',{staticClass:\"mb-7\",attrs:{\"left\":\"\"}},[_vm._v(\" mdi-close \")])],1)],1),_c('div',[_c('instantQuoteGuideLine')],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"width: 1070px;\">\n    <v-card\n      v-if=\"!(status.isMeshUploaded || status.isSvgUploaded) || currentErrorMessage\"\n      class=\"pa-4\"\n    >\n      <v-container fluid class=\"py-0\">\n        <v-row>\n          <v-col>\n            <v-alert\n              v-if=\"showWaitingInfoLabel\"\n              color=\"#E7F1F8\"\n              class=\"ma-0\"\n            >\n              <div class=\"body-2\">\n                <v-tooltip top z-index=\"9999\">\n                  <template v-slot:activator=\"{ on, attrs }\">\n                    <v-icon\n                      v-bind=\"attrs\"\n                      color=\"#1479BD\"\n                      style=\"vertical-align: sub\"\n                      v-on=\"on\"\n                    >\n                      mdi-information-outline\n                    </v-icon>\n                  </template>\n                  <span v-html=\"$t('sidePanelErrorAndWarning.infoTooltip')\" />\n                </v-tooltip>\n                {{ $t('common.Info') }} -\n                {{ $t('common.infoWaitingTooltip') }}\n              </div>\n            </v-alert>\n            <v-alert\n              v-for=\"(we, index) in _.get(part, 'AnalysisData.errors_and_warnings', []) \"\n              :key=\"index\"\n              close=\"ma-0\"\n              :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' : '#f8f2ec'\"\n            >\n              <div class=\"body-2 font-weight-bold text-uppercase\">\n                <v-tooltip top z-index=\"9999\">\n                  <template v-slot:activator=\"{ on, attrs }\">\n                    <v-icon\n                      v-bind=\"attrs\"\n                      :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'\"\n                      style=\"vertical-align: sub\"\n                      v-on=\"on\"\n                    >\n                      {{\n                        ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline'\n                      }}\n                    </v-icon>\n                  </template>\n                  <span\n                    v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n                    v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\"\n                  />\n                  <span v-else v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n                </v-tooltip>\n                {{ $t(`common.${ErrorAndWarningCodeMapping[we.code]}`) }} - {{ $t(`errorAndWarning.${we.code}`) }}\n              </div>\n              <span v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error' && we.code === 202\" class=\"text--secondary caption\">\n                {{ $t('errorAndWarning.unsupportedSldprtVersionCaption') }}\n              </span>\n              <span\n                v-else-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n                class=\"text--secondary caption\"\n              >\n                {{ $t('errorAndWarning.errorThicknessCaption') }}\n              </span>\n              <span\n                v-else-if=\"ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== '301')\"\n                class=\"text--secondary caption\"\n              >\n                {{ $t('errorAndWarning.warningCaption') }}\n              </span>\n              <span v-else class=\"text--secondary caption\">\n                {{ $t('errorAndWarning.warningThicknessCaption') }}\n              </span>\n              <a\n                class=\"caption font-weight-bold mr-0\"\n                @click=\"isGuideLineVisible = true\"\n              >{{ $t('errorAndWarning.reviewGuidelines') }}<span\n                style=\"font-size: 20px; vertical-align: bottom\"\n                class=\" mdi mdi-chevron-right\"\n              /> </a>\n            </v-alert>\n\n            <v-alert\n              v-if=\"currentErrorMessage\"\n              color=\"#F3D9DE\"\n            >\n              <div class=\"body-2 font-weight-bold\">\n                <v-tooltip top z-index=\"9999\">\n                  <template v-slot:activator=\"{ on, attrs }\">\n                    <v-icon\n                      v-bind=\"attrs\"\n                      class=\"mr-1\"\n                      color=\"#B00020\"\n                      style=\"vertical-align: sub\"\n                      v-on=\"on\"\n                    >\n                      mdi-alert-circle-outline\n                    </v-icon>\n                  </template>\n                  <span v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n                </v-tooltip>\n                <div class=\"d-inline\">\n                  <span class=\"text-uppercase\">\n                    <span v-if=\"$te(currentErrorMessage)\">\n                      {{ $t('common.Error') }} - {{ $t(currentErrorMessage) }}\n                    </span>\n                    <span v-else>\n                      {{ $t('common.Error') }} - {{ $t('common.serverResponseError') }}\n                      <p v-if=\"part.is2dModel\" class=\"text--secondary caption mb-0\">\n                        {{ $t('common.pleaseCheckUploadedDxfFilesErrorMessage') }}\n                        <a href=\"https://www.komacut.com/resources/drawing-guidelines/\" target=\"_blank\">\n                          {{ $t('common.drawingGuidelines') }}\n                        </a>\n                      </p>\n                      <p v-else class=\"text--secondary caption mb-0\">\n                        {{ $t('errorAndWarning.modelIsBrokenCaption') }}\n                      </p>\n                    </span>\n                  </span>\n                </div>\n              </div>\n            </v-alert>\n          </v-col>\n        </v-row>\n        <v-row>\n          <v-col class=\"text-left d-flex\">\n            <v-icon\n              :color=\"currentErrorMessage ? 'error' : 'primary'\"\n              x-large\n            >\n              {{ currentErrorMessage ? 'mdi-alert-circle-outline' : 'mdi-file-image-outline' }}\n            </v-icon>\n\n            <div class=\"ml-5 d-flex justify-center flex-column\">\n              <span :class=\"[{ 'error--text': currentErrorMessage }, 'font-weight-bold d-flex']\">\n                {{ part.CustFileName }}\n              </span>\n\n              <span v-if=\"!currentErrorMessage\" class=\"font-weight-light\" data-cy=\"status-upload\">\n                {{ currentUploadStatus }}\n              </span>\n            </div>\n          </v-col>\n\n          <v-col\n            v-if=\"currentErrorMessage\"\n            cols=\"3\"\n            class=\"d-flex align-center\"\n          >\n            <template v-if=\"isEngineDetectionError || showReRunAsTurningButton\">\n              <v-btn color=\"primary\" text @click=\"retryUpload(part, 'sheet-metal')\">\n                <v-icon small left>\n                  mdi-reload\n                </v-icon>\n                {{ $t('views.instantQuote.retryUploadAsSheetMetal') }}\n              </v-btn>\n              <v-btn color=\"primary\" text @click=\"retryUpload(part, 'turning')\">\n                <v-icon small left>\n                  mdi-reload\n                </v-icon>\n                {{ $t('views.instantQuote.retryUploadAsTurning') }}\n              </v-btn>\n            </template>\n            <template v-else>\n              <v-btn color=\"primary\" text @click=\"retryUpload(part)\">\n                <v-icon small left>\n                  mdi-reload\n                </v-icon>\n                {{ $t('views.instantQuote.retryUpload') }}\n              </v-btn>\n            </template>\n          </v-col>\n\n          <v-col class=\"d-flex justify-end align-center\">\n            <span v-if=\"!currentErrorMessage\" class=\"mr-10\">\n              <!-- TODO localization -->\n              <!-- Need to explicitely check for string value 'NaNundefined' -->\n              {{ Math.round(part.uploadProgress) }}% {{\n                $t('common.of')\n              }} {{ part.fileSize === 'NaNundefined' ? '0kB' : part.fileSize }} {{ $t('common.uploaded') }}\n            </span>\n\n            <v-btn\n              icon\n              :color=\"!currentErrorMessage ? 'primary' : 'error'\"\n              @click.stop=\"$emit('remove', part)\"\n            >\n              <v-icon>\n                mdi-close\n              </v-icon>\n            </v-btn>\n          </v-col>\n        </v-row>\n        <v-row>\n          <v-col class=\"pt-0\">\n            <v-progress-linear\n              :value=\"currentErrorMessage ? 100 : uploadProgress\"\n              height=\"10\"\n              rounded\n              :indeterminate=\"!currentErrorMessage && uploadProgress === 100\"\n              :color=\"currentErrorMessage ? 'error' : 'primary'\"\n            />\n          </v-col>\n        </v-row>\n      </v-container>\n    </v-card>\n\n    <v-card v-else-if=\"part.Status === 'Working'\">\n      <core-compact-part-card\n        :part=\"part\"\n        :customer-price-range=\"customerPriceRange\"\n        :upload-thumbnail=\"uploadThumbnail\"\n        :is-mesh-visible=\"isMeshVisible\"\n        :on-thumb-click=\"() => $emit('thumbnail:clicked', part)\"\n      />\n    </v-card>\n\n    <v-card v-else class=\"pa-5\" max-width=\"1170px\">\n      <!-- Info labels -->\n      <v-alert\n        v-if=\"!_.isEmpty(infoLabels)\"\n        color=\"#E7F1F8\"\n      >\n        <div class=\"body-2\">\n          <v-tooltip top z-index=\"9999\">\n            <template v-slot:activator=\"{ on, attrs }\">\n              <v-icon\n                v-bind=\"attrs\"\n                color=\"#1479BD\"\n                style=\"vertical-align: sub\"\n                v-on=\"on\"\n              >\n                mdi-information-outline\n              </v-icon>\n            </template>\n            <span v-html=\"$t('sidePanelErrorAndWarning.infoTooltip')\" />\n          </v-tooltip>\n          {{ $t('common.Info') }} -\n          <span\n            v-for=\"(value, key, index) in infoLabels\"\n            :key=\"key\"\n          >\n            <span v-if=\"key === 'bendsInfoLabel' && value === 0\">\n              <span v-if=\"Object.keys(infoLabels).length - 1 !== index\">\n                {{ $t('infoLabels.noBendDetectedLabel') }},\n              </span>\n              <span v-else>\n                {{ $t('infoLabels.noBendDetectedLabel') }}\n              </span>\n            </span>\n            <span v-else-if=\"Object.keys(infoLabels).length - 1 !== index\">\n              {{ $t(`infoLabels.${key}`, { 'Param': value }) }},\n            </span>\n            <span v-else>\n              {{ $t(`infoLabels.${key}`, { 'Param': value }) }}\n            </span>\n          </span>\n          {{ $t('common.detected') }}\n        </div>\n      </v-alert>\n\n      <!-- Warnings -->\n      <v-alert\n        v-if=\"_.get(part, 'AnalysisData.errors_and_warnings', []).filter(e => ErrorAndWarningCodeMapping[e.code] === 'Warning').length\"\n        color=\"#f8f2ec\"\n      >\n        <span\n          v-for=\"(we, index) in _.get(part, 'AnalysisData.errors_and_warnings', []).filter(e => ErrorAndWarningCodeMapping[e.code] === 'Warning')\"\n          :key=\"index\"\n        >\n          <div class=\"body-2\">\n            <v-tooltip top z-index=\"9999\">\n              <template v-slot:activator=\"{ on, attrs }\">\n                <v-icon\n                  v-bind=\"attrs\"\n                  :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'\"\n                  style=\"vertical-align: sub\"\n                  v-on=\"on\"\n                >\n                  {{ ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline' }}\n                </v-icon>\n              </template>\n              <span\n                v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n                v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\"\n              />\n              <span v-else v-html=\"$t('sidePanelErrorAndWarning.waringTooltip')\" />\n            </v-tooltip>\n            {{ $t(`common.${ErrorAndWarningCodeMapping[we.code]}`) }} - {{ $t(`errorAndWarning.${we.code}`) }}\n          </div>\n        </span>\n      </v-alert>\n      <!-- Errors -->\n      <v-alert\n        v-for=\"(we, index) in _.get(part, 'AnalysisData.errors_and_warnings', []).filter(e => ErrorAndWarningCodeMapping[e.code] === 'Error')\"\n        :key=\"index\"\n        :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#F3D9DE' :'#f8f2ec' \"\n      >\n        <div class=\"body-2 font-weight-bold text-uppercase\">\n          <v-tooltip top z-index=\"9999\">\n            <template v-slot:activator=\"{ on, attrs }\">\n              <v-icon\n                v-bind=\"attrs\"\n                :color=\"ErrorAndWarningCodeMapping[we.code] === 'Error' ? '#B00020' :'#C77500'\"\n                style=\"vertical-align: sub\"\n                v-on=\"on\"\n              >\n                {{ ErrorAndWarningCodeMapping[we.code] === 'Error' ? 'mdi-alert-circle-outline' : 'mdi-alert-outline' }}\n              </v-icon>\n            </template>\n            <span\n              v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\"\n              v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\"\n            />\n            <span v-else v-html=\"$t('sidePanelErrorAndWarning.waringTooltip')\" />\n          </v-tooltip>\n          {{ $t(`common.${ErrorAndWarningCodeMapping[we.code]}`) }} - {{ $t(`errorAndWarning.${we.code}`) }}\n          <v-btn\n            v-if=\"showReRunAsTurningButton\"\n            color=\"primary\"\n            text\n            @click=\"retryUpload(part, 'turning')\"\n          >\n            <v-icon small left>\n              mdi-reload\n            </v-icon>\n            {{ $t('views.instantQuote.retryUploadAsTurning') }}\n          </v-btn>\n        </div>\n        <span v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Error'\" class=\"text--secondary caption\">\n          {{ $t('errorAndWarning.errorCaption') }}\n        </span>\n        <span\n          v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code !== 301)\"\n          class=\"text--secondary caption\"\n        >\n          {{ $t('errorAndWarning.warningCaption') }}\n        </span>\n        <span\n          v-if=\"ErrorAndWarningCodeMapping[we.code] === 'Warning' && (we.code === 301)\"\n          class=\"text--secondary caption\"\n        >\n          {{ $t('errorAndWarning.warningThicknessCaption') }}\n        </span>\n        <a\n          class=\"caption font-weight-bold mr-0\"\n          @click=\"isGuideLineVisible = true\"\n        >{{ $t('errorAndWarning.reviewGuidelines') }}<span\n          style=\"font-size: 20px; vertical-align: bottom\"\n          class=\" mdi mdi-chevron-right\"\n        /> </a>\n      </v-alert>\n      <v-alert\n        v-if=\"part.EstimateLineStatus.isMainAnalysisCompletedMsg\"\n        color=\"#F3D9DE\"\n      >\n        <v-tooltip top z-index=\"9999\">\n          <template v-slot:activator=\"{ on, attrs }\">\n            <v-icon\n              v-bind=\"attrs\"\n              class=\"mr-1\"\n              color=\"#B00020\"\n              style=\"vertical-align: sub\"\n              v-on=\"on\"\n            >\n              mdi-alert-circle-outline\n            </v-icon>\n          </template>\n          <span v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n        </v-tooltip>\n        <template v-if=\"isOdooError\">\n          <span class=\"body-2 font-weight-bold text-uppercase\">{{ $t('common.Error') }}</span> -\n          <span v-html=\"odooErrorMessage\" />\n          <a class=\"mr-0\" @click=\"$router.push('/tools/process') \">\n            {{ $t('CSIError.ProcessLimitations.LinkLabel') }}\n          </a>\n        </template>\n        <template v-else-if=\"checkErrorMessage(status.isMainAnalysisCompletedMsg)\">\n          <span class=\"body-2 font-weight-bold text-uppercase\">\n            {{ $t('common.Error') }}\n          </span>\n          <br>\n          <span v-html=\"errorFormat(status.isMainAnalysisCompletedMsg)\" />\n        </template>\n        <template v-else>\n          <template v-if=\"checkTranslation($t(status.isMainAnalysisCompletedMsg))\">\n            <span class=\"body-2 font-weight-bold text-uppercase\">{{ $t('common.Error') }}</span> -\n            {{ removeLinklabel($t(status.isMainAnalysisCompletedMsg)) }}\n            <a class=\"mr-0\" @click=\"$router.push('/tools/process') \">{{\n              $t('CSIError.ProcessLimitations.LinkLabel')\n            }}</a>\n          </template>\n          <template v-else>\n            <span class=\"body-2 font-weight-bold text-uppercase\">{{ $t('common.Error') }}</span> -\n            {{ $t(status.isMainAnalysisCompletedMsg, {Param1: status.CsiErrorParam}) }}\n          </template>\n        </template>\n      </v-alert>\n      <div style=\"display: grid; grid-template-columns: min-content auto;\">\n        <div style=\"width: 174px; display:flex; flex-direction: column; align-items: center;\">\n          <core-model-viewer\n            :part=\"part\"\n            :width=\"150\"\n            :height=\"150\"\n            :is-mesh-uploaded=\"status.isMeshUploaded\"\n            :is-svg-uploaded=\"status.isSvgUploaded\"\n            :class=\"{ 'blip-3d': isMeshVisible }\"\n            @click.stop=\"() => {\n              $emit('thumbnail:clicked', part);\n            }\"\n            @load:mesh=\"uploadThumbnail\"\n          />\n\n          <template v-if=\"isSheetMetalMachine && !part.is2dModel\">\n            <div\n              v-if=\"!status.isManufacturableMsg\"\n              class=\"caption font-weight-light grey--text\"\n            >\n              {{ $t('views.instantQuote.detectedThickness') }}\n            </div>\n            <div class=\"font-weight-bold\">\n              <v-icon v-if=\"checkThickness\" color=\"#C77500\" style=\"vertical-align: unset\">\n                mdi-alert-outline\n              </v-icon>\n              <span :style=\"checkThickness ? {'color':'#C77500'} : {}\">\n                {{\n                  detectedThickness === 0 ? $t('views.instantQuote.detectingThickness') : detectedThickness ? ` ${detectedThickness}mm` : '-'\n                }}\n              </span>\n            </div>\n          </template>\n          <template v-else-if=\"!isSheetMetalMachine\">\n            <div\n              v-if=\"!status.isManufacturableMsg\"\n              class=\"caption font-weight-light grey--text\"\n            >\n              {{ $t('views.instantQuote.detectedOuterDia') }}\n            </div>\n            <div class=\"font-weight-bold\">\n              <v-icon v-if=\"checkOuterDia\" color=\"#C77500\" style=\"vertical-align: unset\">\n                mdi-alert-outline\n              </v-icon>\n              <span :style=\"checkOuterDia ? {'color':'#C77500'} : {}\">\n                {{\n                  detectedOuterDia === 0 ? $t('views.instantQuote.detectingOuterDia') : detectedOuterDia ? ` ${detectedOuterDia}mm` : '-'\n                }}\n              </span>\n            </div>\n          </template>\n\n          <v-btn\n            text\n            color=\"primary\"\n            data-cy=\"view-details-upload\"\n            @click.stop=\"() => {\n              $emit('thumbnail:clicked', part);\n            }\"\n          >\n            {{ $t('common.viewDetails') }}\n            <v-icon small right>\n              mdi-arrow-right\n            </v-icon>\n          </v-btn>\n        </div>\n        <div>\n          <div\n            style=\"display: flex; width: 725px;\"\n            class=\"pb-2\"\n          >\n            <span class=\"text-h6 font-weight-bold\">\n              {{ part.CustFileName }}\n            </span>\n\n            <v-spacer />\n\n            <div\n              :class=\"{\n                'grey--text': !status.isMainAnalysisCompleted,\n                calculateCostOk : status.isMainAnalysisCompleted\n              }\"\n              class=\"font-weight-light text-uppercase\"\n            >\n              {{\n                $t(status.isMainAnalysisCompleted ? 'views.instantQuote.calculated' : 'views.instantQuote.notCalculated')\n              }}\n              <v-icon\n                right\n                size=\"30\"\n                :class=\"{ calculateCostOk : status.isMainAnalysisCompleted }\"\n              >\n                mdi-check\n              </v-icon>\n            </div>\n          </div>\n          <v-form ref=\"partOptions\" v-model=\"arePartOptionsValid\">\n            <div\n              style=\"display: grid;\n              grid-template-columns: 3fr 1fr 3fr 2.8fr;\n              grid-column-gap: 10px;\"\n              class=\"pb-2\"\n            >\n              <v-text-field\n                v-model=\"part.CustItemName\"\n                maxlength=\"21\"\n                class=\"inputHeight\"\n                data-cy=\"part-input-upload\"\n                :disabled=\"isCalculatingCost || isErrorDetected\"\n                :placeholder=\"$t('views.instantQuote.partNumberPlaceholder')\"\n                :label=\"$t('views.instantQuote.partNumber')\"\n                :rules=\"[isRequired,maxLength(20),containAlphabetsNumbersHyphensUnderscoreSpace]\"\n                outlined\n                dense\n                @change=\"status.isMainAnalysisCompleted = false;\"\n              />\n              <v-text-field\n                v-model=\"part.RevisionNumber\"\n                min=\"0\"\n                max=\"99\"\n                data-cy=\"revision-input-upload\"\n                :disabled=\"isCalculatingCost || isErrorDetected\"\n                :rules=\"[isZeroOrGreaterInteger]\"\n                type=\"number\"\n                class=\"inputHeight\"\n                :label=\"$t('views.instantQuote.revision')\"\n                outlined\n                dense\n                hide-details\n                @input.native=\"\n                  part.RevisionNumber = Math.abs(Math.trunc($event.target.value));\n                  part.RevisionNumber = part.RevisionNumber > 99 ? 99 : part.RevisionNumber\n                  status.isMainAnalysisCompleted = false;\"\n              />\n              <v-text-field\n                v-model=\"part.CustItemDesc\"\n                maxlength=\"40\"\n                class=\"inputHeight\"\n                data-cy=\"description-input-upload\"\n                :disabled=\"isCalculatingCost || isErrorDetected\"\n                :placeholder=\"$t('views.instantQuote.descriptionPlaceholder')\"\n                :rules=\"[isRequired]\"\n                :label=\"$t('common.description')\"\n                outlined\n                dense\n                hide-details\n                @change=\"status.isMainAnalysisCompleted = false;\"\n              />\n              <v-radio-group\n                v-model=\"part.FactoryId\"\n                class=\"mt-n1\"\n                row\n                hide-details\n                @change=\"resetPartFormFields\"\n              >\n                <template #label>\n                  <span class=\"text-subtitle-2\">Select Production Location <span class=\"font-weight-bold\" style=\"color: black; background-color: #95FC91; border: 1px solid #95FC91; border-radius: 5px; padding: 0px 2px;\">NEW</span></span>\n                </template>\n                <v-radio\n                  :value=\"chinaFactoryId\"\n                >\n                  <template #label>\n                    <span class=\"text-subtitle-1\">China</span>\n                  </template>\n                </v-radio>\n                <v-radio\n                  v-if=\"isMexicoQuotationAllowed\"\n                  :value=\"mexicoFactoryId\"\n                >\n                  <template #label>\n                    <span class=\"text-subtitle-1\">Mexico</span>\n                  </template>\n                </v-radio>\n              </v-radio-group>\n            </div>\n\n            <div\n              style=\"display: grid;\n              grid-template-columns: 200px 200px 190px auto;\n              grid-gap: 10px;\"\n            >\n              <div>\n                <v-select\n                  ref=\"materialSelector\"\n                  v-model=\"part.Material\"\n                  class=\"pb-2\"\n                  data-cy=\"material-input-upload\"\n                  :items=\"materials\"\n                  :label=\"$t('views.instantQuote.material')\"\n                  :disabled=\"isCalculatingCost || isErrorDetected\"\n                  :rules=\"[isRequired]\"\n                  :item-text=\"locale === 'en-US' ? 'Description' : 'DescriptionCHS'\"\n                  item-value=\"RowPointer\"\n                  persistent-hint\n                  dense\n                  hide-details\n                  outlined\n                  @change=\"\n                    part.MaterialStr = materials.find(m => m.RowPointer === $event).Description;\n                    part.MaterialStrCHS = materials.find(m => m.RowPointer === $event).DescriptionCHS;\n                    part.MaterialCategory = materials.find(m => m.RowPointer === $event).Category;\n                    part.MaterialSeries = '';\n                    part.MaterialSeriesStr = '';\n                    part.MaterialThickness = '';\n                    part.MaterialThicknessValue = null;\n                    part.MaterialThicknessStr = '';\n                    part.MaterialFinish = '';\n                    part.MaterialFinishStr = '';\n                    part.MaterialFinishOption = '';\n                    part.MaterialFinishOptionStr = '';\n                    status.isMainAnalysisCompleted = false;\n                    part.MaterialDimensions = {};\n                    part.PriceMOQ ? part.PriceMOQ = null : '';\n                  \"\n                />\n\n                <v-select\n                  ref=\"finishSelector\"\n                  v-model=\"part.MaterialFinish\"\n                  class=\"pb-2\"\n                  data-cy=\"finish-input-upload\"\n                  :items=\"finishes\"\n                  :rules=\"[isRequired]\"\n                  :disabled=\"isCalculatingCost || isErrorDetected || !part.MaterialThickness || isFinishesFindPending\"\n                  :item-disabled=\"finish => !legalFinishes.some(lf => lf.RowPointer === finish.RowPointer)\"\n                  :loading=\"isFinishesFindPending\"\n                  :label=\"$t('views.instantQuote.finish')\"\n                  :item-text=\"locale === 'en-US' ? 'Description' : 'DescriptionCHS'\"\n                  item-value=\"_id\"\n                  dense\n                  hide-details\n                  outlined\n                  @change=\"\n                    $refs.partOptions.validate();\n                    part.MaterialFinishStr = finishes.find(m => m._id === $event).Description\n                    part.MaterialFinishStrCHS = finishes.find(m => m._id === $event).DescriptionCHS\n                    part.MaterialFinishOption = '';\n                    part.MaterialFinishOptionStr = '';\n                    status.isMainAnalysisCompleted = false;\n                    part.PriceMOQ ? part.PriceMOQ = null : '';\n                  \"\n                />\n                <v-text-field\n                  v-model.number=\"part.ReqQty\"\n                  class=\"d-flex pb-2\"\n                  data-cy=\"quantity-input-upload\"\n                  :min=\"minReqQty\"\n                  :label=\"$t('views.instantQuote.quantity')\"\n                  :rules=\"[isPositiveInteger]\"\n                  :disabled=\"isCalculatingCost || isErrorDetected\"\n                  type=\"number\"\n                  hide-details\n                  outlined\n                  dense\n                  @input.native=\"part.ReqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false;\"\n                  @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n                />\n                <v-text-field\n                  v-if=\"showCountersinkField\"\n                  v-model.number=\"part.Countersinks\"\n                  class=\"d-flex pb-2\"\n                  data-cy=\"countersinks-input-upload\"\n                  min=\"0\"\n                  :max=\"noOfHoles\"\n                  :label=\"$t('views.instantQuote.countersinks')\"\n                  :disabled=\"isCalculatingCost || isErrorDetected\"\n                  type=\"number\"\n                  hide-details\n                  outlined\n                  dense\n                  @input.native=\"part.Countersinks = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false; addCountersinks();\"\n                  @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n                />\n              </div>\n\n              <div>\n                <v-select\n                  v-model=\"part.MaterialSeries\"\n                  data-cy=\"series-input-upload\"\n                  :items=\"series\"\n                  :label=\"$t('views.instantQuote.series')\"\n                  :rules=\"[isRequired]\"\n                  :disabled=\"isCalculatingCost || isErrorDetected || !part.Material\"\n                  :item-text=\"locale === 'en-US' ? getTranslationSeries('Description') : getTranslationSeries('DescriptionCHS')\"\n                  class=\"pb-2\"\n                  item-value=\"RowPointer\"\n                  persistent-hint\n                  hide-details\n                  outlined\n                  dense\n                  @change=\"\n                    part.MaterialSeriesStr = series.find(m => m.RowPointer === $event).Description;\n                    part.MaterialSeriesStrCHS = series.find(m => m.RowPointer === $event).DescriptionCHS;\n                    part.MaterialFinish = '';\n                    part.MaterialFinishOption = '';\n                    status.isMainAnalysisCompleted = false;\n                    part.MaterialDimensions = {};\n                    part.PriceMOQ ? part.PriceMOQ = null : '';\n                  \"\n                />\n                <v-select\n                  v-model=\"part.MaterialFinishOption\"\n                  data-cy=\"finish-options-input-upload\"\n                  class=\"pb-2\"\n                  :items=\"options\"\n                  :rules=\"[v => options.length === 0 || isRequired(v)]\"\n                  :disabled=\"isCalculatingCost || isErrorDetected || !part.MaterialFinish || options.length === 0\"\n                  :label=\"$t('views.instantQuote.finishOption')\"\n                  :item-text=\"locale === 'en-US' ? getTranslationFinish('Description') : getTranslationFinish('DescriptionCHS')\"\n                  item-value=\"RowPointer\"\n                  dense\n                  hide-details\n                  outlined\n                  @change=\"\n                    part.MaterialFinishOptionStr = options.find(m => m.RowPointer === $event).Description;\n                    status.isMainAnalysisCompleted = false;\n                    part.PriceMOQ ? part.PriceMOQ = null : '';\n                  \"\n                />\n                <v-text-field\n                  v-if=\"showThreadField\"\n                  v-model.number=\"part.Threads\"\n                  class=\"d-flex\"\n                  data-cy=\"thread-input-upload\"\n                  min=\"0\"\n                  :max=\"noOfHoles\"\n                  :label=\"$t('views.instantQuote.threads')\"\n                  :disabled=\"isCalculatingCost || isErrorDetected\"\n                  type=\"number\"\n                  hide-details\n                  outlined\n                  dense\n                  @input.native=\"part.Threads = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false; addThreads(); \"\n                  @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n                />\n                <v-text-field\n                  v-if=\"showCounterboreField\"\n                  v-model.number=\"part.Counterbores\"\n                  class=\"d-flex pb-2 mt-2\"\n                  data-cy=\"counterbores-input-upload\"\n                  min=\"0\"\n                  :max=\"noOfHoles\"\n                  :label=\"$t('views.instantQuote.counterbores')\"\n                  :disabled=\"isCalculatingCost || isErrorDetected\"\n                  type=\"number\"\n                  hide-details\n                  outlined\n                  dense\n                  @input.native=\"part.Counterbores = Math.max(Math.abs(Math.trunc($event.target.value)), 0);status.isMainAnalysisCompleted = false; addCounterbores();\"\n                  @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n                />\n              </div>\n\n              <div>\n                <div class=\"pb-3\">\n                  <v-select\n                    v-if=\"isSheetMetalMachine || isDebugModeEnabled\"\n                    :value=\"part.MaterialThickness\"\n                    :items=\"thicknesses\"\n                    :rules=\"[isRequired]\"\n                    :disabled=\"isCalculatingCost || !part.MaterialSeries || isErrorDetected\"\n                    :label=\"$t('views.instantQuote.thickness')\"\n                    :item-text=\"locale === 'en-US' ? 'Description' : 'DescriptionCHS'\"\n                    item-value=\"_id\"\n                    data-cy=\"thickness-input-upload\"\n                    dense\n                    return-object\n                    hide-details\n                    outlined\n                    @change=\"\n                      part.MaterialThickness = $event._id;\n                      part.MaterialThicknessValue = generateThicknessFromCode($event.Code);\n                      part.MaterialThicknessStr = selectedThickness.Description;\n                      part.MaterialThicknessStrCHS = selectedThickness.DescriptionCHS;\n                      part.MaterialDimensions = {\n                        SheetLength: $event.SheetLength,\n                        SheetWidth: $event.SheetWidth,\n                      };\n                      part.MaterialFinish = '';\n                      part.MaterialFinishOption = '';\n                      status.isMainAnalysisCompleted = false;\n                      part.PriceMOQ ? part.PriceMOQ = null : '';\n                    \"\n                  />\n                  <v-select\n                    v-if=\"isTurningMachine\"\n                    v-model=\"part.Roughness\"\n                    data-cy=\"roughness-input-upload\"\n                    :disabled=\"isCalculatingCost || isErrorDetected\"\n                    :items=\"roughnessValues\"\n                    item-text=\"label\"\n                    item-value=\"value\"\n                    :label=\"`${$t('views.instantQuote.roughness')}`\"\n                    :rules=\"[isRequired]\"\n                    dense\n                    hide-details\n                    outlined\n                    @change=\"\n                      status.isMainAnalysisCompleted = false;\n                      part.PriceMOQ ? part.PriceMOQ = null : '';\n                    \"\n                  />\n                  <v-select\n                    v-model=\"part.Tolerance\"\n                    class=\"pb-2 mt-2\"\n                    data-cy=\"tolerances-input-upload\"\n                    :full-width=\"false\"\n                    :disabled=\"isCalculatingCost || isErrorDetected\"\n                    :items=\"toleranceValues\"\n                    item-text=\"label\"\n                    item-value=\"value\"\n                    :label=\"`${$t('views.instantQuote.tolerances')} \\xa0 \\xa0 \\xa0 \\xa0`\"\n                    :rules=\"[isRequired]\"\n                    dense\n                    hide-details\n                    outlined\n                    @change=\"\n                      status.isMainAnalysisCompleted = false;\n                      part.PriceMOQ ? part.PriceMOQ = null : '';\n                    \"\n                  />\n                  <v-tooltip top z-index=\"5\">\n                    <span v-if=\"isSheetMetalMachine\" v-html=\"$t('views.instantQuote.toleranceTooltip')\" />\n                    <span v-else>\n                      <v-simple-table dense style=\"background-color: transparent; color: inherit;\">\n                        <template v-slot:default>\n                          <thead>\n                            <tr>\n                              <th colspan=\"4\" class=\"text-uppercase text-center\" style=\"color: inherit;\">\n                                {{ $t('views.engineeringTools.tabs.processLimitations.linearDimensions') }}\n                              </th>\n                            </tr>\n                          </thead>\n                          <tbody class=\"text-center\">\n                            <tr>\n                              <td rowspan=\"2\" class=\"header\" style=\"width: 180px;\">\n                                {{ $t('views.engineeringTools.tabs.processLimitations.deviations') }}\n                              </td>\n                              <td colspan=\"3\" class=\"header\" style=\"width: 250px;\">\n                                {{ $t('views.engineeringTools.tabs.processLimitations.toleranceClass') }}\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"header\">\n                                {{ $t('views.engineeringTools.tabs.processLimitations.fineIso') }}<br>\n                                ({{ $t('views.engineeringTools.tabs.processLimitations.fine') }})\n                              </td>\n                              <td class=\"header\">\n                                {{ $t('views.engineeringTools.tabs.processLimitations.mediumIso') }}<br>\n                                ({{ $t('views.engineeringTools.tabs.processLimitations.medium') }})\n                              </td>\n                              <td class=\"header\">\n                                {{ $t('views.engineeringTools.tabs.processLimitations.coarseIso') }}<br>\n                                ({{ $t('views.engineeringTools.tabs.processLimitations.coarse') }})\n                              </td>\n                            </tr>\n                            <tr v-for=\"(item, index) in cncTurningLinearDimensions\" :key=\"index\">\n                              <td class=\"font-weight-bold text-left\">\n                                {{ item.deviations }}\n                              </td>\n                              <td>\n                                {{ item.fine }}\n                              </td>\n                              <td>\n                                {{ item.medium }}\n                              </td>\n                              <td>\n                                {{ item.coarse }}\n                              </td>\n                            </tr>\n                          </tbody>\n                        </template>\n                      </v-simple-table>\n                      <i>More details, please see Engineering tools/Process Detail</i>\n                    </span>\n                    <template #activator=\"{ on, attrs }\">\n                      <v-icon\n                        style=\"position: relative; top:-62px; right: -72px; cursor: pointer;\"\n                        class=\"mb-2\"\n                        v-bind=\"attrs\"\n                        color=\"primary\"\n                        v-on=\"on\"\n                      >\n                        mdi-information\n                      </v-icon>\n                    </template>\n                  </v-tooltip>\n                  <v-btn\n                    color=\"primary\"\n                    style=\"margin-top: -30px;\"\n                    data-cy=\"calculate-upload\"\n                    :disabled=\"!canCalculateCost\"\n                    :loading=\"isCalculatingCost\"\n                    outlined\n                    block\n                    @click.stop=\"errorArray;part.EstimateLineStatus.isMainAnalysisCompletedMsg = ''; part.need2dDrawing = needPdf; $emit('calculatecost', part)\"\n                  >\n                    {{ $t(part.EstimateLineStatus.isMainAnalysisEverCalled ? 'views.instantQuote.recalculateThis' : 'views.instantQuote.calculateThis') }}\n                  </v-btn>\n                </div>\n              </div>\n\n              <div>\n                <core-price-moq-table-unit-price-variation :part=\"part\" />\n              </div>\n            </div>\n          </v-form>\n        </div>\n      </div>\n\n      <div style=\"display: grid; grid-template-columns: 550px auto;\">\n        <div>\n          <v-btn\n            color=\"primary\"\n            text\n            data-cy=\"delete-upload\"\n            @click.stop=\"deleteDialog = true\"\n          >\n            <v-icon left>\n              mdi-delete\n            </v-icon>\n            {{ $t('common.delete') }}\n          </v-btn>\n          <core-upload-svg-drawing\n            v-if=\"needSvg\"\n            :part=\"part\"\n          />\n          <core-technical-drawing-pdf\n            v-if=\"needPdf\"\n            :part=\"part\"\n          />\n        </div>\n      </div>\n\n      <div v-if=\"isDebugModeEnabled\">\n        <span class=\"text-h6 font-weight-bold\">Add Custom Data to Engine Response</span>\n        <v-form ref=\"customDataToAddForm\" class=\"ma-2\" @submit.prevent=\"addCustomDataToEngineResponse\">\n          <v-row>\n            <v-text-field\n              v-model=\"customThreadCountToAdd\"\n              min=\"0\"\n              type=\"number\"\n              :rules=\"[isPositiveInteger]\"\n              class=\"mt-4\"\n              outlined\n              dense\n              label=\"Total Threads\"\n              placeholder=\"Enter total number of threaded holes\"\n              hide-details\n            />\n          </v-row>\n          <v-row>\n            <v-spacer />\n            <v-btn\n              color=\"primary\"\n              class=\"my-4\"\n              type=\"submit\"\n              :disabled=\"isPatchPending\"\n              :loading=\"isPatchPending\"\n              outlined\n            >\n              Add Custom Data\n            </v-btn>\n          </v-row>\n        </v-form>\n        <v-divider />\n        <pre>\n          {{ _.get(part, 'AnalysisData', 'No results') }}\n        </pre>\n        <v-divider />\n        <pre>\n          {{ _.get(part, 'PricingData', '{}') }}\n        </pre>\n        <v-divider />\n        <pre>\n          {{ _.get(part, 'SecondaryAnalysisData', 'No results') }}\n        </pre>\n        <img\n          v-if=\"twoDNestingResultSvgUrl\"\n          class=\"my-2\"\n          :src=\"twoDNestingResultSvgUrl\"\n          style=\"min-width: 100%;\"\n          alt=\"nestingEngineOutput\"\n        >\n      </div>\n    </v-card>\n\n    <core-dialog\n      v-if=\"deleteDialog\"\n      v-model=\"deleteDialog\"\n      type=\"confirmation\"\n      width=\"500px\"\n      data-cy=\"delete-dialog-upload\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"part.remove();\n                 deleteDialog = false;\"\n      @click:cancel=\"deleteDialog = false\"\n    >\n      <template #title>\n        {{ $t('views.instantQuote.deleteDialogTitle') }}\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <!-- There's gotta be a better way to handle linebreaks other than 'line1 <br> line2' -->\n          <span\n            class=\"d-block\"\n            v-html=\"$t('common.deleteDialogText', { name: part.CustFileName })\"\n          />\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-navigation-drawer\n      v-model=\"isGuideLineVisible\"\n      class=\"px-4\"\n      width=\"860\"\n      fixed\n      right\n      temporary\n      style=\"background-color:#f5f5f5; overflow-x: visible !important; z-index: 199 !important;\"\n    >\n      <div class=\"mt-3\" style=\"min-width:800px; overflow-x: visible !important;\">\n        <div class=\"d-flex justify-space-between\">\n          <span style=\"font-size: 16px\" class=\"d-flex mr-9 font-weight-medium\">{{\n            $t(\"sidePanelErrorAndWarning.title\")\n          }}</span>\n          <div class=\"caption mb-3\" style=\"width: 450px; line-height: 0 !important;\">\n            <v-icon left color=\"#B00020\" style=\"vertical-align: baseline\">\n              mdi-alert-circle-outline\n            </v-icon>\n            <div class=\"d-inline mb-0\">\n              <span style=\"vertical-align: super\" v-html=\"$t('sidePanelErrorAndWarning.errors')\" />\n            </div>\n\n            <p class=\"mb-1 mt-0\">\n              <v-icon style=\"vertical-align: sub\" left color=\"#C77500\">\n                mdi-alert-outline\n              </v-icon>\n              <span style=\"vertical-align: sub\" v-html=\"$t('sidePanelErrorAndWarning.warnings')\" />\n            </p>\n          </div>\n          <v-btn\n            class=\"justify-end ml-5 mt-0\"\n            icon\n            plain\n            text\n            x-large\n            @click=\"isGuideLineVisible = false\"\n          >\n            <v-icon left class=\"mb-7\">\n              mdi-close\n            </v-icon>\n          </v-btn>\n        </div>\n        <div>\n          <instantQuoteGuideLine />\n        </div>\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport ddlogger from '@/utils/logger';\nimport FormRules from '@/mixins/form-rules';\nimport instantQuoteGuideLine from '@/components/core/InstantQuoteGuideLine.vue';\nimport cncTurningLinearDimensionsTableValues from '@/mixins/cncTurningLinearDimensionsTableValues';\nimport countriesAllowForMexicoQuotation from '@/constants/countries';\n\nconst { Material, Finish, Company } = models.api;\n\nconst BEND_ERROR_CODE = 509;\n\nexport default {\n  name: 'UploadPartCard',\n  mixins: [\n    FormRules, cncTurningLinearDimensionsTableValues\n  ],\n  components: { instantQuoteGuideLine },\n\n  props: {\n    isDebugModeEnabled: Boolean,\n    part: Object,\n    retryUpload: Function,\n    minReqQty: { type: Number, default: 1 },\n  },\n\n  data() {\n    return {\n      errorArray: [],\n\n      isGuideLineVisible: false,\n      isMeshVisible: false,\n      fullScreen: false,\n      deleteDialog: false,\n      arePartOptionsValid: false,\n      ErrorAndWarningCodeMapping: {\n        200: 'Error',\n        201: 'Error',\n        202: 'Error',\n        203: 'Error',\n        401: 'Error',\n        301: 'Warning',\n        302: 'Warning',\n        303: 'Warning',\n        304: 'Warning',\n        410: 'Error',\n        413: 'Error',\n        414: 'Error',\n        415: 'Error',\n        402: 'Error',\n        411: 'Error',\n        412: 'Error',\n        420: 'Error',\n        322: 'Warning',\n        323: 'Warning',\n        321: 'Warning',\n        451: 'Warning',\n        450: 'Error',\n        416: 'Error',\n        417: 'Error',\n        418: 'Error',\n        306: 'Warning',\n        307: 'Warning',\n        500: 'Error',\n        501: 'Error',\n        502: 'Error',\n        503: 'Error',\n        504: 'Error',\n        505: 'Error',\n        506: 'Error',\n        507: 'Error',\n        508: 'Error',\n        509: 'Error',\n        419: 'Error',\n      },\n      customThreadCountToAdd: null,\n      timer: null,\n      currentTime: new Date(),\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n    ...mapState('auth', ['accessToken']),\n    ...mapState('temp-parts', ['isPatchPending']),\n    ...mapGetters('finishes', { findFinishes: 'find' }),\n    ...mapState('finishes', { isFinishesFindPending: 'isFindPending' }),\n\n    chinaFactoryId: () => parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10),\n    mexicoFactoryId: () => parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10),\n\n    company: () => Company.getFromStore(0),\n\n    isMexicoQuotationAllowed: vm => countriesAllowForMexicoQuotation.includes(vm.company.country),\n\n    status: vm => vm.part.EstimateLineStatus,\n\n    toleranceValues: vm => {\n      if (vm.isSheetMetalMachine) {\n        return [\n          {\n            label: vm.$t('views.instantQuote.tolerancestandard'),\n            value: 'Standard'\n          },\n          {\n            label: vm.$t('views.instantQuote.tolerancehigh'),\n            value: 'High Precision'\n          }\n        ];\n      }\n      return [\n        {\n          label: vm.$t('views.instantQuote.toleranceISO2768F'),\n          value: 'ISO2768F'\n        },\n        {\n          label: vm.$t('views.instantQuote.toleranceISO2768M'),\n          value: 'ISO2768M'\n        },\n        {\n          label: vm.$t('views.instantQuote.toleranceISO2768C'),\n          value: 'ISO2768C'\n        },\n      ];\n    },\n\n    roughnessValues: vm => [\n      {\n        label: vm.$t('views.instantQuote.roughnessMilled'),\n        value: '6.0'\n      },\n      {\n        label: vm.$t('views.instantQuote.roughnessStandard'),\n        value: '3.2'\n      },\n      {\n        label: vm.$t('views.instantQuote.roughnessFine'),\n        value: '1.6'\n      },\n      {\n        label: vm.$t('views.instantQuote.roughnessGrade'),\n        value: '0.8'\n      },\n    ],\n\n    detectedThickness: vm => {\n      if ((!vm.status.isManufacturable && !vm.status.isThicknessCalculated)) {\n        return 0;\n      }\n      return vm.part.AnalysisData.thickness;\n    },\n    checkThickness() {\n      return this.detectedThickness > 20;\n    },\n    detectedOuterDia: vm => {\n      if ((!vm.status.isManufacturable && !vm.status.isOuterDiaCalculated)) {\n        return 0;\n      }\n      return vm.part.AnalysisData.major_dia;\n    },\n    checkOuterDia() {\n      return !(this.detectedOuterDia > 5 && this.detectedOuterDia < 300);\n    },\n\n    isErrorDetected() {\n      const errorAndWarning = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n      return errorAndWarning.some(EandW => this.ErrorAndWarningCodeMapping[EandW.code] === 'Error');\n    },\n\n    canCalculateCost: vm => !vm.isErrorDetected\n      && vm.arePartOptionsValid\n      && !vm.isCalculatingCost\n      && vm.status.isManufacturable\n      && !vm.status.isMainAnalysisComplete,\n\n    // isCalculatingCost: ({ part, status }) => (part.isSavePending && !status.isMainAnalysisCompleted) || part.isMainAnalysisInProgress,\n    isCalculatingCost: ({ status }) => status.isMainAnalysisInProgress,\n\n    selectedThickness: vm => vm.thicknesses.find(t => t._id === vm.part.MaterialThickness),\n\n    uploadProgress: vm => _.get(vm.part, 'uploadProgress', 100),\n\n    isSheetMetalMachine: vm => vm.part.AnalysisData.machine === 'sheet-metal',\n\n    isTurningMachine: vm => vm.part.AnalysisData.machine === 'turning',\n\n    cncItems: vm => Material.findInStore({\n      query: {\n        IsHidden: false,\n        Process: 'RM-TURNING',\n        OutDia: { $gte: vm.part.AnalysisData.major_dia + 1 },\n      },\n    }).data,\n\n    cncSeries: vm => {\n      const uniqueParentRowPointers = new Set();\n      // Iterate through the data and add unique ParentRowPointers to the Set\n      vm.cncItems.forEach(item => {\n        uniqueParentRowPointers.add(item.ParentRowPointer);\n      });\n      return Material.findInStore({\n        query: {\n          RowPointer: {\n            $in: Array.from(uniqueParentRowPointers)\n          }\n        }\n      }).data;\n    },\n\n    cncMaterials: vm => {\n      const uniqueMaterialsRowPointers = new Set();\n      vm.cncSeries.forEach(item => {\n        uniqueMaterialsRowPointers.add(item.ParentRowPointer);\n      });\n      return Material.findInStore({\n        query: {\n          RowPointer: {\n            $in: Array.from(uniqueMaterialsRowPointers)\n          }\n        }\n      }).data;\n    },\n\n    materials: vm => {\n      if (vm.isSheetMetalMachine) {\n        return Material.findInStore({\n          query: {\n            FactoryId: vm.part.FactoryId,\n            ParentRowPointer: null,\n            IsHidden: false,\n            Process: 'LASER-RM'\n          },\n        }).data;\n      }\n      return vm.cncMaterials;\n    },\n\n    series: vm => {\n      if (!vm.part.Material) {\n        return [];\n      }\n      return Material.findInStore({\n        query: {\n          FactoryId: vm.part.FactoryId,\n          ParentRowPointer: vm.part.Material,\n          IsHidden: false,\n          $sort: { Rank: 1 },\n        },\n      }).data;\n    },\n\n    thicknesses() {\n      let additionalQuery = {};\n      if (!this.isSheetMetalMachine) {\n        additionalQuery = {\n          OutDia: { $gte: this.part.AnalysisData.major_dia + 1 },\n          InDia: null,\n          $sort: { OutDia: 1, Rank: 1 },\n          ParentRowPointer: this.part.MaterialSeries,\n        };\n      }\n      return this.part.MaterialSeries\n        ? Material.findInStore({\n          query: {\n            FactoryId: this.part.FactoryId,\n            ParentRowPointer: this.part.MaterialSeries,\n            IsHidden: false,\n            $sort: { Rank: 1 },\n            ...additionalQuery\n          },\n        }).data : [];\n    },\n\n    finishes() {\n      return Finish.findInStore({\n        query: {\n          FactoryId: this.part.FactoryId,\n          ParentRowPointer: this.part.MaterialThickness,\n        },\n      }).data;\n    },\n\n    legalFinishes() {\n      const legalFinishes = Finish.findInStore({\n        query: {\n          FactoryId: this.part.FactoryId,\n          ParentRowPointer: this.part.MaterialThickness,\n        },\n      }).data;\n\n      return this.finishes.filter(f => legalFinishes.find(lf => lf._id.endsWith(f._id)));\n    },\n\n    options() {\n      return this.part.MaterialThickness && this.part.MaterialFinish\n        ? Finish.findInStore({\n          query: {\n            FactoryId: this.part.FactoryId,\n            ParentRowPointer: this.part.MaterialFinish,\n            // _id: this.part.MaterialFinish,\n            IsHidden: false,\n          },\n        }).data\n        : [];\n    },\n\n    currentUploadStatus(vm) {\n      if (!(this.status.isMeshUploaded || this.status.isSvgUploaded) && this.part.uploadProgress && this.part.uploadProgress === 100) {\n        return `${vm.$t('common.analyzing')}...`;\n      }\n      if ((this.status.isMeshUploaded || this.status.isSvgUploaded) && !this.status.isMeshLoaded) {\n        return `${vm.$t('common.loading')}...`;\n      }\n      return `${vm.$t('common.uploading')}...`;\n    },\n\n    currentErrorMessage: vm => {\n      const { isDrawingUploadedMsg, isMeshUploadedMsg, isSvgUploadedMsg, isManufacturableMsg } = vm.status;\n      return isDrawingUploadedMsg || isMeshUploadedMsg || isManufacturableMsg || isSvgUploadedMsg;\n    },\n\n    priceRange() {\n      let returnData;\n      try {\n        returnData = JSON.parse(this.part.PriceMOQ);\n      } catch {\n        returnData = false;\n      }\n      return returnData;\n    },\n\n    customerPriceRange() {\n      if (!this.priceRange) {\n        return [];\n      }\n\n      const reqQtyPriceIndex = this.priceRange\n        .findIndex(range => range.Qty > this.part.ReqQty) - 1;\n\n      if (reqQtyPriceIndex < 0) {\n        return this.priceRange.slice(-1);\n      }\n      return this.priceRange\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n    },\n\n    sheetMetalInfoLabels(vm) {\n      const labels = {};\n      if (this.part) {\n        const bends = _.get(this.part, 'AnalysisData.no_of_bends', 0);\n        const holes = _.get(this.part, 'AnalysisData.no_of_holes', 0);\n        const threads = _.get(this.part, 'AnalysisData.threads', []);\n        const countersink = _.get(this.part, 'AnalysisData.countersink_sizes', []);\n        const counterbore = _.get(this.part, 'AnalysisData.counterbore_sizes', []);\n        const laserEngraved = _.get(this.part, 'AnalysisData.laser_engraved_holes', []);\n        const laserEngravedDepth = _.get(this.part, 'AnalysisData.laser_engraved_hole_depth', undefined);\n\n        if (bends) {\n          labels.bendsInfoLabel = bends;\n        }\n        if (this.part.is2dModel && bends === 0) {\n          labels.bendsInfoLabel = bends;\n        }\n\n        if (holes) {\n          labels.holesInfoLabel = holes;\n        }\n        if (threads.length) {\n          if (this.part.Threads) {\n            // For custom threads, no need to show Thread type, only show thread count\n            const threadCount = threads.reduce((accumulator, item) => accumulator + item[1], 0);\n            labels.threadsInfoLabel = threadCount;\n          } else {\n            const supportedThreads = threads.filter(th => !(th[0] === 0 || th[0] === 1 || th[0] === -1));\n            const unsupportedThreads = threads.filter(th => (th[0] === 0 || th[0] === 1 || th[0] === -1));\n            const threadLabel = supportedThreads.map(([item, count]) => `${count} ${vm.$t('common.pieces')} ${item.split(' ')[0]}`);\n            if (unsupportedThreads.length) {\n              threadLabel.push(`${unsupportedThreads.length} ${vm.$t('common.pieces')} ${vm.$t('common.unsupported')}`);\n            }\n            labels.threadsInfoLabel = threadLabel.join(', ').replace(/, ([^,]*)$/, ` ${vm.$t('common.andSymbol')} $1`);\n          }\n        }\n        if (countersink.length) {\n          labels.countersinkInfoLabel = countersink.reduce((accumulator, item) => accumulator + item[2], 0);\n        }\n        if (counterbore.length) {\n          labels.counterboreInfoLabel = counterbore.reduce((accumulator, item) => accumulator + item[2], 0);\n        }\n        if (laserEngraved.length) {\n          labels.laserEngravedInfoLabel = laserEngravedDepth ? `${parseFloat(laserEngravedDepth).toFixed(2)}mm` : '';\n        }\n      }\n      return labels;\n    },\n\n    turningInfoLabels() {\n      const labels = {};\n      if (this.part) {\n        const holes = _.get(this.part, 'AnalysisData.holes', 0);\n        if (holes) {\n          labels.holesInfoLabel = holes;\n        }\n        const chamfer = _.get(this.part, 'AnalysisData.chamfer', 0);\n        if (chamfer) {\n          labels.chamfersInfoLabel = chamfer;\n        }\n\n        const internalFillets = _.get(this.part, 'AnalysisData.internal_fillets', 0);\n        const externalFillets = _.get(this.part, 'AnalysisData.external_fillets', 0);\n        if (internalFillets || externalFillets) {\n          labels.filletsInfoLabel = parseInt(internalFillets, 10) + parseInt(externalFillets, 10);\n        }\n\n        const millings = _.get(this.part, 'AnalysisData.machine_millings', 0);\n        if (millings) {\n          labels.millingsInfoLabel = millings;\n        }\n\n        const threadsOnXAxis = _.get(this.part, 'AnalysisData.threads_on_x_axis', 0);\n        const threadsOnYAxis = _.get(this.part, 'AnalysisData.threads_on_y_axis', 0);\n        if (threadsOnXAxis || threadsOnYAxis) {\n          labels.threadsInfoLabel = parseInt(threadsOnXAxis, 10) + parseInt(threadsOnYAxis, 10);\n        }\n      }\n\n      const counterbore = _.get(this.part, 'AnalysisData.counterbore', 0);\n      if (counterbore) {\n        labels.counterboreInfoLabel = counterbore;\n      }\n\n      const countersink = _.get(this.part, 'AnalysisData.countersink', 0);\n      if (countersink) {\n        labels.countersinkInfoLabel = countersink;\n      }\n\n      return labels;\n    },\n\n    infoLabels(vm) {\n      if (vm.isSheetMetalMachine) {\n        return vm.sheetMetalInfoLabels;\n      }\n      if (vm.isTurningMachine) {\n        return vm.turningInfoLabels;\n      }\n      return {};\n    },\n\n    needSvg(vm) {\n      const laserEngraving = _.get(this.part, 'AnalysisData.laser_engraved_holes', []);\n      return vm.isSheetMetalMachine && laserEngraving.length > 0;\n    },\n\n    needPdf() {\n      if (!this.part.isSheetMetalPart) {\n        return false;\n      }\n      if (this.part.is2dModel && (this.part.Threads > 0 || this.part.Countersinks > 0 || this.part.Counterbores > 0)) {\n        return true;\n      }\n      return this.part.Threads !== this.part.OriginalThreadsFound;\n    },\n    noOfHoles: vm => _.get(vm.part, 'AnalysisData.no_of_holes', 0),\n    showBendField() {\n      return this.part.isSheetMetalPart && this.part.is2dModel;\n    },\n    showThreadField() {\n      return this.part.isSheetMetalPart && this.noOfHoles > 0;\n    },\n    showCountersinkField() {\n      return this.part.isSheetMetalPart && this.part.is2dModel && this.noOfHoles > 0;\n    },\n    showCounterboreField() {\n      return this.part.isSheetMetalPart && this.part.is2dModel && this.noOfHoles > 0;\n    },\n\n    isEngineDetectionError() {\n      const errorsAndWarnings = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n      return errorsAndWarnings.some(item => item.code === 203);\n    },\n    isMaxBendError() {\n      const errorsAndWarnings = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n      return errorsAndWarnings.some(item => item.code === BEND_ERROR_CODE);\n    },\n\n    isOdooError() {\n      return this.status.isMainAnalysisCompletedMsg && this.status.isMainAnalysisCompletedMsg.startsWith('Odoo.Error.');\n    },\n\n    odooErrorMessage() {\n      if (!this.isOdooError) {\n        return '';\n      }\n      // eslint-disable-next-line camelcase\n      const { message, message_cn, parameters, parameters_cn } = this.status.OdooError;\n      // eslint-disable-next-line camelcase\n      const msg = this.locale === 'cn' ? message_cn : message;\n      // eslint-disable-next-line camelcase\n      const prms = this.locale === 'cn' ? parameters_cn : parameters;\n\n      const newParameters = {};\n\n      for (const [key, value] of Object.entries(prms)) {\n        if (Array.isArray(value)) {\n          newParameters[key] = `<ul>${value.map(error => `<li>${error}</li>`).join('')}</ul>`;\n        } else {\n          newParameters[key] = value;\n        }\n      }\n\n      // Use a regular expression to find placeholders in the form of {key}\n      return msg.replace(/{(.*?)}/g, (match, key) =>\n        // Return the corresponding value from parameters or the original match if not found\n        // eslint-disable-next-line implicit-arrow-linebreak\n        (newParameters[key] !== undefined ? newParameters[key] : match));\n    },\n\n    twoDNestingResultSvgUrl: vm => {\n      const host = process.env.VUE_APP_API_URL;\n      if (vm.status.isSvgNestedUploadedCsi) {\n        const fileName = `${vm.part.DrawingRowPointer.toLowerCase()}-2dNested.SVG`;\n        return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}/File?updatedAt=${vm.part.updatedAt}`;\n      }\n      return null;\n    },\n\n    showWaitingInfoLabel() {\n      const createdAtString = this.part.createdAt;\n      const createdAt = new Date(createdAtString);\n      const now = this.currentTime;\n      const timeDifference = now - createdAt;\n      const threeMinutesInMilliseconds = 3 * 60 * 1000;\n\n      const isOlderThanThreeMinutes = timeDifference > threeMinutesInMilliseconds;\n      const isStatusIncomplete = !(this.status.isMeshUploaded || this.status.isSvgUploaded || this.currentErrorMessage);\n      if (this.timer) {\n        if (!isStatusIncomplete || isOlderThanThreeMinutes) {\n          this.clearTimer();\n        }\n      }\n\n      return isOlderThanThreeMinutes && isStatusIncomplete;\n    },\n\n    showReRunAsTurningButton() {\n      const errors = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n      return errors.some(error => [412, 416].includes(error.code));\n    }\n  },\n\n  watch: {\n    selectedThickness: {\n      immediate: true,\n      handler(thickness) {\n        if (thickness) {\n          this.part.MaterialThicknessStr = thickness.Description;\n          this.part.MaterialThicknessStrCHS = thickness.DescriptionCHS;\n          this.part.RawMaterial = thickness ? thickness.Item : '';\n          this.fetchFinishes();\n        }\n      },\n    },\n\n    'part.MaterialSeries': {\n      handler() {\n        if (this.part.is2dModel) {\n          return;\n        }\n        this.selectClosestAvailableThickness();\n      },\n    },\n\n    currentErrorMessage: {\n      immediate: true,\n      handler(newMsg, oldMsg) {\n        if (!(newMsg && !oldMsg)) {\n          return;\n        }\n        ddlogger.logger.error('error', {\n          action: 'uploadpart',\n          error: newMsg,\n          type: 'TempPart',\n          author: this.createdById,\n        });\n      }\n    },\n\n    'part.AnalysisData.no_of_bends': {\n      immediate: true,\n      handler(newVal) {\n        if (process.env.VUE_APP_API_URL.includes('b2b-api') && this.part.is2dModel) {\n          if (newVal > 0) {\n            const currentErrors = _.get(this.part, 'AnalysisData.errors_and_warnings', []);\n            if (!currentErrors.some(error => error.code === BEND_ERROR_CODE)) {\n              this.$set(this.part.AnalysisData, 'errors_and_warnings', [\n                ...currentErrors,\n                {\n                  code: BEND_ERROR_CODE,\n                  details: 'Not allowed to have more than 2 bends for DXF files'\n                }\n              ]);\n            }\n          } else {\n            this.$set(\n              this.part.AnalysisData,\n              'errors_and_warnings',\n              this.part.AnalysisData.errors_and_warnings.filter(error => error.code !== BEND_ERROR_CODE)\n            );\n          }\n        }\n      },\n    },\n  },\n\n  mounted() {\n    this.timer = setInterval(() => {\n      this.currentTime = new Date();\n    }, 10000);\n  },\n\n  beforeDestroy() {\n    this.clearTimer();\n  },\n\n  methods: {\n    ...mapActions('parts', { updatePart: 'update' }),\n\n    checkTranslation(translation) {\n      const words = ['Process', '请查看工艺细节指南'];\n      return words.some(word => translation.includes(word));\n    },\n    removeLinklabel(string) {\n      return string.replace(this.$t('CSIError.ProcessLimitations.LinkLabel'), '');\n    },\n    checkErrorMessage(errorValue) {\n      const error = errorValue.replace(' - ', ' ').trim();\n      const errorArray = error.split(' ');\n      return errorArray.length > 1;\n    },\n    errorFormat(errorValue) {\n      const errorArray = errorValue.replace(' - ', ' ').trim().split(' ');\n      const errorTitle = this.$t(errorArray.shift());\n      let bulletError = '';\n      errorArray.forEach(errorElt => {\n        bulletError += `<li>${this.$t(errorElt.trim())}</li>`;\n      });\n      return `${errorTitle}<ul>${bulletError}</ul>`;\n    },\n    getTranslationSeries(value) {\n      return v => v[value].replace(this.$refs.materialSelector.selectedItems[0].Description, '');\n    },\n    getTranslationFinish(value) {\n      return v => v[value].replace(`${this.$refs.finishSelector.selectedItems[0][value]}} - `, '');\n    },\n    fetchFinishes() {\n      Finish.find({\n        query: {\n          FactoryId: this.part.FactoryId,\n          Item: this.selectedThickness.Item,\n          thicknessId: this.selectedThickness._id,\n        },\n      });\n    },\n    uploadThumbnail() {\n      if (this.status.isThumbnailUploaded) {\n        return;\n      }\n\n      try {\n        this.$nextTick(async () => {\n          this.isMeshVisible = true;\n          const canvas = this.$el.getElementsByTagName('canvas')[0];\n          const image = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));\n\n          const fd = new FormData();\n          fd.append('file', image, `${this.part.DrawingRowPointer}.PNG`);\n          const uploadUrl = `${process.env.VUE_APP_API_URL}upload`;\n\n          await fetch(uploadUrl, {\n            method: 'POST',\n            headers: {\n              Authorization: this.accessToken,\n            },\n            body: fd,\n          });\n\n          await this.part.save({\n            data: {\n              'EstimateLineStatus.isThumbnailUploaded': true,\n            },\n          });\n        });\n      } catch (e) {\n        console.error(e);\n      }\n    },\n    generateCodeFromThickness(thickness) {\n      /**\n       * Mapping of thickness codes to their descriptions:\n       * T1500 -> T=15.00mm\n       * T1350 -> T=13.50mm\n       * T1200 -> T=12.00mm\n       * T800 -> T=8.00mm\n       * T1000 -> T=10.00mm\n       * T950 -> T=9.50mm\n       * T020 -> T=0.20mm\n       * T150 -> T=1.50mm\n       * T550 -> T=5.50mm\n       * T635 -> T=6.35mm\n       * T1270 -> T=12.70mm\n       * T1587 -> T=15.87mm\n       * T200 -> T=2.00mm\n       * T235 -> T=2.35mm\n       * T650 -> T=6.50mm\n       * T160 -> T=1.60mm\n       * T180 -> T=1.80mm\n       * T2000 -> T=20.00mm\n       * T1600 -> T=16.00mm\n       * T275 -> T=2.75mm\n       * T020 -> T=0.20mm\n       * T700 -> T=7.00mm\n       * T350 -> T=3.5mm\n       * T060 -> T=0.60mm\n       * T070 -> T=0.70mm\n       * T080 -> T=0.80mm\n       * T090 -> T=0.90mm\n       * T100 -> T=1.00mm\n       * T120 -> T=1.20mm\n       * T130 -> T=1.30mm\n       * T250 -> T=2.50mm\n       * T300 -> T=3.00mm\n       * T320 -> T=3.20mm\n       * T500 -> T=5.00mm\n       * T575 -> T=5.75mm\n       * T600 -> T=6.00mm\n       * T375 -> T=3.75mm\n       * T400 -> T=4.00mm\n       * T450 -> T=4.50mm\n       * T476 -> T=4.76mm\n       * T050 -> T=0.50mm\n       */\n      const thicknessValue = Math.round(thickness * 100);\n      const digits = thicknessValue < 1000 ? 3 : 4;\n      const code = `T${thicknessValue.toString().padStart(digits, '0')}`;\n      return code;\n    },\n    generateThicknessFromCode(code) {\n      // Remove the leading 'T' and parse the remaining string as a float\n      const thicknessValue = parseFloat(code.slice(1)) / 100;\n      return thicknessValue;\n    },\n    selectClosestAvailableThickness() {\n      if (this.detectedThickness === 0 || _.isEmpty(this.thicknesses)) {\n        return;\n      }\n      if (this.isSheetMetalMachine) {\n        const code = this.generateCodeFromThickness(this.detectedThickness);\n        const matchedThickness = this.thicknesses.find(t => t.Code === code);\n        if (matchedThickness) {\n          this.part.MaterialThickness = matchedThickness._id;\n          this.part.MaterialThicknessStr = matchedThickness.Description;\n          this.part.MaterialDimensions = {\n            SheetWidth: matchedThickness.SheetWidth,\n            SheetLength: matchedThickness.SheetLength\n          };\n          this.part.MaterialThicknessValue = this.generateThicknessFromCode(matchedThickness.Code);\n        }\n      } else {\n        const [closestToDetected] = this.thicknesses\n          .map(t => {\n            const thickness = parseFloat(t.OutDia);\n            return { thickness, ...t };\n          })\n          .sort(th => th.thickness);\n        this.part.MaterialThickness = closestToDetected._id;\n        this.part.MaterialThicknessStr = closestToDetected.Description;\n      }\n    },\n    checkIfErrorIsExiste(errorCode) {\n      return _.get(this.part, 'AnalysisData.errors_and_warnings', []).some(i => i.code === errorCode);\n    },\n\n    addCustomDataToEngineResponse() {\n      const valid = this.$refs.customDataToAddForm.validate();\n      if (!valid) {\n        return;\n      }\n      const threadToAdd = 'M3x0.5';\n      const threads = [[threadToAdd, parseInt(this.customThreadCountToAdd, 10)]];\n      this.part.patch({ data: { 'AnalysisData.threads': threads } });\n    },\n\n    addThreads() {\n      const threadToAdd = 'M3x0.5';\n      let threads = [];\n      if (this.part.Threads > 0) {\n        threads = [[threadToAdd, this.part.Threads]];\n      }\n      this.part.AnalysisData = { ...this.part.AnalysisData, threads };\n    },\n\n    addCountersinks() {\n      let countersinks = [];\n      if (this.part.Countersinks > 0) {\n        countersinks = [[0, 0, this.part.Countersinks]];\n      }\n      this.part.AnalysisData = { ...this.part.AnalysisData, countersink_sizes: countersinks };\n    },\n\n    addCounterbores() {\n      let counterbores = [];\n      if (this.part.Counterbores) {\n        counterbores = [[[0, 0], [0, 0], this.part.Counterbores]];\n      }\n      this.part.AnalysisData = { ...this.part.AnalysisData, counterbores_sizes: counterbores };\n    },\n\n    clearTimer() {\n      if (this.timer) {\n        clearInterval(this.timer);\n        this.timer = null;\n      }\n    },\n\n    resetPartFormFields() {\n      this.part.Material = '';\n      this.part.MaterialStr = '';\n      this.part.MaterialStrCHS = '';\n      this.part.MaterialCategory = '';\n      this.part.MaterialSeries = '';\n      this.part.MaterialSeriesStr = '';\n      this.part.MaterialThickness = '';\n      this.part.MaterialThicknessValue = null;\n      this.part.MaterialThicknessStr = '';\n      this.part.MaterialFinish = '';\n      this.part.MaterialFinishStr = '';\n      this.part.MaterialFinishOption = '';\n      this.part.MaterialFinishOptionStr = '';\n      this.status.isMainAnalysisCompleted = false;\n      this.part.MaterialDimensions = {};\n    }\n\n  },\n};\n</script>\n\n<style scoped>\n.calculateCostOk {\n  color: #2c984e;\n}\n\n.center-right {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  justify-content: center;\n}\n\npre {\n  white-space: pre-wrap;\n}\n\nth {\n  height: auto;\n}\n\n.inputHeight::v-deep .v-input__control {\n  min-height: 20px !important;\n}\n\n::v-deep .v-text-field__details {\n  margin-bottom: 0 !important;\n}\n\n::v-deep .v-input__prepend-outer {\n  margin: 4px 4px 4px 0 !important;\n}\n\n::v-deep .v-list-item {\n  min-height: 30px;\n}\n\n.text-field ::v-deep .v-input__slot input {\n  padding: 0 !important;\n}\n\n.text-field ::v-deep .v-input__slot {\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n}\n\n.v-input__control {\n  min-height: 10px !important;\n}\n\n.hidden {\n  visibility: hidden;\n}\n\n.slide-fade-enter-active {\n  transition: all .3s ease;\n}\n\n.slide-fade-leave-active {\n  transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);\n}\n\n.slide-fade-enter, .slide-fade-leave-to {\n  transform: translateX(10px);\n  opacity: 0;\n}\n\n.part-thumbnail:hover {\n  cursor: pointer;\n}\n\n::v-deep .v-skeleton-loader__avatar {\n  width: 150px !important;\n  height: 150px !important;\n}\n\n::v-deep .v-input--radio-group__input {\n  display: flex;\n  justify-content: center;\n}\n\n.blip {\n  border-radius: 50%;\n  box-shadow: 0 0 0 0 rgba(51, 217, 178, 1);\n  height: 20px;\n  width: 20px;\n  transform: scale(1);\n  animation: pulse-green 2s infinite;\n}\n\n.blip-3d {\n  border-radius: 50%;\n  box-shadow: 0 0 0 0 rgba(51, 217, 178, 1);\n  height: 150px;\n  width: 150px;\n  animation: pulse-green 2s infinite;\n}\n\n@keyframes pulse-green {\n  0% {\n    box-shadow: 0 0 0 0 rgba(51, 217, 178, 0.7);\n  }\n\n  70% {\n    box-shadow: 0 0 0 10px rgba(51, 217, 178, 0);\n  }\n\n  100% {\n    box-shadow: 0 0 0 0 rgba(51, 217, 178, 0);\n  }\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadPartCard.vue?vue&type=template&id=0f966d25&scoped=true&\"\nimport script from \"./UploadPartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadPartCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UploadPartCard.vue?vue&type=style&index=0&id=0f966d25&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0f966d25\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCol,VContainer,VDivider,VForm,VIcon,VNavigationDrawer,VProgressLinear,VRadio,VRadioGroup,VRow,VSelect,VSimpleTable,VSpacer,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticStyle:{\"background-color\":\"#616161\"},attrs:{\"rounded\":\"\",\"width\":\"95%\",\"min-width\":\"1118\",\"height\":\"101px\",\"color\":\"#F9F9F9\",\"outlined\":\"\"}},[_c('v-card-text',{staticStyle:{\"color\":\"#FFFFFF\"}},[_c('v-row',[_c('img',{staticClass:\"mt-n8 ml-1\",attrs:{\"src\":\"/img/welcomeScreen/icon-referral-speaker.svg\"}}),_c('div',{staticClass:\"ml-4 mt-2 text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.titleLabel1'))+\" \")]),_c('div',{staticClass:\"mx-4 mt-1 text-h4 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.titleLabel2'))+\" \")]),_c('div',{staticClass:\"mt-2 text-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.titleLabel3'))+\" \")]),_c('v-btn',{staticClass:\"ml-4 mt-1\",attrs:{\"color\":\"primary\",\"large\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.dialog=true}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.referNow'))+\" \")])],1),_c('v-row',{staticClass:\"ml-12 mt-n4\"},[_c('div',{staticClass:\"ml-12 pl-8 text-body-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenReferralBanner.referNote'))+\" \")])])],1),_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"ok-button-text\":'Refer Now',\"width\":\"619px\",\"persistent\":\"\",\"is-loading\":_vm.isCreatePending},on:{\"click:ok\":_vm.onActionButtonClicked,\"click:cancel\":_vm.cancelReferralDialog},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.heading'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"text-body-1\",staticStyle:{\"text-align\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.subHeading1'))),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.subHeading2'))+\" \")]),_c('v-form',{ref:\"referralForm\",on:{\"input\":function($event){return _vm.$emit('validityChange', $event)}},model:{value:(_vm.isReferralValid),callback:function ($$v) {_vm.isReferralValid=$$v},expression:\"isReferralValid\"}},[_c('v-row',[_c('v-col',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-address-name-input\",\"placeholder\":_vm.$t('common.firstName'),\"label\":_vm.$t('common.firstName'),\"rules\":[_vm.isRequired],\"outlined\":\"\"},model:{value:(_vm.referral.firstName),callback:function ($$v) {_vm.$set(_vm.referral, \"firstName\", $$v)},expression:\"referral.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"60\",\"data-cy\":\"new-address-name-input\",\"placeholder\":_vm.$t('common.lastName'),\"label\":_vm.$t('common.lastName'),\"rules\":[_vm.isRequired],\"outlined\":\"\"},model:{value:(_vm.referral.lastName),callback:function ($$v) {_vm.$set(_vm.referral, \"lastName\", $$v)},expression:\"referral.lastName\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"maxlength\":\"128\",\"data-cy\":\"new-address-email-input\",\"placeholder\":_vm.$t('form.address.fields.email'),\"label\":_vm.$t('form.address.fields.email'),\"rules\":[_vm.isRequired, _vm.isEmail],\"outlined\":\"\"},model:{value:(_vm.referral.email),callback:function ($$v) {_vm.$set(_vm.referral, \"email\", $$v)},expression:\"referral.email\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.isRequired],\"label\":_vm.$t('views.settings.tabs.company.name'),\"placeholder\":_vm.$t('views.settings.tabs.company.name'),\"outlined\":\"\"},model:{value:(_vm.referral.company),callback:function ($$v) {_vm.$set(_vm.referral, \"company\", $$v)},expression:\"referral.company\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.signUp.termsAndConditions'))+\" \")]),_c('ul',{staticClass:\"caption font-italic\"},[_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint1'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint2'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint3'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint4'))+\" \")]),_c('li',[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.referralScreenDialog.t&cPoint5'))+\" \")])])])],1)],1)],1)],1)]},proxy:true}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    rounded\n    width=\"95%\"\n    min-width=\"1118\"\n    height=\"101px\"\n    color=\"#F9F9F9\"\n    outlined\n    style=\"background-color: #616161\"\n  >\n    <v-card-text style=\"color: #FFFFFF\">\n      <v-row>\n        <img\n          class=\"mt-n8 ml-1\"\n          src=\"/img/welcomeScreen/icon-referral-speaker.svg\"\n        >\n        <div class=\"ml-4 mt-2 text-h5 font-weight-bold\">\n          {{ $t('views.dashboard.welcomeScreenReferralBanner.titleLabel1') }}\n        </div>\n        <div class=\"mx-4 mt-1 text-h4 font-weight-bold\">\n          {{ $t('views.dashboard.welcomeScreenReferralBanner.titleLabel2') }}\n        </div>\n        <div class=\"mt-2 text-h5 font-weight-bold\">\n          {{ $t('views.dashboard.welcomeScreenReferralBanner.titleLabel3') }}\n        </div>\n        <v-btn\n          class=\"ml-4 mt-1\"\n          color=\"primary\"\n          large\n          @click.stop=\"dialog=true\"\n        >\n          {{ $t('views.dashboard.welcomeScreenReferralBanner.referNow') }}\n        </v-btn>\n      </v-row>\n      <v-row class=\"ml-12 mt-n4\">\n        <div class=\"ml-12 pl-8 text-body-2\">\n          {{ $t('views.dashboard.welcomeScreenReferralBanner.referNote') }}\n        </div>\n      </v-row>\n    </v-card-text>\n    <core-dialog\n      v-model=\"dialog\"\n      type=\"confirmation\"\n      :ok-button-text=\"'Refer Now'\"\n      width=\"619px\"\n      persistent\n      :is-loading=\"isCreatePending\"\n      @click:ok=\"onActionButtonClicked\"\n      @click:cancel=\"cancelReferralDialog\"\n    >\n      <template #title>\n        {{ $t('views.dashboard.referralScreenDialog.heading') }}\n      </template>\n\n      <template #content>\n        <div class=\"text-body-1\" style=\"text-align: center;\">\n          {{ $t('views.dashboard.referralScreenDialog.subHeading1') }}<br>\n          {{ $t('views.dashboard.referralScreenDialog.subHeading2') }}\n        </div>\n        <v-form\n          ref=\"referralForm\"\n          v-model=\"isReferralValid\"\n          @input=\"$emit('validityChange', $event)\"\n        >\n          <v-row>\n            <v-col>\n              <v-row>\n                <v-col cols=\"6\">\n                  <v-text-field\n                    v-model=\"referral.firstName\"\n                    maxlength=\"60\"\n                    data-cy=\"new-address-name-input\"\n                    :placeholder=\"$t('common.firstName')\"\n                    :label=\"$t('common.firstName')\"\n                    :rules=\"[isRequired]\"\n                    outlined\n                  />\n                </v-col>\n                <v-col cols=\"6\">\n                  <v-text-field\n                    v-model=\"referral.lastName\"\n                    maxlength=\"60\"\n                    data-cy=\"new-address-name-input\"\n                    :placeholder=\"$t('common.lastName')\"\n                    :label=\"$t('common.lastName')\"\n                    :rules=\"[isRequired]\"\n                    outlined\n                  />\n                </v-col>\n              </v-row>\n              <v-row>\n                <v-col cols=\"12\">\n                  <v-text-field\n                    v-model=\"referral.email\"\n                    maxlength=\"128\"\n                    data-cy=\"new-address-email-input\"\n                    :placeholder=\"$t('form.address.fields.email')\"\n                    :label=\"$t('form.address.fields.email')\"\n                    :rules=\"[isRequired, isEmail]\"\n                    outlined\n                  />\n                </v-col>\n              </v-row>\n              <v-row>\n                <v-col cols=\"12\">\n                  <v-text-field\n                    v-model=\"referral.company\"\n                    :rules=\"[isRequired]\"\n                    :label=\"$t('views.settings.tabs.company.name')\"\n                    :placeholder=\"$t('views.settings.tabs.company.name')\"\n                    outlined\n                  />\n                </v-col>\n              </v-row>\n              <v-row>\n                <v-col cols=\"12\">\n                  <div class=\"font-weight-bold\">\n                    {{ $t('views.signUp.termsAndConditions') }}\n                  </div>\n                  <ul class=\"caption font-italic\">\n                    <li>\n                      {{ $t('views.dashboard.referralScreenDialog.t&cPoint1') }}\n                    </li>\n                    <li>\n                      {{ $t('views.dashboard.referralScreenDialog.t&cPoint2') }}\n                    </li>\n                    <li>\n                      {{ $t('views.dashboard.referralScreenDialog.t&cPoint3') }}\n                    </li>\n                    <li>\n                      {{ $t('views.dashboard.referralScreenDialog.t&cPoint4') }}\n                    </li>\n                    <li>\n                      {{ $t('views.dashboard.referralScreenDialog.t&cPoint5') }}\n                    </li>\n                  </ul>\n                </v-col>\n              </v-row>\n            </v-col>\n          </v-row>\n        </v-form>\n      </template>\n    </core-dialog>\n  </v-card>\n</template>\n\n<script>\nimport { mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport FormRules from '@/mixins/form-rules';\n\nconst { Referral } = models.api;\n\nexport default {\n  name: 'WelcomeScreenReferral',\n  mixins: [\n    FormRules,\n  ],\n  data: () => ({\n    dialog: false,\n    isReferralValid: false,\n    referral: new Referral(),\n  }),\n  computed: {\n    ...mapGetters('auth', { loggedInUser: 'user' }),\n    ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n    ...mapState('referrals', ['isCreatePending']),\n    userCanQuote: ({ loggedInUser }) => loggedInUser && (loggedInUser.isAdmin || _.get(loggedInUser, 'rights.instantQuote', false)),\n  },\n  methods: {\n    async onActionButtonClicked() {\n      const valid = this.$refs.referralForm.validate();\n      if (valid) {\n        await this.referral.save({ notificationMessage: this.$t('views.dashboard.referralScreenDialog.referralSentMessage') });\n        this.cancelReferralDialog();\n      }\n    },\n    cancelReferralDialog() {\n      this.dialog = false;\n      this.referral = new Referral();\n    }\n  },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenReferral.vue?vue&type=template&id=2e69ff57&scoped=true&\"\nimport script from \"./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenReferral.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2e69ff57\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VForm,VRow,VTextField})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'rfqs';\n\nconst Model = class Rfq extends BaseModel {\n  static modelName = 'Rfq';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n\n  static setupInstance(data) {\n    if (data.ExpiryDate) {\n      data.ExpiryDate = new Date(data.ExpiryDate);\n    }\n    if (data.CreateDate) {\n      data.CreateDate = new Date(data.CreateDate);\n    }\n    return data;\n  }\n\n  get formattedCreateDate() {\n    return moment(this.CreateDate).format('MMM D, YYYY');\n  }\n\n  get formattedExpiryDate() {\n    return moment(this.ExpiryDate).format('MMM D, YYYY');\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{staticClass:\"py-0\"},[_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('(###) ###-####'),expression:\"'(###) ###-####'\"}],attrs:{\"label\":_vm.$t('common.number'),\"placeholder\":_vm.$t(\"form.phone.placeholders.number\"),\"rules\":[_vm.notEmptyRules]},on:{\"change\":function($event){return _vm.$emit('change')}},model:{value:(_vm.data.PhoneOffice),callback:function ($$v) {_vm.$set(_vm.data, \"PhoneOffice\", $$v)},expression:\"data.PhoneOffice\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-col class=\"py-0\">\n    <v-row>\n      <v-col class=\"py-0\">\n        <v-text-field\n          v-model=\"data.PhoneOffice\"\n          v-mask=\"'(###) ###-####'\"\n          :label=\"$t('common.number')\"\n          :placeholder=\"$t(`form.phone.placeholders.number`)\"\n          :rules=\"[notEmptyRules]\"\n          @change=\"$emit('change')\"\n        />\n      </v-col>\n\n      <!-- <v-col class=\"py-0\" cols=\"3\">\n        <v-text-field\n          v-model=\"data.phoneExt\"\n          :label=\"$t('form.phone.fields.ext')\"\n          :placeholder=\"$t(`form.phone.placeholders.extension`)\"\n        />\n      </v-col> -->\n    </v-row>\n  </v-col>\n</template>\n\n<script>\nimport EditFormMixin from '../../mixins/editForm';\n\nexport default {\n  mixins: [\n    EditFormMixin,\n  ],\n\n  data() {\n    return {\n      notEmptyRules: value => (!!value || 'Cannot be empty'),\n    };\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Phone.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Phone.vue?vue&type=template&id=70aadae4&\"\nimport script from \"./Phone.vue?vue&type=script&lang=js&\"\nexport * from \"./Phone.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VTextField})\n","var map = {\n\t\"./account-statements.js\": \"84ab\",\n\t\"./app.js\": \"3800\",\n\t\"./auth.js\": \"889e\",\n\t\"./company.js\": \"111e\",\n\t\"./contacts.js\": \"00c3\",\n\t\"./countries.js\": \"229d\",\n\t\"./csi-analysis.js\": \"cce8\",\n\t\"./customBag.js\": \"3896\",\n\t\"./customers.js\": \"2927\",\n\t\"./delivery-options.js\": \"2865\",\n\t\"./finishes.js\": \"1fb1\",\n\t\"./forwarders.js\": \"3bed\",\n\t\"./hardware-categories.js\": \"eca5\",\n\t\"./hardware-products.js\": \"60b6\",\n\t\"./index.js\": \"4360\",\n\t\"./internal-products.js\": \"156b\",\n\t\"./materials.js\": \"dab8\",\n\t\"./my-parts.js\": \"354d\",\n\t\"./my-products.js\": \"1faa\",\n\t\"./order-lines.js\": \"c266\",\n\t\"./orders.js\": \"81d8\",\n\t\"./packaging-tools.js\": \"d611\",\n\t\"./parts.js\": \"dcb5\",\n\t\"./payment-results.js\": \"c2c9\",\n\t\"./payments.js\": \"7940\",\n\t\"./promo-codes.js\": \"5cf8\",\n\t\"./referrals.js\": \"d407\",\n\t\"./regions.js\": \"87a7\",\n\t\"./rfqs.js\": \"5002\",\n\t\"./roles.js\": \"44ce\",\n\t\"./shipping-addresses.js\": \"6338\",\n\t\"./temp-parts.js\": \"3f03\",\n\t\"./temp-rfqs.js\": \"3a90\",\n\t\"./thumbnails.js\": \"ea90\",\n\t\"./user.js\": \"2147\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"50ea\";","import i18n from '../plugins/i18n';\n\nexport default {\n  methods: {\n    isRequired: value => !!value || i18n.t('common.thisFieldIsRequired'),\n    isPositiveInteger: value => /^[1-9][0-9]*$/.test(value),\n    isPositiveIntegerOrFloat: value => /^(0|[1-9]\\d*)(\\.\\d+)?$/.test(value),\n    isZeroOrGreaterInteger: value => /^[0-9][0-9]*$/.test(value),\n    isEmail: value => /^[A-Za-z.0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z.0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z.0-9](?:[A-Za-z.0-9-]*[A-Za-z.0-9])?\\.)+[A-Za-z.0-9](?:[A-Za-z.0-9-]*[A-Za-z.0-9])?/.test(value),\n    maxLength(maxlen) {\n      return v => (v || '').length <= maxlen || i18n.t('common.errorStringLength', { maxlength: maxlen });\n    },\n    containAlphabetsNumbersHyphensUnderscoreSpace: value => /^[a-zA-Z0-9-_\\s]*$/.test(value) || i18n.t('common.containAlphabetsNumbersHyphensUnderscoreSpace'),\n    isPhoneNumberIsValid: value => /((?:\\+|00)[17](?: |-)?|(?:\\+|00)[1-9]\\d{0,2}(?: |-)?|(?:\\+|00)1-\\d{3}(?: |-)?)?(0\\d|\\([0-9]{3}\\)|[1-9]{0,3})(?:((?: |-)[0-9]{2}){4}|((?:[0-9]{2}){4})|((?: |-)[0-9]{3}(?: |-)[0-9]{4})|([0-9]{7}))/.test(value)\n  }\n};\n","var map = {\n\t\"./index.js\": \"4657\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"551f\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{attrs:{\"id\":\"vue-app\"}},[_c('core-snack'),_c('core-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\",\"type\":\"acknowledgement\",\"ok-button-text\":_vm.$t('common.updateToNewVersion'),\"cancel-button-text\":_vm.$t('common.notNow')},on:{\"click:ok\":_vm.refreshApp,\"click:cancel\":function($event){_vm.updateExists = false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('common.newVersion'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('common.releaseNote'))+\" \")]},proxy:true}]),model:{value:(_vm.updateExists),callback:function ($$v) {_vm.updateExists=$$v},expression:\"updateExists\"}}),_c('core-payment-dialog'),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.shouldSkipMainRender)?_c('div',{staticClass:\"fill-height\"},[_c('router-view')],1):_c('div',{staticClass:\"fill-height\"},[(_vm.showNavigationBar)?_c('v-navigation-drawer',{staticClass:\"text-center elevation-10\",attrs:{\"id\":\"navigation-drawer\",\"width\":\"220px\",\"app\":\"\",\"permanent\":\"\",\"clipped-left\":\"\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('img',{staticClass:\"logo\",staticStyle:{\"z-index\":\"9999\",\"position\":\"absolute !important\",\"top\":\"-5px\",\"right\":\"180px\"},attrs:{\"src\":\"/img/BETA@1x.svg\",\"width\":\"45px\",\"height\":\"45px\"},on:{\"click\":function($event){return _vm.$router.push('/')}}}),_c('img',{staticClass:\"logo toHover\",staticStyle:{\"margin-top\":\"-27px\"},attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"175px\",\"height\":\"130px\"},on:{\"click\":function($event){return _vm.$router.push('/')}}}),_c('v-btn',{staticClass:\"ml-1 justify-center\",attrs:{\"id\":\"instantQuote\",\"width\":\"190\",\"color\":\"primary\",\"x-large\":\"\",\"data-cy\":\"instant-quote-link\",\"disabled\":!_vm.userCanQuote},on:{\"click\":_vm.onActionButtonClicked}},[_vm._v(\" \"+_vm._s(_vm.$t('menus.instantQuote'))+\" \")]),(_vm.isFindHardwareCategoriesPending || _vm.hardwareCategories.length===0)?_c('v-list',{attrs:{\"width\":\"250px\",\"dense\":\"\"}},[_c('v-list-group',{staticClass:\"menu-icons\",class:{'disable-icons': _vm.isFindHardwareCategoriesPending || _vm.hardwareCategories.length===0},on:{\"click\":function($event){_vm.isHardwareShopMenuExpanded = !_vm.isHardwareShopMenuExpanded}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-left\",staticStyle:{\"font-size\":\"16px\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"width\":\"190\",\"height\":\"10\"}})],1)],1)]},proxy:true}],null,false,492752937)},[_vm._l((4),function(n){return [_c('v-list-item',{key:n,staticClass:\"text-left\",staticStyle:{\"height\":\"auto\",\"padding-left\":\"50px\"}},[_c('v-list-item-content',[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"max-width\":\"130\",\"height\":\"10\"}})],1)],1),_c('v-divider',{key:(\"divider-\" + n),staticClass:\"ml-10\",staticStyle:{\"width\":\"170px\"}})]})],2),_c('v-divider',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isHardwareShopMenuExpanded),expression:\"!isHardwareShopMenuExpanded\"}],staticClass:\"mx-2\"})],1):_c('v-list',{attrs:{\"width\":\"250px\",\"dense\":\"\"}},[_c('v-list-group',{staticClass:\"menu-icons\",class:{'disable-icons': _vm.isFindHardwareCategoriesPending},on:{\"click\":function($event){_vm.isHardwareShopMenuExpanded = !_vm.isHardwareShopMenuExpanded}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [(_vm.hardwareCategories.length !==0)?_c('v-list-item-content',{on:{\"click\":function($event){_vm.$router.push({\n                    path: '/hardware_categories',\n                    query: { timestamp: Date.now() } //Avoid NavigationDuplicated: Avoided redundant navigation error\n                  })}}},[_c('v-list-item-title',{staticClass:\"text-uppercase green--text font-weight-bold justify-center d-flex\",staticStyle:{\"font-size\":\"16px\"},attrs:{\"data-cy\":\"shop-hardware-button\"}},[_vm._v(\" \"+_vm._s(_vm.$t('menus.shopHardware'))+\" \")])],1):_vm._e()]},proxy:true}],null,false,1906690421)},[(_vm.hardwareCategories.length===0)?[_vm._l((4),function(n){return [_c('v-list-item',{key:n,staticClass:\"text-left\",staticStyle:{\"height\":\"auto\",\"padding-left\":\"50px\"}},[_c('v-list-item-content',[_vm._v(\" test \"),_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"max-width\":\"130\",\"height\":\"10\"}})],1)],1),_c('v-divider',{key:(\"divider-\" + n),staticClass:\"ml-10\",staticStyle:{\"width\":\"170px\"}})]})]:_vm._e(),_vm._l((_vm.hardwareCategories),function(category){return [_c('v-list-item',{key:category.id,staticClass:\"text-left\",staticStyle:{\"height\":\"auto\",\"padding-left\":\"50px\"},attrs:{\"data-cy\":((category.name.toLowerCase().trim().replaceAll(' ', '-')) + \"-hardware-option\"),\"to\":{ name: 'HardwareCategory', params: { id: category.id } },\"link\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(category[_vm.locale === 'cn' ? 'nameCHS' : 'name'])+\" \")])],1)],1),_c('v-divider',{key:(\"divider-\" + (category.id)),staticClass:\"ml-10\",staticStyle:{\"width\":\"170px\"}})]})],2),_c('v-divider',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isHardwareShopMenuExpanded),expression:\"!isHardwareShopMenuExpanded\"}],staticClass:\"mx-2\"})],1)]},proxy:true},{key:\"append\",fn:function(){return [_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n                  var hover = ref.hover;\nreturn [_c('div',[_c('div',{staticClass:\"d-flex justify-space-between ml-4\",class:{ 'on-hover': hover },staticStyle:{\"width\":\"150px\"},on:{\"click\":function($event){_vm.emailDialogIsActive = true}}},[_c('img',{staticClass:\"d-flex\",attrs:{\"src\":\"/img/iconHelp@1x.svg\"}}),_c('div',{staticClass:\"caption\"},[_c('p',{staticClass:\"mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.helpUsImprove'))+\" \")]),_c('span',{staticClass:\"caption grey--text font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.sendFeedbackMenu'))+\" \")])])]),_c('p',{staticClass:\"caption text-center mt-1 mr-2\"},[_vm._v(\" Komacut v.\"+_vm._s(_vm.version)+\" \")])])]}}],null,false,3947814459)})]},proxy:true}],null,false,3731703548)},[_c('div',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"min-height\":\"500px\",\"height\":\"100%\"}},[_c('v-list',{staticClass:\"d-flex flex-column\",staticStyle:{\"height\":\"500px\",\"width\":\"220px\"}},[(_vm.currentOrderItemsCount)?_c('v-list-item',{attrs:{\"data-cy\":\"go-to-the-order-form-left-nav-bar\",\"to\":\"/order/new\"}},[_c('v-badge',{attrs:{\"data-cy\":\"current_order-items-count-left-nav-bar\",\"left\":\"\",\"overlap\":\"\",\"color\":\"error\",\"content\":_vm.currentOrderItemsCount}},[_c('v-list-item-title',{staticClass:\"toHover flex\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"left\":\"\",\"x-large\":\"\"}},[_vm._v(\" mdi-view-list-outline \")]),_c('span',{staticStyle:{\"font-size\":\"15px\"}},[_vm._v(_vm._s(_vm.$t('views.confirmedOrder.title')))])],1)])],1)],1):_vm._e(),_vm._l((_vm.links),function(link,i){return _c('v-list-item',{key:i,attrs:{\"data-cy\":link.label.toLowerCase() + '-link',\"disabled\":!link.enabled,\"to\":link.to}},[_c('v-list-item-title',{staticClass:\"toHover\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-img',{staticClass:\"mb-2 mr-2\",attrs:{\"id\":\"selectedItem\",\"src\":link.src,\"max-width\":\"40\",\"max-height\":\"40\"}}),_c('span',{staticStyle:{\"font-size\":\"15px\"}},[_vm._v(_vm._s(link.label))])],1)])],1)})],2)],1)]):_vm._e(),_c('v-main',{staticClass:\"fill-height\",staticStyle:{\"padding-bottom\":\"90px\"}},[_c('keep-alive',[_c('router-view')],1)],1)],1)]),_c('v-dialog',{staticClass:\"px-16\",attrs:{\"width\":\"700\",\"persistent\":\"\"},model:{value:(_vm.emailDialogIsActive),callback:function ($$v) {_vm.emailDialogIsActive=$$v},expression:\"emailDialogIsActive\"}},[_c('div',{staticClass:\"d-flex justify-end elevation-5\",staticStyle:{\"background-color\":\"white\"}},[_c('v-btn',{staticClass:\"d-flex mt-3\",attrs:{\"plain\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":_vm.cleanFeedback}},[_c('v-icon',{attrs:{\"color\":\"#7e7e7e\"}},[_vm._v(\" mdi-close \")])],1)],1),_c('v-card',{staticClass:\"pb-8 pt-0 mt-0 rounded-tl-0 rounded-tr-0\",staticStyle:{\"padding-right\":\"95px\",\"padding-left\":\"95px\"},attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"text-h5 justify-center px-0 pt-0\"},[_c('span',{staticClass:\"text-center font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('feedBack.title')))])]),_c('v-card-text',{staticClass:\"px-0 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.body'))+\" \")]),_c('v-textarea',{attrs:{\"label\":_vm.$t('views.rfqs.emailDialogPlaceholder'),\"outlined\":\"\",\"placeholder\":_vm.$t('views.rfqs.emailDialogPlaceholder'),\"hide-details\":\"\"},model:{value:(_vm.userCommentFeedback),callback:function ($$v) {_vm.userCommentFeedback=$$v},expression:\"userCommentFeedback\"}}),(_vm.isExeFile)?_c('p',{staticClass:\"caption red--text mt-3 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.noExeFile'))+\" : \"+_vm._s(_vm.errorFileName)+\" \")]):(_vm.maxFileSize)?_c('p',{staticClass:\"caption red--text mt-3 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.maxFileWarning'))+\" \")]):_c('p',{staticClass:\"caption text--secondary mt-3 text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.maxFile'))+\" \")]),_c('v-row',{staticStyle:{\"width\":\"500px !important\"}},[_c('v-col',{staticClass:\"mr-0\",attrs:{\"cols\":\"4\"}},[_c('v-btn',{staticClass:\"mr-5\",attrs:{\"outlined\":\"\",\"color\":\"primary\",\"disabled\":_vm.feedbackUploadFile.length === 5 || _vm.userCommentFeedback === ''},on:{\"click\":function($event){return _vm.$refs.uploader.click();}}},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.uploadFile'))+\" \")]),_c('input',{ref:\"uploader\",staticClass:\"d-none\",attrs:{\"id\":\"uploader\",\"type\":\"file\",\"multiple\":\"multiple\",\"accept\":\"*/*\"},on:{\"change\":_vm.onFileChanged}}),(_vm.feedbackUploadFile.length !== 0)?_c('span',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.size'))+\" : \"+_vm._s(_vm.bytesToSize(_vm.totalSizeInMb, 2))+\" \")]):_vm._e()],1),_c('v-col',{staticClass:\"ml-0\",attrs:{\"cols\":\"3\"}},[(_vm.feedbackUploadFile.length === 0)?_c('span',{staticClass:\"text--secondary caption justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.noFileChosen'))+\" \")]):_vm._l((_vm.feedbackUploadFile),function(selectedFile,index){return [_c('div',{key:index},[_c('p',{staticClass:\"d-flex justify-center mb-0 fileUpdateHover\",staticStyle:{\"width\":\"300px !important\"}},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"width\":\"300px !important\"},attrs:{\"title\":selectedFile.filename}},[_vm._v(_vm._s(selectedFile.filename))]),_c('v-icon',{staticClass:\"d-flex\",attrs:{\"small\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.removeFile(selectedFile.fileSize, index);}}},[_vm._v(\" mdi-close \")])],1)])]})],2)],1),_c('v-btn',{staticClass:\"mt-6\",attrs:{\"disabled\":_vm.isSendEmailPending || _vm.userCommentFeedback === '',\"loading\":_vm.isSendEmailPending,\"color\":\"primary\",\"block\":\"\"},on:{\"click\":_vm.sendFeedBackEmail}},[_vm._v(\" \"+_vm._s(_vm.$t('feedBack.sendFeedback'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n  data() {\n    return {\n      // refresh variables\n      refreshing: false,\n      registration: null,\n      updateExists: false,\n    };\n  },\n\n  created() {\n    // Listen for our custom event from the SW registration\n    document.addEventListener('swUpdated', this.updateAvailable, { once: true });\n\n    // Prevent multiple refreshes\n    navigator.serviceWorker.addEventListener('controllerchange', () => {\n      if (this.refreshing) {\n        return;\n      }\n      this.refreshing = true;\n      // Here the actual reload of the page occurs\n      window.location.reload();\n    });\n  },\n\n  methods: {\n    updateAvailable(event) {\n      console.log(event);\n      // TODO: Add a fetch to get release data + severity (prevents cancelling if severity = high)\n      this.registration = event.detail;\n      this.updateExists = true;\n    },\n\n    // Called when the user accepts the update\n    refreshApp() {\n      this.updateExists = false;\n      // Make sure we only send a 'skip waiting' message if the SW is waiting\n      if (!this.registration || !this.registration.waiting) {\n        return;\n      }\n      // send message to SW to skip the waiting and activate the new SW\n      this.registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n    },\n  },\n};\n","<template>\n  <v-app id=\"vue-app\">\n    <core-snack />\n\n    <core-dialog\n      v-model=\"updateExists\"\n      width=\"500\"\n      persistent\n      type=\"acknowledgement\"\n      :ok-button-text=\"$t('common.updateToNewVersion')\"\n      :cancel-button-text=\"$t('common.notNow')\"\n      @click:ok=\"refreshApp\"\n      @click:cancel=\"updateExists = false\"\n    >\n      <template #title>\n        {{ $t('common.newVersion') }}\n      </template>\n\n      <template #content>\n        {{ $t('common.releaseNote') }}\n      </template>\n    </core-dialog>\n\n    <core-payment-dialog />\n\n    <transition\n      name=\"fade\"\n      mode=\"out-in\"\n    >\n      <div\n        v-if=\"shouldSkipMainRender\"\n        class=\"fill-height\"\n      >\n        <router-view />\n      </div>\n\n      <div\n        v-else\n        class=\"fill-height\"\n      >\n        <v-navigation-drawer\n          v-if=\"showNavigationBar\"\n          id=\"navigation-drawer\"\n          class=\"text-center elevation-10\"\n          width=\"220px\"\n          app\n          permanent\n          clipped-left\n        >\n          <template\n            #prepend\n          >\n            <img\n              src=\"/img/BETA@1x.svg\"\n              width=\"45px\"\n              height=\"45px\"\n              class=\"logo\"\n              style=\"z-index: 9999; position: absolute !important; top:-5px; right: 180px\"\n              @click=\"$router.push('/')\"\n            >\n\n            <img\n              src=\"/img/Komacut-logo.svg\"\n              width=\"175px\"\n              height=\"130px\"\n              style=\"margin-top: -27px;\"\n              class=\"logo toHover\"\n              @click=\"$router.push('/')\"\n            >\n            <v-btn\n              id=\"instantQuote\"\n              width=\"190\"\n              class=\"ml-1 justify-center\"\n              color=\"primary\"\n              x-large\n              data-cy=\"instant-quote-link\"\n              :disabled=\"!userCanQuote\"\n              @click=\"onActionButtonClicked\"\n            >\n              {{ $t('menus.instantQuote') }}\n            </v-btn>\n\n            <v-list\n              v-if=\"isFindHardwareCategoriesPending || hardwareCategories.length===0\"\n              width=\"250px\"\n              dense\n            >\n              <v-list-group\n                class=\"menu-icons\"\n                :class=\"{'disable-icons': isFindHardwareCategoriesPending || hardwareCategories.length===0}\"\n                @click=\"isHardwareShopMenuExpanded = !isHardwareShopMenuExpanded\"\n              >\n                <template #activator>\n                  <v-list-item-content>\n                    <v-list-item-title\n                      class=\"text-left\"\n                      style=\"font-size: 16px \"\n                    >\n                      <v-skeleton-loader\n                        type=\"image\"\n                        width=\"190\"\n                        height=\"10\"\n                      />\n                    </v-list-item-title>\n                  </v-list-item-content>\n                </template>\n\n                <template v-for=\"n in 4\">\n                  <v-list-item\n                    :key=\"n\"\n                    class=\"text-left\"\n                    style=\"height: auto; padding-left: 50px\"\n                  >\n                    <v-list-item-content>\n                      <v-skeleton-loader\n                        type=\"image\"\n                        max-width=\"130\"\n                        height=\"10\"\n                      />\n                    </v-list-item-content>\n                  </v-list-item>\n                  <v-divider :key=\"`divider-${n}`\" style=\"width: 170px\" class=\"ml-10\" />\n                </template>\n              </v-list-group>\n              <v-divider v-show=\"!isHardwareShopMenuExpanded\" class=\"mx-2\" />\n            </v-list>\n\n            <v-list v-else width=\"250px\" dense>\n              <v-list-group\n                class=\"menu-icons\"\n                :class=\"{'disable-icons': isFindHardwareCategoriesPending}\"\n                @click=\"isHardwareShopMenuExpanded = !isHardwareShopMenuExpanded\"\n              >\n                <template #activator>\n                  <!--                  <v-list-item-content-->\n                  <!--                    v-if=\" hardwareCategories.length===0\"-->\n                  <!--                  >-->\n                  <!--                    <v-list-item-title-->\n                  <!--                      class=\"text-left\"-->\n                  <!--                      style=\"font-size: 16px \"-->\n                  <!--                    >-->\n                  <!--                      <v-skeleton-loader-->\n                  <!--                        type=\"image\"-->\n                  <!--                        width=\"190\"-->\n                  <!--                        height=\"10\"-->\n                  <!--                      />-->\n                  <!--                    </v-list-item-title>-->\n                  <!--                  </v-list-item-content>-->\n\n                  <v-list-item-content\n                    v-if=\"hardwareCategories.length !==0\"\n                    @click=\"$router.push({\n                      path: '/hardware_categories',\n                      query: { timestamp: Date.now() } //Avoid NavigationDuplicated: Avoided redundant navigation error\n                    })\"\n                  >\n                    <v-list-item-title\n                      class=\"text-uppercase green--text font-weight-bold justify-center d-flex\"\n                      data-cy=\"shop-hardware-button\"\n                      style=\"font-size: 16px \"\n                    >\n                      {{ $t('menus.shopHardware') }}\n                    </v-list-item-title>\n                  </v-list-item-content>\n                </template>\n\n                <template v-if=\"hardwareCategories.length===0\">\n                  <template v-for=\"n in 4\">\n                    <v-list-item\n                      :key=\"n\"\n                      class=\"text-left\"\n                      style=\"height: auto; padding-left: 50px\"\n                    >\n                      <v-list-item-content>\n                        test\n                        <v-skeleton-loader\n                          type=\"image\"\n                          max-width=\"130\"\n                          height=\"10\"\n                        />\n                      </v-list-item-content>\n                    </v-list-item>\n                    <v-divider :key=\"`divider-${n}`\" style=\"width: 170px\" class=\"ml-10\" />\n                  </template>\n                </template>\n                <template\n                  v-for=\"category in hardwareCategories\"\n                >\n                  <v-list-item\n                    :key=\"category.id\"\n                    :data-cy=\"`${category.name.toLowerCase().trim().replaceAll(' ', '-')}-hardware-option`\"\n                    class=\"text-left\"\n                    :to=\"{ name: 'HardwareCategory', params: { id: category.id } }\"\n                    style=\"height: auto; padding-left: 50px\"\n                    link\n                  >\n                    <v-list-item-content>\n                      <v-list-item-title>\n                        {{ category[locale === 'cn' ? 'nameCHS' : 'name'] }}\n                      </v-list-item-title>\n                    </v-list-item-content>\n                  </v-list-item>\n                  <v-divider :key=\"`divider-${category.id}`\" style=\"width: 170px\" class=\"ml-10\" />\n                </template>\n              </v-list-group>\n              <v-divider v-show=\"!isHardwareShopMenuExpanded\" class=\"mx-2\" />\n            </v-list>\n          </template>\n\n          <!--┏━━━━━━━━━━━━━━━━━━━━━━»»ICONS SECTION««━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓-->\n\n          <div style=\"min-height:500px; height: 100%; \" class=\"d-flex align-center justify-center\">\n            <v-list style=\"height: 500px; width: 220px;\" class=\"d-flex flex-column\">\n              <v-list-item\n                v-if=\"currentOrderItemsCount\"\n                data-cy=\"go-to-the-order-form-left-nav-bar\"\n                to=\"/order/new\"\n              >\n                <v-badge\n                  data-cy=\"current_order-items-count-left-nav-bar\"\n                  left\n                  overlap\n                  color=\"error\"\n                  :content=\"currentOrderItemsCount\"\n                >\n                  <v-list-item-title class=\"toHover flex\">\n                    <div class=\"d-flex align-center\">\n                      <v-icon\n                        left\n                        x-large\n                      >\n                        mdi-view-list-outline\n                      </v-icon>\n                      <span style=\"font-size: 15px\">{{ $t('views.confirmedOrder.title') }}</span>\n                    </div>\n                  </v-list-item-title>\n                </v-badge>\n              </v-list-item>\n              <v-list-item\n                v-for=\"(link, i) in links\"\n                :key=\"i\"\n\n                :data-cy=\"link.label.toLowerCase() + '-link'\"\n                :disabled=\"!link.enabled\"\n                :to=\"link.to\"\n              >\n                <v-list-item-title class=\"toHover\">\n                  <div class=\"d-flex align-center\">\n                    <v-img\n                      id=\"selectedItem\"\n                      class=\"mb-2 mr-2\"\n                      :src=\"link.src\"\n                      max-width=\"40\"\n                      max-height=\"40\"\n                    />\n                    <span style=\"font-size: 15px\">{{ link.label }}</span>\n                  </div>\n                </v-list-item-title>\n              </v-list-item>\n            </v-list>\n          </div>\n\n          <template #append>\n            <v-hover v-slot=\"{ hover }\">\n              <div>\n                <div\n                  :class=\"{ 'on-hover': hover }\"\n                  class=\"d-flex justify-space-between ml-4\"\n                  style=\"width: 150px;\"\n                  @click=\"emailDialogIsActive = true\"\n                >\n                  <img class=\"d-flex\" src=\"/img/iconHelp@1x.svg\">\n                  <div class=\"caption\">\n                    <p class=\"mb-0\">\n                      {{ $t('feedBack.helpUsImprove') }}\n                    </p>\n                    <span class=\"caption grey--text font-weight-bold\">\n                      {{ $t('feedBack.sendFeedbackMenu') }}\n                    </span>\n                  </div>\n                </div>\n                <p class=\"caption text-center mt-1 mr-2\">\n                  Komacut v.{{ version }}\n                </p>\n              </div>\n            </v-hover>\n          </template>\n        </v-navigation-drawer>\n\n        <v-main class=\"fill-height\" style=\"padding-bottom: 90px\">\n          <keep-alive>\n            <router-view />\n          </keep-alive>\n        </v-main>\n      </div>\n    </transition>\n    <v-dialog\n      v-model=\"emailDialogIsActive\"\n      width=\"700\"\n      persistent\n      class=\"px-16\"\n    >\n      <div class=\"d-flex justify-end elevation-5\" style=\"background-color: white\">\n        <v-btn\n          plain\n          class=\"d-flex mt-3\"\n          text\n          small\n          @click=\"cleanFeedback\"\n        >\n          <v-icon color=\"#7e7e7e\">\n            mdi-close\n          </v-icon>\n        </v-btn>\n      </div>\n      <v-card\n        elevation=\"0\"\n        style=\"padding-right: 95px;padding-left: 95px\"\n        class=\"pb-8 pt-0 mt-0 rounded-tl-0 rounded-tr-0\"\n      >\n        <v-card-title class=\"text-h5 justify-center px-0 pt-0\">\n          <span class=\"text-center font-weight-bold\">{{ $t('feedBack.title') }}</span>\n        </v-card-title>\n\n        <v-card-text class=\"px-0 text-center\">\n          {{ $t('feedBack.body') }}\n        </v-card-text>\n\n        <v-textarea\n          v-model=\"userCommentFeedback\"\n          :label=\"$t('views.rfqs.emailDialogPlaceholder')\"\n          outlined\n          :placeholder=\"$t('views.rfqs.emailDialogPlaceholder')\"\n          hide-details\n        />\n        <p v-if=\"isExeFile\" class=\"caption red--text mt-3 text-center\">\n          {{ $t('feedBack.noExeFile') }} : {{ errorFileName }}\n        </p>\n\n        <p v-else-if=\"maxFileSize\" class=\"caption red--text mt-3 text-center\">\n          {{ $t('feedBack.maxFileWarning') }}\n        </p>\n\n        <p v-else class=\"caption text--secondary mt-3 text-center\">\n          {{ $t('feedBack.maxFile') }}\n        </p>\n        <v-row style=\"width: 500px !important;\">\n          <v-col cols=\"4\" class=\"mr-0\">\n            <v-btn\n              outlined\n              color=\"primary\"\n              class=\"mr-5\"\n              :disabled=\"feedbackUploadFile.length === 5 || userCommentFeedback === ''\"\n              @click=\"$refs.uploader.click();\"\n            >\n              {{ $t('feedBack.uploadFile') }}\n            </v-btn>\n            <input\n              id=\"uploader\"\n              ref=\"uploader\"\n              class=\"d-none\"\n              type=\"file\"\n              multiple=\"multiple\"\n              accept=\"*/*\"\n              @change=\"onFileChanged\"\n            >\n            <span v-if=\"feedbackUploadFile.length !== 0\" class=\"caption text--secondary\">\n              {{ $t('common.size') }} : {{ bytesToSize(totalSizeInMb, 2) }}\n            </span>\n          </v-col>\n\n          <v-col cols=\"3\" class=\"ml-0\">\n            <span v-if=\"feedbackUploadFile.length === 0\" class=\"text--secondary caption justify-center\">\n              {{ $t('feedBack.noFileChosen') }}\n            </span>\n            <template v-for=\"(selectedFile,index) in feedbackUploadFile\" v-else>\n              <div :key=\"index\" class=\"\">\n                <p class=\"d-flex justify-center mb-0 fileUpdateHover\" style=\"width: 300px !important;\">\n                  <span\n                    :title=\"selectedFile.filename\"\n                    style=\"width: 300px !important;\"\n                    class=\"text-truncate\"\n                  >{{ selectedFile.filename }}</span>\n                  <v-icon\n                    class=\"d-flex\"\n                    small\n                    right\n                    @click=\"removeFile(selectedFile.fileSize, index);\"\n                  >\n                    mdi-close\n                  </v-icon>\n                </p>\n              </div>\n            </template>\n          </v-col>\n        </v-row>\n        <v-btn\n          :disabled=\"isSendEmailPending || userCommentFeedback === ''\"\n          :loading=\"isSendEmailPending \"\n          class=\"mt-6\"\n          color=\"primary\"\n          block\n          @click=\"sendFeedBackEmail\"\n        >\n          {{ $t('feedBack.sendFeedback') }}\n        </v-btn>\n      </v-card>\n    </v-dialog>\n  </v-app>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport { datadogRum } from '@datadog/browser-rum';\nimport localeCn from 'dayjs/locale/zh-cn';\nimport localeEn from 'dayjs/locale/en';\nimport update from './mixins/swupdate';\n\nexport default {\n  name: 'App',\n\n  mixins: [\n    update,\n  ],\n\n  data() {\n    return {\n      isHardwareShopMenuExpanded: false,\n      totalSizeInMb: 0,\n      isExeFile: false,\n      maxFileSize: false,\n      errorFileName: '',\n      feedbackUploadFile: [],\n      file: {},\n      userCommentFeedback: '',\n      menuItemState: {},\n      isSendEmailPending: false,\n      emailDialogIsActive: false,\n      createUserFeedBack: null,\n    };\n  },\n\n  computed: {\n    ...mapState('app', [\n      'image', 'sidebarBackgroundColor', 'title', 'logo', 'locale', 'version'\n    ]),\n    ...mapState('hardware-categories', {\n      isFindHardwareCategoriesPending: 'isFindPending',\n    }),\n    ...mapState('hardware-categories', {\n      isFindCategoriesPending: 'isFindPending',\n    }),\n    ...mapState('countries', { countriesStateIds: 'ids' }),\n    ...mapState('regions', { regionsStateIds: 'ids' }),\n    ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n    ...mapGetters('auth', { authUser: 'user' }),\n    ...mapState('auth', ['accessToken']),\n    ...mapGetters('app', ['currentOrderItemsCount']),\n    Country: () => models.api.Country,\n    Regions: () => models.api.Regions,\n    HardwareCategory: () => models.api.HardwareCategory,\n    HardwareProduct: () => models.api.HardwareProduct,\n    ...mapGetters('auth', { loggedInUser: 'user' }),\n\n    hardwareCategories: vm => vm.HardwareCategory.findInStore().data,\n    company: () => models.api.Company.getFromStore(0),\n\n    userCanQuote: ({ loggedInUser }) => loggedInUser && (loggedInUser.isAdmin || _.get(loggedInUser, 'rights.instantQuote', false)),\n\n    links({ loggedInUser }) {\n      const links = [\n        {\n          to: '/rfqs',\n          src: '/img/rfqs.svg',\n          label: this.$t('menus.rfqs'),\n          enabled: loggedInUser && (loggedInUser.isAdmin || loggedInUser.rights.rfqs),\n        },\n        {\n          to: '/orders',\n          src: '/img/orders.svg',\n          label: this.$t('menus.orders'),\n          enabled: loggedInUser && (loggedInUser.isAdmin || loggedInUser.rights.orders),\n        },\n        {\n          to: '/my_parts',\n          src: '/img/myparts.svg',\n          label: this.$t('menus.myParts'),\n          enabled: loggedInUser && (loggedInUser.isAdmin || loggedInUser.rights.myParts),\n        },\n        {\n          to: '/tools/materials',\n          src: '/img/engineeringtools.svg',\n          label: this.$t('menus.engineeringTools'),\n          enabled: true,\n        },\n      ];\n\n      // Must check string value\n      if (process.env.VUE_APP_DO_SHOW_SANDBOX === 'true') {\n        links.push({\n          to: '/sandbox',\n          src: '/img/settings.svg',\n          label: 'Sandbox',\n          enabled: process.env.VUE_APP_DO_SHOW_SANDBOX,\n        });\n      }\n      return links;\n    },\n\n    restrictedFileExtensions: () => [\n      'ade',\n      'adp',\n      'apk',\n      'appx',\n      'appxbundle',\n      'bat',\n      'cab',\n      'chm',\n      'cmd',\n      'com',\n      'cpl',\n      'dll',\n      'dmg',\n      'ex',\n      'ex_',\n      'exe',\n      'hta',\n      'ins',\n      'isp',\n      'iso',\n      'jar',\n      'js',\n      'jse',\n      'lib',\n      'lnk',\n      'mde',\n      'msc',\n      'msi',\n      'msix',\n      'msixbundle',\n      'msp',\n      'mst',\n      'nsh',\n      'pif',\n      'ps1',\n      'scr',\n      'sct',\n      'shb',\n      'sys',\n      'vb',\n      'vbe',\n      'vbs',\n      'vxd',\n      'wsc',\n      'wsf',\n      'wsh',\n      'zip'\n    ],\n\n    isLogin() {\n      return this.$route.fullPath === '/login';\n    },\n\n    isLogout() {\n      return this.$route.fullPath === '/logout';\n    },\n\n    shouldSkipMainRender() {\n      /**\n             * During the initial render, the $route instance is not available, so we have to use the raw\n             * History object instance.\n             * NOTE: If we don't use a reactive ($route) in this compute, it will not be recomputed\n             */\n      return this.isLogin || this.isLogout || [\n        /^\\/404/,\n        /^\\/login/,\n        /^\\/logout/,\n        /^\\/on_boarding/,\n        /^\\/confirmation/,\n        /^\\/forgotten_password/,\n        /^\\/reset_password/,\n        /^\\/signup/,\n        /^\\/resetpassword_send_email/,\n        /^\\/resetpassword_success/,\n      ].some(url => _.get(window, 'location.pathname', '').match(url));\n    },\n\n    showNavigationBar() {\n      return (\n        this.$route.name !== 'Support'\n        && this.$route.name !== 'DrawingApp'\n        && this.$route.name !== 'ThreeDPackagingTool'\n      );\n    },\n\n  },\n\n  watch: {\n    loggedInUser: {\n      deep: true,\n      handler(newUser) {\n        if (newUser) {\n          datadogRum.setUser({\n            id: newUser._id,\n            fullName: newUser.fullName,\n          });\n          // For ODOO live chat\n          window.setLiveChatUser(newUser._id, this.accessToken);\n        }\n      },\n    },\n  },\n\n  mounted() {\n    this.createUserFeedBack = this.$feathers.service('feedback');\n    this.$nextTick(() => {\n      this.$i18n.locale = this.locale;\n    });\n    this.autoLoadGeographicData();\n    const translationDate = this.locale === 'cn' ? localeCn : localeEn;\n    moment.locale(translationDate);\n    // const that = this;\n    // // eslint-disable-next-line func-names\n    // (function (d, t) {\n    //   const BASE_URL = 'https://chat.komacut.com';\n    //   const g = d.createElement(t);\n    //   const s = d.getElementsByTagName(t)[0];\n    //   g.src = `${BASE_URL}/packs/js/sdk.js`;\n    //   g.defer = true;\n    //   g.async = true;\n    //   s.parentNode.insertBefore(g, s);\n    //   // eslint-disable-next-line func-names\n    //   g.onload = function () {\n    //     window.chatwootSDK.run({\n    //       websiteToken: 'PN2n9TJBxGDsp2wJcVvqWP9q',\n    //       baseUrl: BASE_URL\n    //     });\n    //   };\n    //   const timer = setInterval(() => {\n    //     const arrayOfElement = document.getElementsByClassName('woot-widget-bubble');\n    //     const element = Array.from(arrayOfElement);\n    //     if (element[0]) {\n    //       const div = element[0];\n    //       const showTip = () => {\n    //         const tip = document.createElement('span');\n    //         tip.id = 'tip';\n    //         tip.innerHTML = that.$t('menus.chatWithUs');\n    //         div.appendChild(tip);\n    //         tip.style.cssText = `\n    //           opacity:1;\n    //           width:100px;\n    //           bottom:30px;\n    //           right:70px;\n    //           position:absolute;\n    //           font-size:14px;\n    //           font-family:\"Nunito Sans\";\n    //           background:rgba(97,97,97,.9);\n    //           color:white;\n    //           padding:5px;\n    //           border-radius:4px;`;\n    //       };\n    //       const hideTip = () => {\n    //         const tip = document.getElementById('tip');\n    //         tip.remove();\n    //       };\n    //\n    //       div.addEventListener('mouseover', showTip, false);\n    //       div.addEventListener('mouseout', hideTip, false);\n    //       clearInterval(timer);\n    //     }\n    //   }, 1000);\n    // }(document, 'script'));\n  },\n\n  methods: {\n    ...mapActions('app', ['pushSnack']),\n\n    bytesToSize(bytes, decimals) {\n      if (bytes === 0) {\n        return '0 Bytes';\n      }\n      const k = 1000;\n      const dm = decimals < 0 ? 0 : decimals;\n      const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n      const i = Math.floor(Math.log(bytes) / Math.log(k));\n      // eslint-disable-next-line no-restricted-properties\n      return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n    },\n    removeFile(fileSize, index) {\n      this.maxFileSize = false;\n      this.totalSizeInMb -= parseInt(fileSize, 10);\n      this.feedbackUploadFile.splice(index, 1);\n    },\n\n    async sendFeedBackEmail() {\n      this.isSendEmailPending = true;\n      try {\n        await this.createUserFeedBack.create(\n          {\n            comment: this.userCommentFeedback,\n            fileArray: this.feedbackUploadFile\n          }\n        );\n      } catch (e) {\n        console.error(e);\n      }\n      this.cleanFeedback();\n    },\n\n    cleanFeedback() {\n      this.feedbackUploadFile = [];\n      this.userCommentFeedback = '';\n      this.emailDialogIsActive = false;\n      this.isSendEmailPending = false;\n      this.errorFileName = '';\n      this.isExeFile = false;\n      this.maxFileSize = false;\n      this.totalSizeInMb = 0;\n      document.getElementById('uploader').value = '';\n    },\n\n    onFileChanged(e) {\n      const currentFiles = e.target.files;\n      this.isExeFile = false;\n      this.maxFileSize = false;\n      this.errorFileName = '';\n\n      for (let i = 0; i < 5 - this.feedbackUploadFile.length; i++) {\n        const file = currentFiles[i];\n\n        const extensionFile = file ? file.name.split('.').pop() : '';\n\n        if (this.restrictedFileExtensions.includes(extensionFile.toLowerCase())) {\n          this.errorFileName = file.name;\n          this.isExeFile = true;\n          document.getElementById('uploader').value = '';\n          return;\n        }\n\n        const bytes = file ? file.size : 0;\n        const totalFileSize = this.totalSizeInMb + bytes;\n        const sizeLimitInBytes = 1024 * 1000 * 5;\n        if (totalFileSize > sizeLimitInBytes) {\n          this.maxFileSize = true;\n          document.getElementById('uploader').value = '';\n          return;\n        }\n        this.totalSizeInMb = totalFileSize;\n\n        const reader = new FileReader();\n        reader.onloadend = () => {\n          const readFile = reader.result;\n          this.feedbackUploadFile.push({ path: readFile, filename: file.name, fileSize: file.size });\n        };\n        if (file) {\n          reader.readAsDataURL(file);\n        }\n      }\n      document.getElementById('uploader').value = '';\n    },\n\n    async autoLoadGeographicData() {\n      const countryCount = this.Country.countInStore({ query: {} });\n      if (countryCount === 0) {\n        this.Country.find({ query: {} });\n      }\n\n      const regionCount = this.Regions.countInStore({ query: {} });\n      if (regionCount === 0) {\n        this.Regions.find({ query: {} });\n      }\n    },\n\n    settingPathRights(user) {\n      if (_.get(user, 'isAdmin', false) || _.get(user, 'rights.companyManagement', false)) {\n        return '/settings/company';\n      }\n      return '/settings/forwarders';\n    },\n\n    onActionButtonClicked() {\n      this.$router.push(`/rfqs/${this.getTempRfqIdInProgress}`);\n    },\n  },\n};\n</script>\n\n<style scoped>\n\n>>> .menu-icons .v-list-item__icon:last-of-type:not(:only-child) {\n    margin-left: 0 !important;\n    justify-content: unset;\n}\n\n>>> .disable-icons .v-list-item__icon:last-of-type:not(:only-child) {\n    display: none;\n}\n\n>>> .menu-icons .theme--light.v-icon {\n    color: #2C984E !important;\n}\n\n.v-list-item {\n    font-size: 12px;\n    height: 100px;\n}\n\n.on-hover {\n    cursor: pointer;\n    opacity: 0.6\n}\n\n.tiny-font {\n    font-size: 10px;\n}\n\n.tiny-font-bold {\n    font-size: 10px;\n    font-weight: bold;\n}\n\n.toHover:hover {\n    color: #6cb043;\n    filter: invert(0.4) sepia(1) saturate(4) hue-rotate(75.6deg) brightness(1);\n}\n\n.fileUpdateHover:hover {\n    cursor: pointer;\n    background-color: rgba(192, 192, 192, 0.3);\n}\n\n.v-navigation-drawer__content .v-list-item--active {\n    color: #6cb043;\n    filter: invert(0.4) sepia(1) saturate(4) hue-rotate(75.6deg) brightness(1);\n}\n\n.v-image__image--contain {\n    top: 9px;\n    height: 60%;\n}\n\n.search-input {\n    margin-bottom: 30px !important;\n    padding-left: 15px;\n    padding-right: 15px;\n}\n\ndiv.v-responsive.v-image > div.v-responsive__content {\n    overflow-y: auto;\n}\n\n.logo:hover {\n    cursor: pointer;\n}\n\n.menu {\n    max-height: calc(100vh - 120px);\n    overflow-y: auto;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n    transition-duration: 0.3s;\n    transition-property: opacity;\n    transition-timing-function: ease;\n}\n\n.fade-enter,\n.fade-leave-active {\n    opacity: 0;\n}\n</style>\n\n<style>\nhtml {\n    overflow-y: auto !important;\n    overflow-x: overlay !important;\n    height: 100%;\n}\n\n.row {\n    margin-top: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.v-data-table tbody tr.v-data-table__expanded__content {\n    box-shadow: none !important;\n    -webkit-box-shadow: none !important;\n}\n\n.v-data-table td, .v-data-table th {\n    padding: 0 !important;\n}\n\n.v-data-table tr td {\n    cursor: default !important;\n}\n\nheader.v-sheet.v-toolbar.v-toolbar--flat.v-app-bar {\n    background-color: #f8f8ff !important;\n}\n\n.theme--light.v-application {\n    background: #f8f8ff !important;\n}\n\n.v-navigation-drawer {\n    z-index: 11 !important;\n}\n\n.v-content {\n    padding-top: 64px !important;\n}\n\n.v-toolbar__content {\n    height: 64px !important;\n}\n\n.v-app-bar.v-app-bar--fixed {\n    z-index: 7 !important;\n}\n\n.v-list-item__action {\n    margin: 6px 0 !important;\n}\n\n.v-list--dense .v-list-item, .v-list-item--dense {\n    min-height: 32px !important;\n}\n\n.v-input__slot {\n    margin-bottom: 2px !important;\n}\n\n.v-expansion-panel-header {\n    padding: 8px 16px !important;\n}\n\n.flex-vcenter {\n    display: flex;\n    align-items: center;\n}\n\n.v-tabs-slider-wrapper {\n    height: 3px !important;\n\n}\n\n.loading:after {\n    overflow: hidden;\n    display: inline-block;\n    vertical-align: bottom;\n    -webkit-animation: ellipsis steps(4, end) 900ms infinite;\n    animation: ellipsis steps(4, end) 900ms infinite;\n    content: \"\\2026\";\n    width: 0;\n}\n\n@keyframes ellipsis {\n    to {\n        width: 1.25em;\n    }\n}\n\n@-webkit-keyframes ellipsis {\n    to {\n        width: 1.25em;\n    }\n}\n\n.menu-offset-class {\n    margin: -10px 0 0 0;\n}\n\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=d808bbbc&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=d808bbbc&scoped=true&lang=css&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d808bbbc\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VHover } from 'vuetify/lib/components/VHover';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VApp,VBadge,VBtn,VCard,VCardText,VCardTitle,VCol,VDialog,VDivider,VHover,VIcon,VImg,VList,VListGroup,VListItem,VListItemContent,VListItemTitle,VMain,VNavigationDrawer,VRow,VSkeletonLoader,VTextarea})\n","import Vue from 'vue';\nimport _ from '@/plugins/simulateLodash';\n\nconst requireComponent = require.context('./', true, /\\.vue$/);\n\nrequireComponent.keys().forEach(fileName => {\n  const componentConfig = requireComponent(fileName);\n\n  const componentName = _.upperFirst(\n    _.camelCase(fileName.replace(/^\\.\\//, '').replace(/\\.\\w+$/, ''))\n  );\n\n  Vue.component(componentName, componentConfig.default || componentConfig);\n});\n","import { datadogRum } from '@datadog/browser-rum';\n\ndatadogRum.init({\n  applicationId: process.env.VUE_APP_DATADOG_RUM_APP_ID,\n  clientToken: process.env.VUE_APP_DATADOG_RUM_CLIENT_TOKEN,\n  site: 'datadoghq.com',\n  service: `komacut-${process.env.NODE_ENV}`,\n  // Specify a version number to identify the deployed version of your application in Datadog\n  // version: '1.0.0',\n  sampleRate: 100,\n  sessionReplaySampleRate: 100,\n  trackResources: true,\n  trackLongTasks: true,\n  trackInteractions: true\n});\n\ndatadogRum.startSessionReplayRecording();\n","import Vue from 'vue';\nimport VueCompositionAPI from '@vue/composition-api';\n// TODO : See if we can eliminate this, it's only used twice, is there an alternative in those cases?\nimport AsyncComputed from 'vue-async-computed';\nimport mask from 'vue-the-mask';\nimport '@babel/polyfill';\nimport vueFeathers from 'vue-feathers';\n\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport VueTelInputVuetify from 'vue-tel-input-vuetify/lib';\n\n// import '@/sass/variables.scss';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\nimport i18n from './plugins/i18n';\nimport './directives';\nimport './components';\nimport './registerServiceWorker';\nimport './plugins/datadog-rum';\n// import ddlogger from './utils/logger';\nimport vuetify from './plugins/vuetify';\nimport _ from './plugins/simulateLodash';\nimport feathersClient from './plugins/feathers-client';\n\ndayjs.extend(relativeTime);\nwindow._ = _;\nwindow.moment = dayjs;\n\nVue.config.productionTip = false;\n\n// Make sure lodash works in templates too\nVue.prototype._ = _;\nVue.prototype.moment = dayjs;\n\nVue.use(AsyncComputed);\nVue.use(VueCompositionAPI);\nVue.use(mask);\nVue.use(vueFeathers, feathersClient);\n\ndayjs.locale(i18n.locale);\n\n// Vue.config.errorHandler = (err, _vm, info) => {\n//   console.log('Uncaught FE Error', err);\n//   ddlogger.logger.error('uncaught fe error', {\n//     message: err.message,\n//     stack: err.stack,\n//     type: info,\n//   });\n// };\nVue.use(VueTelInputVuetify, {\n  vuetify,\n});\n\nnew Vue({\n  router,\n  i18n,\n  store,\n  vuetify,\n  render: h => h(App),\n}).$mount('#app');\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgottenPassword.vue?vue&type=style&index=0&id=282c8aed&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinishColor.vue?vue&type=style&index=0&id=0e2299e1&scoped=true&lang=css&\"","const PAYMENT_STATUS = Object.freeze({\n  INITIATED: 'initiated',\n  IN_PROGRESS: 'inProgress',\n  SUCCEEDED: 'succeeded',\n  FAILED: 'failed',\n});\n\nmodule.exports = {\n  PAYMENT_STATUS\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-toolbar',{staticClass:\"mb-4\",attrs:{\"color\":\"primary\",\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"white--text\"},[_vm._v(\" User \")])],1),_c('v-card-text',[_c('v-col',{staticClass:\"py-0\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"6\",\"cols\":\"12\"}},[_c('form-email',{attrs:{\"is-disabled\":!!_vm.localValue._id,\"types-locale-key\":\"form.email.types\"},model:{value:(_vm.localValue.email),callback:function ($$v) {_vm.$set(_vm.localValue, \"email\", $$v)},expression:\"localValue.email\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('(###) ###-####'),expression:\"'(###) ###-####'\"}],attrs:{\"label\":_vm.$t('common.number'),\"placeholder\":_vm.$t(\"form.phone.placeholders.number\")},model:{value:(_vm.localValue.PhoneOffice),callback:function ($$v) {_vm.$set(_vm.localValue, \"PhoneOffice\", $$v)},expression:\"localValue.PhoneOffice\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.firstName'),\"placeholder\":_vm.$t('common.firstName')},model:{value:(_vm.localValue.firstName),callback:function ($$v) {_vm.$set(_vm.localValue, \"firstName\", $$v)},expression:\"localValue.firstName\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.lastName'),\"placeholder\":_vm.$t('common.lastName')},model:{value:(_vm.localValue.lastName),callback:function ($$v) {_vm.$set(_vm.localValue, \"lastName\", $$v)},expression:\"localValue.lastName\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.position'),\"placeholder\":_vm.$t(\"form.contact.placeholders.position\")},model:{value:(_vm.localValue.JobTitle),callback:function ($$v) {_vm.$set(_vm.localValue, \"JobTitle\", $$v)},expression:\"localValue.JobTitle\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[(_vm.isAdmin)?_c('v-select',{attrs:{\"label\":_vm.$t('form.user.fields.roles'),\"items\":_vm.roles,\"item-text\":'name',\"item-value\":\"_id\",\"item-disabled\":\"inactive\",\"chips\":\"\",\"clearable\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\"},model:{value:(_vm.localValue.roleIds),callback:function ($$v) {_vm.$set(_vm.localValue, \"roleIds\", $$v)},expression:\"localValue.roleIds\"}}):_vm._e()],1)],1)],1),_vm._t(\"default\")],2)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"primary\",\"disabled\":!_vm.originalFormDataChanged || _vm.loading,\"loading\":_vm.loading},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\" Save \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { mapState, mapGetters, mapActions } from 'vuex';\n\nexport default {\n  computed: {\n    ...mapState('roles', {\n      rolesLoading: 'isFindPending',\n    }),\n\n    ...mapGetters('roles', {\n      roles: 'list',\n      getRole: 'get',\n      findRoles: 'find',\n    }),\n  },\n\n  methods: {\n    ...mapActions('roles', {\n      fetchRoles: 'find',\n      removeRole: 'remove'\n    }),\n\n    getRoleName(id) {\n      return _.get(this.getRole(id), 'name', '?');\n    },\n\n    getRoleInactive(id) {\n      return _.get(this.getRole(id), 'inactive', false);\n    },\n  }\n};\n","<template>\n  <v-card>\n    <v-toolbar\n      color=\"primary\"\n      class=\"mb-4\"\n      flat\n    >\n      <v-card-title class=\"white--text\">\n        User\n      </v-card-title>\n    </v-toolbar>\n\n    <v-card-text>\n      <v-col class=\"py-0\">\n        <v-container>\n          <v-row>\n            <v-col\n              class=\"py-0\"\n              md=\"6\"\n              cols=\"12\"\n            >\n              <form-email\n                v-model=\"localValue.email\"\n                :is-disabled=\"!!localValue._id\"\n                types-locale-key=\"form.email.types\"\n              />\n            </v-col>\n            <v-col\n              class=\"py-0\"\n              cols=\"12\"\n              md=\"6\"\n            >\n              <v-text-field\n                v-model=\"localValue.PhoneOffice\"\n                v-mask=\"'(###) ###-####'\"\n                :label=\"$t('common.number')\"\n                :placeholder=\"$t(`form.phone.placeholders.number`)\"\n              />\n            </v-col>\n          </v-row>\n          <v-row>\n            <v-col\n              class=\"py-0\"\n              cols=\"12\"\n              md=\"4\"\n            >\n              <v-text-field\n                v-model=\"localValue.firstName\"\n                :label=\"$t('common.firstName')\"\n                :placeholder=\"$t('common.firstName')\"\n              />\n            </v-col>\n\n            <v-col\n              class=\"py-0\"\n              cols=\"12\"\n              md=\"4\"\n            >\n              <v-text-field\n                v-model=\"localValue.lastName\"\n                :label=\"$t('common.lastName')\"\n                :placeholder=\"$t('common.lastName')\"\n              />\n            </v-col>\n\n            <v-col\n              class=\"py-0\"\n              md=\"4\"\n              cols=\"12\"\n            >\n              <v-text-field\n                v-model=\"localValue.JobTitle\"\n                :label=\"$t('common.position')\"\n                :placeholder=\"$t(`form.contact.placeholders.position`)\"\n              />\n            </v-col>\n            <v-col\n              class=\"py-0\"\n              cols=\"12\"\n            >\n              <v-select\n                v-if=\"isAdmin\"\n                v-model=\"localValue.roleIds\"\n                :label=\"$t('form.user.fields.roles')\"\n                :items=\"roles\"\n                :item-text=\"'name'\"\n                item-value=\"_id\"\n                item-disabled=\"inactive\"\n                chips\n                clearable\n                small-chips\n                deletable-chips\n                multiple\n              />\n            </v-col>\n          </v-row>\n        </v-container>\n\n        <slot />\n      </v-col>\n\n      <!-- Will eventually be used -->\n      <!--      <v-select-->\n      <!--        v-if=\"isAdmin\"-->\n      <!--        v-model=\"localValue.locale\"-->\n      <!--        :label=\"$t('form.userPreferences.fields.lang')\"-->\n      <!--        :items=\"locales\"-->\n      <!--        :item-text=\"'text'\"-->\n      <!--        item-value=\"value\"-->\n      <!--        chips-->\n      <!--        clearable-->\n      <!--        small-chips-->\n      <!--        deletable-chips-->\n      <!--      />-->\n    </v-card-text>\n\n    <v-card-actions>\n      <v-spacer />\n      <v-btn\n        depressed\n        color=\"primary\"\n        :disabled=\"!originalFormDataChanged || loading\"\n        :loading=\"loading\"\n        @click=\"save()\"\n      >\n        Save\n      </v-btn>\n    </v-card-actions>\n  </v-card>\n</template>\n\n<script>\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport RolesMixin from '../../mixins/roles';\nimport FormMixin from '../../mixins/form';\nimport EditFormMixin from '../../mixins/editForm';\nimport { LEVEL } from '../../utils/log';\n\nexport default {\n  mixins: [\n    RolesMixin,\n    FormMixin,\n    EditFormMixin\n  ],\n\n  props: {\n    loading: Boolean,\n  },\n\n  data() {\n    return {\n      isColorPickerActive: false,\n    };\n  },\n\n  computed: {\n    ...mapGetters('contacts', {\n      findContacts: 'find'\n    }),\n    ...mapState('auth', [\n      'user',\n    ]),\n  },\n\n  methods: {\n    ...mapActions('app', [\n      'pushSnack'\n    ]),\n    refresh() {\n      this.fetchRoles();\n    },\n\n    save() {\n      const contact = this.findContacts({ query: { ContactId: this.localValue.ContactId } }).data;\n      if (contact.length > 0 && contact[0].ContactId) {\n        this.localValue.ContactId = contact[0].ContactId;\n        this.$emit('save', this.localValue);\n      } else if (this.localValue._id) {\n        this.pushSnack({\n          snack: { message: 'This user is not linked to any contacts.' },\n          level: LEVEL.ERROR,\n        });\n      } else {\n        this.$emit('save', this.localValue);\n      }\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./User.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./User.vue?vue&type=template&id=2583a725&\"\nimport script from \"./User.vue?vue&type=script&lang=js&\"\nexport * from \"./User.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VRow,VSelect,VSpacer,VTextField,VToolbar})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'promo-codes';\n\nconst Model = class PromoCode extends BaseModel {\n    static modelName = 'PromoCode';\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',[_c('v-list',{attrs:{\"color\":\"transparent\"}},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s('Filters')+\" \")])],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{on:{\"click\":function($event){return _vm.$emit('filter:close')}}},[_vm._v(\" mdi-close \")])],1)],1)],1)],1),_c('v-divider',{staticClass:\"ml-4\"}),_c('v-list',{attrs:{\"color\":\"transparent\"}},[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=2a371c1e&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemTitle,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=style&index=0&id=3e54cacc&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareDrawingTable.vue?vue&type=style&index=0&id=fd018ce0&scoped=true&lang=css&\"","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'hardware-products';\nconst Model = class HardwareProduct extends BaseModel {\n    static modelName = 'HardwareProduct';\n\n    static instanceDefaults() {\n      return {};\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\"},[_c('v-row',{staticClass:\"ml-4\"},[_c('v-col',{staticClass:\"mr-2\",attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"color\":\"primary\",\"x-large\":\"\",\"width\":\"128px\"},on:{\"click\":function($event){return _vm.$emit('openDrawingPanel')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" Drawings \")],1)],1),_vm._l((_vm.productOptions),function(productOption,index){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-col',{key:(\"dropdown-\" + (productOption.id))},[_c('v-select',{attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"items\":_vm.filteredItems(index),\"attach\":\"\",\"item-text\":_vm.locale === 'en-US' ? 'text' : 'textChs',\"item-value\":\"id\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}})],1):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-col',{key:(\"checkbox-\" + (productOption.id)),staticClass:\"pl-0\"},[_c('v-checkbox',{attrs:{\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"true-value\":productOption.options[1].id,\"false-value\":productOption.options[0].id,\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOptions[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOptions, productOption.id, $$v)},expression:\"selectedOptions[productOption.id]\"}})],1):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('v-col',{key:(\"plainText-\" + (productOption.id))},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct[_vm.locale === 'en-US' ? 'text' : 'textChs'])+\" \")])]):_vm._e()]})],2),_c('v-row',{staticClass:\"ml-4\"},[_c('v-col',{staticClass:\"pr-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-text-field',{staticClass:\"mr-2\",staticStyle:{\"max-width\":\"80px\",\"display\":\"inline-block !important\"},attrs:{\"height\":\"56px\",\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.instantQuote.quantity'),\"rules\":[_vm.isPositiveInteger],\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()},\"click\":function($event){$event.stopPropagation();}},nativeOn:{\"input\":function($event){_vm.reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);}},model:{value:(_vm.reqQty),callback:function ($$v) {_vm.reqQty=_vm._n($$v)},expression:\"reqQty\"}}),_c('v-sheet',{staticClass:\"rounded text-center pa-1 text-truncate\",attrs:{\"color\":\"#f0fdf3\",\"height\":\"56px\",\"width\":\"110px\"}},[_c('p',{staticClass:\"subtitle-2 mb-0\",staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\" Total Price ($) \")]),_c('span',[_vm._v(_vm._s(_vm.calculatePrice))])])],1)]),_c('v-col',[_c('v-btn',{attrs:{\"outlined\":\"\",\"x-large\":\"\",\"color\":\"primary\",\"disabled\":!_vm.selectedProduct},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-bag', _vm.selectedProduct)}}},[_vm._v(\" Add to custom bag \")]),_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"x-large\":\"\",\"disabled\":!_vm.selectedProduct},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder()}}},[_vm._v(\" Add to order \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"pa-0\">\n    <v-row class=\"ml-4\">\n      <v-col\n        cols=\"2\"\n        class=\"mr-2\"\n      >\n        <v-btn\n          depressed\n          text\n          color=\"primary\"\n          x-large\n          width=\"128px\"\n          @click=\"$emit('openDrawingPanel')\"\n        >\n          <v-icon\n            left\n          >\n            mdi-vector-square\n          </v-icon>\n          Drawings\n        </v-btn>\n      </v-col>\n      <template v-for=\"(productOption, index) in productOptions\">\n        <v-col\n          v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n          :key=\"`dropdown-${productOption.id}`\"\n        >\n          <v-select\n            v-model=\"selectedOptions[productOption.id]\"\n            :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n            :items=\"filteredItems(index)\"\n            attach\n            :item-text=\"locale === 'en-US' ? 'text' : 'textChs'\"\n            item-value=\"id\"\n            outlined\n            hide-details\n            @click.stop\n          />\n        </v-col>\n        <v-col\n          v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n          :key=\"`checkbox-${productOption.id}`\"\n          class=\"pl-0\"\n        >\n          <v-checkbox\n            v-model=\"selectedOptions[productOption.id]\"\n            :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n            :true-value=\"productOption.options[1].id\"\n            :false-value=\"productOption.options[0].id\"\n            hide-details\n            @click.stop\n          />\n        </v-col>\n        <v-col\n          v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n          :key=\"`plainText-${productOption.id}`\"\n        >\n          <div\n            style=\"color:rgba(0,0,0,0.6);\"\n            class=\"caption\"\n          >\n            {{ productOption[locale === 'en-US' ? 'label' : 'labelChs'] }}\n          </div>\n          <div>\n            {{\n              getReadOnlyProduct[locale === 'en-US' ? 'text' : 'textChs']\n            }}\n          </div>\n        </v-col>\n      </template>\n    </v-row>\n    <v-row class=\"ml-4\">\n      <v-col cols=\"3\" class=\"pr-0\">\n        <div class=\"d-flex justify-center\">\n          <v-text-field\n            v-model.number=\"reqQty\"\n            style=\"max-width: 80px;display: inline-block !important;\"\n            class=\"mr-2\"\n            height=\"56px\"\n            data-cy=\"quantity-input-upload\"\n            :label=\"$t('views.instantQuote.quantity')\"\n            :rules=\"[isPositiveInteger]\"\n            type=\"number\"\n            hide-details\n            outlined\n            @input.native=\"reqQty = Math.max(Math.abs(Math.trunc($event.target.value)), 0);\"\n            @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n            @click.stop\n          />\n          <v-sheet\n            color=\"#f0fdf3\"\n            class=\"rounded text-center pa-1 text-truncate\"\n            height=\"56px\"\n            width=\"110px\"\n          >\n            <p class=\"subtitle-2 mb-0\" style=\"color: #8D8D8D\">\n              Total Price ($)\n            </p>\n            <span>{{ calculatePrice }}</span>\n          </v-sheet>\n        </div>\n      </v-col>\n\n      <v-col>\n        <v-btn\n          outlined\n          x-large\n          color=\"primary\"\n          :disabled=\"!selectedProduct\"\n          @click.stop=\"$emit('add-to-bag', selectedProduct)\"\n        >\n          Add to custom bag\n        </v-btn>\n\n        <v-btn\n          color=\"primary\"\n          x-large\n          class=\"ml-6\"\n          :disabled=\"!selectedProduct\"\n          @click.stop=\"addToOrder()\"\n        >\n          Add to order\n        </v-btn>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n  name: 'ProductOption',\n\n  mixins: [\n    FormRules,\n  ],\n\n  props: {\n    productGroupId: {\n      type: String,\n      default: ''\n    },\n    productGroupKey: {\n      type: String,\n      default: ''\n    },\n    productOptions: {\n      type: Array,\n      default: () => []\n    },\n    productQuery: {\n      type: Object,\n      default: () => {\n      },\n    },\n  },\n  data() {\n    return {\n      isDrawingsDialogOpen: false,\n      selectedOptions: {},\n      reqQty: 1,\n      customBag: [],\n      forceUpdateField: Date.now()\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n    HardwareProduct: () => models.api.HardwareProduct,\n\n    filteredItems: vm => index => {\n      const currentOption = vm.productOptions[index];\n      if (!currentOption) {\n        return [];\n      }\n\n      const optionsFilter = vm.productOptions.slice(0, index).map(o => ({ [o.id]: vm.selectedOptions[o.id] || '' }));\n\n      const query = {\n        query: {\n          $sort: vm.productQuery.query.$sort,\n          [vm.productGroupKey]: vm.productGroupId\n        }\n      };\n      Object.assign(query.query, ...optionsFilter);\n\n      const productValue = vm.HardwareProduct.findInStore(query).data;\n\n      if (productValue.length === 0) {\n        return [];\n      }\n\n      vm.productReadOnlyOptions.forEach(option => {\n        vm.selectedOptions[option.id] = productValue[0][option.id];\n      });\n\n      vm.productCheckBoxOptions.forEach(option => {\n        vm.selectedOptions[option.id] = productValue[0][option.id];\n      });\n\n      const res = productValue.map(o => (o[currentOption.id]));\n      if (res.length === 0) {\n        return [];\n      }\n\n      return res.map(value => currentOption.options.find(option => option.id === value)) || [];\n    },\n\n    selectedProduct: vm => {\n      const query = {\n        query: {\n          $sort: vm.productQuery.query.$sort,\n          [vm.productGroupKey]: vm.productGroupId,\n          ...vm.selectedOptions\n        }\n      };\n\n      const product = vm.HardwareProduct.findInStore(query).data;\n      if (product.length === 0 || product.length > 1) {\n        return null;\n      }\n\n      return product[0];\n    },\n\n    calculatePrice: vm => {\n      if (!vm.selectedProduct) {\n        return '';\n      }\n\n      const findPrice = vm.selectedProduct.priceMOQ.reverse().find(({ Qty }) => Qty < vm.reqQty) || vm.selectedProduct.priceMOQ[0];\n\n      if (!findPrice) {\n        return '';\n      }\n\n      return Math.round((findPrice.Price * vm.reqQty) * 100) / 100;\n    },\n\n    productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n    productCheckBoxOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'checkbox') : []),\n\n    getReadOnlyProduct: vm => {\n      const product = vm.HardwareProduct.findInStore({\n        query: {\n          $sort: vm.productQuery.query.$sort,\n          [vm.productGroupKey]: vm.productGroupId\n        }\n      }).data[0];\n      if (!product) {\n        return {};\n      }\n\n      return vm.productReadOnlyOptions[0].options.find(value => value.id === product[vm.productReadOnlyOptions[0].id]) || {};\n    },\n\n    selectedOption: vm => {\n      if (vm.HardwareProduct.store.state['hardware-products'].ids.length > 0) {\n        vm.productOptions.forEach(fil => {\n          if (!vm.selectedOptions[fil.id]) {\n            vm.$set(vm.selectedOptions, fil.id, '');\n          }\n        });\n      }\n      return vm.selectedOptions;\n    },\n  },\n\n  watch: {\n    selectedProduct() { // watch it\n      this.forceUpdateField = Date.now();\n    }\n  },\n\n  methods: {\n    ...mapActions('app', ['initCurrentOrder']),\n\n    async addToOrder() {\n      const order = await this.initCurrentOrder();\n      order.addItem('hardware', this.selectedProduct._id, this.reqQty);\n    }\n  }\n};\n</script>\n\n<style scoped>\n\n>>> .v-skeleton-loader__image {\n  height: 600px !important;\n}\n\n.v-data-table > .v-data-table__wrapper > table > tbody {\n  padding-left: 55px !important;\n  width: 50px\n}\n\n::v-deep .warningStyle {\n  background-color: #fbe9ec !important;\n}\n\n.warningFontColor {\n  color: #B71C1C;\n}\n\n::v-deep .v-data-table__expand-icon--active {\n  color: green;\n  transform: rotate(90deg) !important;\n}\n\n::v-deep .v-icon.notranslate.v-data-table__expand-icon {\n  color: green;\n  margin: 0 10px;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n  background-color: #beebc9;\n  padding: 0 0 0 15px !important;\n  height: 25px;\n  font-size: 12px;\n}\n\n::v-deep thead th:first-child {\n  border-radius: 5px 0 0 0;\n}\n\n::v-deep thead th:last-child {\n  border-radius: 0 5px 0 0;\n}\n\n.active {\n  background-color: green !important;\n  color: white !important;\n  opacity: 1;\n}\n\n.active-filter {\n  background-color: #f5f5f5 !important;\n  color: green !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:first-child {\n  border-top-left-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:last-child {\n  border-top-right-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr.v-data-table__expanded > td {\n  border-bottom: none !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper tbody tr.v-data-table__expanded {\n  background-color: #fafffb !important;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDrawingTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDrawingTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductDrawingTable.vue?vue&type=template&id=1e25196b&scoped=true&\"\nimport script from \"./ProductDrawingTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductDrawingTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductDrawingTable.vue?vue&type=style&index=0&id=1e25196b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"1e25196b\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VContainer,VIcon,VRow,VSelect,VSheet,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.stlReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isStlRemoved,\"color\":\"primary\"}},[_vm._v(\" STL file uploaded \")]),(!_vm.isStlRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showStlRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isStlRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-cad \")]),_vm._v(\" Upload STL File \")],1)],_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isStlRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removeSTL,\"click:cancel\":function($event){_vm.showStlRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Delete STL File? \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: 'STL File' }))}})])]},proxy:true}]),model:{value:(_vm.showStlRemoveDialog),callback:function ($$v) {_vm.showStlRemoveDialog=$$v},expression:\"showStlRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"custom\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isStlUploadPending,\"is-ok-disabled\":!_vm.isFileAdded},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;_vm.removeSTL()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Upload STL File \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-stl\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" File Supported: STL \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,1032472910),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isSTLDownload,\"z-index\":\"90\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <div v-if=\"stlReady\" style=\"display: inline\">\n      <v-btn\n        text\n        small\n        class=\"pr-1\"\n        :loading=\"isStlRemoved\"\n        color=\"primary\"\n      >\n        STL file uploaded\n      </v-btn>\n      <v-icon v-if=\"!isStlRemoved\" small @click=\"showStlRemoveDialog = true\">\n        mdi-close\n      </v-icon>\n    </div>\n    <template v-else>\n      <v-btn\n        text\n        small\n        :loading=\"isStlRemoved\"\n        color=\"primary\"\n        @click=\"display=true;\"\n      >\n        <v-icon left size=\"25\">\n          mdi-file-cad\n        </v-icon>\n        Upload STL File\n      </v-btn>\n    </template>\n\n    <core-dialog\n      v-model=\"showStlRemoveDialog\"\n      type=\"confirmation\"\n      width=\"500px\"\n      :is-loading=\"isStlRemoved\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"removeSTL\"\n      @click:cancel=\"showStlRemoveDialog =false\"\n    >\n      <template #title>\n        Delete STL File?\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <span\n            class=\"d-block\"\n            v-html=\"$t('common.deleteDialogText', { name: 'STL File' })\"\n          />\n        </div>\n      </template>\n    </core-dialog>\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"custom\"\n      width=\"1000px\"\n      :eager=\"true\"\n      :is-loading=\"isStlUploadPending\"\n      :is-ok-disabled=\"!isFileAdded\"\n      @click:ok=\"display = false;\"\n      @click:cancel=\"display = false;removeSTL()\"\n    >\n      <template #title>\n        Upload STL File\n      </template>\n      <template #content>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-stl\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                File Supported: STL\n              </div>\n            </v-card-text>\n          </v-card>\n          {{ $t('myPartPdf.SingleFileOnly') }}\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-overlay :value=\"isSTLDownload\" z-index=\"90\" />\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default {\n  name: 'StlFileUpload',\n  props: {\n    stlUrl: {\n      type: String,\n    },\n  },\n  data() {\n    return {\n      stlReady: false,\n      previewSTLUrl: '',\n      isStlUploadPending: false,\n      isFileAdded: false,\n      showStlRemoveDialog: false,\n      myDropZone: null,\n      display: false,\n      isStlRemoved: false,\n      isSTLDownload: false\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => ({\n      url: `${process.env.VUE_APP_API_URL}upload`,\n      paramName: 'file',\n      headers: {\n        Authorization: vm.accessToken,\n      },\n      thumbnailWidth: 150,\n      maxFilesize: 20,\n      timeout: 9999999,\n      maxFiles: 1,\n      parallelUploads: 1,\n      acceptedFiles: '.stl,.STL',\n      dictDefaultMessage: 'dropZone.dictDefaultMessage',\n      dictFallbackMessage: 'dropZone.dictFallbackMessage',\n      dictFallbackText: 'dropZone.dictFallbackText',\n      dictFileTooBig: 'dropZone.dictFileTooBig',\n      dictInvalidFileType: 'dropZone.dictInvalidFileType',\n      dictResponseError: 'dropZone.dictResponseError',\n      dictCancelUpload: 'dropZone.dictCancelUpload',\n      dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n      dictRemoveFile: 'dropZone.dictRemoveFile',\n      dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n      clickable: '#dropzone-click-target-stl',\n      previewTemplate: vm.template(),\n      renameFile: file => `${vm.getNewUuid()}.${_.last(file.name.split('.'))}`,\n      init() {\n        this.on('error', async file => {\n          this.removeFile(file);\n        });\n        this.on('success', async file => {\n          if (file.upload) {\n            vm.previewSTLUrl = `${process.env.VUE_APP_API_URL}uploads/${file.upload.filename}`;\n            vm.$emit('stlFileUploaded', vm.previewSTLUrl);\n          }\n          vm.isStlUploadPending = false;\n          vm.display = false;\n        });\n\n        this.on('sending', () => {\n          vm.isStlUploadPending = true;\n        });\n\n        this.on('addedfile', () => {\n          vm.stlReady = true;\n          vm.isFileAdded = true;\n        });\n      }\n\n    }),\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    },\n    stlUrl(val) {\n      if (val) {\n        this.stlReady = true;\n        this.previewSTLUrl = this.stlUrl;\n      } else {\n        this.stlReady = false;\n      }\n    }\n  },\n\n  methods: {\n    getNewUuid() {\n      return uuidv4();\n    },\n    async onFileChanged(e) {\n      const [pdfFile] = e.target.files;\n      this.previewSTLUrl = URL.createObjectURL(pdfFile);\n      this.$emit('stlFileUploaded', this.previewSTLUrl);\n      this.stlReady = true;\n    },\n    async removeSTL() {\n      URL.revokeObjectURL(this.previewSTLUrl);\n      this.stlReady = false;\n      this.showStlRemoveDialog = false;\n      this.previewSTLUrl = '';\n      this.$emit('stlFileUploaded', this.previewSTLUrl);\n      this.isFileAdded = false;\n    },\n    template() {\n      return `\n             <div class=\"d-flex align-start flex-column mt-16\">\n                <p style=\"vertical-align: bottom\">Document selected</p>\n                <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n                  <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n                  <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n                </p>\n             </div>`;\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StlFileUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StlFileUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StlFileUpload.vue?vue&type=template&id=df715fc0&\"\nimport script from \"./StlFileUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./StlFileUpload.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VOverlay})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'shipping-addresses';\n\nconst Model = class ShippingAddress extends BaseModel {\n  static modelName = 'ShippingAddress';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Filter.vue?vue&type=style&index=0&id=3ebbc123&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.isPdfAlreadyUpload)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"px-0\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();_vm.isPDFDownload=true}}},[_c('v-icon',[_vm._v(\" mdi-file-pdf-box \")])],1)],1):_c('v-icon',{attrs:{\"color\":\"primary\",\"size\":\"20\"}},[_vm._v(\" mdi-note-off \")]),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"},on:{\"click\":function($event){$event.stopPropagation();}}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"70%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\",\"z-index\":\"99 !important\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-name\":_vm.part.Item,\"file-path\":_vm.pdfUri,\"item-height\":800},on:{\"click\":function($event){$event.stopPropagation();}}}):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline;\">\n    <div v-if=\"isPdfAlreadyUpload\" style=\"display: inline\">\n      <v-btn\n        text\n        small\n        class=\"px-0\"\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n\n        @click.stop=\"isPDFDownload=true\"\n      >\n        <v-icon>\n          mdi-file-pdf-box\n        </v-icon>\n      </v-btn>\n    </div>\n\n    <v-icon v-else color=\"primary\" size=\"20\">\n      mdi-note-off\n    </v-icon>\n    <v-overlay :value=\"isPDFDownload\" z-index=\"90\" @click.stop />\n    <v-navigation-drawer\n      v-model=\"isPDFDownload\"\n      width=\"70%\"\n      fixed\n      stateless\n      hide-overlay\n      right\n      temporary\n      style=\"background-color: #ada6a6; z-index: 99 !important;\"\n      @click.stop\n    >\n      <div\n        ref=\"rfqViewerContainer\"\n        style=\"height: calc(100% - 52px);z-index: 99 !important;\"\n        @click.stop\n      >\n        <div class=\"d-flex justify-end\">\n          <v-btn\n            icon\n            x-large\n            @click=\"isPDFDownload=false\"\n          >\n            <v-icon>mdi-close</v-icon>\n          </v-btn>\n        </div>\n\n        <core-pdf-viewer\n          v-if=\"isPDFDownload\"\n          :file-name=\"part.Item\"\n          :file-path=\"pdfUri\"\n          :item-height=\"800\"\n          @click.stop\n        />\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'MyPartPdfViewer',\n  props: {\n    part: {\n      type: Object,\n    },\n  },\n  data() {\n    return {\n      myDropZone: null,\n      pdfPageHeight: 0,\n      pdfPageWidth: 0,\n      display: false,\n      isPdfAlreadyUpload: false,\n      isPDFDownload: false,\n      isPdfUploadPending: false,\n      isFileAdded: true,\n      isPdfRemoved: false\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n\n    pdfUri: vm => {\n      if (!vm.part) {\n        return '';\n      }\n      const host = process.env.VUE_APP_API_URL;\n      const fileName = `${_.get(vm.part, 'DrawingRowPointer', '').toLowerCase()}.pdf`;\n      return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}`;\n    }\n  },\n\n  async created() {\n    await this.checkIfPdfExist();\n  },\n  mounted() {\n    const resizeObserver = new ResizeObserver(() => {\n      /* 70 breathing room */\n      this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n      const ratio = 8.5 / 11;\n      this.pdfPageHeight = this.pdfPageWidth / ratio;\n    });\n    resizeObserver.observe(this.$refs.rfqViewerContainer);\n  },\n  methods: {\n    async checkIfPdfExist() {\n      const response = await fetch(\n        this.pdfUri,\n      );\n      this.isPdfAlreadyUpload = response.status === 200;\n    }\n  },\n\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdfViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdfViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MyPartPdfViewer.vue?vue&type=template&id=29ab7252&scoped=true&\"\nimport script from \"./MyPartPdfViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./MyPartPdfViewer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"29ab7252\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VIcon,VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fill-height\"},[_c('v-app-bar',{staticClass:\"elevation-0\",attrs:{\"app\":\"\"},scopedSlots:_vm._u([(_vm.needAppBarExtension)?{key:\"extension\",fn:function(){return [_vm._t(\"extension\")]},proxy:true}:null],null,true)},[_c('v-toolbar-title',{staticClass:\"font-weight-light\"},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_vm._t(\"toolbar-title\"),(_vm.user.rights.supportUser)?_c('v-btn',{staticClass:\"secondary ml-2\",attrs:{\"disabled\":_vm.isPatchPending,\"loading\":_vm.isPatchPending},on:{\"click\":function($event){$event.stopPropagation();return _vm.logoutFromCompany.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.logoutFromCompany'))+\" \")]):_vm._e()],2)]),_c('v-spacer'),_c('v-toolbar-items',{staticClass:\"justify-center align-center\"},[_vm._t(\"toolbar-icons\"),_c('v-select',{staticClass:\"d-flex \",staticStyle:{\"min-width\":\"130px!important\",\"max-width\":\"130px\",\"padding-left\":\"0 !important\"},attrs:{\"value\":_vm.locale,\"items\":_vm.langList,\"item-value\":\"value\",\"item-text\":\"label\",\"solo\":\"\",\"flat\":\"\",\"hide-details\":\"\",\"single-line\":\"\"},on:{\"change\":function (currentLang) {_vm.setLocale({ $i18n: _vm.i18n, locale: currentLang });}},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-icon',{staticClass:\"ma-0\",attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-web \")])]},proxy:true},{key:\"selection\",fn:function(data){return [_c('span',{staticStyle:{\"color\":\"#2c984e\"}},[_vm._v(_vm._s(data.item.label))])]}}])}),_c('v-menu',{staticClass:\"justify-center align-center\",attrs:{\"open-on-hover\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g({staticStyle:{\"min-width\":\"300px !important\",\"max-width\":\"300px\"}},on),[_c('core-avatar',{staticClass:\"mr-3\",attrs:{\"data-cy\":\"main-menu\",\"hide-avatar\":_vm.currentUser.isAvatarIsHidden,\"user\":_vm.currentUser,\"url-preview\":_vm.currentUser.avatarUrl || _vm.userAvatarUrl,\"size\":60,\"display-border\":true,\"is-img-loading\":_vm.currentUser.isAvatarLoading}}),_c('v-list-item-content',[_c('v-list-item-title',{class:[{loading: !_vm.currentUser.firstName && !_vm.currentUser.lastName}],attrs:{\"data-cy\":\"user-name-main-menu\"}},[_vm._v(\" \"+_vm._s(_vm.currentUser.firstName + ' ' + _vm.currentUser.lastName)+\" \")]),_c('v-list-item-subtitle',{class:[{loading: !_vm._.get(_vm.company, 'CompanyName')}],attrs:{\"data-cy\":\"company-name-main-menu\"}},[_vm._v(\" \"+_vm._s(_vm._.get(_vm.company, 'CompanyName'))+\" \")])],1),_c('v-list-item-action',[_c('v-icon',[_vm._v(\" mdi-menu-down \")])],1)],1)]}}])},[_c('v-card',[_c('v-list',{attrs:{\"data-cy\":\"company-name-main-menu-options\"}},_vm._l((_vm.preferenceMenuOptions),function(option,i){return _c('v-list-item',{key:i,attrs:{\"data-cy\":(\"main-menu-\" + (option.text.replace(' ', '-').toLowerCase()) + \"-option\"),\"disabled\":!option.enabled},on:{\"click\":function($event){return _vm.$router.push({ path: option.to })}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(option.icon)+\" \")]),_c('v-list-item-content',[_vm._v(\" \"+_vm._s(option.text)+\" \")])],1)}),1)],1)],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-badge',{attrs:{\"data-cy\":\"current-order-items-count\",\"value\":_vm.currentOrderItemsCount,\"color\":\"error\",\"overlap\":\"\",\"left\":\"\",\"content\":_vm.currentOrderItemsCount}},[_c('v-btn',{attrs:{\"data-cy\":\"go-to-the-order-form\",\"color\":\"primary\",\"small\":\"\",\"to\":\"/order/new\"}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-view-list-outline \")]),_c('span',[_vm._v(_vm._s(_vm.$t('views.confirmedOrder.title')))])],1)],1),_c('span',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.locationLabel', { location: (_vm.currentOrder && _vm.currentOrder.factoryName) || '---' }))+\" \")])],1)],2)],1),_vm._t(\"default\"),_c('v-footer',{staticClass:\"pr-3 pa-0 grey--text caption\",staticStyle:{\"background-color\":\"#F8F8FF\"},attrs:{\"height\":\"80px\",\"fixed\":\"\"}},[_c('v-row',{staticClass:\"align-center justify-center fill-height text-center\",staticStyle:{\"min-width\":\"1000px\",\"margin-left\":\"220px\"}},[_c('v-col',{staticStyle:{\"overflow\":\"hidden\",\"text-overflow\":\"ellipsis\",\"width\":\"1px\"}},[_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(\" Komacut® www.komacut.com © \"+_vm._s(new Date().getFullYear())+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://www.komacut.com/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('common.allRights'))+\" \")]),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('common.footerRight'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/legal/privacy-policy/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('common.privacy')))]),_vm._v(\" \"+_vm._s(_vm.$t('common.and'))+\" \"),_c('a',{staticClass:\"text-decoration-none\",attrs:{\"href\":\"https://komacut.com/legal/platform-terms/\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('common.terms'))+\".\")])])])],1)],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n  props: {\n    // Service name. This will automate fetching, pagination, etc...\n    modelName: String,\n  },\n\n  computed: {\n    /**\n     * Returns the model from the modelName property.\n     *\n     * @returns {BaseModel}\n     */\n    model() {\n      // ***************** TODO : Uncomment when backend needed\n      return this.$FeathersVuex.api[this.modelName];\n      // return true;\n    },\n\n    /**\n     * Returns the model service namespace.\n     *\n     * @returns {string}\n     */\n    namespace() {\n      return _.get(this.model, 'namespace');\n    },\n\n    /**\n     * Returns the store.\n     *\n     * @returns {object}\n     */\n    store() {\n      return _.get(this.model, 'store');\n    },\n\n    /**\n     * Returns the service's store state.\n     *\n     * @returns {object}\n     */\n    storeState() {\n      return _.get(this.store, ['state', this.namespace]);\n    },\n\n    /**\n     * Returns all store's getters.\n     *\n     * @returns {[string]}\n     */\n    storeGetters() {\n      return _.get(this.store, 'getters');\n    },\n\n    /**\n     * Returns list of all documents in the store.\n     *\n     * @returns {array}\n     */\n    list() {\n      return this.storeGetter('list');\n    },\n  },\n\n  methods: {\n    /**\n     * Generate a service action or getter store path.\n     *\n     * @param {string} name Name of getter or action.\n     *\n     * @returns {string}\n     */\n    ns(name) {\n      return `${this.namespace}/${name}`;\n    },\n\n    /**\n     * Retrieve a specific getter from the service store.\n     *\n     * @param {string} name Name of the getter.\n     *\n     * @returns {any}\n     */\n    storeGetter(name) {\n      return _.get(this.storeGetters, this.ns(name));\n    },\n\n    /**\n     * Dispatch the service store action.\n     *\n     * @param {string} name Name of the action to dispatch.\n     * @param  {...any} args\n     *\n     * @returns {Promise}\n     */\n    storeDispatch(name, ...args) {\n      return this.store.dispatch(this.ns(name), ...args);\n    },\n\n    /**\n     * Find a store entity by it's id\n     */\n    getById(_id) {\n      return this.store && this.storeDispatch('get', _id);\n    },\n\n    /**\n     * Get documents from the service store.\n     *\n     * @param {object} params Find action params to pass.\n     *\n     * @returns {array}\n     */\n    find(params) {\n      return this.store\n        ? this.storeGetter('find')(params).data\n        : [];\n    },\n\n    /**\n     * Fetch documents from the server.\n     *\n     * @param {object} params Find action params to pass.\n     *\n     * @returns {Promise}\n     */\n    fetch(params) {\n      return this.store\n        ? this.storeDispatch('find', params)\n        : {\n          data: [],\n          total: 0,\n        };\n    },\n\n    /**\n     * Generate a mongo query object.\n     *\n     * @param {object} options To build the mongo query.\n     *    {boolean} local If the query if generated for local store or server use.\n     *    {string|[string]} sortKey Key or keys to sort by.\n     *    {boolean|[boolean]} sortDesc Sort descending order or not.\n     *    {number} limit Maximum number of documents to retrieve.\n     *    {number} page Current page of documents to retrieve.\n     *    {string} search Full text (almost) search value.\n     *    {[string]} searchFields Fields to use for the text search.\n     *\n     * @returns {string}\n     */\n    generateQuery(options) {\n      const keys = options.sortKey;\n      const orders = options.sortDesc;\n      const sort = {};\n\n      if (Array.isArray(keys)) {\n        for (let x = 0; x < keys.length; x++) {\n          const k = keys[x];\n          const o = orders === false || _.get(orders, x) === false;\n          if (o !== undefined) {\n            sort[k] = o === false ? 1 : -1;\n          }\n        }\n      } else if (keys && orders !== undefined) {\n        sort[keys] = orders === false ? 1 : -1;\n      }\n\n      let query = {\n        $skip: options.limit * Math.max(0, options.page - 1),\n        $limit: options.limit,\n        $sort: sort,\n      };\n\n      if (!_.isEmpty(options.search)) {\n        // Documents should already be aggregated from the server here\n        // Just do a query on searchFields and newly aggregated fields\n        if (options.local) {\n          const aggregateFields = [];\n\n          const re = new RegExp(options.search, 'i');\n\n          const instancePaths = _.get(this.model, 'instanceDefaults', () => undefined)();\n\n          // Get only fields of type string\n          const stringFields = options.searchFields.filter(f => _.isString(_.get(instancePaths, f)));\n          const fields = [\n            ...stringFields.map(field => ({ [field]: re })),\n            { 'createdBy.displayName': re },\n            { 'createdBy.email': re },\n            { 'updatedBy.displayName': re },\n            { 'updatedBy.email': re },\n          ];\n\n          if (options.searchAggregate) {\n            for (const a of options.searchAggregate) {\n              const { searchFields } = a;\n\n              const searchFieldsPaths = {};\n              searchFields.map(f => _.set(searchFieldsPaths, [f], ''));\n\n              const servicePaths = {\n                ..._.get(\n                  this.$FeathersVuex.api.byServicePath,\n                  [a.from || '', 'instanceDefaults'],\n                  () => {}\n                )(),\n                ...searchFieldsPaths,\n              };\n\n              // Get only fields of type string\n              const serviceStringFields = searchFields.filter(f => _.isString(_.get(servicePaths, [f])));\n\n              serviceStringFields.forEach(f => {\n                aggregateFields.push({ [f]: re });\n              });\n            }\n          }\n\n          query.$or = [\n            ...fields,\n            ...aggregateFields,\n          ];\n        } else {\n          query.search = options.search;\n          query.searchFields = [...options.searchFields, 'createdBy', 'updatedBy'];\n          query.searchAggregate = _.compact([\n            ...(options.searchAggregate || []),\n            {\n              from: 'users',\n              localField: 'updatedById',\n              foreignField: '_id',\n              as: 'updatedByDetail',\n              project: { displayName: 1, email: 1 },\n              searchFields: [\n                'updatedByDetail.displayName',\n                'updatedByDetail.email',\n              ],\n            },\n            {\n              from: 'users',\n              localField: 'createdById',\n              foreignField: '_id',\n              as: 'createdByDetail',\n              project: { displayName: 1, email: 1 },\n              searchFields: [\n                'createdByDetail.displayName',\n                'createdByDetail.email',\n              ],\n            },\n          ]);\n        }\n      }\n\n      const filterField = _.get(options.filter, 'field');\n      const filterValue = _.get(options.filter, 'value');\n      if (!_.isEmpty(filterField) && !_.isEmpty(filterValue) && filterValue !== '*') {\n        if (filterValue.startsWith('*')) {\n          query[filterField] = new RegExp(`^${filterValue.substr(1)}`);\n        } else if (filterValue.endsWith('*')) {\n          query[filterField] = new RegExp(`${filterValue.substr(-1)}$`);\n        } else {\n          query[filterField] = filterValue;\n        }\n      }\n\n      query = { ...query, ...(options.query || {}) };\n\n      return query;\n    },\n\n    /**\n     * Remove a document from store and server.\n     *\n     * @param {string} _id Id of document to remove.\n     *\n     * @returns {Promise}\n     */\n    removeDoc(_id) {\n      return this.store\n        ? this.storeDispatch('remove', _id).then(() => this.$refs.tabs.removeTab(-1, _id))\n        : Promise.resolve(() => {});\n    },\n\n    /**\n     * Remove multiple documents from store and server.\n     *\n     * @param {[string]} docIds Array of document ids.\n     *\n     * @returns {Promise}\n     */\n    remove(docIds) {\n      const promises = [];\n      for (const _id of docIds) {\n        promises.push(this.removeDoc(_id));\n      }\n      return Promise.all(promises);\n    },\n  },\n};\n","export default {\n  props: {\n    /** Columns to display from items/entities in the table\n     *    text: string\n     *    value: string\n     *    align?: 'start' | 'center' | 'end'\n     *    sortable?: boolean\n     *    filterable?: boolean\n     *    divider?: boolean\n     *    class?: string | string[]\n     *    width?: string | number\n     *    filter?: (value: any, search: string, item: any) => boolean\n     *    sort?: (a: any, b: any) => number\n     */\n    headers: { type: Array, default: () => [] },\n\n    // Radial menu items to display when table row is clicked\n    menuItems: { type: Array, default: () => [] },\n\n    // Name of the entity key for the table\n    itemKey: { type: String, default: '_id' },\n\n    // Name of the default sort entity key for the table\n    sortKey: { type: [String, Array], default: 'name' },\n\n    // Wheter the sorting is descending or not in the table\n    sortDesc: { type: [Boolean, Array], default: false },\n\n    // Items/entities to display in the table\n    items: { type: Array, default: () => [] },\n\n    // Are items/entities still loading\n    loading: { type: Boolean, default: false },\n\n    // Text to display while loading\n    loadingText: String,\n\n    // Selected items/entities in the table\n    selected: { type: Array, default: () => [] },\n\n    // Hovered row index in the table\n    hovered: { type: Number, default: () => -1 },\n\n    // Table page being displayed\n    page: { type: Number, default: 1 },\n\n    // Table number of records being displayed\n    limit: { type: Number, default: -1 },\n\n    // Total number of items on the server\n    total: { type: Number, default: 0 },\n\n    // Should we hide the search text field\n    hideSearch: Boolean,\n\n    // Default search text\n    search: String,\n\n    // Current entity selected when opening the radial menu\n    entity: Object,\n\n    // Default filter value\n    filter: String,\n\n    // Default remote + local filter value\n    query: Object,\n\n    // Default local filter value\n    localQuery: Object,\n\n    // Default remote filter value\n    remoteQuery: Object,\n\n    // Delay before search is triggered when changing currentSearch\n    searchDelay: { type: Number, default: 500 },\n  },\n\n  data() {\n    return {\n      currentPage: 1,\n      currentLimit: 10,\n      currentTotal: 0,\n      currentEntity: undefined,\n      currentSortKey: '',\n      currentSortDesc: false,\n      currentSelected: [],\n      currentHovered: -1,\n      currentSearch: undefined,\n      currentFilter: undefined,\n      currentQuery: undefined,\n      currentRemoteQuery: undefined,\n      currentLocalQuery: undefined,\n      delayedSearch: undefined,\n      delayedSearchTimeout: 0,\n    };\n  },\n\n  watch: {\n    entity(newValue) {\n      this.currentEntity = newValue;\n    },\n\n    page(newValue) {\n      this.currentPage = newValue;\n    },\n\n    limit(newValue) {\n      this.currentLimit = newValue;\n    },\n\n    total(newValue) {\n      this.currentTotal = newValue;\n    },\n\n    sortKey(newValue) {\n      this.currentSortKey = newValue;\n    },\n\n    sortDesc(newValue) {\n      this.currentSortDesc = newValue;\n    },\n\n    selected(newValue) {\n      this.currentSelected = newValue;\n    },\n\n    hovered(newValue) {\n      this.currentHovered = newValue;\n    },\n\n    filter(newValue) {\n      this.currentFilter = newValue;\n    },\n\n    query(newValue) {\n      this.currentQuery = newValue;\n    },\n\n    remoteQuery(newValue) {\n      this.currentRemoteQuery = newValue;\n    },\n\n    localQuery(newValue) {\n      this.currentLocalQuery = newValue;\n    },\n\n    search(newValue) {\n      this.currentSearch = newValue;\n    },\n\n    currentEntity(newValue) {\n      this.$emit('update:entity', newValue);\n    },\n\n    currentPage(newValue) {\n      this.$emit('update:page', newValue);\n      this.refresh();\n    },\n\n    currentLimit(newValue) {\n      this.$emit('update:limit', newValue);\n      this.refresh();\n    },\n\n    currentSortKey(newValue) {\n      this.$emit('update:sort-key', newValue);\n      this.refresh();\n    },\n\n    currentSortDesc(newValue) {\n      this.$emit('update:sort-desc', newValue);\n      this.refresh();\n    },\n\n    currentSelected(newValue) {\n      this.$emit('update:selected', newValue);\n    },\n\n    currentHovered(newValue) {\n      this.$emit('update:hovered', newValue);\n    },\n\n    currentFilter(newValue) {\n      this.$emit('update:filter', newValue);\n      this.refresh();\n    },\n\n    currentQuery(newValue) {\n      this.$emit('update:query', newValue);\n      this.refresh();\n    },\n\n    currentRemoteQuery(newValue) {\n      this.$emit('update:remote-query', newValue);\n      this.refresh();\n    },\n\n    currentLocalQuery(newValue) {\n      this.$emit('update:local-query', newValue);\n      this.refresh();\n    },\n\n    currentSearch(newValue) {\n      this.$emit('update:search', newValue);\n\n      clearTimeout(this.delayedSearchTimeout);\n      this.delayedSearchTimeout = setTimeout(() => {\n        this.delayedSearch = this.currentSearch;\n        this.refresh();\n      }, this.searchDelay);\n    },\n  },\n\n  mounted() {\n    this.currentSortKey = this.sortKey;\n    this.currentSortDesc = this.sortDesc;\n    this.currentEntity = this.entity;\n    this.currentPage = this.page;\n    this.currentLimit = this.limit;\n    this.currentSelected = this.selected;\n    this.currentHovered = this.hovered;\n    this.currentSearch = this.search;\n    this.currentFilter = this.filter;\n    this.currentQuery = this.query;\n    this.currentRemoteQuery = this.remoteQuery;\n    this.currentLocalQuery = this.localQuery;\n  },\n\n  methods: {\n    refresh() {\n      // override if need be\n    },\n  },\n};\n","<template>\n  <!-- TODO handle scrolling - style=\"overflow-x: scroll;\" -->\n  <div class=\"fill-height\">\n    <v-app-bar\n      class=\"elevation-0\"\n      app\n    >\n      <v-toolbar-title class=\"font-weight-light\">\n        <div style=\"display: flex;\">\n          <slot name=\"toolbar-title\" />\n          <v-btn\n            v-if=\"user.rights.supportUser\"\n            class=\"secondary ml-2\"\n            :disabled=\"isPatchPending\"\n            :loading=\"isPatchPending\"\n            @click.stop=\"logoutFromCompany\"\n          >\n            {{ $t('common.logoutFromCompany') }}\n          </v-btn>\n        </div>\n      </v-toolbar-title>\n\n      <v-spacer />\n      <v-toolbar-items class=\"justify-center align-center\">\n        <slot name=\"toolbar-icons\" />\n        <v-select\n          :value=\"locale\"\n          class=\"d-flex \"\n          style=\"min-width:130px!important; max-width: 130px; padding-left: 0 !important;\"\n          :items=\"langList\"\n          item-value=\"value\"\n          item-text=\"label\"\n          solo\n          flat\n          hide-details\n          single-line\n          @change=\"(currentLang) => {setLocale({ $i18n: i18n, locale: currentLang });} \"\n        >\n          <template #prepend>\n            <v-icon class=\"ma-0\" color=\"primary\">\n              mdi-web\n            </v-icon>\n          </template>\n          <template slot=\"selection\" slot-scope=\"data\">\n            <span style=\"color: #2c984e\">{{ data.item.label }}</span>\n          </template>\n        </v-select>\n        <v-menu\n          open-on-hover\n          offset-y\n          class=\"justify-center align-center\"\n        >\n          <template v-slot:activator=\"{ on }\">\n            <v-list-item style=\"min-width: 300px !important;max-width: 300px\" v-on=\"on\">\n              <core-avatar\n                class=\"mr-3\"\n                data-cy=\"main-menu\"\n                :hide-avatar=\"currentUser.isAvatarIsHidden\"\n                :user=\"currentUser\"\n                :url-preview=\"currentUser.avatarUrl || userAvatarUrl\"\n                :size=\"60\"\n                :display-border=\"true\"\n                :is-img-loading=\"currentUser.isAvatarLoading\"\n              />\n              <v-list-item-content>\n                <v-list-item-title\n                  data-cy=\"user-name-main-menu\"\n                  :class=\"[{loading: !currentUser.firstName && !currentUser.lastName}]\"\n                >\n                  {{ currentUser.firstName + ' ' + currentUser.lastName }}\n                </v-list-item-title>\n                <v-list-item-subtitle\n                  data-cy=\"company-name-main-menu\"\n                  :class=\"[{loading: !_.get(company, 'CompanyName')}]\"\n                >\n                  {{ _.get(company, 'CompanyName') }}\n                </v-list-item-subtitle>\n              </v-list-item-content>\n\n              <v-list-item-action>\n                <v-icon>\n                  mdi-menu-down\n                </v-icon>\n              </v-list-item-action>\n            </v-list-item>\n          </template>\n\n          <v-card>\n            <v-list data-cy=\"company-name-main-menu-options\">\n              <v-list-item\n                v-for=\"(option, i) in preferenceMenuOptions\"\n                :key=\"i\"\n                :data-cy=\"`main-menu-${option.text.replace(' ', '-').toLowerCase()}-option`\"\n                :disabled=\"!option.enabled\"\n                @click=\"$router.push({ path: option.to })\"\n              >\n                <v-icon left>\n                  {{ option.icon }}\n                </v-icon>\n                <v-list-item-content>\n                  {{ option.text }}\n                </v-list-item-content>\n              </v-list-item>\n            </v-list>\n          </v-card>\n        </v-menu>\n\n        <div class=\"d-flex flex-column align-center\">\n          <v-badge\n            data-cy=\"current-order-items-count\"\n            :value=\"currentOrderItemsCount\"\n            color=\"error\"\n            overlap\n            left\n            :content=\"currentOrderItemsCount\"\n          >\n            <v-btn\n              data-cy=\"go-to-the-order-form\"\n              color=\"primary\"\n              small\n              to=\"/order/new\"\n            >\n              <v-icon left size=\"25\">\n                mdi-view-list-outline\n              </v-icon>\n              <span>{{ $t('views.confirmedOrder.title') }}</span>\n            </v-btn>\n          </v-badge>\n          <span class=\"caption\">\n            {{ $t('common.locationLabel', { location: (currentOrder && currentOrder.factoryName) || '---' }) }}\n          </span>\n        </div>\n      </v-toolbar-items>\n\n      <template v-if=\"needAppBarExtension\" #extension>\n        <slot name=\"extension\" />\n      </template>\n    </v-app-bar>\n\n    <slot />\n\n    <v-footer\n      class=\"pr-3 pa-0 grey--text caption\"\n      height=\"80px\"\n      fixed\n      style=\"background-color: #F8F8FF;\"\n    >\n      <v-row class=\"align-center justify-center fill-height text-center\" style=\"min-width:1000px; margin-left: 220px;\">\n        <v-col style=\"overflow: hidden; text-overflow: ellipsis; width:1px\">\n          <span style=\"white-space: nowrap;\">\n            Komacut&reg; www.komacut.com\n            &copy;\n            {{ new Date().getFullYear() }}\n            <a class=\"text-decoration-none\" href=\"https://www.komacut.com/\" target=\"_blank\">\n              {{ $t('common.allRights') }}\n            </a>\n            <br>\n            {{ $t('common.footerRight') }}\n            <a\n              class=\"text-decoration-none\"\n              href=\"https://komacut.com/legal/privacy-policy/\"\n              target=\"_blank\"\n            >{{ $t('common.privacy') }}</a>\n            {{ $t('common.and') }}\n            <a\n              class=\"text-decoration-none\"\n              href=\"https://komacut.com/legal/platform-terms/\"\n              target=\"_blank\"\n            >{{ $t('common.terms') }}.</a>\n          </span>\n        </v-col>\n      </v-row>\n    </v-footer>\n  </div>\n</template>\n\n<script>\nimport { mapGetters, mapState, mapActions } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport i18n from '@/plugins/i18n';\nimport UpdateEntityMixin from '../../mixins/update-entity';\nimport ServiceMixin from '../../mixins/service';\nimport TableMixin from '../../mixins/table';\n\nconst { Company, User } = models.api;\n\nexport default {\n  mixins: [\n    UpdateEntityMixin,\n    ServiceMixin,\n    TableMixin,\n  ],\n  props: {\n    needAppBarExtension: {\n      type: Boolean,\n      default: false\n    }\n  },\n  data() {\n    return {\n      langList: [\n        { label: 'English', value: 'en-US' },\n        { label: '中文', value: 'cn' }\n      ],\n      i18n,\n    };\n  },\n\n  computed: {\n    ...mapGetters('app', [\n      'appVersion',\n      'currentOrder',\n      'currentOrderItemsCount',\n    ]),\n    ...mapState('app', ['locale', 'userAvatarUrl']),\n    ...mapState('auth', [\n      'user',\n    ]),\n    ...mapState('users', ['isPatchPending']),\n    HardwareCategory: () => models.api.HardwareCategory,\n\n    HardwareProduct: () => models.api.HardwareProduct,\n\n    currentUser: vm => User.getFromStore(vm.user._id),\n\n    company: () => Company.getFromStore(0),\n\n    preferenceMenuOptions: vm => {\n      const { rights = {} } = vm.currentUser;\n      return [\n        {\n          icon: 'mdi-cog',\n          text: vm.$t('menus.settings'),\n          to: '/settings/profile',\n          enabled: (vm.currentUser.isAdmin || rights.userManagement)\n        },\n\n        { icon: 'mdi-logout', text: vm.$t('menus.logout'), to: '/logout', enabled: true },\n      ];\n    },\n  },\n  created() {\n    // No need to fetch Hardware items as for support user session token not set to CSI.\n    // and also we disable left side navigation bar.\n    if (this.$route.name === 'Support') {\n      return;\n    }\n    const categoriesInStore = this.HardwareCategory.store.state['hardware-categories'].ids.length;\n\n    if (categoriesInStore === 0) {\n      this.HardwareCategory.find();\n    }\n\n    const productInStore = this.HardwareProduct.store.state['hardware-products'].ids.length;\n\n    if (productInStore === 0) {\n      this.HardwareProduct.find();\n    }\n  },\n  methods: {\n    ...mapActions('app', ['setLocale']),\n    async logoutFromCompany() {\n      await this.user.patch({ data: { shouldLogoutFromCustomerSession: true } });\n      await this.$router.push('/logout');\n    }\n  },\n};\n</script>\n<style scoped>\n::v-deep .v-input__append-inner > .v-input__icon--append > .v-icon {\n  color: green !important;\n}\n\n::v-deep .v-input__prepend-outer {\n  margin-right: 0;\n}\n\nheader.v-sheet.v-toolbar {\n    background-color: #ffffff !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=3e54cacc&scoped=true&\"\nimport script from \"./Main.vue?vue&type=script&lang=js&\"\nexport * from \"./Main.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Main.vue?vue&type=style&index=0&id=3e54cacc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"3e54cacc\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbarItems } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAppBar,VBadge,VBtn,VCard,VCol,VFooter,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemSubtitle,VListItemTitle,VMenu,VRow,VSelect,VSpacer,VToolbarItems,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.pdfReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"depressed\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('technicalDrawingPdf.view2DDrawing'))+\" \")],1)],1):[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"disabled\":!(_vm.part.DrawingRowPointer && _vm.part.Item),\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('technicalDrawingPdf.upload2DDrawing'))+\" \")],1)],(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"is-ok-disabled\":!_vm.isFileAdded,\"eager\":true,\"ok-button-text\":_vm.$t('common.upload'),\"is-loading\":_vm.isPdfUploadPending || _vm.isPdfUploadInProgress},on:{\"click:ok\":function($event){return _vm.uploadPdf(_vm.part)},\"click:cancel\":function($event){_vm.display = false;_vm.removePDF()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('technicalDrawingPdf.upload2DDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,2163002605),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-path\":_vm.previewPDFUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <div v-if=\"pdfReady\" style=\"display: inline\">\n      <v-btn\n        text\n        depressed\n        class=\"pr-1\"\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"isPDFDownload=true\"\n      >\n        <v-icon left size=\"20\">\n          mdi-open-in-new\n        </v-icon>\n        {{ $t('technicalDrawingPdf.view2DDrawing') }}\n      </v-btn>\n    </div>\n    <template v-else>\n      <v-btn\n        depressed\n        text\n        :disabled=\"!(part.DrawingRowPointer && part.Item)\"\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"display=true;\"\n      >\n        <v-icon left size=\"25\">\n          mdi-vector-square\n        </v-icon>\n        {{ $t('technicalDrawingPdf.upload2DDrawing') }}\n      </v-btn>\n    </template>\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"confirmation\"\n      width=\"1000px\"\n      :is-ok-disabled=\"!isFileAdded\"\n      :eager=\"true\"\n      :ok-button-text=\"$t('common.upload')\"\n      :is-loading=\"isPdfUploadPending || isPdfUploadInProgress\"\n      @click:ok=\"uploadPdf(part)\"\n      @click:cancel=\"display = false;removePDF()\"\n    >\n      <template #title>\n        {{ $t('technicalDrawingPdf.upload2DDrawing') }}\n      </template>\n      <template #content>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-pdf\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                {{ $t('myPartPdf.FileSupported') }}\n              </div>\n            </v-card-text>\n          </v-card>\n          {{ $t('myPartPdf.SingleFileOnly') }}\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n    <v-navigation-drawer\n      v-model=\"isPDFDownload\"\n      width=\"60%\"\n      fixed\n      stateless\n      hide-overlay\n      right\n      temporary\n      style=\"background-color: #ada6a6;z-index: 99 !important;\"\n    >\n      <div\n        ref=\"rfqViewerContainer\"\n        style=\"height: calc(100% - 52px);\"\n      >\n        <div class=\"d-flex justify-end\">\n          <v-btn\n            icon\n            x-large\n            @click=\"isPDFDownload=false\"\n          >\n            <v-icon>mdi-close</v-icon>\n          </v-btn>\n        </div>\n\n        <core-pdf-viewer\n          v-if=\"isPDFDownload\"\n          :file-path=\"previewPDFUrl\"\n          :item-height=\"800\"\n        />\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'TechnicalDrawingPdf',\n  props: {\n    part: {\n      type: Object\n    },\n  },\n  data() {\n    return {\n      pdfReady: false,\n      previewPDFUrl: '',\n      isPdfUploadPending: false,\n      isFileAdded: false,\n      showPdfRemoveDialog: false,\n      myDropZone: null,\n      pdfPageHeight: 0,\n      pdfPageWidth: 0,\n      display: false,\n      isPdfRemoved: false,\n      isPDFDownload: false,\n      isPdfUploadInProgress: false,\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => ({\n      url: '/',\n      paramName: 'file',\n      headers: {\n        Authorization: vm.accessToken,\n      },\n      thumbnailWidth: 150,\n      maxFilesize: 20,\n      timeout: 9999999,\n      maxFiles: 1,\n      parallelUploads: 1,\n      acceptedFiles: '.pdf',\n      autoProcessQueue: false,\n      dictDefaultMessage: 'dropZone.dictDefaultMessage',\n      dictFallbackMessage: 'dropZone.dictFallbackMessage',\n      dictFallbackText: 'dropZone.dictFallbackText',\n      dictFileTooBig: 'dropZone.dictFileTooBig',\n      dictInvalidFileType: 'dropZone.dictInvalidFileType',\n      dictResponseError: 'dropZone.dictResponseError',\n      dictCancelUpload: 'dropZone.dictCancelUpload',\n      dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n      dictRemoveFile: 'dropZone.dictRemoveFile',\n      dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n      clickable: '#dropzone-click-target-pdf',\n      previewTemplate: vm.template(),\n      init() {\n        this.on('maxfilesexceeded', file => {\n          this.removeAllFiles();\n          this.addFile(file);\n        });\n        this.on('error', async file => {\n          this.removeFile(file);\n        });\n        this.on('success', async () => {\n          vm.isPdfUploadPending = false;\n          vm.display = false;\n          await vm.checkIfPdfExist();\n        });\n\n        this.on('sending', () => {\n          vm.isPdfUploadPending = true;\n        });\n\n        this.on('addedfile', async file => {\n          const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n          vm.previewPDFUrl = URL.createObjectURL(file);\n          vm.$emit('pdfUrl', vm.previewPDFUrl);\n          vm.pdfReady = true;\n          vm.isFileAdded = true;\n          removeButton.addEventListener('click', e => {\n            e.preventDefault();\n            e.stopPropagation();\n            this.removeFile(file);\n            vm.removePDF();\n          });\n\n          file.previewElement.children[1].appendChild(removeButton);\n        });\n      }\n\n    }),\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    },\n    pdfUrl(val) {\n      if (val) {\n        this.pdfReady = true;\n        this.previewPDFUrl = this.pdfUrl;\n      } else {\n        this.pdfReady = false;\n      }\n    }\n  },\n\n  mounted() {\n    const resizeObserver = new ResizeObserver(() => {\n      /* 70 breathing room */\n      this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n      const ratio = 8.5 / 11;\n      this.pdfPageHeight = this.pdfPageWidth / ratio;\n    });\n    resizeObserver.observe(this.$refs.rfqViewerContainer);\n    // If file is already uploaded.\n    if (this.part.TwoDFile) {\n      this.pdfReady = true;\n      const host = process.env.VUE_APP_API_URL;\n      const fileName = this.part.TwoDFile;\n      this.pdfUrl = `${host}2dDrawing/${fileName}/${this.part.DrawingRowPointer.toLowerCase()}/${this.accessToken}`;\n      this.previewPDFUrl = this.pdfUrl;\n    }\n  },\n  methods: {\n    async uploadPdf(part) {\n      this.isPdfUploadInProgress = true;\n      const file = await fetch(this.previewPDFUrl);\n      const blob = await file.blob();\n      const fd = new FormData();\n      fd.append('file', blob, `${part.Item}-2D.PDF`);\n      const uploadUrl = `${process.env.VUE_APP_API_URL}upload?rowPointer=${part.DrawingRowPointer}&name=${part.Item}-2D&desc=CustomerDrawings&ext=PDF&uploadToCsi=true`;\n\n      // Need to refactor the upload service.\n      // Don't forget this service is also used by Dropzone\n      // in order to upload the drawing file to the CSI\n      await fetch(uploadUrl, {\n        method: 'POST',\n        headers: {\n          Authorization: this.accessToken,\n        },\n        body: fd,\n      });\n      this.isPdfUploadInProgress = false;\n      this.display = false;\n      // maintaining state\n      this.part.TwoDFile = fd.get('file').name;\n      this.part.commit();\n    },\n\n    async onFileChanged(e) {\n      const [pdfFile] = e.target.files;\n      this.previewPDFUrl = URL.createObjectURL(pdfFile);\n      this.$emit('pdfUrl', this.previewPDFUrl);\n      this.pdfReady = true;\n    },\n    async removePDF() {\n      URL.revokeObjectURL(this.previewPDFUrl);\n      this.pdfReady = false;\n      this.showPdfRemoveDialog = false;\n      this.previewPDFUrl = '';\n      this.$emit('pdfUrl', this.previewPDFUrl);\n      this.isFileAdded = false;\n    },\n    template() {\n      return `\n             <div class=\"d-flex align-start flex-column mt-16\">\n                <p style=\"vertical-align: bottom\">Document selected</p>\n                <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n                  <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n                  <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n                </p>\n             </div>`;\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TechnicalDrawingPdf.vue?vue&type=template&id=3ea72904&\"\nimport script from \"./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./TechnicalDrawingPdf.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModelViewer.vue?vue&type=style&index=0&id=98f13306&scoped=true&lang=css&\"","// eslint-disable-next-line max-classes-per-file\nimport { models } from 'feathers-vuex';\nimport currency from 'currency.js';\nimport i18n from '@/plugins/i18n';\n\nclass OrderItem {\n  constructor(type, id, ReqQty, drawingConsultancyPdf = null) {\n    this.type = type;\n    this._id = id;\n    this.ReqQty = ReqQty;\n    this.drawingConsultancyPdf = drawingConsultancyPdf;\n    this.FactoryId = parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10);\n\n    if (this.type === 'customBag') {\n      this.myItem = models.api.CustomBag.getFromStore(this._id);\n    }\n    if (this.type === 'myproduct') {\n      this.myItem = models.api.MyProduct.getFromStore(this._id);\n\n      if (this.myItem.ProductCode === 'FG') {\n        this.myItem = { ...this.myItem, ...this.myItem.PropertiesFG[0] };\n        this.FactoryId = this.myItem.FactoryId;\n      }\n\n      if (this.myItem.ProductCode === 'HW-Bag') {\n        this.myItem = { ...this.myItem, ...this.myItem.PropertiesHWBag[0] };\n        this.FactoryId = this.myItem.FactoryId;\n      }\n    }\n    // if (this.type === 'part') {\n    //   this.myItem = models.api.MyPart.getFromStore(this._id);\n    // }\n\n    if (this.type === 'estimate') {\n      this.myItem = models.api.Part.getFromStore(this._id);\n      this.FactoryId = this.myItem.FactoryId;\n    }\n\n    if (this.type === 'orderLine') {\n      this.myItem = models.api.OrderLine.getFromStore(this._id);\n    }\n\n    if (this.type === 'hardware') {\n      this.myItem = models.api.HardwareProduct.getFromStore(this._id);\n      this.FactoryId = this.myItem.FactoryId;\n    }\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  get currencySymbol() {\n    return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n  }\n\n  get CustItemName() {\n    return this.myItem.CustItemName;\n  }\n\n  get Revision() {\n    if (this.type === 'part' || this.type === 'estimate') {\n      return this.myItem.Revision;\n    }\n    return '';\n  }\n\n  get CustItemDesc() {\n    switch (this.type) {\n      case 'hardware':\n        return this.myItem.description;\n      case 'part':\n        return this.myItem.CustItemDesc;\n      case 'estimate':\n        return this.myItem.CustItemDesc;\n      default:\n        return '';\n    }\n  }\n\n  get SubTotal() {\n    return currency(this.UnitPrice.multiply(this.ReqQty).value, { symbol: this.currencySymbol, precision: 2 });\n  }\n\n  get materialTranslation() {\n    if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n      return i18n.locale === 'en-US' ? this.myItem.MaterialStr : this.myItem.MaterialStrChs;\n    }\n    return '';\n  }\n\n  get materialSeriesTranslation() {\n    if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n      return i18n.locale === 'en-US' ? this.myItem.materialSeriesShortened : this.myItem.MaterialSeriesStrChs;\n    }\n    return '';\n  }\n\n  get materialThicknessTranslation() {\n    if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n      return i18n.locale === 'en-US' ? this.myItem.MaterialThicknessStr : this.myItem.MaterialThicknessStrChs;\n    }\n    return '';\n  }\n\n  get materialFinishTranslation() {\n    if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n      if (this.myItem.MaterialFinishStr) {\n        return i18n.locale === 'en-US' ? this.myItem.MaterialFinishStr.replace(/-/g, '') : this.myItem.MaterialFinishStrChs.replace(/-/g, '');\n      }\n    }\n    return '';\n  }\n\n  get materialFinishOptionTranslation() {\n    if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n      if (this.myItem.MaterialFinishOptionStr) {\n        return i18n.locale === 'en-US' ? this.myItem.MaterialFinishOptionStr.replace(/-/g, '') : this.myItem.MaterialFinishOptionStrChs.replace(/-/g, '');\n      }\n    }\n    return '';\n  }\n\n  get toleranceTranslation() {\n    if (this.type === 'part' || this.type === 'estimate' || this.type === 'myproduct') {\n      if (!this.myItem.Tolerance) {\n        return '';\n      }\n      return i18n.t(`views.instantQuote.tolerance${this.myItem.Tolerance.replace('Precision', '').trim()}`);\n    }\n    return '';\n  }\n\n  get MaterialStr() {\n    if (this.type === 'part' || this.type === 'estimate') {\n      return this.myItem.MaterialStr;\n    }\n    return '';\n  }\n\n  get materialSeriesShortened() {\n    if (this.type === 'part' || this.type === 'estimate') {\n      return this.myItem.materialSeriesShortened;\n    }\n    return '';\n  }\n\n  get MaterialThicknessStr() {\n    if (this.type === 'part' || this.type === 'estimate') {\n      return this.myItem.MaterialThicknessStr;\n    }\n    return '';\n  }\n\n  get MaterialFinishStr() {\n    if (this.type === 'part' || this.type === 'estimate') {\n      return this.myItem.MaterialFinishStr;\n    }\n    return '';\n  }\n\n  get Tolerance() {\n    if (this.type === 'part' || this.type === 'estimate') {\n      return this.myItem.Tolerance;\n    }\n    return '';\n  }\n\n  get DrawingRowPointer() {\n    return this.myItem.DrawingRowPointer;\n  }\n\n  get UnitPrice() {\n    const getPriceMoq = JSON.parse(JSON.stringify(this.myItem).toLowerCase()).pricemoq;\n\n    let priceMoq;\n    if (typeof getPriceMoq === 'string') {\n      priceMoq = JSON.parse(getPriceMoq);\n    } else {\n      priceMoq = getPriceMoq;\n    }\n\n    const priceMOQ = [...priceMoq].sort(({ qty: a }, { qty: b }) => b - a);\n\n    const findPrice = priceMOQ.find(({ qty }) => qty <= this.ReqQty) || Math.min(...priceMOQ.map(o => o.qty));\n\n    if (!findPrice) {\n      return currency(0, { symbol: this.currencySymbol });\n    }\n\n    return currency(findPrice.price, { symbol: this.currencySymbol, precision: 4 });\n  }\n\n  get is2dModel() {\n    if (this.myItem.CustFileName) {\n      return this.myItem.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n    }\n    return false;\n  }\n\n  // get UnitPrice() {\n  //   let priceMoq;\n  //   if (typeof this.myItem.PriceMOQ === 'string') {\n  //     priceMoq = JSON.parse(this.myItem.PriceMOQ);\n  //   } else {\n  //     priceMoq = this.myItem.priceMOQ;\n  //   }\n  //\n  //   /* Technically not needed as the next loop will catch this case anyway */\n  //   const maxDiscountRange = _.last(priceMoq);\n  //   if (this.ReqQty >= maxDiscountRange.Qty) {\n  //     return currency(maxDiscountRange.Price, { symbol: this.currencySymbol });\n  //   }\n  //\n  //   /* If we are not eligible for the NEXT discounted quantity, or one does not exist, return the 'current' one */\n  //   let nextPriceRange;\n  //   for (let i = 0; i < priceMoq.length; i++) {\n  //     nextPriceRange = priceMoq[i + 1];\n  //     if (!nextPriceRange || nextPriceRange.Qty > this.ReqQty) {\n  //       return currency(priceMoq[i].Price, { symbol: this.currencySymbol });\n  //     }\n  //   }\n  //\n  //   return currency(0, { symbol: this.currencySymbol });\n  // }\n}\n\nclass BagItem {\n  constructor(id, ReqQty, categoryId) {\n    this._id = id;\n    this.categoryId = categoryId;\n    this.ReqQty = ReqQty;\n    this.myItem = models.api.HardwareProduct.getFromStore(this._id);\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  get currencySymbol() {\n    return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n  }\n\n  get SubTotal() {\n    return this.UnitPrice.multiply(this.ReqQty);\n  }\n\n  get UnitPrice() {\n    let priceMoq;\n\n    if (typeof this.myItem.PriceMOQ === 'string') {\n      priceMoq = JSON.parse(this.myItem.PriceMOQ);\n    } else {\n      priceMoq = this.myItem.priceMOQ;\n    }\n\n    /* Technically not needed as the next loop will catch this case anyway */\n    const maxDiscountRange = _.last(priceMoq);\n    if (this.ReqQty >= maxDiscountRange.Qty) {\n      return currency(maxDiscountRange.Price, { symbol: this.currencySymbol });\n    }\n\n    /* If we are not eligible for the NEXT discounted quantity, or one does not exist, return the 'current' one */\n    let nextPriceRange;\n    for (let i = 0; i < priceMoq.length; i++) {\n      nextPriceRange = priceMoq[i + 1];\n      if (!nextPriceRange || nextPriceRange.Qty > this.ReqQty) {\n        return currency(priceMoq[i].Price, { symbol: this.currencySymbol });\n      }\n    }\n\n    return currency(0, { symbol: this.currencySymbol });\n  }\n}\n\nexport { OrderItem, BagItem };\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThumbnailViewer.vue?vue&type=style&index=0&id=ee3ba56c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"1000px\"}},[_c('span',{staticClass:\"text-h5 mb-4\"},[_vm._v(\"Finishing Colors\")]),_c('v-expansion-panels',{staticClass:\"mt-4\",staticStyle:{\"border-radius\":\"5px\"},attrs:{\"multiple\":\"\"}},_vm._l((_vm.content),function(item,index){return _c('v-expansion-panel',{key:index,attrs:{\"disabled\":item.disabled}},[_c('v-expansion-panel-header',[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(item.title))])]),_c('v-expansion-panel-content',[_vm._l((item.finish),function(finish,i){return [_c('div',{key:i,staticClass:\"d-flex flex-row d-inline-flex\",staticStyle:{\"width\":\"90px\"}},[_c('div',{staticClass:\"text-center\"},[_c('v-avatar',{attrs:{\"color\":finish.color,\"size\":\"45\"}},[_c('span',{style:({ color: _vm.getContrast(finish.color) })},[_vm._v(_vm._s(finish.code))])]),_c('p',{staticClass:\"caption font-weight-thin\"},[_vm._v(\" \"+_vm._s(finish.label)+\" \")])],1)])]})],2)],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"width: 1000px\">\n    <span class=\"text-h5 mb-4\">Finishing Colors</span>\n    <v-expansion-panels class=\"mt-4\" multiple style=\"border-radius: 5px\">\n      <v-expansion-panel\n        v-for=\"(item,index) in content\"\n        :key=\"index\"\n        :disabled=\"item.disabled\"\n      >\n        <v-expansion-panel-header>\n          <span class=\"font-weight-bold\">{{ item.title }}</span>\n        </v-expansion-panel-header>\n        <v-expansion-panel-content>\n          <template v-for=\"(finish,i) in item.finish\">\n            <div\n              :key=\"i\"\n              class=\"d-flex flex-row d-inline-flex\"\n              style=\"width:90px\"\n            >\n              <div class=\"text-center\">\n                <v-avatar\n                  :color=\"finish.color\"\n                  size=\"45\"\n                >\n                  <span :style=\"{ color: getContrast(finish.color) }\">{{ finish.code }}</span>\n                </v-avatar>\n                <p class=\"caption font-weight-thin\">\n                  {{ finish.label }}\n                </p>\n              </div>\n            </div>\n          </template>\n        </v-expansion-panel-content>\n      </v-expansion-panel>\n    </v-expansion-panels>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'FinishColor',\n  data() {\n    return {\n      content: [\n        { title: 'Mill Finish', finish: [{ code: 'AL', label: 'Aluminium', color: '#D3D3D3' }, { code: 'ST', label: 'Steel', color: '#616161' }, { code: 'SS', label: 'Stainless Steel', color: '#A2A2A2' }], disabled: false },\n        { title: 'Antirust Oiling', finish: [{ code: 'ST', label: 'Steel', color: '#616161' }], disabled: false },\n        { title: 'Brushed', disabled: true },\n        { title: 'Anodized', disabled: true },\n        { title: 'Micro-Polishing', disabled: true },\n        { title: 'Passivation', disabled: true },\n        { title: 'Zinc Plating', disabled: true },\n        { title: 'E-Coating', disabled: true },\n        { title: 'Powder Coating', disabled: true },\n      ]\n    };\n  },\n\n  methods: {\n    getContrast(hexcolor) {\n      // If a leading # is provided, remove it\n      if (hexcolor.slice(0, 1) === '#') {\n        hexcolor = hexcolor.slice(1);\n      }\n\n      // If a three-character hexcode, make six-character\n      if (hexcolor.length === 3) {\n        hexcolor = hexcolor.split('').map(hex => hex + hex).join('');\n      }\n\n      // Convert to RGB value\n      const r = parseInt(hexcolor.substr(0, 2), 16);\n      const g = parseInt(hexcolor.substr(2, 2), 16);\n      const b = parseInt(hexcolor.substr(4, 2), 16);\n\n      // Get YIQ ratio\n      const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n\n      // Check contrast\n      return (yiq >= 128) ? 'black' : 'white';\n    }\n  }\n};\n</script>\n\n<style scoped>\n::v-deep .v-expansion-panel::before{border-radius: 10px}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinishColor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinishColor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FinishColor.vue?vue&type=template&id=0e2299e1&scoped=true&\"\nimport script from \"./FinishColor.vue?vue&type=script&lang=js&\"\nexport * from \"./FinishColor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FinishColor.vue?vue&type=style&index=0&id=0e2299e1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"0e2299e1\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\ninstallComponents(component, {VAvatar,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels})\n","import feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport { PAYMENT_STATUS } from '@/shared/types/paymentStatuses';\nimport router from '@/router';\n\nconst servicePath = 'payments';\n\nconst Model = class Payment extends BaseModel {\n  static modelName = 'Payment';\n\n  static instanceDefaults() {\n    return {\n      paymentUrl: '',\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n    // eslint-disable-next-line no-unused-vars\n    extend({ store, module }) {\n      return {\n        state: {\n          activePayment: null,\n          isPaymentDialogOpen: false,\n          isQrCodeDialogOpen: false,\n        },\n        getters: {\n          activePayment: state => state.activePayment,\n          isPaymentDialogOpen: state => state.isPaymentDialogOpen,\n          isQrCodeDialogOpen: state => state.isQrCodeDialogOpen,\n        },\n        mutations: {\n          setActivePayment: (state, payment) => {\n            state.activePayment = payment;\n          },\n          setIsPaymentDialogOpen: (state, isPaymentDialogOpen) => {\n            state.isPaymentDialogOpen = isPaymentDialogOpen;\n          },\n          setIsQrCodeDialogOpen: (state, isQrCodeDialogOpen) => {\n            state.isQrCodeDialogOpen = isQrCodeDialogOpen;\n          },\n        },\n        actions: {\n          initPayment: (context, { payment, paymentData }) => {\n            const clone = _.merge(payment, paymentData);\n            context.commit('setIsPaymentDialogOpen', true);\n            context.commit('setActivePayment', clone);\n          },\n          setIsPaymentDialogOpen: (context, isPaymentDialogOpen) => {\n            context.commit('setIsPaymentDialogOpen', isPaymentDialogOpen);\n          },\n          setIsQrCodeDialogOpen: (context, isQrCodeDialogOpen) => {\n            context.commit('setIsQrCodeDialogOpen', isQrCodeDialogOpen);\n          },\n          cancelActivePayment: context => {\n            context.commit('setIsPaymentDialogOpen', false);\n            context.commit('setIsQrCodeDialogOpen', false);\n            context.commit('setActivePayment', null);\n          },\n        },\n      };\n    },\n    handleEvents: {\n      patched: (payment, utils) => {\n        const activePayment = utils.model.store.getters['payments/activePayment'] || {};\n\n        const { provider, status } = payment;\n        if (\n          provider.name === 'lian-lian'\n          && provider.options.type === 'I'\n          && status === PAYMENT_STATUS.SUCCEEDED\n          && activePayment._id === payment._id\n        ) {\n          utils.model.store.dispatch(`${servicePath}/cancelActivePayment`);\n          router.push({\n            path: new URL(provider.options.redirectUrl).pathname,\n            query: {\n              orderNo: payment._id,\n            },\n          });\n        }\n        return true;\n      }\n    }\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-checkbox-group\"},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_vm._l((_vm.$attrs.options),function(option,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"value\":option},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(option)+\" \")])],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"filter-checkbox-group\">\n    <v-subheader>\n      {{ section }}\n    </v-subheader>\n\n    <v-list-item\n      v-for=\"(option, i) in $attrs.options\"\n      :key=\"i\"\n      dense\n    >\n      <v-list-item-action>\n        <v-checkbox\n          v-model=\"localValue\"\n          :value=\"option\"\n        />\n      </v-list-item-action>\n      <v-list-item-content>\n        <v-list-item-title>\n          {{ option }}\n        </v-list-item-title>\n      </v-list-item-content>\n    </v-list-item>\n  </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n  name: 'CheckboxGroup',\n\n  mixins: [\n    FilterMixin,\n  ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckboxGroup.vue?vue&type=template&id=f0cd8c5c&scoped=true&\"\nimport script from \"./CheckboxGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckboxGroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"f0cd8c5c\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCheckbox,VListItem,VListItemAction,VListItemContent,VListItemTitle,VSubheader})\n","// eslint-disable-next-line max-len\n/* eslint-disable no-underscore-dangle */\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport { OrderItem } from '@/utils/types';\nimport { getGstTaxRate, getQstTaxRate, getPstTaxRate, getHstTaxRate } from '../constants/taxes';\n\nconst servicePath = 'orders';\n\nconst Model = class Order extends BaseModel {\n  static modelName = 'Order';\n\n  static instanceDefaults() {\n    return {\n      items: [],\n      expediteOption: null,\n      shippingAddress: null,\n      forwarder: null,\n      promoCodeObject: null,\n      PaymentTransaction: [],\n      FactoryId: null,\n    };\n  }\n\n  static setupInstance(data) {\n    if (data.OrderDate) {\n      data.formattedOrderDate = new Date(data.OrderDate);\n      this._formattedOrderDate = moment(data.OrderDate).format('MMM D, YYYY');\n    }\n    if (data.ShipmentDate) {\n      data.formattedShipmentDate = new Date(data.ShipmentDate);\n      this._formattedShipmentDate = moment(data.ShipmentDate).format('MMM D, YYYY');\n    }\n    if (data.RequestDate) {\n      data.formattedRequestDate = new Date(data.RequestDate);\n      this._formattedRequestDate = moment(data.RequestDate).format('MMM D, YYYY');\n    }\n\n    return data;\n  }\n\n  get orderItems() {\n    return this.items;\n  }\n\n  set orderItems(newItems) {\n    if (newItems.length) {\n      if (this.FactoryId === null) {\n        this.FactoryId = this.getFactoryId(newItems);\n      }\n      this.items = newItems.filter(item => item.FactoryId === -1 || item.FactoryId === this.FactoryId);\n      this.FactoryId = this.getFactoryId(newItems);\n    } else {\n      this.items = [];\n      this.FactoryId = null;\n    }\n  }\n\n  spliceItem(start, deleteCount, ...items) {\n    this.items.splice(start, deleteCount, ...items);\n    this.FactoryId = this.getFactoryId(this.items);\n  }\n\n  /**\n   * Gets the factory ID for a list of order items\n   * @param {Array} orderItems - List of order items to check\n   * @returns {number|null} Factory ID, or null if all items belong to global location (-1)\n   */\n  getFactoryId = orderItems => {\n    let orderFactoryId = null;\n    for (const item of orderItems) {\n      const factoryId = _.get(item.myItem, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n      if (factoryId !== -1) {\n        orderFactoryId = factoryId;\n        break;\n      }\n    }\n    return orderFactoryId;\n  }\n\n  get formattedOrderDate() {\n    return moment(this._formattedOrderDate).format('MMM D, YYYY');\n  }\n\n  set formattedOrderDate(value) {\n    this._formattedOrderDate = this.OrderDate;\n  }\n\n  get formattedShipmentDate() {\n    return moment(this._formattedShipmentDate).format('MMM D, YYYY');\n  }\n\n  set formattedShipmentDate(value) {\n    this._formattedShipmentDate = this.ShipmentDate;\n  }\n\n  get formattedRequestDate() {\n    return moment(this._formattedRequestDate).format('MMM D, YYYY');\n  }\n\n  set formattedRequestDate(value) {\n    this._formattedRequestDate = this.RequestDate;\n  }\n\n  get formattedTotal() {\n    return currency(this.Total ? this.Total : this.grandTotal, { symbol: this.currencySymbol }).format();\n  }\n\n  get orderItemsTotal() {\n    return currency(this.items.reduce((total, item) => total.add(item.SubTotal), currency(0, { symbol: this.currencySymbol })), { symbol: this.currencySymbol });\n  }\n\n  get discountAmount() {\n    let discount = currency(0, { symbol: this.currencySymbol });\n    if (this.promoCodeObject) {\n      if (this.promoCodeObject.PromoType === 'Amount') {\n        if (this.orderItemsTotal.value >= parseFloat(this.promoCodeObject.PromoMinOrderAmount)) {\n          discount = currency(this.promoCodeObject.PromoDiscountAmount, { symbol: this.currencySymbol });\n        }\n      } else if (this.promoCodeObject.PromoType === 'Percentage') {\n        if (this.orderItemsTotal.value >= parseFloat(this.promoCodeObject.PromoMinOrderAmount)) {\n          discount = currency(this.orderItemsTotal.multiply(parseFloat(this.promoCodeObject.PromoRate)), { symbol: this.currencySymbol });\n        }\n        if (this.orderItemsTotal.value > parseFloat(this.promoCodeObject.PromoMaxOrderAmount)) {\n          const discountOrderAmount = currency(parseFloat(this.promoCodeObject.PromoMaxOrderAmount), { symbol: this.currencySymbol });\n          return currency(discountOrderAmount.multiply(parseFloat(this.promoCodeObject.PromoRate)), { symbol: this.currencySymbol });\n        }\n      }\n    }\n    return discount;\n  }\n\n  get expediteFees() {\n    const multiplier = parseFloat(_.get(this.expediteOption, 'Rate', 0));\n    return this.orderItemsTotal.multiply(multiplier);\n  }\n\n  get orderSubtotal() {\n    return this.orderItemsTotal.add(this.expediteFees).subtract(this.discountAmount);\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  get taxPercentage() {\n    const company = models.api.Company.getFromStore(0);\n    return company && company.TaxRate1 ? company.TaxRate1 / 100 : 0;\n  }\n\n  get estimatedTax() {\n    if (this.isCanadaProvinceTaxApplicable) {\n      return currency(0, { symbol: this.currencySymbol });\n    }\n    const company = models.api.Company.getFromStore(0);\n    if (company.IncludeTaxInPrice === '0') {\n      return this.orderSubtotal.multiply(this.taxPercentage);\n    }\n    return currency(0, { symbol: this.currencySymbol });\n  }\n\n  get grandTotal() {\n    return this.orderSubtotal\n      .add(this.estimatedTax)\n      .add(this.estimatedGstTax)\n      .add(this.estimatedQstTax)\n      .add(this.estimatedPstTax)\n      .add(this.estimatedHstTax);\n  }\n\n  get taxIncludedInPrice() {\n    if (this.isCanadaProvinceTaxApplicable) {\n      return currency(0, { symbol: this.currencySymbol });\n    }\n    const company = models.api.Company.getFromStore(0);\n    if (company.IncludeTaxInPrice === '1') {\n      const includeTaxOnExpedite = this.expediteFees - this.expediteFees / (1 + this.taxPercentage);\n      return currency(\n        this.items.reduce(\n          (total, item) => total.add(item.SubTotal - item.SubTotal / (1 + this.taxPercentage)), currency(includeTaxOnExpedite, { symbol: this.currencySymbol })\n        ), { symbol: this.currencySymbol }\n      );\n    }\n    return currency(0, { symbol: this.currencySymbol });\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  get currencySymbol() {\n    return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n  }\n\n  get factoryName() {\n    if (this.FactoryId === parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10)) {\n      return 'China';\n    }\n    if (this.FactoryId === parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10)) {\n      return 'Mexico';\n    }\n    return '---';\n  }\n\n  get isMexicoOrder() {\n    return this.FactoryId === parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10);\n  }\n\n  get isCanadaProvinceTaxApplicable() {\n    if (!this.shippingAddress) {\n      return false;\n    }\n    const { country } = this.shippingAddress;\n    return country === 'CA' && this.isMexicoOrder;\n  }\n\n  get estimatedGstTax() {\n    if (this.isCanadaProvinceTaxApplicable) {\n      const { region } = this.shippingAddress;\n      const taxRate = getGstTaxRate(region);\n      if (taxRate) {\n        return this.orderSubtotal.multiply(taxRate / 100);\n      }\n    }\n    return currency(0, { symbol: this.currencySymbol });\n  }\n\n  get estimatedQstTax() {\n    if (this.isCanadaProvinceTaxApplicable) {\n      const { region } = this.shippingAddress;\n      const taxRate = getQstTaxRate(region);\n      if (taxRate) {\n        return this.orderSubtotal.multiply(taxRate / 100);\n      }\n    }\n    return currency(0, { symbol: this.currencySymbol });\n  }\n\n  get estimatedPstTax() {\n    if (this.isCanadaProvinceTaxApplicable) {\n      const { region } = this.shippingAddress;\n      const taxRate = getPstTaxRate(region);\n      if (taxRate) {\n        return this.orderSubtotal.multiply(taxRate / 100);\n      }\n    }\n    return currency(0, { symbol: this.currencySymbol });\n  }\n\n  get estimatedHstTax() {\n    if (this.isCanadaProvinceTaxApplicable) {\n      const { region } = this.shippingAddress;\n      const taxRate = getHstTaxRate(region);\n      if (taxRate) {\n        return this.orderSubtotal.multiply(taxRate / 100);\n      }\n    }\n    return currency(0, { symbol: this.currencySymbol });\n  }\n\n  addItem(type, id, qty, drawingConsultancyPdf = null) {\n    const items = this.items.filter(item => item._id === id);\n    if (items.length) {\n      items[0].ReqQty = qty;\n      return;\n    }\n\n    const orderItem = new OrderItem(type, id, qty, drawingConsultancyPdf);\n    if (this.FactoryId) {\n      const factoryId = _.get(orderItem.myItem, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n      if (factoryId !== -1 && factoryId !== this.FactoryId) {\n        return;\n      }\n    }\n\n    this.orderItems.push(orderItem);\n\n    if (this.FactoryId === null) {\n      this.FactoryId = this.getFactoryId(this.items);\n    }\n  }\n\n  canAddItem(item) {\n    if (item === null) {\n      return false;\n    }\n    const factoryId = _.get(item, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n    return this.FactoryId === null || factoryId === -1 || factoryId === this.FactoryId;\n  }\n\n  canAddHardwareProduct(item) {\n    if (item === null) {\n      return false;\n    }\n    const factoryId = _.get(item, 'FactoryId', parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10));\n    return this.FactoryId === null || factoryId === -1 || factoryId === this.FactoryId;\n  }\n\n  canAddCustomBag() {\n    return this.FactoryId === null || this.FactoryId === parseInt(process.env.VUE_APP_CHINA_FACTORY_ID, 10);\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","import { datadogLogs } from '@datadog/browser-logs';\nimport { version } from '../../package.json';\n\ndatadogLogs.init({\n  clientToken: process.env.VUE_APP_DATADOG_LOGGER_CLIENT_TOKEN,\n  service: 'komacut',\n  version,\n  env: process.env.NODE_ENV,\n  forwardErrorsToLogs: true,\n  sampleRate: 100\n});\n\nexport default datadogLogs;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-2\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center px-2 py-2\",staticStyle:{\"min-width\":\"175px\",\"max-width\":\"175px\"},attrs:{\"cols\":\"3\"}},[_c('core-model-viewer',{class:{ 'blip-3d': _vm.isMeshVisible },attrs:{\"part\":_vm.part,\"width\":_vm.part.EstimateLineStatus.isMeshUploaded ? 100: 160,\"height\":_vm.part.EstimateLineStatus.isMeshUploaded ? 100: 160,\"is-mesh-uploaded\":_vm.part.EstimateLineStatus.isMeshUploaded,\"is-svg-uploaded\":_vm.part.EstimateLineStatus.isSvgUploaded},on:{\"click\":function($event){$event.stopPropagation();return _vm.onThumbClick.apply(null, arguments)},\"load:mesh\":_vm.uploadThumbnail}}),_c('v-btn',{attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onThumbClick.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.viewDetails'))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1),_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('v-row',{staticClass:\"text-h5 pa-1 ma-0\"},[_vm._v(\" \"+_vm._s(_vm.part.CustItemName)+\" \"+_vm._s(_vm.$t('views.rfqs.revision'))+\". \"+_vm._s(_vm.part.RevisionNumber)+\" \")]),_c('v-row',{staticClass:\"px-1 ma-0\"},[_vm._v(\" \"+_vm._s(_vm.part.CustItemDesc)+\" \")]),_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.material'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.partMaterial.Description : _vm.partMaterial.DescriptionCHS)+\" \")]),(_vm.part.AnalysisData.machine === 'sheet-metal')?_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.thickness'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.getThickness.Description : _vm.getThickness.DescriptionCHS)+\" \")]):_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.outerDiameter'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.getOuterDiameter)+\" \")]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.series'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.getSeries.Description.replace(_vm.partMaterial.Description, '').trim() : _vm.getSeries.DescriptionCHS)+\" \")]),(_vm.part.AnalysisData.machine === 'turning')?_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.roughness'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.getRoughness)+\" \")]):_vm._e(),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.rfqs.finish'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.locale === 'en-US' ? _vm.getFinish.Description : _vm.getFinish.DescriptionCHS)+\" \")]),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('span',{staticClass:\"caption\",staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.tolerances'))+\" \")]),_vm._v(\" \"+_vm._s(_vm.toleranceTranslation(_vm.part))+\" \")])],1)],1),_c('v-col',{staticClass:\"py-2 px-1\",staticStyle:{\"min-width\":\"190px\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"cols\":\"2\"}},[_c('core-price-moq-table',{staticClass:\"mr-5\",attrs:{\"part\":_vm.part}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"pa-2\" fluid>\n    <v-row>\n      <v-col cols=\"3\" class=\"text-center px-2 py-2\" style=\"min-width: 175px; max-width: 175px;\">\n        <core-model-viewer\n          :part=\"part\"\n          :width=\"part.EstimateLineStatus.isMeshUploaded ? 100: 160\"\n          :height=\"part.EstimateLineStatus.isMeshUploaded ? 100: 160\"\n          :is-mesh-uploaded=\"part.EstimateLineStatus.isMeshUploaded\"\n          :is-svg-uploaded=\"part.EstimateLineStatus.isSvgUploaded\"\n          :class=\"{ 'blip-3d': isMeshVisible }\"\n          @click.stop=\"onThumbClick\"\n          @load:mesh=\"uploadThumbnail\"\n        />\n        <v-btn\n          text\n          x-small\n          color=\"primary\"\n          @click.stop=\"onThumbClick\"\n        >\n          {{ $t('common.viewDetails') }}\n          <v-icon x-small right>\n            mdi-arrow-right\n          </v-icon>\n        </v-btn>\n      </v-col>\n      <v-col class=\"px-1 ma-0\">\n        <v-row class=\"text-h5 pa-1 ma-0\">\n          {{ part.CustItemName }} {{ $t('views.rfqs.revision') }}. {{ part.RevisionNumber }}\n        </v-row>\n        <v-row class=\"px-1 ma-0\">\n          {{ part.CustItemDesc }}\n        </v-row>\n        <v-row class=\"pa-0 ma-0\">\n          <v-col class=\"px-1 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.rfqs.material') }}\n            </span>\n            {{ locale === 'en-US' ? partMaterial.Description : partMaterial.DescriptionCHS }}\n          </v-col>\n          <v-col v-if=\"part.AnalysisData.machine === 'sheet-metal'\" class=\"px-3 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.rfqs.thickness') }}\n            </span>\n            {{ locale === 'en-US' ? getThickness.Description : getThickness.DescriptionCHS }}\n          </v-col>\n          <v-col v-else class=\"px-3 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.rfqs.outerDiameter') }}\n            </span>\n            {{ getOuterDiameter }}\n          </v-col>\n          <v-col class=\"px-3 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.rfqs.series') }}\n            </span>\n            {{\n              locale === 'en-US' ? getSeries.Description.replace(partMaterial.Description, '').trim() : getSeries.DescriptionCHS\n            }}\n          </v-col>\n          <v-col v-if=\"part.AnalysisData.machine === 'turning'\" class=\"px-3 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.instantQuote.roughness') }}\n            </span>\n            {{ getRoughness }}\n          </v-col>\n          <v-col class=\"px-3 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.rfqs.finish') }}\n            </span>\n            {{ locale === 'en-US' ? getFinish.Description : getFinish.DescriptionCHS }}\n          </v-col>\n          <v-col class=\"px-3 ma-0\">\n            <span class=\"caption\" style=\"display:block;\">\n              {{ $t('views.instantQuote.tolerances') }}\n            </span>\n            {{\n              toleranceTranslation(part)\n            }}\n          </v-col>\n        </v-row>\n      </v-col>\n      <v-col cols=\"2\" class=\"py-2 px-1\" style=\"min-width: 190px; display:flex; align-items:center;\">\n        <core-price-moq-table :part=\"part\" class=\"mr-5\" />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\n\nconst { Material, Finish } = models.api;\n\nexport default {\n  name: 'CompactPartCard',\n  props: {\n    part: Object,\n    customerPriceRange: Array,\n    uploadThumbnail: Function,\n    isMeshVisible: Boolean,\n    onThumbClick: Function,\n  },\n  computed: {\n    ...mapState('app', ['locale']),\n    ...mapGetters('materials', {\n      findMaterials: 'find',\n    }),\n\n    toleranceTranslation: vm => item => {\n      if (!item.Tolerance) {\n        return '-';\n      }\n      return vm.$t(`views.instantQuote.tolerance${item.Tolerance.replace('Precision', '').trim()}`);\n    },\n\n    /* TODO revisit this. Why are we not simply using the part\n    *   properties? Need to investigate later if we can simply\n    * do that */\n    partMaterial() {\n      const material = _.get(Material.findInStore({\n        query: {\n          RowPointer: this.part.Material,\n          IsHidden: false,\n          $sort: { Rank: 1 },\n        },\n      }), 'data[0]');\n      return material || 'N/A';\n    },\n\n    getThickness() {\n      const thickness = _.get(this.findMaterials({\n        query: {\n          _id: this.part.MaterialThickness,\n          IsHidden: false,\n          $sort: { Rank: 1 },\n        },\n      }), 'data[0]');\n      return thickness || 'N/A';\n    },\n\n    getOuterDiameter() {\n      if (this.part.AnalysisData.major_dia) {\n        const diameter = parseFloat(this.part.AnalysisData.major_dia).toFixed(2);\n        return `${diameter} ${this.$t('views.rfqs.mm')}`;\n      }\n      return 'N/A';\n    },\n\n    getRoughness() {\n      switch (this.part.Roughness) {\n        case '6.0':\n          return this.$t('views.instantQuote.roughnessMilled');\n        case '3.2':\n          return this.$t('views.instantQuote.roughnessMilled');\n        case '1.6':\n          return this.$t('views.instantQuote.roughnessFine');\n        case '0.8':\n          return this.$t('views.instantQuote.roughnessGrade');\n        default:\n          return 'N/A';\n      }\n    },\n\n    getSeries() {\n      const series = _.get(Material.findInStore({\n        query: {\n          RowPointer: this.part.MaterialSeries,\n        },\n      }), 'data[0]');\n      return series || 'N/A';\n    },\n\n    getFinish() {\n      const finish = _.get(Finish.findInStore({\n        query: {\n          RowPointer: this.part.MaterialFinish,\n          IsHidden: false,\n          $sort: { Rank: 1 },\n        },\n      }), 'data[0]');\n      return finish || 'N/A';\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompactPartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompactPartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CompactPartCard.vue?vue&type=template&id=63bcf2ec&\"\nimport script from \"./CompactPartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./CompactPartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'account-statements';\n\nconst Model = class AccountStatement extends BaseModel {\n  static modelName = 'AccountStatement';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'regions';\n\nconst Model = class Regions extends BaseModel {\n  // TODO rename to singular 'region'\n  static modelName = 'Regions';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","import Store from './index';\nimport i18n from '../plugins/i18n';\nimport { reset } from '../utils/vuex';\nimport { makeAuthPlugin } from '../plugins/feathers-client';\n\nexport default {\n  plugin: makeAuthPlugin({\n    userService: 'users',\n  }),\n\n  store: {\n    auth: {\n      namespaced: true,\n\n      mutations: {\n        clearAll: reset(),\n      },\n\n      actions: {\n        async login({ dispatch }, { user }) {\n          await dispatch('auth/authenticate', {\n            strategy: 'local',\n            ...user,\n          }, { root: true });\n\n          const locale = (Store.state.auth.user.locale === 'cn') ? 'cn' : 'en-US';\n          await Store.dispatch('app/setLocale', { $i18n: i18n, locale });\n        },\n      },\n    },\n  },\n};\n","const canadaProvinceTaxes = {\n  AB: { gst: 5 },\n  BC: { gst: 5, pst: 7 },\n  MB: { gst: 5, pst: 7 },\n  NB: { hst: 15 },\n  NL: { hst: 15 },\n  NS: { hst: 15 },\n  ON: { hst: 13 },\n  PE: { hst: 15 },\n  QC: { gst: 5, qst: 9.975 },\n  SK: { gst: 5, pst: 6 },\n  NT: { gst: 5 },\n  NU: { gst: 5 },\n  YT: { gst: 5 }\n};\n\nconst getGstTaxRate = province => {\n  if (!canadaProvinceTaxes[province]) {\n    return null;\n  }\n  return canadaProvinceTaxes[province].gst || null;\n};\n\nconst getPstTaxRate = province => {\n  if (!canadaProvinceTaxes[province]) {\n    return null;\n  }\n  return canadaProvinceTaxes[province].pst || null;\n};\n\nconst getHstTaxRate = province => {\n  if (!canadaProvinceTaxes[province]) {\n    return null;\n  }\n  return canadaProvinceTaxes[province].hst || null;\n};\n\nconst getQstTaxRate = province => {\n  if (!canadaProvinceTaxes[province]) {\n    return null;\n  }\n  return canadaProvinceTaxes[province].qst || null;\n};\n\nexport {\n  getGstTaxRate,\n  getPstTaxRate,\n  getHstTaxRate,\n  getQstTaxRate\n};\n\n// export default canadaProvinceTaxes;\n","export default {\n  methods: {\n    formatCurrency(amount, allowNone) {\n      if (isNaN(amount)) {\n        if (allowNone) {\n          return 'TBD';\n        }\n        amount = 0;\n      }\n      const options = { maximumFractionDigits: 2, minimumFractionDigits: 2 };\n      return `$${(amount).toLocaleString('en', options)}`;\n    },\n  },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card-text',{class:['ownerships', 'mt-1', 'pa-0', _vm.alignLeft ? 'left' : '']},[(_vm.value.createdBy)?_c('span',{staticClass:\"created\"},[_c('span',[_vm._v(_vm._s(_vm.$t('common.createdBy')))]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-avatar',_vm._g({class:{ avatar: true, small: !_vm.large }},on))]}}],null,false,3896419212)},[_c('span',[_vm._v(_vm._s(_vm.value.createdBy))])]),_vm._v(\" \"+_vm._s(_vm.moment().to(_vm.moment(_vm.value.createdAt)))+\" \")],1):_vm._e(),(_vm.value.updatedBy)?_c('span',{staticClass:\"updated\"},[(_vm.value.createdBy)?_c('span',{staticClass:\"ownershipsSeparator\"},[_vm._v(\"-\")]):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.$t('common.updatedBy')))]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-avatar',_vm._g({class:{ avatar: true, small: !_vm.large }},on),[_c('v-gravatar',{attrs:{\"email\":_vm.value.updatedBy}})],1)]}}],null,false,470631858)},[_c('span',[_vm._v(_vm._s(_vm.value.updatedBy)+\" \"+_vm._s(_vm.value.updatedBy))])]),_vm._v(\" \"+_vm._s(_vm.moment().to(_vm.moment(_vm.value.updatedAt)))+\" \")],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card-text :class=\"['ownerships', 'mt-1', 'pa-0', alignLeft ? 'left' : '']\">\n    <span v-if=\"value.createdBy\" class=\"created\">\n      <span>{{ $t('common.createdBy') }}</span>\n\n      <v-tooltip top>\n        <template v-slot:activator=\"{ on }\">\n          <v-avatar :class=\"{ avatar: true, small: !large }\" v-on=\"on\">\n            <!--            <v-gravatar :email=\"value.createdBy\" />-->\n          </v-avatar>\n        </template>\n        <span>{{ value.createdBy }}</span>\n      </v-tooltip>\n      {{ moment().to(moment(value.createdAt)) }}\n    </span>\n\n    <span v-if=\"value.updatedBy\" class=\"updated\">\n      <span v-if=\"value.createdBy\" class=\"ownershipsSeparator\">-</span>\n      <span>{{ $t('common.updatedBy') }}</span>\n\n      <v-tooltip top>\n        <template v-slot:activator=\"{ on }\">\n          <v-avatar :class=\"{ avatar: true, small: !large }\" v-on=\"on\">\n            <v-gravatar :email=\"value.updatedBy\" />\n          </v-avatar>\n        </template>\n        <span>{{ value.updatedBy }} {{ value.updatedBy }}</span>\n      </v-tooltip>\n      {{ moment().to(moment(value.updatedAt)) }}\n    </span>\n  </v-card-text>\n</template>\n\n<script>\n\nimport { mapState } from 'vuex';\n\nexport default {\n  props: {\n    value: Object,\n    large: Boolean,\n    alignLeft: Boolean,\n  },\n  computed: {\n    ...mapState('auth', ['users']),\n  }\n};\n</script>\n\n<style scoped>\n.ownerships {\n  color: rgba(0, 0, 0, .54);\n  width: 100%;\n  text-align: end;\n}\n\n.ownerships.left {\n  margin-left: -6px;\n  text-align: start;\n}\n\n.created,\n.updated {\n  font-weight: normal;\n  font-size: smaller;\n  font-style: oblique;\n}\n\n.ownershipsSeparator {\n  margin: 0 .5em;\n}\n\n.avatar {\n  margin: 0em .5em !important;\n  width: 24px !important;\n  min-width: 24px !important;\n  height: 24px !important;\n}\n\n.avatar.small {\n  width: 16px !important;\n  min-width: 16px !important;\n  height: 16px !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ownerships.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ownerships.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Ownerships.vue?vue&type=template&id=07802151&scoped=true&\"\nimport script from \"./Ownerships.vue?vue&type=script&lang=js&\"\nexport * from \"./Ownerships.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Ownerships.vue?vue&type=style&index=0&id=07802151&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"07802151\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAvatar,VCardText,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenUploadFileBanner.vue?vue&type=style&index=0&id=6338fc10&scoped=true&lang=css&\"","const countriesAllowForMexicoQuotation = [\n  'AR',\n  'BR',\n  'CA',\n  'CL',\n  'MX',\n  'US',\n  'UY',\n];\n\nexport default countriesAllowForMexicoQuotation;\n","// TODO this is the exact same as the filter mixin\n// TODO It's generic enough to be renamed and used everywhere\nexport default {\n  props: {\n    value: {},\n  },\n\n  computed: {\n    localValue: {\n      get() {\n        return this.value;\n      },\n\n      set(value) {\n        this.$emit('input', value);\n      },\n    }\n  },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{staticStyle:{\"position\":\"absolute\",\"top\":\"15px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\"},attrs:{\"x-small\":\"\",\"depressed\":\"\",\"fab\":\"\",\"data-cy\":\"download-pdf-button\",\"disabled\":_vm.isPDFDownloadPending},on:{\"click\":_vm.downloadPdf}},[_c('v-icon',[_vm._v(\" mdi-download \")])],1)],1),_c('v-container',{staticClass:\"fill-height pr-0\",attrs:{\"fluid\":\"\"}},[_c('v-virtual-scroll',{ref:\"containerRef\",staticStyle:{\"overflow-y\":\"scroll\"},attrs:{\"bench\":2,\"items\":_vm.loadedPages,\"height\":_vm.itemHeight,\"width\":_vm.itemHeight,\"item-height\":_vm.itemHeight},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{style:((\"min-width: \" + (1.4*_vm.itemHeight) + \"px\"))},[_c('core-pdf-canvas',{key:item.id,ref:item.id,attrs:{\"page\":item,\"container-ref\":_vm.$refs.containerRef,\"item-height\":_vm.itemHeight},on:{\"enterViewport\":function($event){(Math.abs($event - _vm.currentPage) === 1) ? _vm.currentPage = $event : function () {}}}})],1)]}}])}),_c('v-chip',{staticClass:\"my-2\",staticStyle:{\"position\":\"absolute\",\"bottom\":\"15px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\"}},[_vm._v(\" \"+_vm._s(_vm.currentPage)+\" / \"+_vm._s(_vm._.get(_vm.pdf, 'numPages', '?'))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div class=\"d-flex justify-center\">\n      <v-btn\n        x-small\n        depressed\n        fab\n        style=\"position: absolute; top: 15px; left: 50%; transform: translateX(-50%);\"\n        data-cy=\"download-pdf-button\"\n        :disabled=\"isPDFDownloadPending\"\n        @click=\"downloadPdf\"\n      >\n        <v-icon>\n          mdi-download\n        </v-icon>\n      </v-btn>\n    </div>\n    <v-container class=\"fill-height pr-0\" fluid>\n      <v-virtual-scroll\n        ref=\"containerRef\"\n        :bench=\"2\"\n        :items=\"loadedPages\"\n        :height=\"itemHeight\"\n        :width=\"itemHeight\"\n        :item-height=\"itemHeight\"\n        style=\"overflow-y: scroll;\"\n      >\n        <template #default=\"{ item }\">\n          <div class=\"\" :style=\"`min-width: ${1.4*itemHeight}px`\">\n            <core-pdf-canvas\n              :ref=\"item.id\"\n              :key=\"item.id\"\n              :page=\"item\"\n              :container-ref=\"$refs.containerRef\"\n              :item-height=\"itemHeight\"\n              @enterViewport=\"(Math.abs($event - currentPage) === 1) ? currentPage = $event : () => {}\"\n            />\n          </div>\n        </template>\n      </v-virtual-scroll>\n\n      <v-chip class=\"my-2\" style=\"position: absolute; bottom: 15px; left: 50%; transform: translateX(-50%);\">\n        {{ currentPage }} / {{ _.get(pdf, 'numPages', '?') }}\n      </v-chip>\n    </v-container>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    fileName: {\n      type: String,\n      default: 'KomacutPdf'\n    },\n    filePath: String,\n    itemHeight: {\n      required: false,\n    },\n    viewerHeight: {\n      required: false,\n    }\n  },\n\n  data: () => ({\n    pdf: null,\n    PDFjs: null,\n    pdfCdn: 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.min.js',\n    pdfWorkerCdn: 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.7.570/pdf.worker.min.js',\n    pageCount: 0,\n    pageBuffer: 4,\n    currentPage: 1,\n    isPDFDownloadPending: false\n  }),\n  computed: {\n    from: vm => vm.currentPage,\n    to: vm => vm.currentPage + vm.pageBuffer,\n    loadedPages: vm => {\n      if (!vm.pdf) {\n        return [{ id: 'fake' }];\n      }\n\n      return new Array(vm.pdf.numPages)\n        .fill(undefined)\n        .map((v, i) => ({\n          pageNumber: i + 1,\n          pdf: vm.pdf,\n          id: `${vm.pdf.fingerprint}-${i}`,\n        }));\n    }\n  },\n\n  created() {\n    document.getElementsByTagName('html')[0].style.overflow = 'hidden';\n    this.initPDF();\n  },\n  destroyed() {\n    document.getElementsByTagName('html')[0].style.overflow = 'visible';\n  },\n  methods: {\n    importPDF() {\n      return new Promise(resolve => {\n        const script = document.createElement('script');\n        script.onload = () => {\n          resolve(window['pdfjs-dist/build/pdf']);\n        };\n        script.async = true;\n        script.src = this.pdfCdn;\n        document.head.appendChild(script);\n      });\n    },\n    async initPDF() {\n      this.PDFjs = await this.importPDF();\n      this.PDFjs.GlobalWorkerOptions.workerSrc = this.pdfWorkerCdn;\n      this.loadPDF();\n    },\n    loadPDF() {\n      // Asynchronous download of PDF\n      this.isPDFDownloadPending = true;\n      const loadingTask = this.PDFjs.getDocument(this.filePath);\n      loadingTask.promise.then(pdf => {\n        this.pdf = pdf;\n        this.isPDFDownloadPending = false;\n      });\n    },\n    saveByteArray(reportName, byte) {\n      const blob = new Blob([byte], { type: 'application/pdf' });\n      const link = document.createElement('a');\n      link.href = window.URL.createObjectURL(blob);\n      const fileName = reportName;\n      link.download = fileName;\n      link.click();\n    },\n    downloadPdf() {\n      this.pdf.saveDocument().then(save => {\n        this.saveByteArray(this.fileName, save);\n      });\n    }\n  }\n};\n\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfViewer.vue?vue&type=template&id=02c22e54&\"\nimport script from \"./PdfViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfViewer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VVirtualScroll } from 'vuetify/lib/components/VVirtualScroll';\ninstallComponents(component, {VBtn,VChip,VContainer,VIcon,VVirtualScroll})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOption.vue?vue&type=style&index=0&id=65dbd852&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"rounded d-flex flex-column align-center py-0 my-0 text-truncate\",staticStyle:{\"background-color\":\"#E9F4ED\",\"font-size\":\"15px\"}},[_c('div',[_c('span',{staticClass:\"body-2 text-right\"},[_vm._v(_vm._s(_vm.$t('views.instantQuote.quantity'))+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.$t('common.customizedBagPrice')))])]),_c('v-container',{staticClass:\"py-0\"},[_c('v-row',{staticClass:\"flex-nowrap\"},[_vm._l((_vm.customerPriceRange),function(bracket,i){return [(i>0)?_c('v-spacer',{key:(\"space-\" + i)}):_vm._e(),_c('v-col',{key:i,staticClass:\"text-center pa-0\"},[_c('span',{key:(\"qty-\" + i),staticStyle:{\"color\":\"#8D8D8D\",\"text-overflow\":\"ellipsis\",\"style\":\"15px\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \")]),_c('span',{key:(\"price-\" + i),staticClass:\"text-truncate\",attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, { symbol: _vm.company.currencySymbol, precision: 4 }).format())+\" \"+_vm._s('\\xa0')+\" \")])])]})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    style=\"background-color: #E9F4ED; font-size: 15px\"\n    class=\"rounded d-flex flex-column align-center py-0 my-0 text-truncate\"\n  >\n    <div>\n      <span class=\"body-2 text-right\">{{ $t('views.instantQuote.quantity') }}: {{ '\\xa0' }} </span>\n      <span class=\"body-2\">{{ $t('common.customizedBagPrice') }}</span>\n    </div>\n\n    <v-container class=\"py-0\">\n      <v-row class=\"flex-nowrap\">\n        <template v-for=\"(bracket, i) in customerPriceRange\">\n          <v-spacer v-if=\"i>0\" :key=\"`space-${i}`\" />\n          <v-col :key=\"i\" class=\"text-center pa-0\">\n            <span\n              :key=\"`qty-${i}`\"\n              style=\"color: #8D8D8D;text-overflow: ellipsis; style:15px\"\n              :data-cy=\"`unit-price-qty-${i}`\"\n            >\n              {{ i === 0 ? quantity : bracket.Qty }}:\n            </span>\n            <span\n              :key=\"`price-${i}`\"\n              class=\"text-truncate\"\n              :data-cy=\"`unit-price-amount-${i}`\"\n            >\n              {{\n\n                currency(bracket.Price, {\n                  symbol: company.currencySymbol,\n                  precision: 4\n                }).format()\n\n              }} {{ '\\xa0' }}\n            </span>\n          </v-col>\n        </template>\n      </v-row>\n    </v-container>\n  </div>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n  name: 'CustomBagPriceMoqTable',\n  props: {\n    part: Object,\n  },\n  data: () => ({\n    currency,\n  }),\n  computed: {\n    company: () => Company.getFromStore(0),\n\n    priceRange: vm => vm.part.priceMoq,\n\n    quantity: vm => {\n      if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n        return 1;\n      }\n      if (!vm.part.ReqQty || vm.part.ReqQty <= 100) {\n        return 100;\n      }\n      if (vm.part.ReqQty >= 1000000) {\n        return 1000000;\n      }\n      return vm.part.ReqQty;\n    },\n    customerPriceRange() {\n      if (!this.priceRange || this.quantity <= 0) {\n        return [];\n      }\n\n      const reqQtyPriceIndex = this.priceRange\n        .findIndex(range => range.Qty > this.quantity) - 1;\n\n      if (reqQtyPriceIndex < 0) {\n        return this.priceRange.slice(-1);\n      }\n      return this.priceRange\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomBagPriceMoqTable.vue?vue&type=template&id=ce857dd8&\"\nimport script from \"./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomBagPriceMoqTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('core-dialog',{attrs:{\"value\":_vm.isPaymentDialogOpen,\"is-loading\":_vm.activePayment && _vm.activePayment.isSavePending,\"width\":(_vm.company && _vm.company.CurrCode === 'CNY') ? 750 : 600,\"type\":\"confirmation\",\"persistent\":\"\",\"ok-button-text\":_vm.$t('views.editOrder.acceptAndProcess')},on:{\"click:cancel\":_vm.cancelActivePayment},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('views.editOrder.termsAcceptance')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance1'))}}),_c('br'),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance2'))}}),_c('br'),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance3'))}}),_c('br'),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('views.editOrder.termsAcceptance4'))}})])]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.currentOrder && _vm.currentOrder.isMexicoOrder || _vm.isMexicoPayment)?[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"stripe-usd-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('stripe')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-credit-card-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.creditCard'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isIntBankTransferPending || _vm.activePayment.isSavePending,\"loading\":_vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.goToComfirmationPage}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.intBankTransfer'))+\" \")],1)]:[(_vm.company.CurrCode === 'CNY' && _vm.company.PaymentTerms === 'Ful')?[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"bank-card-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('0')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-credit-card-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.bankCard'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"ebank-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('2')}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.eBank'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"wechat-payment-button\"},on:{\"click\":function($event){return _vm.generatePaymentUrl('I')}}},[_c('img',{staticStyle:{\"margin-right\":\"8px\"},attrs:{\"src\":\"/img/wechat_logo.svg\",\"height\":\"18\",\"width\":\"18\"}}),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.weChat'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isIntBankTransferPending || _vm.activePayment.isSavePending,\"loading\":_vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.goToComfirmationPage}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.bankTransfer'))+\" \")],1)]:[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.generatePaymentUrl}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-credit-card-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.creditCard'))+\" \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.isIntBankTransferPending || _vm.activePayment.isSavePending,\"loading\":_vm.isIntBankTransferPending,\"data-cy\":\"usd-payment-button\"},on:{\"click\":_vm.goToComfirmationPage}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-bank \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.intBankTransfer'))+\" \")],1)]],_c('v-btn',{staticClass:\"px-8\",attrs:{\"color\":\"primary\",\"text\":\"\",\"depressed\":\"\",\"disabled\":_vm.activePayment.isSavePending || _vm.isIntBankTransferPending},on:{\"click\":_vm.cancelActivePayment}},[_vm._v(\" \"+_vm._s(_vm.$t('common.cancel'))+\" \")])]},proxy:true}])}),_c('core-dialog',{attrs:{\"value\":_vm.isQrCodeDialogOpen,\"type\":\"custom\",\"width\":\"380px\",\"height\":\"500px\",\"persistent\":\"\",\"eager\":\"\"},on:{\"click:cancel\":_vm.cancelActivePayment},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',[_vm._v(\" \")])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-space-between text-uppercase px-6 py-3\",staticStyle:{\"background-color\":\"#F1FDF3\",\"font-size\":\"18px\"}},[_c('span',{staticClass:\"d-flex font-weight-medium\"},[_vm._v(_vm._s(_vm.$t('views.orders.total', {currency: _vm.$t((\"currency.\" + (_vm.company.CurrCode)))})))]),_c('span',{staticClass:\"d-flex font-weight-bold black--text\"},[_vm._v(\" \"+_vm._s(_vm.currency(_vm.activePayment.openBalance, {symbol: _vm.company.currencySymbol}).format())+\" \")])]),_c('div',{staticClass:\"d-flex justify-center mt-6\"},[_c('span',{staticClass:\"d-flex caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.editOrder.pleaseScanTheWeChatQRCode'))+\" \")])]),_c('div',{staticClass:\"pa-10 text-center\",attrs:{\"id\":\"qrCodeContainer\"}},[_c('canvas',{attrs:{\"id\":\"qrCodeCanvas\"}})]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{attrs:{\"src\":\"/img/Komacut-logo.svg\",\"width\":\"175px\",\"height\":\"80px\"}})])]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <core-dialog\n      :value=\"isPaymentDialogOpen\"\n      :is-loading=\"activePayment && activePayment.isSavePending\"\n      :width=\"(company && company.CurrCode === 'CNY') ? 750 : 600\"\n      type=\"confirmation\"\n      persistent\n      :ok-button-text=\"$t('views.editOrder.acceptAndProcess')\"\n      @click:cancel=\"cancelActivePayment\"\n    >\n      <template #title>\n        <span>{{ $t('views.editOrder.termsAcceptance') }}</span>\n      </template>\n\n      <template #content>\n        <div class=\"text-center\">\n          <div v-html=\"$t('views.editOrder.termsAcceptance1')\" />\n          <br>\n          <div v-html=\"$t('views.editOrder.termsAcceptance2')\" />\n          <br>\n          <div v-html=\"$t('views.editOrder.termsAcceptance3')\" />\n          <br>\n          <div v-html=\"$t('views.editOrder.termsAcceptance4')\" />\n        </div>\n      </template>\n\n      <template #actions>\n        <template v-if=\"currentOrder && currentOrder.isMexicoOrder || isMexicoPayment\">\n          <v-btn\n            color=\"primary\"\n            :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n            data-cy=\"stripe-usd-payment-button\"\n            @click=\"generatePaymentUrl('stripe')\"\n          >\n            <v-icon left>\n              mdi-credit-card-outline\n            </v-icon>\n            {{ $t('views.editOrder.creditCard') }}\n          </v-btn>\n          <v-btn\n            color=\"primary\"\n            :disabled=\"isIntBankTransferPending || activePayment.isSavePending\"\n            :loading=\"isIntBankTransferPending\"\n            data-cy=\"usd-payment-button\"\n            @click=\"goToComfirmationPage\"\n          >\n            <v-icon left>\n              mdi-bank\n            </v-icon>\n            {{ $t('views.editOrder.intBankTransfer') }}\n          </v-btn>\n        </template>\n        <template v-else>\n          <template v-if=\"company.CurrCode === 'CNY' && company.PaymentTerms === 'Ful'\">\n            <v-btn\n              color=\"primary\"\n              :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n              data-cy=\"bank-card-payment-button\"\n              @click=\"generatePaymentUrl('0')\"\n            >\n              <v-icon left>\n                mdi-credit-card-outline\n              </v-icon>\n              {{ $t('views.editOrder.bankCard') }}\n            </v-btn>\n            <v-btn\n              color=\"primary\"\n              :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n              data-cy=\"ebank-payment-button\"\n              @click=\"generatePaymentUrl('2')\"\n            >\n              <v-icon left>\n                mdi-bank\n              </v-icon>\n              {{ $t('views.editOrder.eBank') }}\n            </v-btn>\n            <v-btn\n              color=\"primary\"\n              :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n              data-cy=\"wechat-payment-button\"\n              @click=\"generatePaymentUrl('I')\"\n            >\n              <img\n                src=\"/img/wechat_logo.svg\"\n                height=\"18\"\n                width=\"18\"\n                style=\"margin-right: 8px;\"\n              >\n              {{ $t('views.editOrder.weChat') }}\n            </v-btn>\n            <v-btn\n              color=\"primary\"\n              :disabled=\"isIntBankTransferPending || activePayment.isSavePending\"\n              :loading=\"isIntBankTransferPending\"\n              data-cy=\"usd-payment-button\"\n              @click=\"goToComfirmationPage\"\n            >\n              <v-icon left>\n                mdi-bank\n              </v-icon>\n              {{ $t('views.editOrder.bankTransfer') }}\n            </v-btn>\n          </template>\n          <template v-else>\n            <v-btn\n              color=\"primary\"\n              :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n              data-cy=\"usd-payment-button\"\n              @click=\"generatePaymentUrl\"\n            >\n              <v-icon left>\n                mdi-credit-card-outline\n              </v-icon>\n              {{ $t('views.editOrder.creditCard') }}\n            </v-btn>\n\n            <v-btn\n              color=\"primary\"\n              :disabled=\"isIntBankTransferPending || activePayment.isSavePending\"\n              :loading=\"isIntBankTransferPending\"\n              data-cy=\"usd-payment-button\"\n              @click=\"goToComfirmationPage\"\n            >\n              <v-icon left>\n                mdi-bank\n              </v-icon>\n              {{ $t('views.editOrder.intBankTransfer') }}\n            </v-btn>\n          </template>\n        </template>\n        <v-btn\n          class=\"px-8\"\n          color=\"primary\"\n          text\n          depressed\n          :disabled=\"activePayment.isSavePending || isIntBankTransferPending\"\n          @click=\"cancelActivePayment\"\n        >\n          {{ $t('common.cancel') }}\n        </v-btn>\n      </template>\n    </core-dialog>\n\n    <core-dialog\n      :value=\"isQrCodeDialogOpen\"\n      type=\"custom\"\n      width=\"380px\"\n      height=\"500px\"\n      persistent\n      eager\n      @click:cancel=\"cancelActivePayment\"\n    >\n      <template #title>\n        <span>&nbsp;</span>\n      </template>\n\n      <template #content class=\"justify-center\">\n        <div\n          class=\"d-flex justify-space-between text-uppercase px-6 py-3\"\n          style=\"background-color:#F1FDF3; font-size: 18px\"\n        >\n          <span class=\"d-flex font-weight-medium\">{{\n            $t('views.orders.total', {currency: $t(`currency.${company.CurrCode}`)})\n          }}</span>\n          <span class=\"d-flex font-weight-bold black--text\">\n            {{ currency(activePayment.openBalance, {symbol: company.currencySymbol}).format() }}\n          </span>\n        </div>\n        <div class=\"d-flex justify-center mt-6\">\n          <span class=\"d-flex caption text--secondary\">\n            {{ $t('views.editOrder.pleaseScanTheWeChatQRCode') }}\n          </span>\n        </div>\n        <div id=\"qrCodeContainer\" class=\"pa-10 text-center\">\n          <canvas id=\"qrCodeCanvas\" />\n        </div>\n        <div class=\"d-flex justify-center\">\n          <img\n            src=\"/img/Komacut-logo.svg\"\n            width=\"175px\"\n            height=\"80px\"\n          >\n        </div>\n      </template>\n    </core-dialog>\n  </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { models } from 'feathers-vuex';\nimport currency from 'currency.js';\nimport QRCode from 'qrcode';\n\nconst { Company, Order } = models.api;\n\nexport default {\n  name: 'PaymentDialog',\n\n  data() {\n    return {\n      currency,\n      isIntBankTransferPending: false,\n    };\n  },\n\n  computed: {\n    ...mapGetters('payments', {\n      isPaymentDialogOpen: 'isPaymentDialogOpen',\n      isQrCodeDialogOpen: 'isQrCodeDialogOpen',\n      activePayment: 'activePayment',\n    }),\n    ...mapState('auth', [\n      'user',\n    ]),\n    ...mapState('app', ['currentOrder']),\n    company: () => Company.getFromStore(0),\n    isMexicoPayment: vm => vm.activePayment && vm.activePayment.FactoryId === parseInt(process.env.VUE_APP_MEXICO_FACTORY_ID, 10),\n  },\n\n  methods: {\n    ...mapActions('payments', {\n      cancelActivePayment: 'cancelActivePayment',\n      setIsPaymentDialogOpen: 'setIsPaymentDialogOpen',\n      setIsQrCodeDialogOpen: 'setIsQrCodeDialogOpen',\n    }),\n    ...mapActions('app', [\n      'initCurrentOrder',\n      'clearCurrentOrder'\n    ]),\n\n    // TODO: Handle logic for non upfront payments\n    async generatePaymentUrl(paymentMethod) {\n      if (paymentMethod === 'stripe') {\n        this.activePayment.provider = {\n          name: 'stripe',\n          options: {\n            redirectUrl: `${window.location.origin}${this.$router.getRoutes().find(route => route.name === 'confirmedOrder').path}`,\n            cancelUrl: `${window.location.origin}`,\n          }\n        };\n      } else {\n        this.activePayment.provider = {\n          name: 'lian-lian',\n          options: {\n            notificationUrl: `${process.env.VUE_APP_API_URL}lianlian-gateway/`,\n            // notificationUrl: 'https://e695-49-156-82-29.ngrok-free.app/lianlian-gateway/',\n            redirectUrl: `${window.location.origin}${this.$router.getRoutes().find(route => route.name === 'confirmedOrder').path}`,\n          }\n        };\n      }\n      const validPaymentTypes = ['0', '2', 'I'];\n      if (validPaymentTypes.includes(paymentMethod)) {\n        this.activePayment.provider.options.type = paymentMethod;\n\n        if (paymentMethod !== 'I') {\n          const { redirectUrl } = this.activePayment.provider.options;\n          let updatedRedirectUrl = '';\n          if (redirectUrl.includes('statements')) {\n            updatedRedirectUrl = `${process.env.VUE_APP_API_URL}payment-redirect/statements/`;\n          } else if (redirectUrl.includes('orders')) {\n            updatedRedirectUrl = `${process.env.VUE_APP_API_URL}payment-redirect/orders/`;\n          } else if (redirectUrl.includes('confirmed')) {\n            updatedRedirectUrl = `${process.env.VUE_APP_API_URL}payment-redirect/confirmed/`;\n          }\n          this.activePayment.provider.options.redirectUrl = updatedRedirectUrl;\n        }\n      }\n\n      await this.activePayment.save();\n      if (paymentMethod === 'I') {\n        this.setIsPaymentDialogOpen(false);\n        this.setIsQrCodeDialogOpen(true);\n        requestAnimationFrame(() => QRCode.toCanvas(\n          document.getElementById('qrCodeCanvas'),\n          this.activePayment.paymentUrl,\n          { errorCorrectionLevel: 'H' },\n          (err, canvas) => {\n            if (err) {\n              throw err;\n            }\n            const container = document.getElementById('qrCodeContainer');\n            container.appendChild(canvas);\n          }\n        ));\n      } else {\n        window.open(this.activePayment.paymentUrl, '_self').focus();\n      }\n    },\n\n    async goToComfirmationPage() {\n      this.isIntBankTransferPending = true;\n      await this.$feathers.service('email').create({\n        EmailToValue: this.user._id,\n        CommentValue: '',\n        ReportTypeValue: 'DepositInvoice',\n        EstimateValue: this.activePayment.CoNum,\n      });\n      await Order.find();\n      this.isIntBankTransferPending = false;\n      this.setIsPaymentDialogOpen(false);\n      await this.$router.push({ path: `/order/confirmed?skipPaymentOrderId=${this.activePayment.CoNum}` });\n      await this.clearCurrentOrder();\n      this.initCurrentOrder();\n    }\n  },\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PaymentDialog.vue?vue&type=template&id=16eb87fe&scoped=true&\"\nimport script from \"./PaymentDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./PaymentDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"16eb87fe\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{attrs:{\"two-line\":\"\"}},[_c('v-list-item',[_c('v-list-item-avatar',[_c('v-skeleton-loader',{attrs:{\"type\":\"avatar\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.part.partNo)+\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"icon\":\"\",\"text\":\"\",\"small\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-pencil \")])],1)],1),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.part.filename))])],1),_c('v-list-item-action',[_c('v-btn',{staticStyle:{\"position\":\"absolute\",\"bottom\":\"60%\"},attrs:{\"icon\":\"\"},on:{\"click\":_vm.action}},[_c('v-icon',[_vm._v(_vm._s(_vm.expanded ? 'mdi-chevron-up' : 'mdi-chevron-down'))])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-list two-line>\n    <v-list-item>\n      <v-list-item-avatar>\n        <v-skeleton-loader type=\"avatar\" />\n      </v-list-item-avatar>\n\n      <v-list-item-content>\n        <v-list-item-title>\n          {{ part.partNo }}\n          <v-btn\n            icon\n            text\n            small\n            class=\"mb-1\"\n          >\n            <v-icon small>\n              mdi-pencil\n            </v-icon>\n          </v-btn>\n        </v-list-item-title>\n\n        <v-list-item-subtitle>{{ part.filename }}</v-list-item-subtitle>\n      </v-list-item-content>\n\n      <v-list-item-action>\n        <v-btn\n          style=\"position:absolute; bottom: 60%;\"\n          icon\n          @click=\"action\"\n        >\n          <v-icon>{{ expanded ? 'mdi-chevron-up' : 'mdi-chevron-down' }}</v-icon>\n        </v-btn>\n      </v-list-item-action>\n    </v-list-item>\n  </v-list>\n</template>\n\n<script>\nexport default {\n  props: ['name', 'part', 'expanded', 'action']\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadPartHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadPartHeader.vue?vue&type=template&id=124ace5a&\"\nimport script from \"./UploadPartHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadPartHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.pdfReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('drawingConsultancyPdf.view2DDrawing'))+\" \")],1),(!_vm.isPdfRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPdfRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-pdf-box \")]),_vm._v(\" \"+_vm._s(_vm.$t('drawingConsultancyPdf.upload2DDrawing'))+\" \")],1)],_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isPdfRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removePDF,\"click:cancel\":function($event){_vm.showPdfRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.DeletePdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.$t('myPartPdf.PdfDrawingFile') }))}})])]},proxy:true}]),model:{value:(_vm.showPdfRemoveDialog),callback:function ($$v) {_vm.showPdfRemoveDialog=$$v},expression:\"showPdfRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isPdfUploadPending,\"is-ok-disabled\":!_vm.isFileAdded,\"ok-button-text\":_vm.$t('common.submit')},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;_vm.removePDF()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('drawingConsultancyPdf.uploadDrawingConsultancy'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,2162167336),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-path\":_vm.previewPDFUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <div v-if=\"pdfReady\" style=\"display: inline\">\n      <v-btn\n        text\n        small\n        class=\"pr-1\"\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"isPDFDownload=true\"\n      >\n        <v-icon left size=\"20\">\n          mdi-open-in-new\n        </v-icon>\n        {{ $t('drawingConsultancyPdf.view2DDrawing') }}\n      </v-btn>\n      <v-icon v-if=\"!isPdfRemoved\" small @click=\"showPdfRemoveDialog = true\">\n        mdi-close\n      </v-icon>\n    </div>\n    <template v-else>\n      <v-btn\n        text\n        small\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"display=true;\"\n      >\n        <v-icon left size=\"25\">\n          mdi-file-pdf-box\n        </v-icon>\n        {{ $t('drawingConsultancyPdf.upload2DDrawing') }}\n      </v-btn>\n    </template>\n\n    <core-dialog\n      v-model=\"showPdfRemoveDialog\"\n      type=\"confirmation\"\n      width=\"500px\"\n      :is-loading=\"isPdfRemoved\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"removePDF\"\n      @click:cancel=\"showPdfRemoveDialog =false\"\n    >\n      <template #title>\n        {{ $t('myPartPdf.DeletePdfDrawing') }}\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <span\n            class=\"d-block\"\n            v-html=\"$t('common.deleteDialogText', { name: $t('myPartPdf.PdfDrawingFile') })\"\n          />\n        </div>\n      </template>\n    </core-dialog>\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"confirmation\"\n      width=\"1000px\"\n      :eager=\"true\"\n      :is-loading=\"isPdfUploadPending\"\n      :is-ok-disabled=\"!isFileAdded\"\n      :ok-button-text=\"$t('common.submit')\"\n      @click:ok=\"display = false;\"\n      @click:cancel=\"display = false;removePDF()\"\n    >\n      <template #title>\n        {{ $t('drawingConsultancyPdf.uploadDrawingConsultancy') }}\n      </template>\n      <template #content>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-pdf\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                {{ $t('myPartPdf.FileSupported') }}\n              </div>\n            </v-card-text>\n          </v-card>\n          {{ $t('myPartPdf.SingleFileOnly') }}\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n    <v-navigation-drawer\n      v-model=\"isPDFDownload\"\n      width=\"60%\"\n      fixed\n      stateless\n      hide-overlay\n      right\n      temporary\n      style=\"background-color: #ada6a6;z-index: 99 !important;\"\n    >\n      <div\n        ref=\"rfqViewerContainer\"\n        style=\"height: calc(100% - 52px);\"\n      >\n        <div class=\"d-flex justify-end\">\n          <v-btn\n            icon\n            x-large\n            @click=\"isPDFDownload=false\"\n          >\n            <v-icon>mdi-close</v-icon>\n          </v-btn>\n        </div>\n\n        <core-pdf-viewer\n          v-if=\"isPDFDownload\"\n          :file-path=\"previewPDFUrl\"\n          :item-height=\"800\"\n        />\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'DrawingConsultancyPdf',\n  props: {\n    pdfUrl: {\n      type: String,\n    },\n  },\n  data() {\n    return {\n      pdfReady: false,\n      previewPDFUrl: '',\n      isPdfUploadPending: false,\n      isFileAdded: false,\n      showPdfRemoveDialog: false,\n      myDropZone: null,\n      pdfPageHeight: 0,\n      pdfPageWidth: 0,\n      display: false,\n      isPdfRemoved: false,\n      isPDFDownload: false\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => ({\n      url: '/',\n      paramName: 'file',\n      headers: {\n        Authorization: vm.accessToken,\n      },\n      thumbnailWidth: 150,\n      maxFilesize: 20,\n      timeout: 9999999,\n      maxFiles: 1,\n      parallelUploads: 1,\n      acceptedFiles: '.pdf',\n      autoProcessQueue: false,\n      dictDefaultMessage: 'dropZone.dictDefaultMessage',\n      dictFallbackMessage: 'dropZone.dictFallbackMessage',\n      dictFallbackText: 'dropZone.dictFallbackText',\n      dictFileTooBig: 'dropZone.dictFileTooBig',\n      dictInvalidFileType: 'dropZone.dictInvalidFileType',\n      dictResponseError: 'dropZone.dictResponseError',\n      dictCancelUpload: 'dropZone.dictCancelUpload',\n      dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n      dictRemoveFile: 'dropZone.dictRemoveFile',\n      dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n      clickable: '#dropzone-click-target-pdf',\n      previewTemplate: vm.template(),\n      init() {\n        this.on('maxfilesexceeded', file => {\n          this.removeAllFiles();\n          this.addFile(file);\n        });\n        this.on('error', async file => {\n          this.removeFile(file);\n        });\n        this.on('success', async () => {\n          vm.isPdfUploadPending = false;\n          vm.display = false;\n          await vm.checkIfPdfExist();\n        });\n\n        this.on('sending', () => {\n          vm.isPdfUploadPending = true;\n        });\n\n        this.on('addedfile', async file => {\n          const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n          vm.previewPDFUrl = URL.createObjectURL(file);\n          vm.$emit('pdfUrl', vm.previewPDFUrl);\n          vm.pdfReady = true;\n          vm.isFileAdded = true;\n          removeButton.addEventListener('click', e => {\n            e.preventDefault();\n            e.stopPropagation();\n            this.removeFile(file);\n            vm.removePDF();\n          });\n\n          file.previewElement.children[1].appendChild(removeButton);\n        });\n      }\n\n    }),\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    },\n    pdfUrl(val) {\n      if (val) {\n        this.pdfReady = true;\n        this.previewPDFUrl = this.pdfUrl;\n      } else {\n        this.pdfReady = false;\n      }\n    }\n  },\n\n  mounted() {\n    const resizeObserver = new ResizeObserver(() => {\n      /* 70 breathing room */\n      this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n      const ratio = 8.5 / 11;\n      this.pdfPageHeight = this.pdfPageWidth / ratio;\n    });\n    resizeObserver.observe(this.$refs.rfqViewerContainer);\n  },\n  methods: {\n\n    async onFileChanged(e) {\n      const [pdfFile] = e.target.files;\n      this.previewPDFUrl = URL.createObjectURL(pdfFile);\n      this.$emit('pdfUrl', this.previewPDFUrl);\n      this.pdfReady = true;\n    },\n    async removePDF() {\n      URL.revokeObjectURL(this.previewPDFUrl);\n      this.pdfReady = false;\n      this.showPdfRemoveDialog = false;\n      this.previewPDFUrl = '';\n      this.$emit('pdfUrl', this.previewPDFUrl);\n      this.isFileAdded = false;\n    },\n    template() {\n      return `\n             <div class=\"d-flex align-start flex-column mt-16\">\n                <p style=\"vertical-align: bottom\">Document selected</p>\n                <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n                  <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n                  <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n                </p>\n             </div>`;\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawingConsultancyPdf.vue?vue&type=template&id=28aba8bf&\"\nimport script from \"./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawingConsultancyPdf.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","export default {\n  props: {\n    value: {},\n    section: String,\n  },\n\n  computed: {\n    localValue: {\n      get() {\n        return this.value;\n      },\n\n      set(value) {\n        this.$emit('input', value);\n      },\n    }\n  },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm._.get(_vm.analysisData[0], 'value')))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{ 'dark': (i % 2 !== 0) }},[_c('td',{staticClass:\"d-flex align-center\",staticStyle:{\"color\":\"#747474\"}},[(_vm.$t(item.value) === _vm.$t('3dSideViewer.pass'))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check-circle-outline \")]):(_vm.$t(item.value) === _vm.$t('3dSideViewer.fail'))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close-circle-outline \")]):_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\" mdi-cancel \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{color :_vm.getTextColor(item.value)}])},[_vm._v(\" \"+_vm._s(_vm.$t(item.value))+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expansion-panels>\n    <v-expansion-panel>\n      <v-expansion-panel-header>\n        <div class=\"text-subtitle-2\">\n          {{ $t(_.get(analysisData[0], 'value')) }}\n        </div>\n      </v-expansion-panel-header>\n      <v-expansion-panel-content>\n        <v-card flat>\n          <v-simple-table dense>\n            <template v-slot:default>\n              <tbody>\n                <tr\n                  v-for=\"(item, i) in analysisData.slice(1)\"\n                  :key=\"item.field\"\n                  :class=\"{ 'dark': (i % 2 !== 0) }\"\n                >\n                  <td class=\"d-flex align-center\" style=\"color: #747474;\">\n                    <v-icon\n                      v-if=\"$t(item.value) === $t('3dSideViewer.pass')\"\n                      small\n                      class=\"mr-2\"\n                      color=\"green\"\n                    >\n                      mdi-check-circle-outline\n                    </v-icon>\n                    <v-icon\n                      v-else-if=\"$t(item.value) === $t('3dSideViewer.fail')\"\n                      small\n                      class=\"mr-2\"\n                      color=\"red\"\n                    >\n                      mdi-close-circle-outline\n                    </v-icon>\n                    <v-icon\n                      v-else\n                      small\n                      class=\"mr-2\"\n                    >\n                      mdi-cancel\n                    </v-icon>\n                    {{ $t(item.field) }}\n                  </td>\n                  <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n                    <span\n                      class=\"ml-3\"\n                      :style=\"[{color :getTextColor(item.value)}]\"\n                    >\n                      {{ $t(item.value) }}\n                    </span>\n                  </td>\n                </tr>\n              </tbody>\n            </template>\n          </v-simple-table>\n        </v-card>\n      </v-expansion-panel-content>\n    </v-expansion-panel>\n  </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n  name: 'PartAnalysisTable',\n  props: {\n    part: Object,\n  },\n  computed: {\n    analysisData() {\n      let tableData = [];\n      if (this.part) {\n        tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n      }\n      if (_.isEmpty(tableData)) {\n        tableData = [\n          { field: null, value: '3dSideViewer.dfm.title' },\n          { field: '3dSideViewer.dfm.holeSizeVsThickness', value: '-' },\n          { field: '3dSideViewer.dfm.holeToEdge', value: '-' },\n          { field: '3dSideViewer.dfm.bendToRadius', value: '-' },\n          { field: '3dSideViewer.dfm.bendToEdge', value: '-' },\n          { field: '3dSideViewer.dfm.bendToHole', value: '-' },\n          { field: '3dSideViewer.dfm.holeToHole', value: '-' },\n          { field: '3dSideViewer.dfm.hems', value: '-' },\n          { field: '3dSideViewer.dfm.countersink', value: '-' },\n          { field: '3dSideViewer.dfm.cornerFillets', value: '-' },\n          { field: '3dSideViewer.dfm.bendReliefs', value: '-' },\n        ];\n      } else {\n        tableData = tableData.filter(datum => datum.Category === 'S1')\n          .filter(datum => (datum.Description ? datum.Description.startsWith('T1') : ''))\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description.replace('T1.', ''), value: datum.Value || '-' }));\n      }\n      return tableData;\n    }\n  },\n  methods: {\n    getTextColor(value) {\n      value = value.split('.').pop();\n      switch (value) {\n        case 'pass':\n        case 'yes':\n          return 'green';\n        case 'fail':\n        case 'no':\n          return 'red';\n        default:\n          return '';\n      }\n    }\n  }\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DfmTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DfmTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DfmTable.vue?vue&type=template&id=02ee063f&scoped=true&\"\nimport script from \"./DfmTable.vue?vue&type=script&lang=js&\"\nexport * from \"./DfmTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"02ee063f\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-avatar',{style:((\"border: solid \" + (_vm.displayBorder ? _vm.size/20 : 0) + \"px white ;background-color: #E8E8E8\")),attrs:{\"size\":_vm.size}},[(_vm.isImgLoading)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\"}}):[(!_vm.hideAvatar && _vm.imgLoad && _vm.imgSrcUrl)?_c('v-img',{attrs:{\"eager\":\"\",\"src\":_vm.imgSrcUrl},on:{\"error\":function($event){_vm.imgLoad=false},\"load\":function($event){_vm.imgLoad=true}},scopedSlots:_vm._u([{key:\"placeholder\",fn:function(){return [_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"10\",\"width\":\"2\",\"color\":\"#C8C8C8\"}})]},proxy:true}],null,false,1491913249)}):(!_vm.user)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"10\",\"width\":\"2\",\"color\":\"red\"}}):_c('span',{staticClass:\"text-uppercase font-weight-bold d-flex\",staticStyle:{\"color\":\"rgba(0,0,0,0.86)\"},style:({'font-size': _vm.fontSize})},[_vm._v(\" \"+_vm._s(_vm.initial)+\" \")])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-avatar\n    :size=\"size\"\n    :style=\"`border: solid ${displayBorder ? size/20 : 0}px white ;background-color: #E8E8E8`\"\n  >\n    <v-progress-circular v-if=\"isImgLoading\" indeterminate />\n    <template v-else>\n      <v-img\n        v-if=\"!hideAvatar && imgLoad && imgSrcUrl\"\n        eager\n        :src=\"imgSrcUrl\"\n        @error=\"imgLoad=false\"\n        @load=\"imgLoad=true\"\n      >\n        <template v-slot:placeholder class=\"d-flex align-center justify-center\">\n          <v-progress-circular\n            indeterminate\n            size=\"10\"\n            width=\"2\"\n            color=\"#C8C8C8\"\n          />\n        </template>\n      </v-img>\n      <v-progress-circular\n        v-else-if=\"!user\"\n        indeterminate\n        size=\"10\"\n        width=\"2\"\n        color=\"red\"\n      />\n      <span\n        v-else\n        class=\"text-uppercase font-weight-bold d-flex\"\n        :style=\"{'font-size': fontSize}\"\n        style=\" color: rgba(0,0,0,0.86); \"\n      >\n        {{ initial }}\n      </span>\n    </template>\n  </v-avatar>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'Avatar',\n  props: {\n    displayBorder: {\n      type: Boolean,\n      default: false\n    },\n    user: {\n      required: true,\n    },\n    imgSrc: {\n      type: String,\n      default: ''\n    },\n    hideAvatar: {\n      type: Boolean,\n      default: false\n    },\n    urlPreview: {\n      type: String,\n      default: ''\n    },\n    isImgLoading: {\n      type: Boolean,\n      default: false\n    },\n    isContactsFindPending: {\n      type: Boolean,\n      default: false\n    },\n    size: {\n      type: Number,\n      default: 40,\n    },\n  },\n  data() {\n    return {\n      host: '',\n      fileName: '',\n      timestamp: '',\n      imgLoad: true,\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n\n    // eslint-disable-next-line no-mixed-operators\n    fontSize: vm => `${vm.size / 40.0 * 17}px`,\n    initial: vm => (vm.user.firstName && vm.user.lastName ? (vm.user.firstName[0] + vm.user.lastName[0]) : '...'),\n    imgSrcUrl: vm => {\n      let url = null;\n      if (vm.urlPreview) {\n        url = `${vm.host}avatar/${vm.accessToken}/${encodeURIComponent(vm.urlPreview)}`;\n      } else if (vm.user && vm.user.avatarUrl) {\n        url = `${vm.host}avatar/${vm.accessToken}/${encodeURIComponent(vm.user.avatarUrl)}`;\n      }\n      return url;\n    }\n  },\n  watch: {\n    isImgLoading() {\n      this.imgLoad = true;\n    }\n  },\n  created() {\n    this.host = process.env.VUE_APP_API_URL;\n    this.fileName = _.get(this.user, 'ContactEmail', '') || _.get(this.user, '_id', '');\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=242e85c9&\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js&\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VAvatar,VImg,VProgressCircular})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartsDesignDataTable.vue?vue&type=style&index=0&id=212b5618&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',{attrs:{\"accordion\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm._.get(_vm.partDesignData[0], 'value')))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.partDesignData.slice(1)),function(item){return _c('tr',{key:item.field},[_c('td',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"color\":\"#747474\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s((_vm.locale === 'en-US') || (item.valueCHS === '-') ? _vm.$t(item.value) : item.valueCHS)+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expansion-panels accordion>\n    <v-expansion-panel>\n      <v-expansion-panel-header>\n        <div class=\"text-subtitle-2\">\n          {{ $t(_.get(partDesignData[0], 'value')) }}\n        </div>\n      </v-expansion-panel-header>\n      <v-expansion-panel-content>\n        <v-card flat>\n          <v-simple-table dense>\n            <template v-slot:default>\n              <tbody>\n                <tr\n                  v-for=\"(item) in partDesignData.slice(1)\"\n                  :key=\"item.field\"\n                >\n                  <td style=\"display: flex; align-items: center; color: #747474\">\n                    <v-icon small class=\"mr-2\" color=\"green\">\n                      {{ item.icon }}\n                    </v-icon>\n                    {{ $t(item.field) }}\n                  </td>\n                  <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n                    <span\n                      class=\"ml-3\"\n                      :style=\"[{ color: getTextColor(item.value) }]\"\n                    >\n                      {{ (locale === 'en-US') || (item.valueCHS === '-') ? $t(item.value) : item.valueCHS }}\n                    </span>\n                  </td>\n                </tr>\n              </tbody>\n            </template>\n          </v-simple-table>\n        </v-card>\n      </v-expansion-panel-content>\n    </v-expansion-panel>\n  </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n  name: 'ManufacturingProcessTable',\n  props: {\n    part: Object,\n  },\n  computed: {\n    ...mapState('app', ['locale']),\n    partDesignData() {\n      let tableData = [];\n      if (this.part) {\n        tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n      }\n      if (_.isEmpty(tableData)) {\n        tableData = [\n          { field: null, value: '3dSideViewer.manufacturingProcesses.title' },\n          { field: '3dSideViewer.manufacturingProcesses.productType', value: '-' },\n          { field: '3dSideViewer.manufacturingProcesses.laserCutting', value: '-' },\n          { field: '3dSideViewer.manufacturingProcesses.deburring', value: '-' },\n          { field: '3dSideViewer.manufacturingProcesses.threadChamfer', value: '-' },\n          { field: '3dSideViewer.manufacturingProcesses.cncBending', value: '-' },\n          { field: '3dSideViewer.manufacturingProcesses.surfaceFinish', value: '-' },\n        ];\n      } else {\n        tableData = tableData.filter(datum => datum.Category === 'S2')\n          .filter(datum => (datum.Description ? datum.Description.startsWith('T2') : ''))\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description.replace('T2.', ''), value: datum.Value || '-', valueCHS: datum.ValueCHS || '-' }));\n      }\n      let icons = [\n        'mdi-aspect-ratio',\n        'mdi-content-cut',\n        'mdi-inbox-arrow-down',\n        'mdi-record-circle',\n        'mdi-crop-free',\n        'mdi-filter-variant',\n        'mdi-flip-v mdi-chart-multiline',\n        'mdi-select-all',\n      ];\n      if (this.part.isTurningPart || this.part.Machine === 'turning') {\n        icons = [\n          'mdi-aspect-ratio',\n          'mdi-vibrate',\n          'mdi-inbox-arrow-down',\n          'mdi-dots-horizontal',\n          'mdi-record-circle',\n          'mdi-record-circle',\n          'mdi-record-circle',\n          'mdi-record-circle',\n          'mdi-crop-free',\n          'mdi-ticket-confirmation',\n          'mdi-ticket-confirmation',\n          'mdi-filter-variant',\n          'mdi-select-all',\n        ];\n      }\n      return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n    },\n  },\n  methods: {\n    getTextColor(value) {\n      value = value.split('.').pop();\n      switch (value) {\n        case 'Pass':\n        case 'Yes':\n          return 'green';\n        case 'Fail':\n        case 'No':\n          return 'red';\n        default:\n          return '';\n      }\n    }\n  }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ManufacturingProcessTable.vue?vue&type=template&id=92f076f2&\"\nimport script from \"./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ManufacturingProcessTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-1\",staticStyle:{\"height\":\"1000px !important\",\"width\":\"800px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"ml-4\"},[_c('span',{staticClass:\"d-flex align-center justify-center text-h6 mr-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.selectSpecs')))]),_vm._l((_vm.productOptions),function(productOption,index){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-col',{key:(\"dropdown-\" + (productOption.id)),attrs:{\"cols\":\"auto\"}},[_c('v-select',{staticStyle:{\"max-width\":\"120px\"},attrs:{\"label\":productOption[_vm.locale === 'cn' ? 'labelChs' : 'label' ],\"items\":_vm.filteredItems(index,_vm.productQuery),\"item-text\":_vm.locale === 'cn' ? 'textChs' : 'text',\"data-cy\":(\"drawing-dropdown-\" + (productOption.id)),\"attach\":\"\",\"dense\":\"\",\"item-value\":\"id\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.optionVmodel[productOption.id]),callback:function ($$v) {_vm.$set(_vm.optionVmodel, productOption.id, $$v)},expression:\"optionVmodel[productOption.id]\"}})],1):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-col',{key:(\"drawing-checkbox-\" + (productOption.id)),staticClass:\"pl-0\"},[_c('v-checkbox',{attrs:{\"label\":productOption[_vm.locale === 'cn' ? 'labelChs' : 'label' ],\"true-value\":productOption.options[1].id,\"data-cy\":(\"checkbox-\" + (productOption.id)),\"false-value\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.optionVmodel[productOption.id]),callback:function ($$v) {_vm.$set(_vm.optionVmodel, productOption.id, $$v)},expression:\"optionVmodel[productOption.id]\"}})],1):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('v-col',{key:(\"plainText-\" + (productOption.id)),attrs:{\"data-cy\":(\"plainText-\" + (productOption.id))}},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'cn' ? 'labelChs' : 'label'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct[_vm.locale === 'cn' ? 'textChs' : 'text'])+\" \")])]):_vm._e()]})],2),_c('v-row',[_c('v-data-table',{staticClass:\"my-4\",staticStyle:{\"width\":\"100%\"},attrs:{\"fixed-header\":\"\",\"height\":\"1000\",\"headers\":_vm.drawingTableHeaders,\"items\":_vm.filteredProduct,\"no-data-text\":_vm.$t('common.noDataAvailable'),\"loading-text\":_vm.$t('common.loadingItems'),\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([_vm._l((_vm.productOptionsId),function(productId){return {key:(\"item.\" + productId),fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{key:productId},[_vm._v(\" \"+_vm._s(_vm.findTranslation(productId, item[productId]))+\" \")])]}}}),{key:\"item.download\",fn:function(item){return [_c('v-btn',{staticClass:\"my-1\",attrs:{\"text\":\"\",\"data-cy\":(\"2d-drawing-download-\" + _vm.productGroupKey),\"color\":\"primary\"},on:{\"click\":function($event){return _vm.downloadDrawingFiles('itemSpec2d', item.item.specFile2d, ((item.item._id) + \".pdf\"))}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.2DDrawing'))+\" \")],1),_c('v-btn',{staticClass:\"my-1\",attrs:{\"data-cy\":(\"3d-drawing-download-\" + _vm.productGroupKey),\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.downloadDrawingFiles('itemSpec3d', item.item.specFile3d, ((item.item._id) + \".stp\"))}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-cube-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.3DDrawing'))+\" \")],1)]}}],null,true)})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container fluid class=\"pa-1\" style=\"height: 1000px !important; width: 800px\">\n    <v-row class=\"ml-4\">\n      <span class=\"d-flex align-center justify-center text-h6 mr-8\"> {{ $t('views.productOption.selectSpecs') }}</span>\n      <template v-for=\"(productOption, index) in productOptions\">\n        <v-col\n          v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n          :key=\"`dropdown-${productOption.id}`\"\n          cols=\"auto\"\n        >\n          <v-select\n            v-model=\"optionVmodel[productOption.id]\"\n            :label=\"productOption[locale === 'cn' ? 'labelChs' : 'label' ]\"\n            :items=\"filteredItems(index,productQuery)\"\n            :item-text=\"locale === 'cn' ? 'textChs' : 'text'\"\n            style=\"max-width: 120px\"\n            :data-cy=\"`drawing-dropdown-${productOption.id}`\"\n            attach\n            dense\n            item-value=\"id\"\n            outlined\n            hide-details\n            @click.stop\n          />\n        </v-col>\n        <v-col\n          v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n          :key=\"`drawing-checkbox-${productOption.id}`\"\n          class=\"pl-0\"\n        >\n          <v-checkbox\n            v-model=\"optionVmodel[productOption.id]\"\n            :label=\"productOption[locale === 'cn' ? 'labelChs' : 'label' ]\"\n            :true-value=\"productOption.options[1].id\"\n            :data-cy=\"`checkbox-${productOption.id}`\"\n            false-value=\"\"\n            hide-details\n            @click.stop\n          />\n        </v-col>\n        <v-col\n          v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n          :key=\"`plainText-${productOption.id}`\"\n          :data-cy=\"`plainText-${productOption.id}`\"\n        >\n          <div\n            style=\"color:rgba(0,0,0,0.6);\"\n            class=\"caption\"\n          >\n            {{ productOption[locale === 'cn' ? 'labelChs' : 'label'] }}\n          </div>\n          <div>\n            {{\n              getReadOnlyProduct[locale === 'cn' ? 'textChs' : 'text']\n            }}\n          </div>\n        </v-col>\n      </template>\n    </v-row>\n    <v-row>\n      <v-data-table\n        style=\"width: 100%\"\n        fixed-header\n        height=\"1000\"\n        :headers=\"drawingTableHeaders\"\n        :items=\"filteredProduct\"\n        class=\"my-4\"\n        :no-data-text=\"$t('common.noDataAvailable')\"\n        :loading-text=\"$t('common.loadingItems')\"\n        hide-default-footer\n        disable-pagination\n      >\n        <template v-for=\"productId in productOptionsId\" v-slot:[`item.${productId}`]=\"{item}\">\n          <span :key=\"productId\">\n            {{ findTranslation(productId, item[productId]) }}\n          </span>\n        </template>\n\n        <template #item.download=\"item\">\n          <v-btn\n            text\n            :data-cy=\"`2d-drawing-download-${productGroupKey}`\"\n            color=\"primary\"\n            class=\"my-1\"\n            @click=\"downloadDrawingFiles('itemSpec2d', item.item.specFile2d, `${item.item._id}.pdf`)\"\n          >\n            <v-icon left>\n              mdi-vector-square\n            </v-icon>\n            {{ $t('views.productOption.2DDrawing') }}\n          </v-btn>\n          <v-btn\n            :data-cy=\"`3d-drawing-download-${productGroupKey}`\"\n            text\n            color=\"primary\"\n            class=\"my-1\"\n            @click=\"downloadDrawingFiles('itemSpec3d', item.item.specFile3d, `${item.item._id}.stp`)\"\n          >\n            <v-icon left>\n              mdi-cube-outline\n            </v-icon>\n            {{ $t('views.productOption.3DDrawing') }}\n          </v-btn>\n        </template>\n      </v-data-table>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState } from 'vuex';\nimport { LEVEL } from '@/utils/log';\n\nexport default {\n  name: 'HardwareDrawingTable',\n\n  props: {\n    productGroupId: {\n      type: String,\n      default: ''\n    },\n    productGroupKey: {\n      type: String,\n      default: ''\n    },\n    productOptions: {\n      type: Array,\n      default: () => []\n    },\n    productQuery: {\n      type: Object,\n      default: () => {\n      },\n    },\n    productSelected: {\n      type: Object,\n      default: () => {\n      }\n    }\n  },\n  data() {\n    return {\n      isDrawingsDialogOpen: false,\n      selectedOptions: {},\n      isDownloadPending: false\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n    ...mapState('auth', ['accessToken']),\n\n    HardwareProduct: () => models.api.HardwareProduct,\n\n    drawingTableHeaders: vm => {\n      const optionHeader = vm.productOptions.map(productOption => ({\n        text: vm.locale === 'cn' ? productOption.labelChs : productOption.label,\n        value: productOption.id,\n        align: 'center',\n      }));\n      optionHeader.push({ text: vm.$t('common.download'), value: 'download' });\n      return optionHeader;\n    },\n\n    productOptionsId: vm => {\n      if (vm.productOptions.length === 0) {\n        return [];\n      }\n      return vm.productOptions.map(option => option.id);\n    },\n\n    filteredItems: vm => (index, pquery) => {\n      const currentColumn = vm.productOptions[index];\n\n      if (!currentColumn) {\n        return [];\n      }\n      // Please figure what it does, it's cool !;\n      const query = {\n        query: {\n          ..._.get(pquery, 'query', {}),\n        }\n      };\n      const productValue = vm.HardwareProduct.findInStore(query).data;\n\n      if (productValue.length === 0) {\n        return [];\n      }\n\n      const res = productValue.map(o => (o[currentColumn.id]));\n      if (res.length === 0) {\n        return [];\n      }\n\n      return [{\n        text: 'All',\n        textChs: 'AllChs',\n        id: ''\n      }, ...res.map(value => currentColumn.options.find(option => option.id === value)) || []];\n    },\n\n    filteredProduct: vm => {\n      const query = {\n        query: {\n          ...vm.productQuery.query,\n          ...vm.filterQuery\n        }\n      };\n      return vm.HardwareProduct.findInStore(query).data;\n    },\n\n    productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n    productCheckBoxOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'checkbox') : []),\n\n    getReadOnlyProduct: vm => {\n      const product = vm.HardwareProduct.findInStore({\n        query: {\n          $sort: vm.productQuery.query.$sort,\n          [vm.productGroupKey]: vm.productGroupId\n        }\n      }).data[0];\n      if (!product) {\n        return {};\n      }\n\n      return vm.productReadOnlyOptions[0].options.find(value => value.id === product[vm.productReadOnlyOptions[0].id]) || {};\n    },\n\n    optionVmodel: vm => {\n      // Here we setup the default values\n      if (vm.HardwareProduct.store.state['hardware-products'].ids.length > 0) {\n        vm.productOptions.forEach(fil => {\n          if (!vm.selectedOptions[fil.id]) {\n            if (fil.attributeTypes[0].fieldType === 'readonly') {\n              vm.$set(vm.selectedOptions, fil.id, vm.filteredProduct[0][fil.id]);\n            } else {\n              vm.$set(vm.selectedOptions, fil.id, '');\n            }\n          }\n        });\n      }\n      return vm.selectedOptions;\n    },\n    // eslint-disable-next-line no-unused-vars\n    filterQuery: vm => Object.fromEntries(Object.entries(vm.selectedOptions).filter(([_, v]) => v !== '')),\n\n  },\n\n  watch: {\n    productSelected: {\n      handler() {\n        if (this.productSelected) {\n          this.productOptions.forEach(product => {\n            this.$set(this.selectedOptions, product.id, this.productSelected[product.id]);\n          });\n        }\n      },\n      // force eager callback execution\n      immediate: true\n    }\n  },\n\n  methods: {\n    ...mapActions('app', ['pushSnack']),\n    async downloadDrawingFiles(fileType, fileUrl, fileName) {\n      const downloadUrl = `${process.env.VUE_APP_API_URL}downloadDrawingFiles/${encodeURIComponent(fileUrl)}/${fileType}`;\n      this.isDownloadPending = true;\n\n      try {\n        const response = await fetch(\n          downloadUrl, {\n            method: 'GET',\n            headers: {\n              Authorization: this.accessToken,\n            },\n          }\n        );\n\n        if (!response.ok) {\n          throw response.statusText;\n        }\n        const blob = await response.blob();\n\n        const url = window.URL.createObjectURL(blob);\n        const a = document.createElement('a');\n        a.href = url;\n        a.download = fileName;\n        document.body.appendChild(a);\n        a.click();\n        a.remove();\n        this.isDownloadPending = false;\n      } catch (e) {\n        this.pushSnack({\n          snack: { message: e },\n          level: LEVEL.ERROR,\n        });\n      }\n    },\n\n    findTranslation(productId, option) {\n      if (!this.productOptions) {\n        return '';\n      }\n      const optionValue = this.productOptions.filter(productOption => productOption.id === productId)[0].options.filter(opt => opt.id === option);\n\n      if (!optionValue.length) {\n        return '';\n      }\n      return optionValue[0][[this.locale === 'cn' ? 'textChs' : 'text']];\n    }\n  }\n};\n</script>\n\n<style scoped>\n\n>>> .v-skeleton-loader__image {\n  height: 600px !important;\n}\n\n.v-data-table > .v-data-table__wrapper > table > tbody {\n  padding-left: 55px !important;\n  width: 50px\n}\n\n::v-deep .warningStyle {\n  background-color: #fbe9ec !important;\n}\n\n.warningFontColor {\n  color: #B71C1C;\n}\n\n::v-deep .v-data-table__expand-icon--active {\n  color: green;\n  transform: rotate(90deg) !important;\n}\n\n::v-deep .v-icon.notranslate.v-data-table__expand-icon {\n  color: green;\n  margin: 0 10px;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n  background-color: #beebc9;\n  padding: 0 0 0 15px !important;\n  height: 25px;\n  font-size: 12px;\n}\n\n::v-deep thead th:first-child {\n  border-radius: 5px 0 0 0;\n}\n\n::v-deep thead th:last-child {\n  border-radius: 0 5px 0 0;\n}\n\n.active {\n  background-color: green !important;\n  color: white !important;\n  opacity: 1;\n}\n\n.active-filter {\n  background-color: #f5f5f5 !important;\n  color: green !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:first-child {\n  border-top-left-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr:first-child:hover > td:last-child {\n  border-top-right-radius: 0 !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > tbody > tr.v-data-table__expanded > td {\n  border-bottom: none !important;\n}\n\n::v-deep .v-data-table > .v-data-table__wrapper tbody tr.v-data-table__expanded {\n  background-color: #fafffb !important;\n}\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareDrawingTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HardwareDrawingTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HardwareDrawingTable.vue?vue&type=template&id=fd018ce0&scoped=true&\"\nimport script from \"./HardwareDrawingTable.vue?vue&type=script&lang=js&\"\nexport * from \"./HardwareDrawingTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HardwareDrawingTable.vue?vue&type=style&index=0&id=fd018ce0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"fd018ce0\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VContainer,VDataTable,VIcon,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"fill-height\",attrs:{\"data-cy\":\"no-content\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-img',{staticClass:\"mb-8\",attrs:{\"src\":'/img/empty.png',\"width\":\"573\",\"height\":\"328\"}}),_c('span',{staticClass:\"title font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('span',{staticClass:\"subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.description)+\" \")])],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"fill-height\" data-cy=\"no-content\">\n    <v-row justify=\"center\" align=\"center\">\n      <v-col cols=\"auto\">\n        <div class=\"d-flex flex-column align-center\">\n          <v-img\n            :src=\"'/img/empty.png'\"\n            width=\"573\"\n            height=\"328\"\n            class=\"mb-8\"\n          />\n\n          <span class=\"title font-weight-bold\">\n            {{ title }}\n          </span>\n\n          <span class=\"subtitle-1\">\n            {{ description }}\n          </span>\n        </div>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nexport default {\n  name: 'NoContent',\n\n  props: {\n    title: {\n      type: String,\n      default: 'No content',\n    },\n\n    description: {\n      type: String,\n      default: 'This page is empty',\n    },\n  },\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NoContent.vue?vue&type=template&id=70efcbb4&scoped=true&\"\nimport script from \"./NoContent.vue?vue&type=script&lang=js&\"\nexport * from \"./NoContent.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"70efcbb4\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-switch-group\"},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_vm._l((_vm.$attrs.options),function(option,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-action',[_c('v-switch',{attrs:{\"value\":option},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(option)+\" \")])],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"filter-switch-group\">\n    <v-subheader>\n      {{ section }}\n    </v-subheader>\n\n    <v-list-item\n      v-for=\"(option, i) in $attrs.options\"\n      :key=\"i\"\n      dense\n    >\n      <v-list-item-action>\n        <v-switch\n          v-model=\"localValue\"\n          :value=\"option\"\n        />\n      </v-list-item-action>\n      <v-list-item-content>\n        <v-list-item-title>\n          {{ option }}\n        </v-list-item-title>\n      </v-list-item-content>\n    </v-list-item>\n  </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n  name: 'SwitchGroup',\n\n  mixins: [\n    FilterMixin,\n  ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SwitchGroup.vue?vue&type=template&id=712d30d8&scoped=true&\"\nimport script from \"./SwitchGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./SwitchGroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"712d30d8\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VListItem,VListItemAction,VListItemContent,VListItemTitle,VSubheader,VSwitch})\n","import { mapActions } from 'vuex';\nimport { LEVEL } from '../utils/log';\n\nexport default {\n  methods: {\n    ...mapActions('app', ['pushSnack']),\n\n    /**\n     * Update an entity (data) and update tab content.\n     *\n     * @param {Object} tab Tab to update.\n     * @param {BaseModel} data FeathersVuex model to update.\n     */\n    async updateEntity(tab, data) {\n      const field = _.isEmpty(data._id) ? 'create' : 'update';\n      try {\n        const newEntity = await data.save();\n        if (tab) {\n          tab.entity = newEntity;\n        }\n        this.pushSnack({\n          snack: { message: this.$t(`common.success.${field}`) },\n          level: LEVEL.SUCCESS,\n        });\n      } catch (e) {\n        console.error(e);\n        this.pushSnack({\n          snack: { message: this.$t(`${this.$t(`common.error.${field}`)}\\n<i>${e.message}</i>`) },\n          level: LEVEL.ERROR,\n        });\n      }\n    },\n  }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductDrawingTable.vue?vue&type=style&index=0&id=1e25196b&scoped=true&lang=css&\"","export default {\n  props: {\n    value: { type: Object, default: () => {} },\n  },\n\n  data() {\n    return {\n      data: {},\n    };\n  },\n\n  watch: {\n    value: {\n      deep: true,\n\n      handler(newValue) {\n        this.data = _.clone(newValue);\n      },\n    },\n\n    data: {\n      deep: true,\n\n      handler(newValue) {\n        if (!_.isEqual(this.value, newValue)) {\n          this.$emit('input', newValue);\n        }\n      },\n    },\n  },\n\n  mounted() {\n    this.data = _.clone(this.value);\n  },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-cad \")]),_vm._v(\" Upload Files \")],1)],(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"custom\",\"width\":\"1000px\",\"eager\":true},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Upload Files \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex align-start flex-row\"},_vm._l((_vm.uploadedFiles),function(file){return _c('p',{key:file.name,staticClass:\"mx-1 pa-2\",staticStyle:{\"background-color\":\"#dee0e4\",\"display\":\"inline\"}},[_c('span',[_c('a',{style:(file.upload && file.status === 'uploading' ? 'pointer-events: none; opacity: 0.5;' : ''),attrs:{\"href\":_vm.generateUrl(file),\"target\":\"_blank\"}},[_c('v-icon',[_vm._v(\"mdi-open-in-new\")])],1)]),_c('span',{staticStyle:{\"vertical-align\":\"bottom\"}},[_vm._v(_vm._s(file.name))]),(file.status === 'uploading')?_c('v-progress-circular',{staticClass:\"ml-2\",staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"indeterminate\":\"\",\"color\":\"primary\",\"size\":\"20\",\"width\":\"2\"}}):(file.status === 'success')?_c('span',[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\" mdi-check-circle-outline \")])],1):(file.status === 'error')?_c('span',[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\" mdi-close-circle-outline \")])],1):_vm._e()],1)}),0),_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-stl\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" File Supported: Any \")])])],1)],1)]},proxy:true}],null,false,87219919),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <template>\n      <v-btn\n        text\n        small\n        color=\"primary\"\n        @click=\"display=true;\"\n      >\n        <v-icon left size=\"25\">\n          mdi-file-cad\n        </v-icon>\n        Upload Files\n      </v-btn>\n    </template>\n\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"custom\"\n      width=\"1000px\"\n      :eager=\"true\"\n      @click:ok=\"display = false;\"\n      @click:cancel=\"display = false;\"\n    >\n      <template #title>\n        Upload Files\n      </template>\n      <template #content>\n        <div class=\"d-flex align-start flex-row\">\n          <p\n            v-for=\"file in uploadedFiles\"\n            :key=\"file.name\"\n            class=\"mx-1 pa-2\"\n            style=\"background-color: #dee0e4; display: inline\"\n          >\n            <span>\n              <a\n                :href=\"generateUrl(file)\"\n                target=\"_blank\"\n                :style=\"file.upload && file.status === 'uploading' ? 'pointer-events: none; opacity: 0.5;' : ''\"\n              >\n                <v-icon>mdi-open-in-new</v-icon>\n              </a>\n            </span>\n            <span style=\"vertical-align: bottom\">{{ file.name }}</span>\n            <v-progress-circular\n              v-if=\"file.status === 'uploading'\"\n              indeterminate\n              color=\"primary\"\n              size=\"20\"\n              width=\"2\"\n              class=\"ml-2\"\n              style=\"vertical-align: middle\"\n            />\n            <span v-else-if=\"file.status === 'success'\">\n              <v-icon color=\"green\">\n                mdi-check-circle-outline\n              </v-icon>\n            </span>\n            <span v-else-if=\"file.status === 'error'\">\n              <v-icon color=\"red\">\n                mdi-close-circle-outline\n              </v-icon>\n            </span>\n          </p>\n        </div>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-stl\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                File Supported: Any\n              </div>\n            </v-card-text>\n          </v-card>\n        </div>\n      </template>\n    </core-dialog>\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default {\n  name: 'DrawingEngineFilesUpload',\n  props: {\n    internalProduct: Object,\n  },\n  data() {\n    return {\n      myDropZone: null,\n      display: false,\n      uploadedFiles: [],\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => ({\n      url: `${process.env.VUE_APP_API_URL}upload?uploadToCsi=true`,\n      paramName: 'file',\n      headers: {\n        Authorization: vm.accessToken,\n      },\n      thumbnailWidth: 150,\n      maxFilesize: 20,\n      timeout: 9999999,\n      maxFiles: 10,\n      parallelUploads: 1,\n      acceptedFiles: null,\n      dictDefaultMessage: 'dropZone.dictDefaultMessage',\n      dictFallbackMessage: 'dropZone.dictFallbackMessage',\n      dictFallbackText: 'dropZone.dictFallbackText',\n      dictFileTooBig: 'dropZone.dictFileTooBig',\n      dictInvalidFileType: 'dropZone.dictInvalidFileType',\n      dictResponseError: 'dropZone.dictResponseError',\n      dictCancelUpload: 'dropZone.dictCancelUpload',\n      dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n      dictRemoveFile: 'dropZone.dictRemoveFile',\n      dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n      clickable: '#dropzone-click-target-stl',\n      previewTemplate: vm.template(),\n      renameFile: file => `${vm.internalProduct.DrawingRowPointer}-Drafter-${file.name}`,\n      init() {\n        this.on('error', async file => {\n          const existingFileIndex = vm.uploadedFiles.findIndex(f => f.upload.uuid === file.upload.uuid);\n          if (existingFileIndex >= 0) {\n            vm.uploadedFiles.splice(existingFileIndex, 1, file);\n          }\n        });\n        this.on('success', async file => {\n          const existingFileIndex = vm.uploadedFiles.findIndex(f => f.upload.uuid === file.upload.uuid);\n          if (existingFileIndex >= 0) {\n            vm.uploadedFiles.splice(existingFileIndex, 1, file);\n          }\n        });\n\n        this.on('sending', async (file, xhr, formData) => {\n          formData.append('rowPointer', vm.internalProduct.DrawingRowPointer);\n          formData.append('desc', 'CustomerDrawings');\n          formData.append('ext', _.last(file.name.split('.')));\n\n          const existingFileIndex = vm.uploadedFiles.findIndex(f => f.upload.uuid === file.upload.uuid);\n          if (existingFileIndex >= 0) {\n            vm.uploadedFiles.splice(existingFileIndex, 1, file);\n          }\n        });\n\n        this.on('addedfile', async file => {\n          vm.uploadedFiles.push(file);\n        });\n      }\n    }),\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    },\n  },\n  methods: {\n    getNewUuid() {\n      return uuidv4();\n    },\n    generateUrl(file) {\n      const host = process.env.VUE_APP_API_URL;\n      return `${host}uploads/${file.upload.filename}/${this.accessToken}/<item>/File/${file.name}`;\n    },\n    template() {\n      return `<div class=\"dz-preview dz-file-preview\" style=\"display: none;\">\n                <div class=\"dz-details\">\n                  <div class=\"dz-filename\"><span data-dz-name></span></div>\n                  <div class=\"dz-size\" data-dz-size></div>\n                  <img data-dz-thumbnail />\n                </div>\n                <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n                <div class=\"dz-success-mark\"><span></span></div>\n                <div class=\"dz-error-mark\"><span></span></div>\n                <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n              </div>\n        `;\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawingEngineFilesUpload.vue?vue&type=template&id=78a88a06&\"\nimport script from \"./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawingEngineFilesUpload.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-range-slider\"},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-content',{staticClass:\"pt-10 px-4\"},[_c('v-range-slider',{attrs:{\"min\":_vm.$attrs.min,\"max\":_vm.$attrs.max,\"thumb-label\":true},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"filter-range-slider\">\n    <v-subheader>\n      {{ section }}\n    </v-subheader>\n\n    <v-list-item dense>\n      <v-list-item-content class=\"pt-10 px-4\">\n        <v-range-slider\n          v-model=\"localValue\"\n          :min=\"$attrs.min\"\n          :max=\"$attrs.max\"\n          :thumb-label=\"true\"\n        />\n      </v-list-item-content>\n    </v-list-item>\n  </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n  name: 'RangeSlider',\n\n  mixins: [\n    FilterMixin,\n  ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeSlider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeSlider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RangeSlider.vue?vue&type=template&id=6cef3a44&scoped=true&\"\nimport script from \"./RangeSlider.vue?vue&type=script&lang=js&\"\nexport * from \"./RangeSlider.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6cef3a44\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VRangeSlider } from 'vuetify/lib/components/VRangeSlider';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VListItem,VListItemContent,VRangeSlider,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showBanner)?_c('v-card',{staticStyle:{\"background-color\":\"#616161\"},attrs:{\"rounded\":\"\",\"width\":\"95%\",\"min-width\":\"1118\",\"height\":\"101px\",\"color\":\"#F9F9F9\",\"outlined\":\"\"}},[_c('v-card-text',{staticStyle:{\"color\":\"#FFFFFF\"}},[_c('v-row',{attrs:{\"clas\":\"d-flex\"}},[_c('img',{staticClass:\"mt-n8 ml-1\",attrs:{\"src\":\"/img/welcomeScreen/icon-referral-speaker.svg\"}}),_c('div',{staticClass:\"ml-4 mt-3 text-h4 font-weight-bold text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.tenPercentOff'))+\" \")]),_c('v-col',{staticStyle:{\"max-width\":\"230px\"}},[_c('v-row',[_c('div',{staticClass:\"mt-n3 ml-4 text-h6 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.forNewCustomer'))+\" \")])]),_c('v-row',[_c('div',{staticClass:\"ml-4 text-h6 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.onInitialPurchase'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"100px\"}},[_c('v-row',{staticClass:\"mt-n2\"},[_c('div',{staticClass:\"ml-4 text-body-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.promotion'))+\" \")])]),_c('v-row',[_c('div',{staticClass:\"ml-4 text-body-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.endingIn'))+\" \")])])],1),_c('v-col',{staticClass:\"pa-0\",staticStyle:{\"max-width\":\"260px\"}},[_c('v-row',{staticClass:\"ml-2\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.days)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption ml-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.days'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.hours)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption ml-2 font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.hours'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.minutes)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.minutes'))+\" \")])])],1),_c('v-col',{staticStyle:{\"max-width\":\"60px\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-sheet',{attrs:{\"elevation\":\"1\",\"height\":\"50\",\"rounded\":\"\",\"shaped\":\"\",\"width\":\"47\",\"color\":\"#323232\"}},[_c('div',{staticClass:\"text-h6 font-weight-bold pt-2 pl-3\",staticStyle:{\"color\":\"#FFFFFF\"}},[_vm._v(\" \"+_vm._s(_vm.remainingTime.seconds)+\" \")])])],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('span',{staticClass:\"text-caption font-weight-bold\",staticStyle:{\"color\":\"#C5FDCB\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.seconds'))+\" \")])])],1)],1)],1),_c('div',{staticClass:\"d-flex flex-column ml-6\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.onActionButtonClicked}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.getYourDiscount'))+\" \")]),_c('span',{staticClass:\"mt-1 text-caption text-decoration-underline font-weight-bold d-flex justify-center\"},[_c('a',{staticStyle:{\"color\":\"#C5FDCB\"},attrs:{\"href\":\"https://www.komacut.com/legal/discount-on-first-order/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.promotionCountdownBanner.viewTerms'))+\" \")])])],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    v-if=\"showBanner\"\n    rounded\n    width=\"95%\"\n    min-width=\"1118\"\n    height=\"101px\"\n    color=\"#F9F9F9\"\n    outlined\n    style=\"background-color: #616161\"\n  >\n    <v-card-text style=\"color: #FFFFFF\">\n      <v-row clas=\"d-flex\">\n        <img\n          class=\"mt-n8 ml-1\"\n          src=\"/img/welcomeScreen/icon-referral-speaker.svg\"\n        >\n        <div class=\"ml-4 mt-3 text-h4 font-weight-bold text-uppercase\">\n          {{ $t('views.dashboard.promotionCountdownBanner.tenPercentOff') }}\n        </div>\n        <v-col style=\"max-width: 230px;\">\n          <v-row>\n            <div class=\"mt-n3 ml-4 text-h6 font-weight-bold\">\n              {{ $t('views.dashboard.promotionCountdownBanner.forNewCustomer') }}\n            </div>\n          </v-row>\n          <v-row>\n            <div class=\"ml-4 text-h6 font-weight-bold\">\n              {{ $t('views.dashboard.promotionCountdownBanner.onInitialPurchase') }}\n            </div>\n          </v-row>\n        </v-col>\n        <v-col style=\"max-width: 100px;\">\n          <v-row class=\"mt-n2\">\n            <div class=\"ml-4 text-body-2 font-weight-bold\" style=\"color: #C5FDCB\">\n              {{ $t('views.dashboard.promotionCountdownBanner.promotion') }}\n            </div>\n          </v-row>\n          <v-row>\n            <div class=\"ml-4 text-body-2 font-weight-bold\" style=\"color: #C5FDCB\">\n              {{ $t('views.dashboard.promotionCountdownBanner.endingIn') }}\n            </div>\n          </v-row>\n        </v-col>\n        <v-col class=\"pa-0\" style=\"max-width: 260px;\">\n          <v-row class=\"ml-2\" no-gutters>\n            <v-col style=\"max-width: 60px;\">\n              <v-row no-gutters>\n                <v-sheet\n                  elevation=\"1\"\n                  height=\"50\"\n                  rounded\n                  shaped\n                  width=\"47\"\n                  color=\"#323232\"\n                >\n                  <div\n                    class=\"text-h6 font-weight-bold pt-2 pl-3\"\n                    style=\"color: #FFFFFF;\"\n                  >\n                    {{ remainingTime.days }}\n                  </div>\n                </v-sheet>\n              </v-row>\n              <v-row no-gutters>\n                <span\n                  class=\"text-caption ml-2 font-weight-bold\"\n                  style=\"color: #C5FDCB\"\n                >\n                  {{ $t('views.dashboard.promotionCountdownBanner.days') }}\n                </span>\n              </v-row>\n            </v-col>\n            <v-col style=\"max-width: 60px;\">\n              <v-row no-gutters>\n                <v-sheet\n                  elevation=\"1\"\n                  height=\"50\"\n                  rounded\n                  shaped\n                  width=\"47\"\n                  color=\"#323232\"\n                >\n                  <div\n                    class=\"text-h6 font-weight-bold pt-2 pl-3\"\n                    style=\"color: #FFFFFF;\"\n                  >\n                    {{ remainingTime.hours }}\n                  </div>\n                </v-sheet>\n              </v-row>\n              <v-row no-gutters>\n                <span\n                  class=\"text-caption ml-2 font-weight-bold\"\n                  style=\"color: #C5FDCB\"\n                >\n                  {{ $t('views.dashboard.promotionCountdownBanner.hours') }}\n                </span>\n              </v-row>\n            </v-col>\n            <v-col style=\"max-width: 60px;\">\n              <v-row no-gutters>\n                <v-sheet\n                  elevation=\"1\"\n                  height=\"50\"\n                  rounded\n                  shaped\n                  width=\"47\"\n                  color=\"#323232\"\n                >\n                  <div\n                    class=\"text-h6 font-weight-bold pt-2 pl-3\"\n                    style=\"color: #FFFFFF;\"\n                  >\n                    {{ remainingTime.minutes }}\n                  </div>\n                </v-sheet>\n              </v-row>\n              <v-row no-gutters>\n                <span\n                  class=\"text-caption font-weight-bold\"\n                  style=\"color: #C5FDCB\"\n                >\n                  {{ $t('views.dashboard.promotionCountdownBanner.minutes') }}\n                </span>\n              </v-row>\n            </v-col>\n            <v-col style=\"max-width: 60px;\">\n              <v-row no-gutters>\n                <v-sheet\n                  elevation=\"1\"\n                  height=\"50\"\n                  rounded\n                  shaped\n                  width=\"47\"\n                  color=\"#323232\"\n                >\n                  <div\n                    class=\"text-h6 font-weight-bold pt-2 pl-3\"\n                    style=\"color: #FFFFFF;\"\n                  >\n                    {{ remainingTime.seconds }}\n                  </div>\n                </v-sheet>\n              </v-row>\n              <v-row no-gutters>\n                <span\n                  class=\"text-caption font-weight-bold\"\n                  style=\"color: #C5FDCB\"\n                >\n                  {{ $t('views.dashboard.promotionCountdownBanner.seconds') }}\n                </span>\n              </v-row>\n            </v-col>\n          </v-row>\n        </v-col>\n        <div class=\"d-flex flex-column ml-6\">\n          <v-btn\n            class=\"mt-2\"\n            color=\"primary\"\n            @click=\"onActionButtonClicked\"\n          >\n            {{ $t('views.dashboard.promotionCountdownBanner.getYourDiscount') }}\n          </v-btn>\n          <span class=\"mt-1 text-caption text-decoration-underline font-weight-bold d-flex justify-center\">\n            <a href=\"https://www.komacut.com/legal/discount-on-first-order/\" target=\"_blank\" style=\"color: #C5FDCB\">\n              {{ $t('views.dashboard.promotionCountdownBanner.viewTerms') }}\n            </a>\n          </span>\n        </div>\n      </v-row>\n    </v-card-text>\n  </v-card>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n  name: 'WelcomeScreenPromotionCountdownBanner',\n  props: {\n    expiryTime: { type: String },\n  },\n  data() {\n    return {\n      showBanner: false,\n      targetTime: new Date(),\n      remainingTime: {\n        days: 0,\n        hours: 0,\n        minutes: 0,\n        seconds: 0,\n      },\n    };\n  },\n  computed: {\n    ...mapGetters('temp-rfqs', { getTempRfqIdInProgress: 'getTempRfqIdInProgress' }),\n  },\n  mounted() {\n    this.targetTime = moment(this.expiryTime, 'YYYYMMDD HH:mm:ss.SSS').toDate();\n\n    this.updateCountdown();\n    // Update the countdown every second\n    this.countdownInterval = setInterval(this.updateCountdown, 1000);\n  },\n  beforeDestroy() {\n    clearInterval(this.countdownInterval);\n  },\n  methods: {\n    updateCountdown() {\n      const now = new Date();\n      const timeDiff = this.targetTime - now;\n\n      if (timeDiff > 0) {\n        this.remainingTime.days = Math.floor(timeDiff / (24 * 3600000));\n        this.remainingTime.hours = Math.floor((timeDiff % (24 * 3600000)) / 3600000);\n        this.remainingTime.minutes = Math.floor((timeDiff % 3600000) / 60000);\n        this.remainingTime.seconds = Math.floor((timeDiff % 60000) / 1000);\n        if (!this.showBanner) {\n          this.showBanner = true;\n        }\n      } else {\n        this.showBanner = false;\n        // Countdown has ended, you can add logic here\n        clearInterval(this.countdownInterval);\n      }\n    },\n    onActionButtonClicked() {\n      this.$router.push(`/rfqs/${this.getTempRfqIdInProgress}`);\n    },\n  },\n};\n</script>\n\n<style scoped>\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenPromotionCountdownBanner.vue?vue&type=template&id=56a0f8b2&scoped=true&\"\nimport script from \"./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenPromotionCountdownBanner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"56a0f8b2\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VRow,VSheet})\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-snackbar',_vm._b({class:[{ 'offset-app-bar': !['SignUp', 'Login', 'Confirmation', 'OnBoarding', 'ForgottenPassword', 'ResetPassword', 'DrawingApp', 'ThreeDPackagingTool'].includes(_vm.$route.name) }],staticStyle:{\"z-index\":\"99999\"},attrs:{\"value\":_vm.isOpen,\"color\":_vm.type,\"multi-line\":_vm.multi,\"timeout\":-1,\"app\":\"\",\"top\":\"\"}},'v-snackbar',_vm.$attrs,false),[_c('div',{staticClass:\"d-flex align-center\",attrs:{\"data-cy\":\"snack-message\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icon)+\" \")]),(_vm.isOdooError)?[_vm._v(\" \"+_vm._s(_vm.message)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(_vm.message, {Param1: _vm.param1, Param2: _vm.param2}))+\" \")]],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <!-- 100px offset to account for the sidebar menu, which is 200px (so half) -->\n  <v-snackbar\n    :value=\"isOpen\"\n    v-bind=\"$attrs\"\n    :color=\"type\"\n    :multi-line=\"multi\"\n    :timeout=\"-1\"\n    app\n    style=\"z-index: 99999;\"\n    :class=\"[{ 'offset-app-bar': !['SignUp', 'Login', 'Confirmation', 'OnBoarding', 'ForgottenPassword', 'ResetPassword', 'DrawingApp', 'ThreeDPackagingTool'].includes($route.name) }]\"\n    top\n  >\n    <div class=\"d-flex align-center\" data-cy=\"snack-message\">\n      <v-icon left>\n        {{ icon }}\n      </v-icon>\n      <template v-if=\"isOdooError\">\n        {{ message }}\n      </template>\n      <template v-else>\n        {{ $t(message, {Param1: param1, Param2: param2}) }}\n      </template>\n    </div>\n  </v-snackbar>\n</template>\n\n<script>\nimport { mapState, mapActions } from 'vuex';\nimport { LEVEL } from '@/utils/log';\n\nexport default {\n  data() {\n    return {\n      param1: '',\n      param2: '',\n      isOpen: false,\n      type: LEVEL.INFO,\n      message: '',\n      multi: false,\n      icon: 'mdi-information',\n      isOdooError: false\n    };\n  },\n\n  computed: {\n    ...mapState('app', [\n      'messages', 'locale'\n    ]),\n  },\n\n  watch: {\n    messages(messages) {\n      if (this.isOpen || messages.length === 0) {\n        return;\n      }\n      const { snack, level, id } = _.last(messages);\n      this.isOdooError = snack.message.includes('Odoo.Error');\n\n      this.type = level;\n      switch (level) {\n        case LEVEL.SUCCESS:\n          this.icon = 'mdi-checkbox-marked-circle';\n          break;\n        case LEVEL.WARNING:\n          this.icon = 'mdi-alert';\n          break;\n        case LEVEL.INFO:\n        case LEVEL.ERROR:\n          this.icon = 'mdi-information';\n          break;\n        default:\n          // ESLint forces me to write a default case so... easter egg?\n          this.icon = 'mdi-heart';\n          break;\n      }\n      if (this.isOdooError) {\n        this.message = this.odooErrorMessage(snack.data);\n        this.param1 = '';\n        this.param2 = '';\n      } else {\n        this.multi = snack.message.indexOf('\\n') !== -1;\n        this.message = snack.message.replace('\\n', '<br>');\n        this.param1 = snack.data ? snack.data.param1 : '';\n        this.param2 = snack.data ? snack.data.param2 : '';\n      }\n\n      this.isOpen = true;\n      const duration = level === LEVEL.ERROR ? 5000 : 4000;\n      setTimeout(() => {\n        this.isOpen = false;\n        // Allow for delay between messages\n        setTimeout(() => {\n          this.acknowledgeSnackById(id);\n        }, 225);\n      }, duration);\n    },\n  },\n\n  methods: {\n    ...mapActions('app', {\n      acknowledgeSnackById: 'acknowledgeSnackById',\n    }),\n    odooErrorMessage(odooErrorData) {\n      // eslint-disable-next-line camelcase\n      const { message, message_cn, parameters, parameters_cn } = odooErrorData;\n      // eslint-disable-next-line camelcase\n      const msg = this.locale === 'cn' ? message_cn : message;\n      // eslint-disable-next-line camelcase\n      const prms = this.locale === 'cn' ? parameters_cn : parameters;\n\n      const newParameters = {};\n\n      for (const [key, value] of Object.entries(prms)) {\n        if (Array.isArray(value)) {\n          newParameters[key] = `<ul>${value.map(error => `<li>${error}</li>`).join('')}</ul>`;\n        } else {\n          newParameters[key] = value;\n        }\n      }\n\n      // Use a regular expression to find placeholders in the form of {key}\n      return msg.replace(/{(.*?)}/g, (match, key) =>\n        // Return the corresponding value from parameters or the original match if not found\n        // eslint-disable-next-line implicit-arrow-linebreak\n        (newParameters[key] !== undefined ? newParameters[key] : match));\n    }\n  },\n};\n</script>\n\n<style scoped>\n.offset-app-bar {\n  top: -64px;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snack.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Snack.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Snack.vue?vue&type=template&id=4b72d003&scoped=true&\"\nimport script from \"./Snack.vue?vue&type=script&lang=js&\"\nexport * from \"./Snack.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Snack.vue?vue&type=style&index=0&id=4b72d003&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4b72d003\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VIcon,VSnackbar})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"rounded d-flex flex-column align-center py-0\",staticStyle:{\"background-color\":\"#E9F4ED\"}},[_c('span',{staticClass:\"body-2\",attrs:{\"data-cy\":\"price-per-unit-text\"}},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_vm._l((_vm.customerPriceRange),function(bracket,i){return [_c('span',{key:(\"qty-\" + i),staticClass:\"text-right\",staticStyle:{\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + i),attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, {symbol: _vm.company.currencySymbol}).format())+\" \")])]})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container\n    style=\"background-color: #E9F4ED;\"\n    class=\"rounded d-flex flex-column align-center py-0\"\n  >\n    <span class=\"body-2\" data-cy=\"price-per-unit-text\">{{ $t('common.unitPricePerQuantity') }}</span>\n\n    <div\n      style=\"\n        display: grid;\n        width: min-content;\n        grid-template-columns: max-content max-content;\n      \"\n    >\n      <template v-for=\"(bracket, i) in customerPriceRange\">\n        <span\n          :key=\"`qty-${i}`\"\n          style=\"color: #8D8D8D\"\n          class=\"text-right\"\n          :data-cy=\"`unit-price-qty-${i}`\"\n        >\n          {{ i === 0 ? quantity : bracket.Qty }}: {{ '\\xa0' }}\n        </span>\n        <span :key=\"`price-${i}`\" :data-cy=\"`unit-price-amount-${i}`\">\n          {{ currency(bracket.Price, {symbol: company.currencySymbol}).format() }}\n        </span>\n      </template>\n    </div>\n  </v-container>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n  name: 'PriceMoqTable',\n  props: {\n    part: Object,\n  },\n  data: () => ({\n    currency,\n  }),\n  computed: {\n    company: () => Company.getFromStore(0),\n\n    priceRange: vm => JSON.parse(_.get(vm, 'part.PriceMOQ', null)),\n\n    quantity: vm => {\n      if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n        return 1;\n      }\n      if (vm.part.ReqQty >= 1000000) {\n        return 1000000;\n      }\n      return vm.part.ReqQty;\n    },\n    customerPriceRange() {\n      if (!this.priceRange || this.quantity <= 0) {\n        return [];\n      }\n\n      const reqQtyPriceIndex = this.priceRange\n        .findIndex(range => range.Qty > this.quantity) - 1;\n\n      if (reqQtyPriceIndex < 0) {\n        return this.priceRange.slice(-1);\n      }\n      return this.priceRange\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PriceMoqTable.vue?vue&type=template&id=0cfbb585&\"\nimport script from \"./PriceMoqTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PriceMoqTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',_vm._l((_vm.productOptions),function(productOption){return _c('v-col',{key:(\"\" + (productOption.id)),staticClass:\"pa-0 text-truncate\",attrs:{\"align-self\":\"end\"}},[_c('div',{staticClass:\"caption flex-nowrap d-flex justify-center align-center\",attrs:{\"data-cy\":(\"product-option-readonly-label-\" + (productOption.id))}},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'cn' ? 'labelChs' : 'label'].split('(')[0])+\" \")])]),_c('div',{staticClass:\"text-truncate d-flex justify-center align-center\",attrs:{\"data-cy\":(\"product-option-readonly-value-\" + (productOption.id))}},[_c('span',{attrs:{\"data-cy\":(\"product-\" + (productOption.label.split(' ')[0].toLowerCase()) + \"-value\")}},[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct(productOption)[_vm.locale === 'cn' ? 'textChs' : 'text'].slice(0, 10))+\" \"),(_vm.getReadOnlyProduct(productOption)[_vm.locale === 'cn' ? 'textChs' : 'text'].length >10)?[_c('br'),_c('span',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct(productOption)[_vm.locale === 'cn' ? 'textChs' : 'text'].slice(10))+\" \")])]:_vm._e()],2)])])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-row>\n    <v-col\n      v-for=\"(productOption) in productOptions\"\n      :key=\"`${productOption.id}`\"\n      align-self=\"end\"\n      class=\"pa-0 text-truncate\"\n    >\n      <div\n        :data-cy=\"`product-option-readonly-label-${productOption.id}`\"\n        class=\"caption flex-nowrap d-flex justify-center align-center\"\n      >\n        <span\n          style=\"color:rgba(0,0,0,0.6);\"\n          class=\"text-truncate\"\n        >\n          {{ productOption[locale === 'cn' ? 'labelChs' : 'label'].split('(')[0] }}\n        </span>\n      </div>\n      <div\n        :data-cy=\"`product-option-readonly-value-${productOption.id}`\"\n        class=\"text-truncate d-flex justify-center align-center\"\n      >\n        <span :data-cy=\"`product-${productOption.label.split(' ')[0].toLowerCase()}-value`\">\n          {{\n            getReadOnlyProduct(productOption)[locale === 'cn' ? 'textChs' : 'text'].slice(0, 10)\n          }}\n          <template v-if=\"getReadOnlyProduct(productOption)[locale === 'cn' ? 'textChs' : 'text'].length >10\">\n            <br>\n            <span>\n              {{\n                getReadOnlyProduct(productOption)[locale === 'cn' ? 'textChs' : 'text'].slice(10)\n              }}\n            </span>\n          </template>\n        </span>\n      </div>\n    </v-col>\n  </v-row>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'ProductOptionReadOnly',\n\n  props: {\n    itemProduct: {\n      type: Object,\n      required: true\n    },\n\n    currentCategoryId: {\n      type: String,\n      default: ''\n    },\n  },\n  data() {\n    return {\n      reqQty: 1,\n      customBag: [],\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n\n    products: () => models.api.HardwareProduct,\n\n    HardwareCategory: () => models.api.HardwareCategory,\n\n    currentCategory: vm => vm.HardwareCategory.getFromStore(vm.currentCategoryId),\n\n    productOptions: vm => (vm.currentCategory ? vm.currentCategory\n      .attributes\n      .filter(attribute => attribute.attributeTypes[0].attributeType === 'productgroupAttribute')\n      .sort((option1, option2) => parseInt(option1.rank, 10) - parseInt(option2.rank, 10)) : []),\n\n    productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n    getReadOnlyProduct: vm => productOption => {\n      const product = vm.products.getFromStore(vm.itemProduct._id);\n      if (!product) {\n        return {};\n      }\n      return productOption.options.find(value => value.id === product[productOption.id]) || {};\n    },\n\n  },\n\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductOptionReadOnly.vue?vue&type=template&id=b7705434&\"\nimport script from \"./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductOptionReadOnly.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HomeHero.vue?vue&type=style&index=0&id=5b62d34e&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.$t( _vm._.get(_vm.analysisData, '0.value')))+\" \")])]),_c('v-expansion-panel-content',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.analysisData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{ 'dark': (i % 2 !== 0) }},[_c('td',{staticClass:\"d-flex align-center text-truncate\",staticStyle:{\"color\":\"#747474\"}},[(_vm.$t(item.value) === _vm.$t('3dSideViewer.pass'))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"green\"}},[_vm._v(\" mdi-check-circle-outline \")]):_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"red\"}},[_vm._v(\" mdi-close-circle-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t(item.field))+\" \")],1),_c('td',{staticClass:\"text-truncate font-weight-medium\",staticStyle:{\"text-align\":\"right\"}},[_c('span',{staticClass:\"ml-3\",style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s(_vm.$t(item.value))+\" \")])])])}),0)]},proxy:true}])})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expansion-panels>\n    <v-expansion-panel>\n      <v-expansion-panel-header>\n        <div class=\"text-subtitle-2\">\n          {{ $t( _.get(analysisData, '0.value')) }}\n        </div>\n      </v-expansion-panel-header>\n      <v-expansion-panel-content>\n        <v-card flat>\n          <v-simple-table dense>\n            <template v-slot:default>\n              <tbody>\n                <tr\n                  v-for=\"(item, i) in analysisData.slice(1)\"\n                  :key=\"item.field\"\n                  :class=\"{ 'dark': (i % 2 !== 0) }\"\n                >\n                  <td class=\"d-flex align-center text-truncate\" style=\"color: #747474;\">\n                    <v-icon\n                      v-if=\"$t(item.value) === $t('3dSideViewer.pass')\"\n                      small\n                      class=\"mr-2\"\n                      color=\"green\"\n                    >\n                      mdi-check-circle-outline\n                    </v-icon>\n                    <v-icon\n                      v-else\n                      small\n                      class=\"mr-2\"\n                      color=\"red\"\n                    >\n                      mdi-close-circle-outline\n                    </v-icon>\n                    {{ $t(item.field) }}\n                  </td>\n                  <td class=\"text-truncate font-weight-medium\" style=\"text-align: right\">\n                    <span\n                      class=\"ml-3\"\n                      :style=\"[{ color: getTextColor(item.value) }]\"\n                    >\n                      {{ $t(item.value) }}\n                    </span>\n                  </td>\n                </tr>\n              </tbody>\n            </template>\n          </v-simple-table>\n        </v-card>\n      </v-expansion-panel-content>\n    </v-expansion-panel>\n  </v-expansion-panels>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n  name: 'ProcessLimitationsTable',\n  props: {\n    part: Object,\n  },\n  computed: {\n    analysisData() {\n      let tableData = [];\n      if (this.part) {\n        tableData = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n      }\n      if (_.isEmpty(tableData)) {\n        tableData = [\n          { field: null, value: '3dSideViewer.processLimitations.title' },\n          { field: '3dSideViewer.processLimitations.maxProductSizeLaserCutting', value: '-' },\n          { field: '3dSideViewer.processLimitations.maxBendLength', value: '-' },\n          { field: '3dSideViewer.processLimitations.minMaxThreadSize', value: '-' },\n        ];\n      } else {\n        tableData = tableData.filter(datum => datum.Category === 'S1')\n          .filter(datum => (datum.Description ? datum.Description.startsWith('T2') : ''))\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description.replace('T2.', ''), value: datum.Value || '-' }));\n      }\n      return tableData;\n    },\n  },\n  methods: {\n    getTextColor(value) {\n      value = value.split('.').pop();\n      switch (value) {\n        case 'pass':\n        case 'yes':\n          return 'green';\n        case 'fail':\n        case 'no':\n          return 'red';\n        default:\n          return '';\n      }\n    }\n  }\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProcessLimitationsTable.vue?vue&type=template&id=09076c4d&\"\nimport script from \"./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProcessLimitationsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\",attrs:{\"hover\":\"\",\"height\":\"100%\",\"width\":\"510px\",\"min-width\":\"510px\",\"loading\":_vm.part.isRemovePending,\"data-cy\":\"my-part-card-grid\",\"ripple\":false}},[_c('v-row',{attrs:{\"no-gutters\":\"\",\"data-cy\":\"my-part-first-horizontal-grid-view\"}},[_c('v-col',{staticClass:\"py-0 pl-1 d-flex flex-row\",attrs:{\"cols\":\"2\"}},[_c('div',{staticClass:\" d-flex flex-column \",on:{\"click\":function($event){_vm.partViewerPart = _vm.part; _vm.isPartViewerActive = true;}}},[_c('core-thumbnail-viewer',{staticClass:\"pa-0\",attrs:{\"part\":_vm.part,\"width\":90,\"height\":90,\"file-url\":\"/img/HW-Bag-Thumbnail.png\",\"data-cy\":\"my-part-image-grid\",\"is-display-border\":true}})],1)]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"pl-7\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"11\",\"align-self\":\"start\"}},[_c('div',{staticClass:\"flex-row text-truncate\"},[_c('span',{staticClass:\"text-truncate\",staticStyle:{\"font-size\":\"25px\",\"font-weight\":\"500\"},attrs:{\"data-cy\":\"my-part-part-grid\",\"title\":_vm.part.CustItemName}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemName)+\" \")])])]),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"1\",\"align-self\":\"start\"}},[_c('v-btn',{staticClass:\"align-self-start ml-auto\",attrs:{\"right\":\"\",\"loading\":_vm.part.isRemovePending,\"color\":\"primary\",\"icon\":\"\",\"data-cy\":\"my-part-remove-button-grid\"},on:{\"click\":function($event){_vm.deleteDialog.display = true;\n              _vm.deleteDialog.partToDelete = _vm.part;}}},[_c('v-icon',[_vm._v(\" mdi-delete \")])],1)],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-end pr-0\",attrs:{\"offset\":\"5\",\"cols\":\"6\"}},[_c('v-sheet',{staticClass:\"d-flex flex-column rounded-lg\",attrs:{\"height\":\"48px\",\"width\":\"134px\",\"color\":\"#FFFADA\"}},[_c('span',{staticClass:\"caption text--secondary text-left px-2 pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.productionLocation'))+\" \")]),_c('span',{staticClass:\"px-2\",staticStyle:{\"color\":\"black\"},attrs:{\"data-cy\":\"my-part-production-location-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.FactoryName)+\" \")])])],1)],1)],1)],1),_c('v-row',[_c('v-row',{staticClass:\"px-3 flex-nowrap\",staticStyle:{\"width\":\"100%\"}},[_c('v-col',{staticClass:\"pb-0 flex-nowrap\",attrs:{\"cols\":\"7\"}},[_c('div',{staticClass:\"caption text--secondary \"},[_vm._v(\" \"+_vm._s(_vm.$t('common.description'))+\"       \")]),_c('div',{attrs:{\"data-cy\":\"my-part-finish-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.CustItemDesc === '' || _vm.part.CustItemDesc === null ? '-' : _vm.part.CustItemDesc)+\" \")])]),_c('v-col',{staticClass:\"ml-3\",attrs:{\"cols\":\"auto\"}},[_c('core-rang-price-moq',{staticClass:\"ml-auto align-content-end\",attrs:{\"part\":_vm.part}})],1)],1),_c('v-row',{staticClass:\"px-3\"},[_c('v-col',{staticClass:\"text-truncate pt-2 pb-0\",attrs:{\"cols\":\"3\"}},[_c('div',{staticStyle:{\"width\":\"45px\"}},[_c('div',{staticClass:\"caption text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.hardwareCategory.barcode'))+\" \")]),_c('span',[_c('span',{attrs:{\"data-cy\":\"my-part-tolerances-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.BarCode || '-')+\" \")])])])]),_c('v-col',{staticClass:\"d-flex justify-center pt-1 pb-0\",attrs:{\"cols\":\"3\"}},[_c('core-bag-items-list',{attrs:{\"part\":_vm.part.Items}})],1),_c('v-spacer'),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"3\"}},[_c('v-text-field',{staticClass:\"d-inline-block\",attrs:{\"min\":Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })),\"max\":9999999,\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.rfqs.quantity'),\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"blur\":function($event){_vm.ReqQty < Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) ? _vm.ReqQty = Math.min.apply(Math, _vm.part.PriceMOQ.map(function (o) { return o.Qty; })) : _vm.ReqQty = _vm.ReqQty;},\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()}},nativeOn:{\"input\":function($event){_vm.part.qtyOfPart = _vm.updateValue($event)}},model:{value:(_vm.ReqQty),callback:function ($$v) {_vm.ReqQty=_vm._n($$v)},expression:\"ReqQty\"}})],1),_c('v-col',{staticClass:\"pb-0 pt-2\",attrs:{\"align-self\":\"start\",\"cols\":\"3\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg\",attrs:{\"height\":\"48px\",\"color\":_vm.isExpired() ? '#FBE9EC': '#f0fdf3'}},[_c('span',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.totalPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',{staticClass:\"mt-2\",style:([_vm.isExpired() ? {'color': '#be2a45'} : {'color': ''}])},[_vm._v(\" \"+_vm._s(_vm.calculatePrice(_vm.part).multiply(_vm.ReqQty))+\" \")])])],1)],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticStyle:{\"height\":\"100%\"}},[_vm._v(\"   \")])],1),_c('v-card-actions',{staticClass:\"mt-8 pa-0 align-end\",attrs:{\"data-cy\":\"my-part-card-actions-grid\"}},[_c('v-tooltip',{attrs:{\"right\":\"\",\"data-cy\":\"my-part-information-tooltip-grid\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n              var on = ref.on;\n              var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"data-cy\":\"my-part-information-grid\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',{staticClass:\"white--text\",attrs:{\"data-cy\":\"my-part-user-grid\"}},[_vm._v(\" \"+_vm._s(_vm.part.PortalUserId)+\" \")]),_c('br'),_c('span',{attrs:{\"data-cy\":\"my-part-expiration-date-grid\"}},[_vm._v(\" \"+_vm._s(_vm.isExpired() ? 'Is expired since' : _vm.$t('common.validUntil'))+\": \"+_vm._s(_vm.moment(_vm.part.ExpireDate).format('YYYY-MM-DD'))+\" \")])]),_c('v-spacer'),(_vm._.get(_vm.currentUser, 'isAdmin') || _vm._.get(_vm.currentUser, ['rights', 'placeOrder']))?[(_vm.isExpired(_vm.part))?[_c('v-btn',{attrs:{\"loading\":_vm.part.isSavePending,\"color\":\"primary\",\"data-cy\":\"refresh-quote-button-grid\"},on:{\"click\":function($event){return _vm.refreshMyPartPrice(_vm.part)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-autorenew \")]),_vm._v(\" \"+_vm._s(_vm.t('views.myParts.refreshQuote'))+\" \")],1)]:(_vm.currentOrder && !_vm.currentOrder.canAddHardwareProduct(_vm.part))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n              var on = ref.on;\n              var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({staticClass:\"ml-6\",attrs:{\"color\":\"primary\",\"data-cy\":\"order-this-button-grid\",\"disabled\":_vm.currentOrder && !_vm.currentOrder.canAddHardwareProduct(_vm.part)},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,1278635570)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSingleLocationToolTip'))+\" \")])]):[(_vm.isPartPresentInCurrentOrder(_vm.part))?_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.removeToOrder(_vm.part)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.removeToOrder'))+\" \")]):_c('v-btn',{staticClass:\"ml-6\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])]]:_vm._e()],2),(_vm.deleteDialog.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"data-cy\":\"delete-dialogue\",\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":function($event){_vm.deleteDialog.display = false; _vm.part.remove() ; _vm.removeToOrder(_vm.part)},\"click:cancel\":_vm.cancelDelete},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('views.myParts.deleteDialogBagTitle'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\"},[_c('span',{staticClass:\"d-block\",attrs:{\"data-cy\":\"delete-dialogue-2\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.deleteDialog.partToDelete.CustItemName }))}})])])]},proxy:true}],null,false,1496911381),model:{value:(_vm.deleteDialog.display),callback:function ($$v) {_vm.$set(_vm.deleteDialog, \"display\", $$v)},expression:\"deleteDialog.display\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    hover\n    height=\"100%\"\n    width=\"510px\"\n    min-width=\"510px\"\n    :loading=\"part.isRemovePending\"\n    class=\"ma-1 px-2 fill-height flex-column align-content-space-between partCard\"\n    data-cy=\"my-part-card-grid\"\n    :ripple=\"false\"\n  >\n    <v-row no-gutters data-cy=\"my-part-first-horizontal-grid-view\">\n      <v-col cols=\"2\" class=\"py-0 pl-1 d-flex flex-row\">\n        <div\n          class=\" d-flex flex-column \"\n          @click=\"partViewerPart = part; isPartViewerActive = true;\"\n        >\n          <core-thumbnail-viewer\n            :part=\"part\"\n            :width=\"90\"\n            :height=\"90\"\n            file-url=\"/img/HW-Bag-Thumbnail.png\"\n            class=\"pa-0\"\n            data-cy=\"my-part-image-grid\"\n            :is-display-border=\"true\"\n          />\n        </div>\n      </v-col>\n      <v-col cols=\"10\">\n        <v-row no-gutters class=\"pl-7\">\n          <v-col cols=\"11\" align-self=\"start\" class=\"pa-0\">\n            <div class=\"flex-row text-truncate\">\n              <span\n                class=\"text-truncate\"\n                style=\"font-size: 25px;font-weight: 500;\"\n                data-cy=\"my-part-part-grid\"\n                :title=\"part.CustItemName\"\n              >\n                {{ part.CustItemName }}\n              </span>\n            </div>\n          </v-col>\n\n          <v-col cols=\"1\" align-self=\"start\" class=\"pa-0\">\n            <v-btn\n              right\n              class=\"align-self-start ml-auto\"\n              :loading=\"part.isRemovePending\"\n              color=\"primary\"\n              icon\n              data-cy=\"my-part-remove-button-grid\"\n              @click=\"\n                deleteDialog.display = true;\n                deleteDialog.partToDelete = part;\"\n            >\n              <v-icon>\n                mdi-delete\n              </v-icon>\n            </v-btn>\n          </v-col>\n        </v-row>\n        <v-row>\n          <v-col offset=\"5\" cols=\"6\" class=\"d-flex justify-end pr-0\">\n            <v-sheet\n              height=\"48px\"\n              width=\"134px\"\n              color=\"#FFFADA\"\n              class=\"d-flex flex-column rounded-lg\"\n            >\n              <span class=\"caption text--secondary text-left px-2 pt-1\">\n                {{ $t('views.myParts.productionLocation') }}\n              </span>\n              <span\n                class=\"px-2\"\n                style=\"color: black;\"\n                data-cy=\"my-part-production-location-grid\"\n              >\n                {{ part.FactoryName }}\n              </span>\n            </v-sheet>\n          </v-col>\n        </v-row>\n      </v-col>\n    </v-row>\n\n    <v-row>\n      <v-row class=\"px-3 flex-nowrap\" style=\"width:100%\">\n        <v-col cols=\"7\" class=\"pb-0 flex-nowrap\">\n          <div class=\"caption text--secondary \">\n            {{ $t('common.description') }} &nbsp; &nbsp; &nbsp;\n          </div>\n          <div data-cy=\"my-part-finish-grid\">\n            {{ part.CustItemDesc === '' || part.CustItemDesc === null ? '-' : part.CustItemDesc }}\n          </div>\n        </v-col>\n        <v-col cols=\"auto\" class=\"ml-3\">\n          <core-rang-price-moq class=\"ml-auto align-content-end\" :part=\"part\" />\n        </v-col>\n      </v-row>\n      <v-row class=\"px-3\">\n        <v-col cols=\"3\" class=\"text-truncate pt-2 pb-0\">\n          <div style=\"width: 45px\">\n            <div class=\"caption text--secondary\">\n              {{ $t('views.hardwareCategory.barcode') }}\n            </div>\n            <span>\n              <span data-cy=\"my-part-tolerances-grid\">\n                {{ part.BarCode || '-' }}\n              </span>\n            </span>\n          </div>\n        </v-col>\n        <v-col cols=\"3\" class=\"d-flex justify-center pt-1 pb-0\">\n          <core-bag-items-list :part=\"part.Items\" />\n        </v-col>\n        <v-spacer />\n        <v-col cols=\"3\" class=\"pb-0\">\n          <v-text-field\n            v-model.number=\"ReqQty\"\n            :min=\"Math.min(...part.PriceMOQ.map(o => o.Qty))\"\n            :max=\"9999999\"\n            class=\"d-inline-block\"\n            data-cy=\"quantity-input-upload\"\n            :label=\"$t('views.rfqs.quantity')\"\n            type=\"number\"\n            hide-details\n            outlined\n            dense\n            @blur=\"ReqQty < Math.min(...part.PriceMOQ.map(o => o.Qty)) ? ReqQty = Math.min(...part.PriceMOQ.map(o => o.Qty)) : ReqQty = ReqQty;\"\n            @input.native=\"part.qtyOfPart = updateValue($event)\"\n            @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n          />\n        </v-col>\n\n        <v-col align-self=\"start\" cols=\"3\" class=\"pb-0 pt-2\">\n          <v-sheet height=\"48px\" :color=\"isExpired() ? '#FBE9EC': '#f0fdf3' \" class=\"pa-2 py-0 rounded-lg\">\n            <span class=\"caption text--secondary text-left\">\n              {{ $t('views.productOption.totalPrice', {currencySymbol: currencySymbol}) }}\n            </span>\n            <span class=\"mt-2\" :style=\"[isExpired() ? {'color': '#be2a45'} : {'color': ''}]\">\n              {{ calculatePrice(part).multiply(ReqQty) }}\n            </span>\n          </v-sheet>\n        </v-col>\n      </v-row>\n    </v-row>\n\n    <v-row dense>\n      <v-col style=\"height: 100%\">\n        &nbsp;\n      </v-col>\n    </v-row>\n    <v-card-actions class=\"mt-8 pa-0 align-end\" data-cy=\"my-part-card-actions-grid\">\n      <v-tooltip right data-cy=\"my-part-information-tooltip-grid\">\n        <template v-slot:activator=\"{ on, attrs }\">\n          <v-icon\n            v-bind=\"attrs\"\n            color=\"primary\"\n            data-cy=\"my-part-information-grid\"\n            v-on=\"on\"\n          >\n            mdi-information-outline\n          </v-icon>\n        </template>\n        <span class=\"white--text\" data-cy=\"my-part-user-grid\">\n          {{ part.PortalUserId }}\n        </span>\n        <br>\n        <span data-cy=\"my-part-expiration-date-grid\">\n          {{\n            isExpired() ? 'Is expired since' : $t('common.validUntil')\n          }}:   {{ moment(part.ExpireDate).format('YYYY-MM-DD') }}\n        </span>\n      </v-tooltip>\n      <v-spacer />\n\n      <template v-if=\"_.get(currentUser, 'isAdmin') || _.get(currentUser, ['rights', 'placeOrder'])\">\n        <template v-if=\"isExpired(part)\">\n          <v-btn\n            :loading=\"part.isSavePending\"\n            color=\"primary\"\n            data-cy=\"refresh-quote-button-grid\"\n            @click=\"refreshMyPartPrice(part)\"\n          >\n            <v-icon left>\n              mdi-autorenew\n            </v-icon>\n            {{ t('views.myParts.refreshQuote') }}\n          </v-btn>\n        </template>\n        <v-tooltip v-else-if=\"currentOrder && !currentOrder.canAddHardwareProduct(part)\" bottom>\n          <template v-slot:activator=\"{ on, attrs }\">\n            <div v-on=\"on\">\n              <v-btn\n                v-bind=\"attrs\"\n                color=\"primary\"\n                class=\"ml-6\"\n                data-cy=\"order-this-button-grid\"\n                :disabled=\"currentOrder && !currentOrder.canAddHardwareProduct(part)\"\n                @click.stop=\"addToOrder\"\n              >\n                {{ $t('views.productOption.addToOrder') }}\n              </v-btn>\n            </div>\n          </template>\n          <span>\n            {{ $t('views.productOption.addToOrderSingleLocationToolTip') }}\n          </span>\n        </v-tooltip>\n        <template v-else>\n          <v-btn\n            v-if=\"isPartPresentInCurrentOrder(part)\"\n            color=\"primary\"\n            class=\"ml-6\"\n            @click.stop=\"removeToOrder(part)\"\n          >\n            {{ $t('views.productOption.removeToOrder') }}\n          </v-btn>\n          <v-btn\n            v-else\n            color=\"primary\"\n            class=\"ml-6\"\n            @click.stop=\"addToOrder\"\n          >\n            {{ $t('views.productOption.addToOrder') }}\n          </v-btn>\n        </template>\n      </template>\n    </v-card-actions>\n    <core-dialog\n      v-if=\"deleteDialog.display\"\n      v-model=\"deleteDialog.display\"\n      type=\"confirmation\"\n      width=\"500px\"\n      data-cy=\"delete-dialogue\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"\n        deleteDialog.display = false; part.remove() ; removeToOrder(part)\"\n      @click:cancel=\"cancelDelete\"\n    >\n      <template #title>\n        {{ $t('views.myParts.deleteDialogBagTitle') }}\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <span class=\"d-block\">\n            <span\n              class=\"d-block\"\n              data-cy=\"delete-dialogue-2\"\n              v-html=\"$t('common.deleteDialogText', { name: deleteDialog.partToDelete.CustItemName })\"\n            />\n          </span>\n        </div>\n      </template>\n    </core-dialog>\n  </v-card>\n</template>\n<script>\nimport { models } from 'feathers-vuex';\n\nimport {\n  computed, defineComponent, ref,\n} from '@vue/composition-api';\nimport currency from 'currency.js';\n\nconst { Part, Company, HardwareProduct } = models.api;\n\nexport default defineComponent({\n  props: {\n    /**\n     * Manipulate the way field's value displays\n     */\n    part: {\n      type: Object,\n      default: () => {\n      }\n    },\n  },\n\n  setup(props, context) {\n    const t = context.root.$t;\n\n    const currentProduct = ref({});\n\n    const company = computed(() => Company.getFromStore(0));\n\n    const currentUser = computed(() => context.root.$store.getters['auth/user']);\n\n    const currencySymbol = computed(() => _.get(company.value, 'currencySymbol', '$'));\n\n    const defaultQty = computed(() => Math.min(...props.part.PriceMOQ.map(o => o.Qty)));\n\n    const ReqQty = ref(defaultQty.value);\n\n    const deleteDialog = ref({\n      display: false,\n      partToDelete: new Part(),\n    });\n\n    // const currentOrder = computed(() => context.root.$store.state.app.currentOrder);\n    const currentOrder = computed(() => context.root.$store.getters['app/currentOrder']);\n\n    const isExpired = () => moment().diff(props.part.ExpireDate, 'days') > 0;\n\n    const refreshMyPartPrice = async part => {\n      const query = {\n        query: {\n          shouldUpdatePrice: true,\n        },\n        notificationMessage: context.root.$t('views.myParts.refreshPriceSuccessMessage'),\n      };\n\n      await part.save(query);\n    };\n\n    const itemRowBackground = part => (this.isExpired(part) ? 'expired-row' : null);\n\n    const cancelDelete = () => {\n      deleteDialog.value.display = false;\n      deleteDialog.value.partToDelete = new Part();\n    };\n\n    const addToOrder = async () => {\n      // eslint-disable-next-line no-underscore-dangle\n      const order = await context.root.$store._actions['app/initCurrentOrder'][0]();\n\n      order.addItem('myproduct', props.part._id, ReqQty.value);\n    };\n\n    const removeToOrder = part => {\n      if (currentOrder.value) {\n        currentOrder.value.spliceItem(currentOrder.value.orderItems.indexOf(part), 1);\n      }\n    };\n\n    const calculatePrice = computed(() => part => {\n      if (!part.PriceMOQ) {\n        return currency(0, { symbol: currencySymbol.value });\n      }\n\n      let priceMoq;\n      if (typeof part.PriceMOQ === 'string') {\n        priceMoq = JSON.parse(part.PriceMOQ);\n      } else {\n        priceMoq = [...part.PriceMOQ];\n      }\n\n      const priceMOQ = [...priceMoq].sort(({ Qty: a }, { Qty: b }) => b - a);\n\n      const findPrice = priceMOQ.find(({ Qty }) => Qty <= ReqQty.value) || Math.min(...priceMOQ.map(o => o.Qty));\n\n      if (!findPrice) {\n        return currency(0, { symbol: currencySymbol.value });\n      }\n\n      return currency(findPrice.Price, { symbol: currencySymbol.value });\n    });\n\n    const isPartPresentInCurrentOrder = computed(() => part => {\n      if (currentOrder.value === null) {\n        return false;\n      }\n\n      const currentPart = currentOrder.value.items.findIndex(item => item._id === part._id);\n\n      return currentPart !== -1;\n    });\n\n    const getProductDescription = id => HardwareProduct.getFromStore(id).description;\n\n    const removeBag = async () => {\n      currentProduct.value = new Part({ ...props.part });\n\n      currentProduct.value.remove({ shouldShowNotification: true });\n    };\n\n    const updateValue = () => event => {\n      if (parseInt(event.target.value, 10) <= parseInt(event.target.min, 10)) {\n        return event.target.min;\n      }\n      if (parseInt(event.target.max, 10) < parseInt(event.target.value, 10)) {\n        return event.target.max;\n      }\n      return event.target.value;\n    };\n\n    return {\n      removeToOrder,\n      addToOrder,\n      cancelDelete,\n      itemRowBackground,\n      refreshMyPartPrice,\n      isExpired,\n      deleteDialog,\n      calculatePrice,\n      currencySymbol,\n      currentUser,\n      isPartPresentInCurrentOrder,\n      t,\n      ReqQty,\n      getProductDescription,\n      removeBag,\n      currentProduct,\n      updateValue,\n      currentOrder,\n    };\n  },\n});\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BagCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BagCard.vue?vue&type=template&id=cbf10c80&scoped=true&\"\nimport script from \"./BagCard.vue?vue&type=script&lang=js&\"\nexport * from \"./BagCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"cbf10c80\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VIcon,VRow,VSheet,VSpacer,VTextField,VTooltip})\n","import { mapGetters, mapActions } from 'vuex';\n\nexport default {\n  props: {\n    // Tabs associated with the form\n    tabs: Object,\n\n    // Tab associated with the form\n    tab: Object,\n\n    // Parent tab associated with the form\n    parentTab: Object,\n\n    // Force embedded mode\n    embedded: Boolean,\n\n    // paths to watch in tab.entity\n    paths: Array,\n\n    // Disable updates\n    disabled: Boolean,\n\n    // Force disable the update button\n    updateDisabled: Boolean,\n\n    // Sync data to a parent model\n    value: Object,\n\n    // When the data of new document is empty apply these values\n    defaultValue: { type: Object, default: () => {} },\n\n    // Custom modified data check function\n    modifiedFunction: Function,\n  },\n\n  data() {\n    return {\n      data: {},\n      recomputeOriginalData: false,\n    };\n  },\n\n  computed: {\n    ...mapGetters('tabs', { isTabModified: 'isModified' }),\n\n    /**\n     * Returns if there is a parentTab associated with this form.\n     */\n    isEmbedded() {\n      return !_.isUndefined(this.parentTab) || this.embedded;\n    },\n\n    /**\n     * In creation mode when tab's entity has no _id value.\n     */\n    creationMode() {\n      return _.get(this.tab, 'entity._id') === undefined;\n    },\n\n    /**\n     * Returns tab entity value.\n     */\n    originalData() {\n      const p = this.paths ? ['entity', ...this.paths] : 'entity';\n      const v = !_.isEmpty(this.value) ? this.value : this.defaultValue || {};\n      // to ensure originalData will get recomputed\n      if (this.recomputeOriginalData) {\n        this.recomputeOriginalData = false;\n      }\n      return _.get(this.tab, p, v);\n    },\n\n    /**\n     * Deep compares data to originalData.\n     * Update tab modified value when data is modified.\n     */\n    isDataModified() {\n      const m = this.modifiedFunction\n        ? !this.modifiedFunction(this.data, this.originalData)\n        : !_.isEqual(this.data, this.originalData);\n      if (this.tab && this.isTabModified(this.tab._id) !== m) {\n        this.setTabModified({ _id: this.tab._id, modified: m });\n      }\n      return m;\n    },\n\n    isUpdateDisabled() {\n      return this.updateDisabled || !this.isDataModified;\n    },\n  },\n\n  watch: {\n    'tab.entity': {\n      deep: true,\n\n      handler() {\n        this.recomputeOriginalData = true;\n        this.$nextTick(() => {\n          this.data = this.cloneOriginalData();\n          this.$emit('input', this.data);\n          this.updateTab({\n            _id: this.tab._id,\n            entityId: this.tab.entity._id,\n          });\n        });\n      }\n    },\n\n    value: {\n      deep: true,\n\n      handler(newValue) {\n        this.data = !this.tab && this.isDataModified\n          ? this.cloneOriginalData()\n          : newValue;\n      }\n    },\n\n    data: {\n      deep: true,\n\n      handler(newValue) {\n        if (this.isDataModified) {\n          this.$emit('input', newValue);\n        }\n      }\n    },\n  },\n\n  mounted() {\n    this.data = this.cloneOriginalData();\n    this.$emit('input', this.data);\n  },\n\n  methods: {\n    ...mapActions('tabs', {\n      setTabModified: 'setModified',\n      updateTab: 'updateTab',\n    }),\n\n    // clones originalData model instance.\n    cloneOriginalData() {\n      return _.cloneDeep(this.originalData);\n    },\n\n    /**\n     * Emits the update-entity event to parent component.\n     */\n    async updateData() {\n      this.$emit('update-entity', this.tab, this.data);\n    },\n  }\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport i18n from '@/plugins/i18n';\n\nconst servicePath = 'order-lines';\n\nconst Model = class OrderLine extends BaseModel {\n    static modelName = 'OrderLine';\n\n    static instanceDefaults() {\n      return {\n        CoNum: '',\n        CoLine: '',\n        Item: '',\n        CustItemName: '',\n        CustItemDesc: '',\n        Quantity: 0,\n        Price: 0,\n        MaterialStr: '',\n        MaterialSeriesStr: '',\n        MaterialThicknessStr: '',\n        MaterialFinishStr: '',\n        MaterialFinishOptionStr: '',\n        Status: '',\n        DrawingRowPointer: '',\n        ThumbnailItemId: '',\n        CreatedByUserName: '',\n        CreateDate: null,\n        DrawingNumber: '',\n        DueDate: null,\n      };\n    }\n\n    static setupInstance(data) {\n      if (data.MaterialStr) {\n        this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n      }\n    }\n\n    get materialTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n    }\n\n    get materialThicknessTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n    }\n\n    get materialSeriesTranslation() {\n      return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n    }\n\n    get materialFinishTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n    }\n\n    get materialFinishOptionTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n    }\n\n    get toleranceTranslation() {\n      if (!this.Tolerance) {\n        return '-';\n      }\n      return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n    }\n\n    get is2dModel() {\n      if (this.CustFileName) {\n        return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n      }\n      return false;\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'payment-results';\n\nconst Model = class PaymentResult extends BaseModel {\n    static modelName = 'PaymentResult';\n\n    static instanceDefaults() {\n      return {\n        merchant_transaction_id: ''\n      };\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"append-icon\":\"mdi-magnify\",\"label\":_vm.$t('common.search'),\"single-line\":\"\",\"hide-details\":\"\",\"flat\":\"\",\"solo-inverted\":\"\",\"dense\":\"\"},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-text-field\n    v-model=\"localValue\"\n    append-icon=\"mdi-magnify\"\n    :label=\"$t('common.search')\"\n    single-line\n    hide-details\n    flat\n    solo-inverted\n    dense\n  />\n</template>\n\n<script>\nimport ModelableMixin from '../../mixins/modelable';\n\nexport default {\n  name: 'SearchBar',\n\n  mixins: [\n    ModelableMixin,\n  ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchBar.vue?vue&type=template&id=4dd8f8a6&scoped=true&\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"4dd8f8a6\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartsTable.vue?vue&type=style&index=0&id=378ca4d1&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isLoaded)?[(!_vm.hasError)?_c('v-skeleton-loader',{staticClass:\"my-2\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"type\":\"image\"}}):_c('v-tooltip',{attrs:{\"right\":\"\",\"nudge-bottom\":\"50px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-sheet',_vm._g(_vm._b({staticClass:\"d-flex justify-center align-center my-2\",attrs:{\"color\":\"#F4F4F4\",\"width\":_vm.width,\"height\":_vm.height}},'v-sheet',attrs,false),on),[_c('span',{staticStyle:{\"color\":\"#8D8D8D\"}},[_vm._v(\"?\")])])]}}],null,false,2884949286)},[_c('span',[_vm._v(_vm._s(_vm.$t('common.failedToDownloadThumbnail')))])])]:_vm._e(),_c('v-fade-transition',[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoaded),expression:\"isLoaded\"}],staticClass:\"my-2 \",attrs:{\"src\":_vm.thumbnailUri,\"height\":_vm.height,\"width\":_vm.width,\"alt\":\"thumbnail\"},on:{\"load\":function($event){_vm.isLoaded = true},\"error\":function($event){_vm.hasError = true}}})])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <template v-if=\"!isLoaded\">\n      <v-skeleton-loader\n        v-if=\"!hasError\"\n        :width=\"width\"\n        :height=\"height\"\n        type=\"image\"\n        class=\"my-2\"\n      />\n      <v-tooltip v-else right nudge-bottom=\"50px\">\n        <template v-slot:activator=\"{ on, attrs }\">\n          <v-sheet\n            color=\"#F4F4F4\"\n            :width=\"width\"\n            :height=\"height\"\n            v-bind=\"attrs\"\n            class=\"d-flex justify-center align-center my-2\"\n            v-on=\"on\"\n          >\n            <span style=\"color:#8D8D8D\">?</span>\n          </v-sheet>\n        </template>\n        <span>{{ $t('common.failedToDownloadThumbnail') }}</span>\n      </v-tooltip>\n    </template>\n    <v-fade-transition>\n      <img\n        v-show=\"isLoaded\"\n        class=\"my-2 \"\n        :src=\"thumbnailUri\"\n        :height=\"height\"\n        :width=\"width\"\n        alt=\"thumbnail\"\n        @load=\"isLoaded = true\"\n        @error=\"hasError = true\"\n      >\n    </v-fade-transition>\n  </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex';\n\nexport default {\n  /* TODO It would be nice to use Vuetify's image component (v-img), but unfortunately\n  *   there seems to be no simple way to display a skeleton loader until\n  *   a v-img loads using v-show. So we're stuck with a regular image tag */\n  name: 'ThumbnailViewer',\n  props: {\n    part: Object,\n    width: {\n      type: Number,\n      required: true,\n    },\n    height: {\n      type: Number,\n      required: true,\n    },\n    partLookupKey: {\n      type: String,\n      required: false,\n    },\n    fileUrl: {\n      type: String,\n      required: false,\n    },\n  },\n  data: () => ({\n    isLoaded: false,\n    hasError: false,\n  }),\n  computed: {\n    ...mapState('auth', ['accessToken']),\n\n    thumbnailUri: vm => {\n      if (vm.fileUrl) {\n        return vm.fileUrl;\n      }\n      if (!vm.part) {\n        return '';\n      }\n      const host = process.env.VUE_APP_API_URL;\n      const extension = vm.part.is2dModel ? 'SVG' : 'PNG';\n      const fileType = extension === 'PNG' ? 'Image' : 'File';\n      const fileName = `${_.get(vm.part, 'DrawingRowPointer', '').toLowerCase()}.${extension}`;\n      if (vm.partLookupKey) {\n        return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part[vm.partLookupKey]}/${fileType}`;\n      }\n      return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part._id}/${fileType}`;\n    }\n  },\n};\n</script>\n\n<style scoped>\n/* Without this, there is a random extra ~6 pixels below the image.\n After scrutinizing over pixels for a while, I found this: https://stackoverflow.com/a/5804278/9214972 */\nimg {\n  vertical-align: middle;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThumbnailViewer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThumbnailViewer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ThumbnailViewer.vue?vue&type=template&id=ee3ba56c&scoped=true&\"\nimport script from \"./ThumbnailViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./ThumbnailViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ThumbnailViewer.vue?vue&type=style&index=0&id=ee3ba56c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"ee3ba56c\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VFadeTransition,VSheet,VSkeletonLoader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"home-hero\",attrs:{\"fill-height\":\"\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./HomeHero.vue?vue&type=template&id=5b62d34e&scoped=true&\"\nvar script = {}\nimport style0 from \"./HomeHero.vue?vue&type=style&index=0&id=5b62d34e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5b62d34e\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"primary px-15 rounded-r-xl\",staticStyle:{\"color\":\"white\",\"min-height\":\"650px\",\"height\":\"96%\",\"min-width\":\"650px\"}},[_c('v-sheet',{staticClass:\"white--text primary\",attrs:{\"tag\":\"div\",\"tile\":\"\"}},[_c('v-row',{staticClass:\"font-weight-bold text-h5 mb-8 mt-10\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.title'))+\" \")]),_c('v-row',{staticClass:\"body-1 mb-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.caption'))+\" \")]),_c('v-row',{staticClass:\"font-weight-bold text-h6 mb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.subTitle'))+\" \")]),_c('v-row',{staticClass:\"d-flex justify-center align-center mb-5\"},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-lasercutting@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.laserCutting'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-threading@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.threadingChamfering'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-bending@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.sheetMetal'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-bulk@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.bulkFasteners'))}})])],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/Surface Finishing icon@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-3\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.surfaceFinish'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"38px\",\"src\":\"/img/icon-custom@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.customFastenersBag'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"38px\",\"src\":\"/img/laserEngravingIcon.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.laserEngraving'))}})])],1),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"width\":\"40px\",\"src\":\"/img/icon-cnc-turning@1x.svg\"}}),_c('span',{staticClass:\"caption-2 pl-4\",domProps:{\"innerHTML\":_vm._s(_vm.$t('promotional.expertise.cncTurning'))}})])],1)],1)],1),_c('v-carousel',{staticClass:\"primary rounded-r-xl\",attrs:{\"show-arrows\":false,\"height\":\"320px\",\"hide-delimiter-background\":\"\",\"hide-delimiters\":\"\"}},[_c('v-carousel-item',[_c('div',{staticClass:\"font-weight-bold text-center white--text\"},[_c('v-avatar',{attrs:{\"color\":\"blue\",\"size\":\"80\"}},[_c('img',{attrs:{\"src\":\"/img/client.png\"}})]),_c('p',{staticClass:\"mb-0 mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.clientComment'))+\" \")])],1),_c('div',{staticClass:\"text-center white--text mt-4\"},[_c('p',{staticClass:\"mb-0 text-h6\"},[_vm._v(\" Jonathan D. \")]),_c('p',{staticClass:\"mb-0 font-weight-medium body-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('promotional.clientPosition'))+\", \")]),_c('p',{staticClass:\"mb-0 font-weight-medium body-2\"},[_vm._v(\" HivelQ / Form Studio \")])])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container\n    style=\"color: white; min-height: 650px; height: 96%; min-width: 650px;\"\n    class=\"primary px-15 rounded-r-xl\"\n  >\n    <v-sheet\n      tag=\"div\"\n      class=\"white--text primary\"\n      tile\n    >\n      <v-row class=\"font-weight-bold text-h5 mb-8 mt-10\">\n        {{ $t('promotional.title') }}\n      </v-row>\n\n      <v-row class=\"body-1 mb-8\">\n        {{ $t('promotional.caption') }}\n      </v-row>\n\n      <v-row class=\"font-weight-bold text-h6 mb-4\">\n        {{ $t('promotional.subTitle') }}\n      </v-row>\n\n      <v-row class=\"d-flex justify-center align-center mb-5\">\n        <v-col cols=\"6\">\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"40px\"\n                src=\"/img/icon-lasercutting@1x.svg\"\n              >\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.laserCutting')\"\n              />\n            </v-col>\n          </v-row>\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"40px\"\n                src=\"/img/icon-threading@1x.svg\"\n              >\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.threadingChamfering')\"\n              />\n            </v-col>\n          </v-row>\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"40px\"\n                src=\"/img/icon-bending@1x.svg\"\n              >\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.sheetMetal')\"\n              />\n            </v-col>\n          </v-row>\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"40px\"\n                src=\"/img/icon-bulk@1x.svg\"\n              >\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.bulkFasteners')\"\n              />\n            </v-col>\n          </v-row>\n        </v-col>\n        <v-col cols=\"6\">\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"40px\"\n                src=\"/img/Surface Finishing icon@1x.svg\"\n              >\n              <span\n                class=\"caption-2 pl-3\"\n                v-html=\"$t('promotional.expertise.surfaceFinish')\"\n              />\n            </v-col>\n          </v-row>\n\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"38px\"\n                src=\"/img/icon-custom@1x.svg\"\n              >\n\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.customFastenersBag')\"\n              />\n            </v-col>\n          </v-row>\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"38px\"\n                src=\"/img/laserEngravingIcon.svg\"\n              >\n\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.laserEngraving')\"\n              />\n            </v-col>\n          </v-row>\n          <v-row class=\"d-flex align-center\">\n            <v-col class=\"pt-0\" cols=\"12\">\n              <img\n                style=\"vertical-align:middle\"\n                width=\"40px\"\n                src=\"/img/icon-cnc-turning@1x.svg\"\n              >\n\n              <span\n                class=\"caption-2 pl-4\"\n                v-html=\"$t('promotional.expertise.cncTurning')\"\n              />\n            </v-col>\n          </v-row>\n        </v-col>\n      </v-row>\n      <v-carousel\n        :show-arrows=\"false\"\n        height=\"320px\"\n        class=\"primary rounded-r-xl\"\n        hide-delimiter-background\n        hide-delimiters\n      >\n        <v-carousel-item>\n          <div class=\"font-weight-bold text-center white--text\">\n            <v-avatar color=\"blue\" size=\"80\">\n              <img src=\"/img/client.png\">\n            </v-avatar>\n            <p class=\"mb-0 mt-4\">\n              {{ $t('promotional.clientComment') }}\n            </p>\n          </div>\n\n          <div class=\"text-center white--text mt-4\">\n            <p class=\"mb-0 text-h6\">\n              Jonathan D.\n            </p>\n            <p class=\"mb-0 font-weight-medium body-2\">\n              {{ $t('promotional.clientPosition') }},\n            </p>\n            <p class=\"mb-0 font-weight-medium body-2\">\n              HivelQ / Form Studio\n            </p>\n          </div>\n        </v-carousel-item>\n      </v-carousel>\n    </v-sheet>\n  </v-container>\n</template>\n\n<script>\nexport default {\n  name: 'promotional',\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Promotional.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Promotional.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Promotional.vue?vue&type=template&id=9f3348a0&\"\nimport script from \"./Promotional.vue?vue&type=script&lang=js&\"\nexport * from \"./Promotional.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCarousel } from 'vuetify/lib/components/VCarousel';\nimport { VCarouselItem } from 'vuetify/lib/components/VCarousel';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VAvatar,VCarousel,VCarouselItem,VCol,VContainer,VRow,VSheet})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=40792b12&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.pdfReady)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('purchaseOrdersPdf.viewPurchaseOrder'))+\" \")],1),(!_vm.isPdfRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPdfRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):[_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-pdf-box \")]),_vm._v(\" \"+_vm._s(_vm.$t('purchaseOrdersPdf.uploadPurchaseOrder'))+\" \")],1)],_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isPdfRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removePDF,\"click:cancel\":function($event){_vm.showPdfRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.DeletePdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.$t('myPartPdf.PdfDrawingFile') }))}})])]},proxy:true}]),model:{value:(_vm.showPdfRemoveDialog),callback:function ($$v) {_vm.showPdfRemoveDialog=$$v},expression:\"showPdfRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isPdfUploadPending,\"is-ok-disabled\":!_vm.isFileAdded,\"ok-button-text\":_vm.$t('common.submit')},on:{\"click:ok\":function($event){_vm.display = false;},\"click:cancel\":function($event){_vm.display = false;_vm.removePDF()}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('purchaseOrdersPdf.uploadPurchaseOrder'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,3043183035),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-path\":_vm.previewPDFUrl,\"item-height\":800}}):_vm._e()],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <div v-if=\"pdfReady\" style=\"display: inline\">\n      <v-btn\n        text\n        small\n        class=\"pr-1\"\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"isPDFDownload=true\"\n      >\n        <v-icon left size=\"20\">\n          mdi-open-in-new\n        </v-icon>\n        {{ $t('purchaseOrdersPdf.viewPurchaseOrder') }}\n      </v-btn>\n      <v-icon v-if=\"!isPdfRemoved\" small @click=\"showPdfRemoveDialog = true\">\n        mdi-close\n      </v-icon>\n    </div>\n    <template v-else>\n      <v-btn\n        text\n        small\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"display=true;\"\n      >\n        <v-icon left size=\"25\">\n          mdi-file-pdf-box\n        </v-icon>\n        {{ $t('purchaseOrdersPdf.uploadPurchaseOrder') }}\n      </v-btn>\n    </template>\n\n    <core-dialog\n      v-model=\"showPdfRemoveDialog\"\n      type=\"confirmation\"\n      width=\"500px\"\n      :is-loading=\"isPdfRemoved\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"removePDF\"\n      @click:cancel=\"showPdfRemoveDialog =false\"\n    >\n      <template #title>\n        {{ $t('myPartPdf.DeletePdfDrawing') }}\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <span\n            class=\"d-block\"\n            v-html=\"$t('common.deleteDialogText', { name: $t('myPartPdf.PdfDrawingFile') })\"\n          />\n        </div>\n      </template>\n    </core-dialog>\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"confirmation\"\n      width=\"1000px\"\n      :eager=\"true\"\n      :is-loading=\"isPdfUploadPending\"\n      :is-ok-disabled=\"!isFileAdded\"\n      :ok-button-text=\"$t('common.submit')\"\n      @click:ok=\"display = false;\"\n      @click:cancel=\"display = false;removePDF()\"\n    >\n      <template #title>\n        {{ $t('purchaseOrdersPdf.uploadPurchaseOrder') }}\n      </template>\n      <template #content>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-pdf\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                {{ $t('myPartPdf.FileSupported') }}\n              </div>\n            </v-card-text>\n          </v-card>\n          {{ $t('myPartPdf.SingleFileOnly') }}\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n    <v-navigation-drawer\n      v-model=\"isPDFDownload\"\n      width=\"60%\"\n      fixed\n      stateless\n      hide-overlay\n      right\n      temporary\n      style=\"background-color: #ada6a6;z-index: 99 !important;\"\n    >\n      <div\n        ref=\"rfqViewerContainer\"\n        style=\"height: calc(100% - 52px);\"\n      >\n        <div class=\"d-flex justify-end\">\n          <v-btn\n            icon\n            x-large\n            @click=\"isPDFDownload=false\"\n          >\n            <v-icon>mdi-close</v-icon>\n          </v-btn>\n        </div>\n\n        <core-pdf-viewer\n          v-if=\"isPDFDownload\"\n          :file-path=\"previewPDFUrl\"\n          :item-height=\"800\"\n        />\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'PurchaseOrdersPdf',\n  props: {\n    pdfUrl: {\n      type: String,\n    },\n  },\n  data() {\n    return {\n      pdfReady: false,\n      previewPDFUrl: '',\n      isPdfUploadPending: false,\n      isFileAdded: false,\n      showPdfRemoveDialog: false,\n      myDropZone: null,\n      pdfPageHeight: 0,\n      pdfPageWidth: 0,\n      display: false,\n      isPdfRemoved: false,\n      isPDFDownload: false\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => ({\n      url: '/',\n      paramName: 'file',\n      headers: {\n        Authorization: vm.accessToken,\n      },\n      thumbnailWidth: 150,\n      maxFilesize: 20,\n      timeout: 9999999,\n      maxFiles: 1,\n      parallelUploads: 1,\n      acceptedFiles: '.pdf',\n      autoProcessQueue: false,\n      dictDefaultMessage: 'dropZone.dictDefaultMessage',\n      dictFallbackMessage: 'dropZone.dictFallbackMessage',\n      dictFallbackText: 'dropZone.dictFallbackText',\n      dictFileTooBig: 'dropZone.dictFileTooBig',\n      dictInvalidFileType: 'dropZone.dictInvalidFileType',\n      dictResponseError: 'dropZone.dictResponseError',\n      dictCancelUpload: 'dropZone.dictCancelUpload',\n      dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n      dictRemoveFile: 'dropZone.dictRemoveFile',\n      dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n      clickable: '#dropzone-click-target-pdf',\n      previewTemplate: vm.template(),\n      init() {\n        this.on('maxfilesexceeded', file => {\n          this.removeAllFiles();\n          this.addFile(file);\n        });\n        this.on('error', async file => {\n          this.removeFile(file);\n        });\n        this.on('success', async () => {\n          vm.isPdfUploadPending = false;\n          vm.display = false;\n          await vm.checkIfPdfExist();\n        });\n\n        this.on('sending', () => {\n          vm.isPdfUploadPending = true;\n        });\n\n        this.on('addedfile', async file => {\n          const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n          vm.previewPDFUrl = URL.createObjectURL(file);\n          vm.$emit('pdfUrl', vm.previewPDFUrl);\n          vm.pdfReady = true;\n          vm.isFileAdded = true;\n          removeButton.addEventListener('click', e => {\n            e.preventDefault();\n            e.stopPropagation();\n            this.removeFile(file);\n            vm.removePDF();\n          });\n\n          file.previewElement.children[1].appendChild(removeButton);\n        });\n      }\n\n    }),\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    },\n    pdfUrl(val) {\n      if (val) {\n        this.pdfReady = true;\n        this.previewPDFUrl = this.pdfUrl;\n      } else {\n        this.pdfReady = false;\n      }\n    }\n  },\n\n  mounted() {\n    const resizeObserver = new ResizeObserver(() => {\n      /* 70 breathing room */\n      this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n      const ratio = 8.5 / 11;\n      this.pdfPageHeight = this.pdfPageWidth / ratio;\n    });\n    resizeObserver.observe(this.$refs.rfqViewerContainer);\n  },\n  methods: {\n\n    async onFileChanged(e) {\n      const [pdfFile] = e.target.files;\n      this.previewPDFUrl = URL.createObjectURL(pdfFile);\n      this.$emit('pdfUrl', this.previewPDFUrl);\n      this.pdfReady = true;\n    },\n    async removePDF() {\n      URL.revokeObjectURL(this.previewPDFUrl);\n      this.pdfReady = false;\n      this.showPdfRemoveDialog = false;\n      this.previewPDFUrl = '';\n      this.$emit('pdfUrl', this.previewPDFUrl);\n      this.isFileAdded = false;\n    },\n    template() {\n      return `\n             <div class=\"d-flex align-start flex-column mt-16\">\n                <p style=\"vertical-align: bottom\">Document selected</p>\n                <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n                  <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n                  <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n                </p>\n             </div>`;\n    }\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PurchaseOrdersPdf.vue?vue&type=template&id=a6977b18&\"\nimport script from \"./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./PurchaseOrdersPdf.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=style&index=0&id=2f939555&scoped=true&lang=css&\"","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'csi-analysis';\n\nconst Model = class CsiAnalysis extends BaseModel {\n  static modelName = 'CsiAnalysis';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenOrderStepsBanner.vue?vue&type=style&index=0&id=21b21687&scoped=true&lang=css&\"","function loadLocaleMessages() {\n  const locales = require.context('./', true, /[A-Za-z0-9-_,\\s]+\\.json$/i);\n  const messages = {};\n  locales.keys().forEach(key => {\n    const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\n    if (matched && matched.length > 1) {\n      const locale = matched[1];\n      messages[locale] = locales(key);\n    }\n  });\n  return messages;\n}\n\nexport default loadLocaleMessages();\n","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport appMessages from '../locales';\nimport _ from './simulateLodash';\n\n/** Add/replace client's i18n translations */\n// import komacutMessages from '../_komacut/locales';\n\nVue.use(VueI18n);\n\nexport default new VueI18n({\n  fallbackLocale: 'en-US',\n  messages: _.defaultsDeep(\n    {},\n    appMessages,\n  ),\n});\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'referrals';\n\nconst Model = class Referral extends BaseModel {\n    static modelName = 'Referral';\n\n    static instanceDefaults() {\n      return {\n        firstName: '',\n        lastName: '',\n        email: '',\n        company: '',\n      };\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',{staticClass:\"py-1\",staticStyle:{\"background-color\":\"#4fb052\",\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(_vm._.get(_vm.partDesignData[0], 'value'))+\" \")]),_c('v-simple-table',{attrs:{\"dense\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('tbody',_vm._l((_vm.partDesignData.slice(1)),function(item,i){return _c('tr',{key:item.field,class:{'dark': (i % 2 !== 0)}},[_c('td',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticClass:\"mr-1\",attrs:{\"src\":(\"/img/\" + (item.icon) + \".svg\"),\"width\":\"21px\",\"height\":\"21px\"}}),_vm._v(\" \"+_vm._s(item.field)+\" \")]),_c('td',[_c('span',{style:([{ color: _vm.getTextColor(item.value) }])},[_vm._v(\" \"+_vm._s(item.value)+\" \")])])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card>\n    <v-card-title\n      class=\"py-1\"\n      style=\"background-color: #4fb052; color: white;\"\n    >\n      {{ _.get(partDesignData[0], 'value') }}\n    </v-card-title>\n\n    <v-simple-table dense>\n      <template v-slot:default>\n        <tbody>\n          <tr\n            v-for=\"(item, i) in partDesignData.slice(1)\"\n            :key=\"item.field\"\n            :class=\"{'dark': (i % 2 !== 0)}\"\n          >\n            <td style=\"display: flex; align-items: center;\">\n              <img\n                :src=\"`/img/${item.icon}.svg`\"\n                class=\"mr-1\"\n                width=\"21px\"\n                height=\"21px\"\n              >\n              {{ item.field }}\n            </td>\n            <td>\n              <span :style=\"[{ color: getTextColor(item.value) }]\">\n                {{ item.value }}\n              </span>\n            </td>\n          </tr>\n        </tbody>\n      </template>\n    </v-simple-table>\n  </v-card>\n</template>\n\n<script>\nexport default {\n  name: 'PartDesignTable',\n  props: {\n    part: Object,\n  },\n  computed: {\n    partDesignData() {\n      let tableData = [];\n\n      const analysisData = _.get(this.partViewerPart, 'CsiAnalysisData', []);\n\n      if (_.isEmpty(analysisData)) {\n        tableData = [\n          { field: null, value: 'Parts Design Data' },\n          { field: 'Net Weight (kg)', value: '-' },\n          { field: 'Gross Weight (kg)', value: '-' },\n          { field: 'Material usage (%)', value: '-' },\n          { field: '# of Fabrication Processes', value: '-' },\n          { field: 'Quantity / sheet', value: '-' },\n          { field: 'Material', value: '-' },\n        ];\n      } else {\n        tableData = analysisData.filter(datum => datum.Category === 'T2')\n          .sort((datum1, datum2) => +datum1.Rank - +datum2.Rank)\n          .map(datum => ({ field: datum.Description, value: datum.Value }));\n      }\n\n      const icons = [\n        'dumbbell',\n        'dumbbell',\n        'lightning-bolt',\n        'gear',\n        'scale',\n        'material',\n      ];\n      return tableData.map((row, index) => ({ ...{ icon: icons[index - 1] }, ...row }));\n    },\n  },\n  methods: {\n    getTextColor(value) {\n      switch (value) {\n        case 'Pass':\n        case 'Yes':\n          return 'green';\n        case 'Fail':\n        case 'No':\n          return 'red';\n        default:\n          return '';\n      }\n    }\n  }\n};\n</script>\n\n<style scoped>\n::v-deep .v-label  {\n  font-size: 12px !important\n}\n::v-deep .v-input__slot {\n  padding: 0 !important;\n}\n::v-deep .v-input__slot label{\n  margin-top: 2px !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartDesignTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartDesignTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartDesignTable.vue?vue&type=template&id=82313dcc&scoped=true&\"\nimport script from \"./PartDesignTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PartDesignTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartDesignTable.vue?vue&type=style&index=0&id=82313dcc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"82313dcc\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VCard,VCardTitle,VSimpleTable})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'packaging-tools';\n\nconst Model = class PackagingTool extends BaseModel {\n  static modelName = 'PackagingTool';\n\n  static instanceDefaults() {\n    return {\n      stlFile: '',\n      qty: 1000,\n      spacing: 1,\n      unitWeight: 1,\n      width: 800,\n      length: 470,\n      height: 400,\n      maxWeight: 1000,\n      maxTime: 300,\n      engineResult: null,\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-card',{staticStyle:{\"border-radius\":\"0\",\"background-color\":\"#fafffb\"},attrs:{\"flat\":\"\"}},[(_vm.isCardView )?[_c('v-data-table',{attrs:{\"headers\":_vm.partsTableHeaders,\"items\":_vm.parts,\"loading\":_vm._.isEmpty(_vm.parts),\"hide-default-footer\":\"\",\"no-data-text\":_vm.$t('common.noDataAvailable'),\"loading-text\":_vm.$t('common.loadingItems'),\"disable-pagination\":\"\",\"data-cy\":\"table-list\",\"footer-props\":{ 'items-per-page-text': _vm.$t('common.rowPerPageText'),\n                             'page-text': (\"{0}-{1} \" + (_vm.$t('common.of')) + \" {2}\") }},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('v-skeleton-loader',{staticClass:\"pa-5 d-flex justify-space-between\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"komacutLine@10\",\"types\":{komacutLine:(\"table-cell@\" + _vm.nbrOfPart)}}})]},proxy:true},{key:\"item.CustItemName\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('div',{staticClass:\"ml-3\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('core-thumbnail-viewer',{staticClass:\"mr-5\",attrs:{\"part\":item,\"part-lookup-key\":'Item',\"width\":60,\"height\":60,\"data-cy\":\"image-list\"}}),_c('span',[_c('span',{attrs:{\"data-cy\":\"part-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.CustItemName))}})])],1)]}},{key:\"item.Revision\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"revision-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.Revision))}})]}},{key:\"item.CustItemDesc\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"description-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.CustItemDesc))}})]}},{key:\"item.ReqQty\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"qty-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.ReqQty))}})]}},{key:\"item.Tolerance\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"tolerance-list\"}},[_vm._v(_vm._s(item.toleranceTranslation)+\" \")])]}},{key:\"item.PriceMOQ\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"unit-list\"}},[_vm._v(_vm._s(_vm.currency(_vm.customerPriceRange(item)[0].Price, {symbol: _vm.company.currencySymbol}).format()))])]}},{key:\"item.MaterialStr\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"material-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialTranslation))}})]}},{key:\"item.materialSeriesShortened\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"series-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialSeriesTranslation))}})]}},{key:\"item.MaterialThicknessStr\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"thickness-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialThicknessTranslation))}})]}},{key:\"item.Roughness\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"roughness-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(_vm.getRoughnessName(item.Roughness)))}})]}},{key:\"item.MaterialFinishStr\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"finish-list\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.materialFinishTranslation))}})]}},{key:\"item.Net\",fn:function(ref){\n                             var item = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"net-list\"}},[_vm._v(_vm._s(_vm.currency(parseFloat(_vm.customerPriceRange(item)[0].Price, 10) * item.ReqQty, {symbol: _vm.company.currencySymbol}).format()))])]}}],null,false,3876298955)}),((_vm.loadingParts || (_vm.isLoadingPartsRfqId===_vm.rfqId) && !_vm._.isEmpty(_vm.parts)))?_vm._l(((_vm.nbrOfPart - _vm.partsIdInStore.length)),function(index){return _c('v-skeleton-loader',{key:(\"table-\" + index),staticClass:\"mx-3\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"table-row-divider\"}})}):_vm._e(),(!_vm._.isEmpty(_vm.filteredPartItems) && (_vm.nbrOfPart >1) && (_vm.filteredPartItems.length !== _vm.nbrOfPart))?_c('v-card',{staticClass:\"grey lighten-2  text-center pa-0 text-uppercase\",attrs:{\"flat\":\"\"},on:{\"click\":_vm.getAllMissingPart}},[_c('span',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\" \"+_vm._s((\"\" + (_vm.displayAll ? _vm.$t('views.rfqs.hidePart') : _vm.$t('views.rfqs.showAllParts'))))+\" \")]),_c('br'),_c('div',{staticClass:\"mdi mdi-chevron-down mt-n2\",class:{'mdi-rotate-180':_vm.displayAll},staticStyle:{\"font-size\":\"20px\",\"height\":\"25px\"}})]):_vm._e()]:_c('v-sheet',{staticClass:\"pt-0 px-2\",attrs:{\"color\":\"#fafffb\"}},[_vm._l((_vm.parts),function(part){return _c('core-rfq-part-card',{key:(\"card-\" + (part._id)),attrs:{\"filter-part\":_vm.filteredPartItems,\"search-value\":_vm.searchValue,\"customer-price-range\":_vm.customerPriceRange(part),\"part\":part,\"is-mesh-visible\":true},on:{\"click:sideView\":function($event){return _vm.onClickChild(part)}}})}),(_vm.loadingParts || (_vm.isLoadingPartsRfqId===_vm.rfqId))?_vm._l(((_vm.nbrOfPart - _vm.partsIdInStore.length)),function(index){return _c('core-rfq-card-skeleton',{key:(\"skeleton-\" + index)})}):_vm._e(),(!_vm._.isEmpty(_vm.filteredPartItems) && (_vm.nbrOfPart >1) && (_vm.filteredPartItems.length !== _vm.nbrOfPart))?_c('v-card',{staticClass:\"grey lighten-2  text-center pa-0 text-uppercase\",attrs:{\"flat\":\"\"},on:{\"click\":_vm.getAllMissingPart}},[_c('span',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\" \"+_vm._s((\"\" + (_vm.displayAll ? _vm.$t('views.rfqs.hidePart') : _vm.$t('views.rfqs.showAllParts'))))+\" \")]),_c('br'),_c('div',{staticClass:\"mdi mdi-chevron-down mt-n2\",class:{'mdi-rotate-180':_vm.displayAll},staticStyle:{\"font-size\":\"20px\",\"height\":\"25px\"}})]):_vm._e()],2),_c('v-card-actions',{staticClass:\"pb-3 px-0 d-flex justify-end\",staticStyle:{\"background-color\":\"#fafffb\"}},[(_vm.isExpired)?_c('v-btn',{staticClass:\"mr-2\",attrs:{\"depressed\":\"\",\"width\":\"242\",\"color\":\"primary\",\"data-cy\":\"refresh-rfq-button\"},on:{\"click\":function($event){return _vm.$emit('refresh-rfq', _vm.rfqId)}}},[_vm._v(\" \"+_vm._s(_vm.$t('common.refreshQuote'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"disabled\":!(_vm.isSvgPending || _vm.is2dDrawingPending)},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n                             var on = ref.on;\n                             var attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[(_vm._.get(_vm.user, 'isAdmin') || _vm._.get(_vm.user, ['rights', 'placeOrder']))?_c('v-btn',_vm._b({attrs:{\"disabled\":_vm.isExpired || _vm.isSvgPending || _vm.is2dDrawingPending || (_vm.currentOrder && !_vm.currentOrder.canAddItem(_vm.parts[0])),\"depressed\":\"\",\"width\":\"242\",\"color\":\"primary\",\"data-cy\":\"place-order-button\"},on:{\"click\":function($event){return _vm.addEstimateToOrder()}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")]):_vm._e()],1)]}}])},[(_vm.is2dDrawingPending)?[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderToolTip'))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderSvgToolTip'))+\" \")]],2)],1)],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container fluid class=\"py-0\">\n    <v-row>\n      <v-col\n        cols=\"12\"\n        class=\"py-0\"\n      >\n        <v-card flat style=\"border-radius:0; background-color: #fafffb\">\n          <template v-if=\"isCardView \">\n            <v-data-table\n              :headers=\"partsTableHeaders\"\n              :items=\"parts\"\n              :loading=\"_.isEmpty(parts)\"\n              hide-default-footer\n              :no-data-text=\"$t('common.noDataAvailable')\"\n              :loading-text=\"$t('common.loadingItems')\"\n              disable-pagination\n              data-cy=\"table-list\"\n              :footer-props=\"{ 'items-per-page-text': $t('common.rowPerPageText'),\n                               'page-text': `{0}-{1} ${$t('common.of')} {2}` }\"\n            >\n              <template #loading>\n                <v-skeleton-loader\n                  class=\"pa-5 d-flex justify-space-between\"\n                  width=\"100%\"\n                  loading\n                  :type=\"`komacutLine@10`\"\n                  :types=\"{komacutLine:`table-cell@${nbrOfPart}`}\"\n                />\n              </template>\n              <template #item.CustItemName=\"{ item }\">\n                <div class=\"ml-3\" style=\"display: flex; align-items: center;\">\n                  <core-thumbnail-viewer\n                    :part=\"item\"\n                    :part-lookup-key=\"'Item'\"\n                    :width=\"60\"\n                    :height=\"60\"\n                    class=\"mr-5\"\n                    data-cy=\"image-list\"\n                  />\n                  <span>\n                    <span data-cy=\"part-list\" v-html=\"highlight(item.CustItemName)\" />\n                  </span>\n                </div>\n              </template>\n              <template #item.Revision=\"{ item }\">\n                <span data-cy=\"revision-list\" v-html=\"highlight(item.Revision)\" />\n              </template>\n              <template #item.CustItemDesc=\"{ item }\">\n                <span data-cy=\"description-list\" v-html=\"highlight(item.CustItemDesc)\" />\n              </template>\n              <template #item.ReqQty=\"{ item }\">\n                <span data-cy=\"qty-list\" v-html=\"highlight(item.ReqQty)\" />\n              </template>\n              <template #item.Tolerance=\"{item}\">\n                <span data-cy=\"tolerance-list\">{{\n                  item.toleranceTranslation\n                }}\n                </span>\n              </template>\n              <template #item.PriceMOQ=\"{ item }\">\n                <span data-cy=\"unit-list\">{{\n                  currency(customerPriceRange(item)[0].Price, {symbol: company.currencySymbol}).format()\n                }}</span>\n              </template>\n              <template #item.MaterialStr=\"{ item }\">\n                <span\n                  data-cy=\"material-list\"\n                  v-html=\"highlight(item.materialTranslation)\"\n                />\n              </template>\n              <!--              <template #item.PDF=\"{item}\">-->\n              <!--                <core-my-part-pdf-viewer :part=\"item\" />-->\n              <!--              </template>-->\n              <template #item.materialSeriesShortened=\"{ item }\">\n                <span\n                  data-cy=\"series-list\"\n                  v-html=\"highlight(item.materialSeriesTranslation)\"\n                />\n              </template>\n\n              <template #item.MaterialThicknessStr=\"{ item }\">\n                <span\n                  data-cy=\"thickness-list\"\n                  v-html=\"highlight(item.materialThicknessTranslation)\"\n                />\n              </template>\n\n              <template #item.Roughness=\"{ item }\">\n                <span\n                  data-cy=\"roughness-list\"\n                  v-html=\"highlight(getRoughnessName(item.Roughness))\"\n                />\n              </template>\n\n              <template #item.MaterialFinishStr=\"{ item }\">\n                <span\n                  data-cy=\"finish-list\"\n                  v-html=\"highlight(item.materialFinishTranslation)\"\n                />\n              </template>\n\n              <template #item.Net=\"{ item }\">\n                <span data-cy=\"net-list\">{{\n                  currency(parseFloat(customerPriceRange(item)[0].Price, 10) * item.ReqQty, {symbol: company.currencySymbol}).format()\n                }}</span>\n              </template>\n            </v-data-table>\n\n            <template v-if=\"(loadingParts || (isLoadingPartsRfqId===rfqId) && !_.isEmpty(parts))\">\n              <v-skeleton-loader\n                v-for=\"index in (nbrOfPart - partsIdInStore.length)\"\n                :key=\"`table-${index}`\"\n                class=\"mx-3\"\n                width=\"100%\"\n                loading\n                :type=\"`table-row-divider`\"\n              />\n            </template>\n            <v-card\n              v-if=\"!_.isEmpty(filteredPartItems) && (nbrOfPart >1) && (filteredPartItems.length !== nbrOfPart)\"\n              flat\n              class=\"grey lighten-2  text-center pa-0 text-uppercase\"\n              @click=\"getAllMissingPart\"\n            >\n              <span style=\" font-size: 12px\">\n                {{ `${displayAll ? $t('views.rfqs.hidePart') : $t('views.rfqs.showAllParts')}` }}\n              </span>\n              <br>\n              <div\n                class=\"mdi mdi-chevron-down mt-n2\"\n                style=\"font-size: 20px; height:25px\"\n                :class=\"{'mdi-rotate-180':displayAll}\"\n              />\n            </v-card>\n          </template>\n\n          <v-sheet v-else color=\"#fafffb\" class=\"pt-0 px-2\">\n            <core-rfq-part-card\n              v-for=\"(part) in parts\"\n              :key=\"`card-${part._id}`\"\n              :filter-part=\"filteredPartItems\"\n              :search-value=\"searchValue\"\n              :customer-price-range=\"customerPriceRange(part)\"\n              :part=\"part\"\n              :is-mesh-visible=\"true\"\n              @click:sideView=\"onClickChild(part)\"\n            />\n            <template v-if=\"loadingParts || (isLoadingPartsRfqId===rfqId)\">\n              <core-rfq-card-skeleton v-for=\"index in (nbrOfPart - partsIdInStore.length)\" :key=\"`skeleton-${index}`\" />\n            </template>\n            <v-card\n              v-if=\"!_.isEmpty(filteredPartItems) && (nbrOfPart >1) && (filteredPartItems.length !== nbrOfPart)\"\n              flat\n              class=\"grey lighten-2  text-center pa-0 text-uppercase\"\n              @click=\"getAllMissingPart\"\n            >\n              <span style=\" font-size: 12px\">\n                {{ `${displayAll ? $t('views.rfqs.hidePart') : $t('views.rfqs.showAllParts')}` }}\n              </span>\n              <br>\n              <div\n                class=\"mdi mdi-chevron-down mt-n2\"\n                style=\"font-size: 20px; height:25px\"\n                :class=\"{'mdi-rotate-180':displayAll}\"\n              />\n            </v-card>\n          </v-sheet>\n\n          <v-card-actions style=\"background-color: #fafffb\" class=\"pb-3 px-0 d-flex justify-end\">\n            <v-btn\n              v-if=\"isExpired\"\n              class=\"mr-2\"\n              depressed\n              width=\"242\"\n              color=\"primary\"\n              data-cy=\"refresh-rfq-button\"\n              @click=\"$emit('refresh-rfq', rfqId)\"\n            >\n              {{ $t('common.refreshQuote') }}\n            </v-btn>\n            <v-tooltip bottom :disabled=\"!(isSvgPending || is2dDrawingPending)\">\n              <template v-slot:activator=\"{ on, attrs }\">\n                <div v-on=\"on\">\n                  <v-btn\n                    v-if=\"_.get(user, 'isAdmin') || _.get(user, ['rights', 'placeOrder'])\"\n                    v-bind=\"attrs\"\n                    :disabled=\"isExpired || isSvgPending || is2dDrawingPending || (currentOrder && !currentOrder.canAddItem(parts[0]))\"\n                    depressed\n                    width=\"242\"\n                    color=\"primary\"\n                    data-cy=\"place-order-button\"\n                    @click=\"addEstimateToOrder()\"\n                  >\n                    {{ $t('views.productOption.addToOrder') }}\n                  </v-btn>\n                </div>\n              </template>\n              <template v-if=\"is2dDrawingPending\">\n                {{ $t('views.productOption.addToOrderToolTip') }}\n              </template>\n              <template v-else>\n                {{ $t('views.productOption.addToOrderSvgToolTip') }}\n              </template>\n            </v-tooltip>\n          </v-card-actions>\n        </v-card>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport currency from 'currency.js';\nimport { mapState, mapGetters, mapActions } from 'vuex';\nimport CurrencyFormatterMixin from '@/mixins/currencyFormatter';\n\nconst { Part, Company } = models.api;\n\nexport default {\n  name: 'RfqPartsTable',\n  mixins: [CurrencyFormatterMixin],\n  props: {\n    rfqId: { type: String },\n    isLoadingPartsRfqId: { type: String },\n    nbrOfPart: { type: Number },\n    isCardView: { type: Boolean },\n    searchValue: { type: String },\n    isExpired: { type: Boolean },\n    filteredPartItems: { type: Array, default: () => [] }\n  },\n  data() {\n    return {\n      currency,\n      displayAll: false,\n      orderId: '',\n      loadingParts: false\n    };\n  },\n  computed: {\n    ...mapState('app', ['locale', 'currentOrder']),\n    ...mapGetters('auth', ['user']),\n    partsIdInStore() {\n      return Part.findInStore({\n        query: {\n          EstimateID: this.rfqId,\n        },\n      }).data.map(part => part._id);\n    },\n\n    parts() {\n      const queryFilter = {\n        query: {\n          EstimateID: this.rfqId,\n        }\n      };\n\n      if (!this.displayAll && !_.isEmpty(this.filteredPartItems)) {\n        queryFilter.query._id = { $in: this.filteredPartItems };\n      }\n\n      return Part.findInStore(queryFilter).data;\n    },\n\n    isSvgPending: vm => vm.parts.some(part => part.Machine === 'sheet-metal' && part.LaserEngraving === '1' && !part.SvgFile),\n\n    is2dDrawingPending: vm => vm.parts.some(part => {\n      const need2dDrawing = _.get(part, 'Others.need2dDrawing', false);\n      return part.Machine === 'sheet-metal' && need2dDrawing && !part.TwoDFile;\n    }),\n\n    company: () => Company.getFromStore(0),\n\n    partsTableHeaders: vm => [\n      {\n        text: vm.$t('views.rfqs.partNumber'),\n        value: 'CustItemName',\n      },\n      {\n        text: vm.$t('views.rfqs.revision'),\n        value: 'Revision',\n      },\n      {\n        text: vm.$t('common.description'),\n        value: 'CustItemDesc',\n      },\n      {\n        text: vm.$t('views.rfqs.material'),\n        value: 'MaterialStr',\n      },\n      {\n        text: vm.$t('views.rfqs.series'),\n        value: 'materialSeriesShortened',\n      },\n      {\n        text: vm.$t('views.rfqs.thickness'),\n        value: 'MaterialThicknessStr',\n      },\n      {\n        text: vm.$t('views.rfqs.roughness'),\n        value: 'Roughness',\n      },\n      {\n        text: vm.$t('views.rfqs.finish'),\n        value: 'MaterialFinishStr',\n      },\n      {\n        text: vm.$t('views.instantQuote.tolerances'),\n        value: 'Tolerance',\n      },\n      {\n        text: vm.$t('views.myParts.productLocation'),\n        value: 'FactoryName',\n      },\n\n      {\n        text: vm.$t('views.rfqs.unitPrice', { currencySymbol: vm.company.currencySymbol }),\n        value: 'PriceMOQ',\n        sortable: false,\n      },\n      {\n        text: vm.$t('views.rfqs.quantity'),\n        value: 'ReqQty',\n      },\n      {\n        text: vm.$t('views.rfqs.netPrice', { currencySymbol: vm.company.currencySymbol }),\n        value: 'Net',\n        sortable: false,\n      },\n    ].map(h => ({\n      align: 'center',\n      class: ['text-uppercase'],\n      ...h,\n    })),\n  },\n\n  methods: {\n    ...mapActions('app', ['initCurrentOrder']),\n\n    onClickChild(value) {\n      this.$emit('click:openSideView', value);\n    },\n    priceRange(part) {\n      try {\n        return JSON.parse(part.PriceMOQ);\n      } catch {\n        return false;\n      }\n    },\n    async getAllMissingPart() {\n      this.displayAll = !this.displayAll;\n      if (!this.displayAll) {\n        return;\n      }\n\n      if (this.partsIdInStore.length === this.nbrOfPart) {\n        return;\n      }\n      this.loadingParts = true;\n      await Part.find({\n        query: {\n          EstimateID: this.rfqId,\n          _id: { $nin: this.partsIdInStore }\n        }\n      });\n      this.loadingParts = false;\n    },\n    customerPriceRange(part) {\n      if (!this.priceRange(part)) {\n        return [];\n      }\n      const reqQtyPriceIndex = this.priceRange(part)\n        .findIndex(range => range.Qty > part.ReqQty) - 1;\n      if (reqQtyPriceIndex < 0) {\n        return this.priceRange(part).slice(-1);\n      }\n      return this.priceRange(part)\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange(part).length));\n    },\n    highlight(value) {\n      const escapedStringRegEx = _.escapeRegExp(this.searchValue);\n      const re = new RegExp(`(${escapedStringRegEx})`, 'gi');\n      if (!_.isEmpty(this.filteredPartItems)) {\n        return value.replace(\n          re,\n          '<span style=\"background-color: yellow\">$1</span>'\n        );\n      }\n      return value;\n    },\n    getPrice(estimateLine) {\n      if (!estimateLine.PriceMOQ) {\n        return currency(0, { symbol: this.company.currencySymbol });\n      }\n      const pricePerMoq = JSON.parse(estimateLine.PriceMOQ)[0];\n      if (!pricePerMoq) {\n        return currency(0, { symbol: this.company.currencySymbol });\n      }\n      return currency(pricePerMoq.Price, { symbol: this.company.currencySymbol });\n    },\n\n    async addEstimateToOrder() {\n      const order = await this.initCurrentOrder();\n\n      this.parts.forEach(part => order.addItem('estimate', part._id, part.ReqQty));\n    },\n\n    getRoughnessName(roughnessValue) {\n      switch (roughnessValue) {\n        case '6.0':\n          return this.$t('views.rfqs.roughnessMilled');\n        case '3.2':\n          return this.$t('views.rfqs.roughnessStandard');\n        case '1.6':\n          return this.$t('views.rfqs.roughnessFine');\n        case '0.8':\n          return this.$t('views.rfqs.roughnessGrade');\n        default:\n          return '-';\n      }\n    },\n  }\n};\n</script>\n\n<style scoped>\n\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n  height: 25px !important;\n  margin-top: 10px;\n}\n\n>>> .v-data-table__wrapper > table > thead > tr > th {\n  color: #9f9f9f !important;;\n  background-color: #f4f4f4 !important;\n  height: 15px !important;\n}\n\n::v-deep thead th:first-child {\n  border-radius: 0 !important;\n}\n\n::v-deep thead th:last-child {\n  border-radius: 0 !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RfqPartsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RfqPartsTable.vue?vue&type=template&id=378ca4d1&scoped=true&\"\nimport script from \"./RfqPartsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./RfqPartsTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RfqPartsTable.vue?vue&type=style&index=0&id=378ca4d1&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"378ca4d1\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VContainer,VDataTable,VRow,VSheet,VSkeletonLoader,VTooltip})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableUnitPricing.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expand-transition',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.computedExpanded),expression:\"computedExpanded\"}]},[_c('v-card-text',{staticClass:\"overflow-y-auto\",staticStyle:{\"max-height\":\"200px\"},attrs:{\"id\":\"scroll-target\"}},[(_vm._.get(_vm.data[0], 'pricing'))?_c('core-rfq-parts-table',{attrs:{\"parts\":_vm.data,\"dense\":true}}):_c('core-order-items-table',{attrs:{\"items\":_vm.data,\"dense\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-expand-transition v-show=\"computedExpanded\">\n    <v-card-text\n      id=\"scroll-target\"\n      style=\"max-height: 200px\"\n      class=\"overflow-y-auto\"\n    >\n      <core-rfq-parts-table\n        v-if=\"_.get(data[0], 'pricing')\"\n        :parts=\"data\"\n        :dense=\"true\"\n      />\n      <core-order-items-table\n        v-else\n        :items=\"data\"\n        :dense=\"true\"\n      />\n      <!--      <v-list-->\n      <!--        v-scroll:#scroll-target=\"onScroll\"-->\n      <!--        dense-->\n      <!--        align=\"center\"-->\n      <!--        justify=\"center\"-->\n      <!--      >-->\n      <!--        <v-list-item-->\n      <!--          v-for=\"(part, i) in data\"-->\n      <!--          :key=\"i\"-->\n      <!--          @click=\"()=>{}\"-->\n      <!--        >-->\n      <!--          <v-list-item-content>-->\n      <!--            {{ part.clientPartNo || part.part.clientPartNo }}-->\n      <!--          </v-list-item-content>-->\n      <!--          <v-list-item-content>-->\n      <!--            {{ part.material || part.part.material }}-->\n      <!--          </v-list-item-content>-->\n      <!--        </v-list-item>-->\n      <!--      </v-list>-->\n    </v-card-text>\n  </v-expand-transition>\n</template>\n\n<script>\nexport default {\n  props: ['expanded', 'data', 'toggleaction'],\n  computed: {\n    computedExpanded: {\n      get() {\n        return this.toggleExpanded;\n      },\n      set() {\n        this.toggleaction();\n      }\n    }\n  },\n  methods: {\n    onScroll(e) {\n      this.offsetTop = e.target.scrollTop;\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardTransition.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardTransition.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RFQCardTransition.vue?vue&type=template&id=2828f4ca&\"\nimport script from \"./RFQCardTransition.vue?vue&type=script&lang=js&\"\nexport * from \"./RFQCardTransition.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\ninstallComponents(component, {VCardText,VExpandTransition})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'materials';\n\nconst Model = class Material extends BaseModel {\n  static modelName = 'Material';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ownerships.vue?vue&type=style&index=0&id=07802151&scoped=true&lang=css&\"","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\nimport i18n from '@/plugins/i18n';\n\nconst servicePath = 'parts';\n\nconst Model = class Part extends BaseModel {\n    static modelName = 'Part';\n\n    static instanceDefaults() {\n      return {\n        MaterialStr: '',\n        MaterialSeriesStr: '',\n        EstimateLineStatus: {\n          isDrawingUploaded: false,\n          isDrawingUploadedMsg: '',\n          isManufacturable: false,\n          isManufacturableMsg: '',\n          isThumbnailUploaded: false,\n          isThumbnailUploadedMsg: '',\n          isObjUploaded: false,\n          isObjUploadedMsg: '',\n          isDxfUploaded: false,\n          isDxfUploadedMsg: '',\n          isMeshUploaded: false,\n          isMeshUploadedMsg: '',\n          isThicknessCalculated: false,\n          isThicknessCalculatedMsg: ''\n        }\n      };\n    }\n\n    static setupInstance(data) {\n      if (data.ExpiryDate) {\n        data.ExpiryDate = new Date(data.ExpiryDate);\n      }\n      if (data.MaterialStr && data.MaterialSeriesStr) {\n        this.materialSeriesShortened = data.MaterialSeriesStr.replace(data.MaterialStr, '').trim();\n      }\n      return data;\n    }\n\n    get materialTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialStr : this.MaterialStrChs;\n    }\n\n    get materialThicknessTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialThicknessStr : this.MaterialThicknessStrChs;\n    }\n\n    get materialSeriesTranslation() {\n      return i18n.locale === 'en-US' ? this.materialSeriesShortened : this.MaterialSeriesStrChs;\n    }\n\n    get materialFinishTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialFinishStr.replace(/-/g, '') : this.MaterialFinishStrChs.replace(/-/g, '');\n    }\n\n    get materialFinishOptionTranslation() {\n      return i18n.locale === 'en-US' ? this.MaterialFinishOptionStr.replace(/-/g, '') : this.MaterialFinishOptionStrChs.replace(/-/g, '');\n    }\n\n    get toleranceTranslation() {\n      if (!this.Tolerance) {\n        return '-';\n      }\n\n      return i18n.t(`views.instantQuote.tolerance${this.Tolerance.replace('Precision', '').trim()}`);\n    }\n\n    get is2dModel() {\n      if (this.CustFileName) {\n        return this.CustFileName.split('.').pop().replaceAll(' ', '').toUpperCase() === 'DXF';\n      }\n      return false;\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{staticStyle:{\"overflow-y\":\"hidden !important\",\"width\":\"100%\",\"background-color\":\"rgba(25, 25, 25, .9)\"},attrs:{\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isSidePanelOpen),callback:function ($$v) {_vm.isSidePanelOpen=$$v},expression:\"isSidePanelOpen\"}},[_c('div',{staticClass:\"d-flex justify-end\",staticStyle:{\"background-color\":\"transparent\",\"width\":\"100%\",\"z-index\":\"99\",\"height\":\"112px\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"dark\":\"\"},on:{\"click\":function($event){_vm.$emit('closeSidePanel', false); _vm.isSidePanelOpen=false; _vm.activeTab = 0;}}},[_c('v-icon',{attrs:{\"x-large\":\"\"}},[_vm._v(\" mdi-close \")])],1)],1),(_vm.isMeshUploaded)?_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"136px\",\"left\":\"50%\",\"transform\":\"translateX(-50%)\",\"z-index\":\"999\"}},[_c('v-icon',{staticClass:\"mr-12\",attrs:{\"large\":\"\",\"color\":\"#5FCE79\"}},[_vm._v(\" mdi-rotate-3d \")]),_c('v-icon',{attrs:{\"large\":\"\",\"color\":\"#5FCE79\"}},[_vm._v(\" mdi-magnify-minus-outline \")])],1):_vm._e(),_c('div',[_c('v-sheet',{staticClass:\"pa-3\",staticStyle:{\"position\":\"fixed\",\"top\":\"50px\",\"right\":\"0\"},attrs:{\"rounded\":\"\"}},[(_vm.part && _vm.part.Item)?_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('v-tabs',{staticClass:\"flex-grow-1\",staticStyle:{\"width\":\"400px\"},attrs:{\"centered\":\"\",\"grow\":\"\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[_c('v-tab',{attrs:{\"disabled\":_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error'}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\" mdi-file-document \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.specifications'))+\" \")])],1),_c('v-tab',{attrs:{\"disabled\":_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error'}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\" mdi-text-box-check-outline \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.analysis'))+\" \")])],1)],1),(_vm.isAnalysisPending)?_c('div',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"width\":\"400px\",\"z-index\":\"99\",\"height\":\"calc(100vh - 250px)\",\"overflow-y\":\"auto\"}},[_c('v-progress-circular',{attrs:{\"size\":90,\"width\":5,\"indeterminate\":\"\",\"color\":\"primary\"}})],1):_c('v-tabs-items',{staticStyle:{\"max-width\":\"450px\",\"z-index\":\"99\",\"height\":\"calc(100vh - 250px)\",\"overflow-y\":\"auto\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[(_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error')?[_c('v-tab-item',{staticClass:\"pt-5\"},[_c('v-alert',{attrs:{\"color\":\"#F3D9DE\"}},[_c('div',{staticClass:\"body-2 font-weight-bold\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"z-index\":\"9999\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"mr-1\",staticStyle:{\"vertical-align\":\"sub\"},attrs:{\"color\":\"#B00020\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle-outline \")])]}}],null,false,1649899894)},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('sidePanelErrorAndWarning.errorTooltip'))}})]),_c('div',{staticClass:\"d-inline\"},[_c('span',{staticClass:\"text-uppercase\"},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.Sorry'))),_c('p',{staticClass:\"text--secondary caption mb-0 mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t(_vm.analysisDataRankOne.Value))+\" \")])])])])],1)])],1)]:[_c('v-tab-item',{staticClass:\"pt-5\"},[_c('core-parts-design-data-table',{attrs:{\"part\":_vm.part}}),_c('core-manufacturing-process-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}}),(_vm.twoDNestingResultSvgUrl)?_c('img',{staticClass:\"my-2\",attrs:{\"src\":_vm.twoDNestingResultSvgUrl,\"width\":\"400px\",\"alt\":\"nestingEngineOutput\"}}):_vm._e()],1),_c('v-tab-item',{staticClass:\"pt-5\"},[_c('core-dfm-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}}),_c('core-process-limitations-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}}),_c('core-warning-error-table',{staticClass:\"my-2\",attrs:{\"part\":_vm.part}})],1)]],2)],1):_c('div',{staticClass:\"d-flex font-weight-bold justify-end align-center\",staticStyle:{\"height\":\"500px\"}},[_c('span',{staticClass:\"mx-12\"},[(_vm.analysisDataRankOne && _vm.analysisDataRankOne.Description === '3dSideViewer.error')?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.analysisDataRankOne.Value))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('common.calculateCostToViewDetails'))+\" \")])])])]),_c('div',{ref:\"largeInspector\"}),(_vm.isOpen && !_vm.isAnalysisPending && !_vm.isMountedPending)?_c('core-model-viewer',{attrs:{\"part\":_vm.part,\"height\":_vm.modelViewerHeight,\"width\":_vm.modelViewerWidth,\"viewport\":_vm.$refs.largeInspector,\"is-svg-uploaded\":_vm.isSvgUploaded,\"is-mesh-uploaded\":_vm.isMeshUploaded,\"is-interactive\":\"\"}}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-navigation-drawer\n    v-model=\"isSidePanelOpen\"\n    style=\";\n        overflow-y: hidden !important;\n        width: 100%;\n        background-color: rgba(25, 25, 25, .9);\"\n    fixed\n    stateless\n    hide-overlay\n    right\n    temporary\n  >\n    <div\n      class=\"d-flex justify-end\"\n      style=\"background-color: transparent;width:100%; z-index: 99; height: 112px\"\n    >\n      <v-btn\n        icon\n        dark\n        @click=\"$emit('closeSidePanel', false); isSidePanelOpen=false; activeTab = 0;\"\n      >\n        <v-icon x-large>\n          mdi-close\n        </v-icon>\n      </v-btn>\n    </div>\n    <div\n      v-if=\"isMeshUploaded\"\n      style=\"position:absolute; top: 136px; left: 50%; transform: translateX(-50%); z-index: 999\"\n    >\n      <v-icon large class=\"mr-12\" color=\"#5FCE79\">\n        mdi-rotate-3d\n      </v-icon>\n      <v-icon large color=\"#5FCE79\">\n        mdi-magnify-minus-outline\n      </v-icon>\n    </div>\n    <div>\n      <v-sheet\n        style=\"position: fixed; top: 50px;  right: 0;\"\n        rounded\n        class=\"pa-3\"\n      >\n        <div v-if=\"part && part.Item\" style=\"height: 100%;\">\n          <v-tabs\n            v-model=\"activeTab\"\n            class=\"flex-grow-1\"\n            centered\n            grow\n            style=\"width:400px;\"\n          >\n            <v-tab :disabled=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\">\n              <v-icon class=\"mr-2\">\n                mdi-file-document\n              </v-icon>\n              <span>\n                {{ $t('common.specifications') }}\n              </span>\n            </v-tab>\n\n            <v-tab :disabled=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\">\n              <v-icon class=\"mr-2\">\n                mdi-text-box-check-outline\n              </v-icon>\n              <span>\n                {{ $t('common.analysis') }}\n              </span>\n            </v-tab>\n          </v-tabs>\n          <div\n            v-if=\"isAnalysisPending\"\n            class=\"d-flex align-center justify-center\"\n            style=\"width: 400px; z-index: 99; height: calc(100vh - 250px); overflow-y: auto;\"\n          >\n            <v-progress-circular\n              :size=\"90\"\n              :width=\"5\"\n              indeterminate\n              color=\"primary\"\n            />\n          </div>\n          <!-- TODO no need for components, bring them up to top level -->\n          <v-tabs-items\n            v-else\n            v-model=\"activeTab\"\n            style=\"max-width: 450px; z-index: 99; height: calc(100vh - 250px); overflow-y: auto;\"\n          >\n            <template\n              v-if=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\"\n            >\n              <v-tab-item class=\"pt-5\">\n                <v-alert\n                  color=\"#F3D9DE\"\n                >\n                  <div class=\"body-2 font-weight-bold\">\n                    <v-tooltip top z-index=\"9999\">\n                      <template v-slot:activator=\"{ on, attrs }\">\n                        <v-icon\n                          v-bind=\"attrs\"\n                          class=\"mr-1\"\n                          color=\"#B00020\"\n                          style=\"vertical-align: sub\"\n                          v-on=\"on\"\n                        >\n                          mdi-alert-circle-outline\n                        </v-icon>\n                      </template>\n                      <span v-html=\"$t('sidePanelErrorAndWarning.errorTooltip')\" />\n                    </v-tooltip>\n                    <div class=\"d-inline\">\n                      <span class=\"text-uppercase\">\n                        <span>\n                          <!--                          {{ $t('common.Error') }}&lt;!&ndash; - {{ $t('common.serverResponseError') }}&ndash;&gt;-->\n                          {{ $t('common.Sorry') }}<!-- - {{ $t('common.serverResponseError') }}-->\n                          <p class=\"text--secondary caption mb-0 mt-2\">\n                            {{ $t(analysisDataRankOne.Value) }}\n                          </p>\n                        </span>\n                      </span>\n                    </div>\n                  </div>\n                </v-alert>\n              </v-tab-item>\n            </template>\n            <template v-else>\n              <v-tab-item class=\"pt-5\">\n                <core-parts-design-data-table :part=\"part\" />\n                <core-manufacturing-process-table :part=\"part\" class=\"my-2\" />\n                <img\n                  v-if=\"twoDNestingResultSvgUrl\"\n                  class=\"my-2\"\n                  :src=\"twoDNestingResultSvgUrl\"\n                  width=\"400px\"\n                  alt=\"nestingEngineOutput\"\n                >\n              </v-tab-item>\n              <v-tab-item class=\"pt-5\">\n                <core-dfm-table :part=\"part\" class=\"my-2\" />\n                <core-process-limitations-table :part=\"part\" class=\"my-2\" />\n                <core-warning-error-table :part=\"part\" class=\"my-2\" />\n              </v-tab-item>\n            </template>\n          </v-tabs-items>\n        </div>\n        <div v-else class=\"d-flex font-weight-bold justify-end align-center\" style=\"height:500px;\">\n          <span class=\"mx-12\">\n            <span v-if=\"analysisDataRankOne && analysisDataRankOne.Description === '3dSideViewer.error'\">\n              {{ $t(analysisDataRankOne.Value) }}\n            </span>\n            <span v-else>\n              {{ $t('common.calculateCostToViewDetails') }}\n            </span>\n          </span>\n        </div>\n      </v-sheet>\n      <div ref=\"largeInspector\" />\n      <core-model-viewer\n        v-if=\"isOpen && !isAnalysisPending && !isMountedPending\"\n        :part=\"part\"\n        :height=\"modelViewerHeight\"\n        :width=\"modelViewerWidth\"\n        :viewport=\"$refs.largeInspector\"\n        :is-svg-uploaded=\"isSvgUploaded\"\n        :is-mesh-uploaded=\"isMeshUploaded\"\n        is-interactive\n      />\n    </div>\n  </v-navigation-drawer>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\n\nconst { CsiAnalysis } = models.api;\nexport default {\n  name: 'PartViewerDrawer',\n  props: {\n    part: Object,\n    isOpen: { type: Boolean, default: false },\n  },\n  data() {\n    return {\n      isLoadingSidePanelValues: false,\n      modelViewerWidth: 0,\n      modelViewerHeight: 0,\n      activeTab: 0,\n      isSidePanelOpen: this.isOpen,\n      isMountedPending: true,\n    };\n  },\n  computed: {\n    ...mapState('csi-analysis', { isAnalysisPending: 'isGetPending' }),\n    ...mapState('auth', ['accessToken']),\n    isMeshUploaded() {\n      const estimateLineStatus = _.get(this.part, 'EstimateLineStatus', null);\n      if (estimateLineStatus && estimateLineStatus.isMeshUploaded !== undefined) {\n        return estimateLineStatus.isMeshUploaded;\n      }\n      return !this.part.is2dModel;\n    },\n    isSvgUploaded() {\n      const estimateLineStatus = _.get(this.part, 'EstimateLineStatus', null);\n      if (estimateLineStatus && estimateLineStatus.isSvgUploaded !== undefined) {\n        return estimateLineStatus.isSvgUploaded;\n      }\n      return this.part.is2dModel;\n    },\n    analysisDataRankOne() {\n      if (this.part) {\n        const data = _.get(CsiAnalysis.getFromStore(this.part.Item), 'data', []);\n        return data.find(d => d.Rank === '1');\n      }\n      return null;\n    },\n    twoDNestingResultSvgUrl() {\n      const host = process.env.VUE_APP_API_URL;\n      const is2dSvgNestedUploaded = _.get(this.part, 'Others.is2dSvgNestedUploaded', false);\n      if (is2dSvgNestedUploaded) {\n        const { DrawingRowPointer } = this.part;\n        const fileName = `${DrawingRowPointer.toLowerCase()}-2dNested.SVG`;\n        return `${host}uploads/${fileName}/${this.accessToken}/${this.part.Item}/File`;\n      }\n      const estimateLineStatus = _.get(this.part, 'EstimateLineStatus', null);\n      if (estimateLineStatus && estimateLineStatus.isSvgNestedUploadedCsi) {\n        const fileName = `${this.part.DrawingRowPointer.toLowerCase()}-2dNested.SVG`;\n        return `${host}uploads/${fileName}/${this.accessToken}/${this.part.Item}/File?updatedAt=${this.part.updatedAt}`;\n      }\n      return null;\n    },\n\n  },\n  watch: {\n    isOpen(val) {\n      this.isSidePanelOpen = val;\n      if (val) {\n        document.documentElement.style.overflowY = 'hidden';\n      } else {\n        document.documentElement.style.overflowY = 'visible';\n      }\n    },\n  },\n  beforeDestroy() {\n    window.removeEventListener('resize', this.handleResize);\n  },\n\n  mounted() {\n    window.addEventListener('resize', this.handleResize);\n    this.handleResize();\n    this.isMountedPending = false;\n  },\n  created() {\n    if (this.part && this.part.Item) { CsiAnalysis.get(this.part.Item); }\n  },\n  methods: {\n\n    handleResize() {\n      if (this.isOpen) {\n        if (this.isSvgUploaded) {\n          this.modelViewerWidth = window.innerWidth - 425;\n        } else {\n          this.modelViewerWidth = window.innerWidth - 200;\n        }\n        this.modelViewerHeight = window.innerHeight - 112;\n      } else {\n        this.modelViewerWidth = 0;\n        this.modelViewerHeight = 0;\n      }\n    },\n  }\n};\n</script>\n<style scoped>\n>>> .v-navigation-drawer__content {\n    overflow-y: hidden;\n    min-width: 900px;\n}\n\n.part-viewer {\n    position: fixed;\n    left: 50%;\n    top: 50%;\n    transform: translate(-50%, -50%);\n    z-index: 20;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartViewerDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartViewerDrawer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PartViewerDrawer.vue?vue&type=template&id=a8ec6348&scoped=true&\"\nimport script from \"./PartViewerDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./PartViewerDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PartViewerDrawer.vue?vue&type=style&index=0&id=a8ec6348&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"a8ec6348\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VIcon,VNavigationDrawer,VProgressCircular,VSheet,VTab,VTabItem,VTabs,VTabsItems,VTooltip})\n","export default {\n  methods: {\n    formatAddressText(address) {\n      const addressFields = [\n        'address1',\n        'address2',\n        'city',\n        'region',\n        'zip',\n        'country',\n      ];\n\n      return addressFields\n        .map(field => address[field])\n        .filter(field => !!field)\n        .join(', ');\n    },\n  },\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=style&index=0&id=3056b065&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('v-sheet',{directives:[{name:\"intersect\",rawName:\"v-intersect\",value:({\n      handler: _vm.onIntersect,\n      options: {\n        threshold: [1.0]\n      }\n    }),expression:\"{\\n      handler: onIntersect,\\n      options: {\\n        threshold: [1.0]\\n      }\\n    }\"}],staticClass:\"pdfCanvas\",attrs:{\"tag\":\"div\",\"elevation\":\"10\",\"width\":_vm.pageWidth,\"height\":_vm.pageHeight}},[_c('canvas',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoaded),expression:\"isLoaded\"}],ref:\"pdfCanvas\",staticStyle:{\"direction\":\"ltr\"},attrs:{\"id\":\"pdfCanvas\",\"data-cy\":\"pdf-canvas\",\"width\":_vm.pageWidth,\"height\":_vm.pageHeight}}),(!_vm.isLoaded)?_c('v-skeleton-loader',{attrs:{\"height\":_vm.pageHeight,\"type\":\"article,\\n              list-item-three-line,\\n              list-item-avatar-two-line,\\n              list-item-three-line,\\n              list-item-avatar-three-line\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"d-flex flex-column align-center\">\n    <v-sheet\n      v-intersect=\"{\n        handler: onIntersect,\n        options: {\n          threshold: [1.0]\n        }\n      }\"\n      tag=\"div\"\n      elevation=\"10\"\n      :width=\"pageWidth\"\n      :height=\"pageHeight\"\n      class=\"pdfCanvas\"\n    >\n      <canvas\n        v-show=\"isLoaded\"\n        id=\"pdfCanvas\"\n        ref=\"pdfCanvas\"\n        style=\"direction: ltr;\"\n        data-cy=\"pdf-canvas\"\n        :width=\"pageWidth\"\n        :height=\"pageHeight\"\n      />\n\n      <v-skeleton-loader\n        v-if=\"!isLoaded\"\n        :height=\"pageHeight\"\n        type=\"article,\n                list-item-three-line,\n                list-item-avatar-two-line,\n                list-item-three-line,\n                list-item-avatar-three-line\"\n      />\n    </v-sheet>\n  </div>\n</template>\n\n<script>\nexport default {\n  props: {\n    page: {\n      type: Object,\n      required: true\n    },\n    itemHeight: {\n      type: Number,\n      required: true\n    },\n    containerRef: {\n      type: Object\n    },\n  },\n\n  data: () => ({\n    height: 0,\n    width: 0,\n    isLoaded: false,\n  }),\n\n  computed: {\n    pageHeight: vm => (vm.height ? vm.height : vm.itemHeight - vm.margin),\n    pageWidth: vm => (vm.width ? vm.width : (vm.itemHeight - vm.margin) * (vm.baseRatio)),\n    margin: () => 40,\n    baseRatio: () => (8 / 11),\n  },\n\n  watch: {\n    pageHeight() {\n      this.getPage();\n    },\n  },\n\n  created() {\n    this.getPage();\n  },\n\n  methods: {\n\n    onIntersect() {\n      this.$emit('enterViewport', this.page.pageNumber);\n    },\n\n    async getPage() {\n      try {\n        if (!this.page.pdf) {\n          return;\n        }\n\n        const page = await this.page.pdf.getPage(this.page.pageNumber);\n        let viewport = page.getViewport({ scale: 1 });\n        const scale = (this.itemHeight - this.margin) / viewport.height;\n        viewport = page.getViewport({ scale }); // Prepare canvas using PDF page dimensions\n        const canvas = this.$refs.pdfCanvas;\n        const context = canvas.getContext('2d');\n        this.height = viewport.height;\n        this.width = viewport.width;\n        // Render PDF page into canvas context\n        const renderContext = { canvasContext: context, viewport };\n        const renderTask = page.render(renderContext);\n        renderTask.promise.then(() => {\n          this.isLoaded = true;\n        });\n      } catch (e) {\n        console.error(e);\n      }\n    }\n  },\n};\n</script>\n\n<style>\n.pdfCanvas {\n  transition: all 0.5s ease-in-out;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfCanvas.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfCanvas.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfCanvas.vue?vue&type=template&id=665923de&\"\nimport script from \"./PdfCanvas.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfCanvas.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdfCanvas.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VSheet,VSkeletonLoader})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Intersect from 'vuetify/lib/directives/intersect'\ninstallDirectives(component, {Intersect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"rounded d-flex flex-column align-center py-0\",staticStyle:{\"background-color\":\"#f0fdf3\",\"min-height\":\"130px\"}},[_c('span',{staticClass:\"text-subtitle-1 mt-1\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"},attrs:{\"data-cy\":\"price-per-unit-text\"}},[_vm._v(_vm._s(_vm.$t('common.unitPricePerQuantity')))]),_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"height\":\"80px\",\"grid-template-columns\":\"max-content max-content\",\"grid-template-rows\":\"25px 25px\"}},[_vm._l((_vm.customerPriceRange),function(bracket,i){return [_c('span',{key:(\"qty-\" + i),staticClass:\"text-right\",staticStyle:{\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + i),attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, {symbol: _vm.company.currencySymbol}).format())+\" \")])]}),(!_vm.customerPriceRange.length)?[_c('span',{staticClass:\"text-h6 pt-2\",staticStyle:{\"width\":\"170px\",\"color\":\"#128347\"}},[_vm._v(\" Enter details to calculate \")])]:_vm._e()],2),_c('core-rang-price-moq-label',{staticStyle:{\"width\":\"180px\"},attrs:{\"part\":_vm.part}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container\n    style=\"background-color: #f0fdf3; min-height: 130px;\"\n    class=\"rounded d-flex flex-column align-center py-0\"\n  >\n    <span class=\"text-subtitle-1 mt-1\" data-cy=\"price-per-unit-text\" style=\"color: rgba(0, 0, 0, 0.6)\">{{ $t('common.unitPricePerQuantity') }}</span>\n\n    <div\n      style=\"\n        display: grid;\n        width: min-content;\n        height: 80px;\n        grid-template-columns: max-content max-content;\n        grid-template-rows: 25px 25px;\n      \"\n    >\n      <template v-for=\"(bracket, i) in customerPriceRange\">\n        <span\n          :key=\"`qty-${i}`\"\n          style=\"color: #8D8D8D\"\n          class=\"text-right\"\n          :data-cy=\"`unit-price-qty-${i}`\"\n        >\n          {{ i === 0 ? quantity : bracket.Qty }}: {{ '\\xa0' }}\n        </span>\n        <span :key=\"`price-${i}`\" :data-cy=\"`unit-price-amount-${i}`\">\n          {{ currency(bracket.Price, {symbol: company.currencySymbol}).format() }}\n        </span>\n      </template>\n      <template v-if=\"!customerPriceRange.length\">\n        <span class=\"text-h6 pt-2\" style=\"width: 170px; color: #128347;\">\n          Enter details to calculate\n        </span>\n      </template>\n    </div>\n    <core-rang-price-moq-label\n      style=\"width: 180px;\"\n      :part=\"part\"\n    />\n  </v-container>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n  name: 'PriceMoqTableUnitPriceVariation',\n  props: {\n    part: Object,\n  },\n  data: () => ({\n    currency,\n  }),\n  computed: {\n    company: () => Company.getFromStore(0),\n\n    priceRange: vm => JSON.parse(_.get(vm, 'part.PriceMOQ', null)),\n\n    quantity: vm => {\n      if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n        return 1;\n      }\n      if (vm.part.ReqQty >= 1000000) {\n        return 1000000;\n      }\n      return vm.part.ReqQty;\n    },\n    customerPriceRange() {\n      if (!this.priceRange || this.quantity <= 0) {\n        return [];\n      }\n\n      const reqQtyPriceIndex = this.priceRange\n        .findIndex(range => range.Qty > this.quantity) - 1;\n\n      if (reqQtyPriceIndex < 0) {\n        return this.priceRange.slice(-1);\n      }\n      return this.priceRange\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PriceMoqTableUnitPriceVariation.vue?vue&type=template&id=80b0a86e&\"\nimport script from \"./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"\nexport * from \"./PriceMoqTableUnitPriceVariation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VContainer})\n","import ModelableMixin from './modelable';\n\nexport default {\n  mixins: [\n    ModelableMixin,\n  ],\n\n  props: {\n    value: {},\n  },\n\n  mounted() {\n    this.originalFormData = _.cloneDeep(this.value);\n  },\n\n  data() {\n    return {\n      originalFormData: {},\n    };\n  },\n\n  computed: {\n    localValue: {\n      get() {\n        return this.value;\n      },\n\n      set(value) {\n        this.$emit('input', value);\n      },\n    },\n\n    originalFormDataChanged() {\n      return !_.isEqual(this.localValue, this.originalFormData);\n    },\n  },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"partCard pa-1\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[(_vm.productGroup.HideDrawingsLink !== 1)?_c('v-col',{staticClass:\"pt-1\",staticStyle:{\"width\":\"140px\"},attrs:{\"cols\":\"auto\",\"align-self\":\"start\"}},[_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\",\"color\":\"primary\",\"data-cy\":\"drawing-table-btn\"},on:{\"click\":function($event){_vm.isDrawingsDialogOpen = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-vector-square \")]),_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.drawings'))+\" \")],1)],1):_vm._e(),_c('v-col',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_vm._l((_vm.productOptions),function(productOption,index){return [(productOption.attributeTypes[0].fieldType === 'dropdown')?_c('v-col',{key:(\"dropdown-\" + (productOption.id)),staticClass:\"px-1 pb-2\",attrs:{\"cols\":\"auto\",\"align-self\":\"end\"}},[_c('v-select',{staticClass:\"fit\",attrs:{\"dense\":\"\",\"attach\":\"\",\"persistent-placeholder\":\"\",\"no-data-text\":_vm.$t('common.noDataAvailableListType'),\"label\":productOption[_vm.locale === 'en-US' ? 'label' : 'labelChs' ],\"items\":_vm.filteredItems(index),\"item-text\":_vm.locale === 'cn' ? 'textChs' : 'text',\"data-cy\":(\"dropdown-\" + (productOption.id)),\"data-cy-2\":((productOption.label.toLowerCase().replaceAll(' ', '-')) + \"-select\"),\"item-value\":\"id\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('span',{attrs:{\"data-cy\":\"diameter-option\"}},[_vm._v(_vm._s(_vm.locale === 'en-US' ? data.item.text : data.item.textChs))])]}}],null,true),model:{value:(_vm.selectedOption[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOption, productOption.id, $$v)},expression:\"selectedOption[productOption.id]\"}})],1):(productOption.attributeTypes[0].fieldType === 'checkbox')?_c('v-col',{key:(\"checkbox-\" + (productOption.id)),staticClass:\"pl-0\",attrs:{\"align-self\":\"end\"}},[_c('v-checkbox',{attrs:{\"label\":productOption[_vm.locale === 'cn' ? 'labelChs' : 'label' ],\"true-value\":productOption.options[1].id,\"false-value\":productOption.options[0].id,\"data-cy\":(\"checkbox-\" + (productOption.id)),\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.selectedOption[productOption.id]),callback:function ($$v) {_vm.$set(_vm.selectedOption, productOption.id, $$v)},expression:\"selectedOption[productOption.id]\"}})],1):_vm._e(),(productOption.attributeTypes[0].fieldType === 'readonly')?_c('v-col',{key:(\"plainText-\" + (productOption.id)),attrs:{\"data-cy\":(\"plainText-\" + (productOption.id))}},[_c('div',{staticClass:\"caption\",staticStyle:{\"color\":\"rgba(0,0,0,0.6)\"}},[_vm._v(\" \"+_vm._s(productOption[_vm.locale === 'cn' ? 'labelChs' : 'label'])+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.getReadOnlyProduct[_vm.locale === 'cn' ? 'textChs' : 'text'])+\" \")])]):_vm._e()]})],2)],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[(_vm.productGroup.HidePriceMOQ !== 1)?_c('core-rang-price-moq',{staticClass:\"ml-auto mt-auto align-content-end align-self-end\",attrs:{\"part\":_vm.selectedProduct}}):_vm._e()],1)],1),_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-2\",staticStyle:{\"width\":\"140px\"},attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('v-text-field',{staticClass:\"mb-0\",attrs:{\"dense\":\"\",\"data-cy\":\"quantity-input-upload\",\"label\":_vm.$t('views.rfqs.quantity'),\"rules\":[_vm.isPositiveInteger],\"min\":\"1\",\"max\":\"9999999\",\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"keydown\":function($event){['Period', 'Minus'].includes($event.code) && $event.preventDefault()},\"click\":function($event){$event.stopPropagation();}},nativeOn:{\"input\":function($event){_vm.reqQty = _vm.updateValue($event);}},model:{value:(_vm.reqQty),callback:function ($$v) {_vm.reqQty=$$v},expression:\"reqQty\"}})],1),_c('v-col',{staticClass:\"pr-2\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg \",attrs:{\"color\":\"#F1FDF3\"}},[_c('div',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.unitPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s((_vm.UnitPrice * 1).toFixed(5))+\" \")])])],1),_c('v-col',{staticClass:\"pr-2\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('v-sheet',{staticClass:\"pa-2 py-0 rounded-lg \",attrs:{\"color\":\"#F1FDF3\"}},[_c('div',{staticClass:\"caption text--secondary text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.totalPrice', {currencySymbol: _vm.currencySymbol}))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s((_vm.UnitPrice * _vm.reqQty).toFixed(2))+\" \")])])],1),(_vm.productGroup.ShowUploadFile === 1)?_c('v-col',{staticClass:\"pr-2\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[_c('core-drawing-consultancy-pdf',{attrs:{\"pdf-url\":_vm.drawingConsultancyPdfBlobUrl},on:{\"pdfUrl\":function (event) { return _vm.drawingConsultancyPdfBlobUrl = event; }}})],1):_vm._e(),_c('v-spacer'),_c('v-col',{staticClass:\"pr-2 text-right\",attrs:{\"cols\":\"auto\",\"align-self\":\"end\"}},[(_vm.productGroup.HideAddToBag !== 1)?_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"primary\",\"disabled\":!_vm.selectedProduct || !_vm.reqQty,\"data-cy\":\"add-product-to-custom-bag\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('add-to-bag', {product:_vm.selectedProduct, quantity: _vm.reqQty})}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToCustomBag'))+\" \")]):_vm._e()],1),_c('v-col',{staticClass:\"text-left\",attrs:{\"align-self\":\"end\",\"cols\":\"auto\"}},[(_vm.currentOrder && !_vm.currentOrder.canAddHardwareProduct(_vm.selectedProduct))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g({},on),[_c('v-btn',_vm._b({attrs:{\"color\":\"primary\",\"data-cy\":\"add-product-to-order\",\"disabled\":!_vm.canOrder},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder()}}},'v-btn',attrs,false),[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)]}}],null,false,1386607774)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrderHardwareToolTip'))+\" \")])]):_c('v-btn',{attrs:{\"color\":\"primary\",\"data-cy\":\"add-product-to-order\",\"disabled\":!_vm.canOrder},on:{\"click\":function($event){$event.stopPropagation();return _vm.addToOrder()}}},[_vm._v(\" \"+_vm._s(_vm.$t('views.productOption.addToOrder'))+\" \")])],1)],1),(_vm.selectedProduct && _vm.reqQty < _vm.minQty)?_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 pt-1\",attrs:{\"cols\":\"12\"}},[_c('v-alert',{staticClass:\"text-center mb-0 mr-0\",attrs:{\"dense\":\"\",\"color\":\"#f8f2ec\",\"data-cy\":\"minimum-order-message\"}},[_c('v-icon',{attrs:{\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]),_vm._v(\" \"+_vm._s(_vm.$t('common.toAddToOrderMinimum', {qty: _vm.minQty}))+\" \")],1)],1)],1):_vm._e(),_c('v-dialog',{staticClass:\"overflow-hidden pa-0\",staticStyle:{\"height\":\"1000px !important\",\"overflow-y\":\"hidden !important\"},attrs:{\"value\":_vm.isDrawingsDialogOpen,\"width\":\"unset\",\"scrollable\":\"\"}},[_c('v-card',{staticClass:\"pa-0\"},[_c('v-card-title',{staticClass:\"pb-0\"},[_c('v-container',{staticClass:\"fill-height pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"align-self\":\"end\",\"cols\":\"10\"}},[_c('div',{staticClass:\"text-h5 text-left font-weight-bold\"},[_c('core-hardware-thumbnail-viewer',{attrs:{\"image-id\":_vm.productGroup.imageId,\"width\":50,\"height\":50}}),_vm._v(\" \"+_vm._s(_vm.productGroup[_vm.locale === 'cn' ? 'textChs' : 'text'])+\" \")],1)]),_c('v-spacer'),_c('v-col',{attrs:{\"align-self\":\"start\",\"cols\":\"1\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"data-cy\":\"close-drawing-table\"},on:{\"click\":function($event){_vm.isDrawingsDialogOpen = false;}}},[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\" mdi-close \")])],1)],1)],1)],1)],1),_c('v-card-text',{staticClass:\"overflow-hidden px-6 pt-0\",staticStyle:{\"height\":\"1000px !important\"}},[_c('core-hardware-drawing-table',{attrs:{\"product-group-key\":_vm.productGroupKey,\"product-group-id\":_vm.productGroupId,\"product-options\":_vm.productOptions,\"product-query\":_vm.pQuery,\"product-selected\":_vm.selectedProduct}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container fluid class=\"partCard pa-1\">\n    <v-row class=\"flex-nowrap\" no-gutters>\n      <v-col\n        v-if=\"productGroup.HideDrawingsLink !== 1\"\n        cols=\"auto\"\n        class=\"pt-1\"\n        style=\"width: 140px\"\n        align-self=\"start\"\n      >\n        <v-btn\n          depressed\n          text\n          color=\"primary\"\n          data-cy=\"drawing-table-btn\"\n          @click=\"isDrawingsDialogOpen = true\"\n        >\n          <v-icon\n            left\n          >\n            mdi-vector-square\n          </v-icon>\n          {{ $t('views.productOption.drawings') }}\n        </v-btn>\n      </v-col>\n      <v-col>\n        <v-row no-gutters>\n          <template v-for=\"(productOption, index) in productOptions\">\n            <v-col\n              v-if=\"productOption.attributeTypes[0].fieldType === 'dropdown'\"\n              :key=\"`dropdown-${productOption.id}`\"\n              cols=\"auto\"\n              class=\"px-1 pb-2\"\n              align-self=\"end\"\n            >\n              <v-select\n                v-model=\"selectedOption[productOption.id]\"\n                dense\n                attach\n                class=\"fit\"\n                persistent-placeholder\n                :no-data-text=\"$t('common.noDataAvailableListType')\"\n                :label=\"productOption[locale === 'en-US' ? 'label' : 'labelChs' ]\"\n                :items=\"filteredItems(index)\"\n                :item-text=\"locale === 'cn' ? 'textChs' : 'text'\"\n                :data-cy=\"`dropdown-${productOption.id}`\"\n                :data-cy-2=\"`${productOption.label.toLowerCase().replaceAll(' ', '-')}-select`\"\n                item-value=\"id\"\n                outlined\n                hide-details\n                @click.stop\n              >\n                <template slot=\"item\" slot-scope=\"data\">\n                  <span data-cy=\"diameter-option\">{{ locale === 'en-US' ? data.item.text : data.item.textChs }}</span>\n                </template>\n              </v-select>\n            </v-col>\n            <v-col\n              v-else-if=\"productOption.attributeTypes[0].fieldType === 'checkbox'\"\n              :key=\"`checkbox-${productOption.id}`\"\n              class=\"pl-0\"\n              align-self=\"end\"\n            >\n              <v-checkbox\n                v-model=\"selectedOption[productOption.id]\"\n                :label=\"productOption[locale === 'cn' ? 'labelChs' : 'label' ]\"\n                :true-value=\"productOption.options[1].id\"\n                :false-value=\"productOption.options[0].id\"\n                :data-cy=\"`checkbox-${productOption.id}`\"\n                hide-details\n                @click.stop\n              />\n            </v-col>\n            <v-col\n              v-if=\"productOption.attributeTypes[0].fieldType === 'readonly'\"\n              :key=\"`plainText-${productOption.id}`\"\n              :data-cy=\"`plainText-${productOption.id}`\"\n            >\n              <div\n                style=\"color:rgba(0,0,0,0.6);\"\n                class=\"caption\"\n              >\n                {{ productOption[locale === 'cn' ? 'labelChs' : 'label'] }}\n              </div>\n              <div>\n                {{\n                  getReadOnlyProduct[locale === 'cn' ? 'textChs' : 'text']\n                }}\n              </div>\n            </v-col>\n          </template>\n        </v-row>\n      </v-col>\n\n      <v-col cols=\"auto\">\n        <core-rang-price-moq\n          v-if=\"productGroup.HidePriceMOQ !== 1\"\n          class=\"ml-auto mt-auto align-content-end align-self-end\"\n          :part=\"selectedProduct\"\n        />\n      </v-col>\n    </v-row>\n    <v-row no-gutters class=\"flex-nowrap\">\n      <v-col\n        style=\"width:140px\"\n        align-self=\"end\"\n        cols=\"auto\"\n        class=\"pr-2\"\n      >\n        <v-text-field\n          v-model=\"reqQty\"\n          class=\"mb-0\"\n          dense\n          data-cy=\"quantity-input-upload\"\n          :label=\"$t('views.rfqs.quantity')\"\n          :rules=\"[isPositiveInteger]\"\n          min=\"1\"\n          max=\"9999999\"\n          type=\"number\"\n          hide-details\n          outlined\n          @input.native=\"reqQty = updateValue($event); \"\n          @keydown=\"['Period', 'Minus'].includes($event.code) && $event.preventDefault()\"\n          @click.stop\n        />\n      </v-col>\n      <v-col align-self=\"end\" cols=\"auto\" class=\"pr-2\">\n        <v-sheet color=\"#F1FDF3\" class=\"pa-2 py-0 rounded-lg \">\n          <div class=\"caption text--secondary text-left\">\n            {{ $t('views.productOption.unitPrice', {currencySymbol: currencySymbol}) }}\n          </div>\n          <span>\n            {{ (UnitPrice * 1).toFixed(5) }}\n          </span>\n        </v-sheet>\n      </v-col>\n      <v-col align-self=\"end\" cols=\"auto\" class=\"pr-2\">\n        <v-sheet color=\"#F1FDF3\" class=\"pa-2 py-0 rounded-lg \">\n          <div class=\"caption text--secondary text-left\">\n            {{ $t('views.productOption.totalPrice', {currencySymbol: currencySymbol}) }}\n          </div>\n          <span>\n            {{ (UnitPrice * reqQty).toFixed(2) }}\n          </span>\n        </v-sheet>\n      </v-col>\n      <v-col\n        v-if=\"productGroup.ShowUploadFile === 1\"\n        align-self=\"end\"\n        cols=\"auto\"\n        class=\"pr-2\"\n      >\n        <core-drawing-consultancy-pdf\n          :pdf-url=\"drawingConsultancyPdfBlobUrl\"\n          @pdfUrl=\"(event) => drawingConsultancyPdfBlobUrl = event\"\n        />\n      </v-col>\n      <v-spacer />\n      <v-col\n        cols=\"auto\"\n        align-self=\"end\"\n        class=\"pr-2 text-right\"\n      >\n        <v-btn\n          v-if=\"productGroup.HideAddToBag !== 1\"\n          outlined\n          color=\"primary\"\n          :disabled=\"!selectedProduct || !reqQty\"\n          data-cy=\"add-product-to-custom-bag\"\n          @click.stop=\"$emit('add-to-bag', {product:selectedProduct, quantity: reqQty})\"\n        >\n          {{ $t('views.productOption.addToCustomBag') }}\n        </v-btn>\n      </v-col>\n      <v-col align-self=\"end\" class=\"text-left\" cols=\"auto\">\n        <v-tooltip v-if=\"currentOrder && !currentOrder.canAddHardwareProduct(selectedProduct)\" bottom>\n          <template v-slot:activator=\"{ on, attrs }\">\n            <div v-on=\"on\">\n              <v-btn\n                v-bind=\"attrs\"\n                color=\"primary\"\n                data-cy=\"add-product-to-order\"\n                :disabled=\"!canOrder\"\n                @click.stop=\"addToOrder()\"\n              >\n                {{ $t('views.productOption.addToOrder') }}\n              </v-btn>\n            </div>\n          </template>\n          <span>\n            {{ $t('views.productOption.addToOrderHardwareToolTip') }}\n          </span>\n        </v-tooltip>\n        <v-btn\n          v-else\n          color=\"primary\"\n          data-cy=\"add-product-to-order\"\n          :disabled=\"!canOrder\"\n          @click.stop=\"addToOrder()\"\n        >\n          {{ $t('views.productOption.addToOrder') }}\n        </v-btn>\n      </v-col>\n    </v-row>\n    <v-row v-if=\"selectedProduct && reqQty < minQty\" class=\"flex-nowrap\" no-gutters>\n      <v-col class=\"pa-0 pt-1\" cols=\"12\">\n        <v-alert\n          dense\n          color=\"#f8f2ec\"\n          class=\"text-center mb-0 mr-0\"\n          data-cy=\"minimum-order-message\"\n        >\n          <v-icon\n            color=\"#C77500\"\n          >\n            mdi-alert-outline\n          </v-icon>\n          {{ $t('common.toAddToOrderMinimum', {qty: minQty}) }}\n        </v-alert>\n      </v-col>\n    </v-row>\n\n    <v-dialog\n      style=\"height: 1000px !important; overflow-y: hidden !important; \"\n      :value=\"isDrawingsDialogOpen\"\n      width=\"unset\"\n      scrollable\n      class=\"overflow-hidden pa-0\"\n    >\n      <v-card class=\"pa-0\">\n        <v-card-title class=\"pb-0\">\n          <v-container fluid class=\"fill-height pa-0\">\n            <v-row>\n              <v-col align-self=\"end\" cols=\"10\">\n                <div class=\"text-h5 text-left font-weight-bold\">\n                  <core-hardware-thumbnail-viewer\n                    :image-id=\"productGroup.imageId\"\n                    :width=\"50\"\n                    :height=\"50\"\n                  />\n                  {{ productGroup[locale === 'cn' ? 'textChs' : 'text'] }}\n                </div>\n              </v-col>\n              <v-spacer />\n              <v-col align-self=\"start\" cols=\"1\">\n                <v-btn\n                  icon\n                  data-cy=\"close-drawing-table\"\n                  @click=\"isDrawingsDialogOpen = false;\"\n                >\n                  <v-icon large>\n                    mdi-close\n                  </v-icon>\n                </v-btn>\n              </v-col>\n            </v-row>\n          </v-container>\n        </v-card-title>\n        <v-card-text class=\"overflow-hidden px-6 pt-0\" style=\"height: 1000px !important; \">\n          <core-hardware-drawing-table\n            :product-group-key=\"productGroupKey\"\n            :product-group-id=\"productGroupId\"\n            :product-options=\"productOptions\"\n            :product-query=\"pQuery\"\n            :product-selected=\"selectedProduct\"\n          />\n        </v-card-text>\n      </v-card>\n    </v-dialog>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapActions, mapState, mapGetters } from 'vuex';\nimport currency from 'currency.js';\nimport FormRules from '@/mixins/form-rules';\n\nexport default {\n  name: 'ProductOption',\n\n  mixins: [\n    FormRules,\n  ],\n\n  props: {\n    productGroupId: {\n      type: String,\n      default: ''\n    },\n    productGroupKey: {\n      type: String,\n      default: ''\n    },\n    productOptions: {\n      type: Array,\n      default: () => []\n    },\n    productQuery: {\n      type: Object,\n      default: () => {\n      },\n    },\n    productGroup: {\n      type: Object,\n      default: () => {\n      },\n    },\n  },\n  data() {\n    return {\n      priceProduct: {},\n      isDrawingsDialogOpen: false,\n      selectedOptions: {},\n      reqQty: 1,\n      customBag: [],\n      currency,\n      forceUpdateField: Date.now(),\n      drawingConsultancyPdfBlobUrl: null,\n    };\n  },\n\n  computed: {\n    ...mapState('app', ['locale']),\n    ...mapGetters('app', ['currentOrder']),\n    HardwareProduct: () => models.api.HardwareProduct,\n\n    minQty: vm => {\n      if (vm.selectedProduct.PriceMOQ.length === 0) {\n        return 1;\n      }\n      return Math.min(...vm.selectedProduct.PriceMOQ.map(o => o.Qty));\n    },\n\n    filteredItems: vm => index => {\n      const currentOption = vm.productOptions[index];\n      if (!currentOption) {\n        return [];\n      }\n\n      const optionsFilter = vm.productOptions.slice(0, index).map(o => ({ [o.id]: vm.selectedOptions[o.id] || '' }));\n      // Please figure what it does, it's cool !\n      const query = {\n        query: {\n          ...vm.pQuery.query,\n          ...Object.fromEntries(optionsFilter.map(value => Object.entries(value)[0]))\n        }\n      };\n\n      const productValue = vm.HardwareProduct.findInStore(query).data;\n\n      if (productValue.length === 0) {\n        return [];\n      }\n\n      const res = productValue.map(o => (o[currentOption.id]));\n      if (res.length === 0) {\n        return [];\n      }\n\n      const data = res.map(value => currentOption.options.find(option => option.id === value)) || [];\n\n      // Important: remove undefined items, otherwise frontend v-select crash\n      return data.filter(d => d !== undefined);\n    },\n\n    pQuery: vm => {\n      const query = {\n        query: {\n          ...vm.productQuery.query,\n          [vm.productGroupKey]:\n          vm.productGroupId\n        }\n      };\n      return query;\n    },\n\n    filteredProduct: vm => vm.HardwareProduct.findInStore(vm.pQuery).data,\n    // const query = {\n    //   query: {\n    //     ...vm.pQuery.query,\n    //   }\n    // };\n\n    // vm.HardwareProduct.findInStore(vm.pQuery).data,\n\n    selectedProduct: vm => {\n      const query = {\n        query: {\n          ...vm.pQuery.query,\n          ...vm.selectedOptions\n        }\n      };\n\n      const product = vm.HardwareProduct.findInStore(query).data;\n      if (product.length === 0 || product.length > 1) {\n        return null;\n      }\n\n      // if (product[0]) {\n      //   this.priceProduct = { ...product[0], ReqQty: vm.reqQty };\n      // }\n      return product[0];\n    },\n\n    UnitPrice: vm => {\n      if (!vm.selectedProduct) {\n        return currency(0, { symbol: vm.currencySymbol, precision: 2 });\n      }\n      const priceTable = [...vm.selectedProduct.PriceMOQ];\n      priceTable.sort((a, b) => parseInt(a.Qty, 10) - parseInt(b.Qty, 10));\n\n      // Check if quantity is less than the lowest available quantity\n      if (vm.reqQty < parseInt(priceTable[0].Qty, 10)) {\n        return currency(0, { symbol: vm.currencySymbol, precision: 2 });\n      }\n      for (let i = 0; i < priceTable.length - 1; i++) {\n        const minQty = parseInt(priceTable[i].Qty, 10);\n        const maxQty = parseInt(priceTable[i + 1].Qty, 10);\n\n        if (vm.reqQty >= minQty && vm.reqQty < maxQty) {\n          return priceTable[i].Price;\n        }\n      }\n      return priceTable[priceTable.length - 1].Price;\n    },\n\n    updateValue: () => event => {\n      if (parseInt(event.target.value, 10) <= parseInt(event.target.min, 10)) {\n        return event.target.min;\n      }\n      if (parseInt(event.target.max, 10) < parseInt(event.target.value, 10)) {\n        return event.target.max;\n      }\n      return event.target.value;\n    },\n\n    productReadOnlyOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'readonly') : []),\n\n    productCheckBoxOptions: vm => (vm.productOptions ? vm.productOptions\n      .filter(option => option.attributeTypes[0].fieldType === 'checkbox') : []),\n\n    getReadOnlyProduct: vm => {\n      const product = vm.HardwareProduct.findInStore(vm.pQuery).data[0];\n      if (!product) {\n        return {};\n      }\n\n      return vm.productReadOnlyOptions[0].options.find(value => value.id === product[vm.productReadOnlyOptions[0].id]) || {};\n    },\n\n    selectedOption: vm => {\n      if (vm.HardwareProduct.store.state['hardware-products'].ids.length > 0) {\n        vm.productOptions.forEach((fil, index) => {\n          if (!vm.selectedOptions[fil.id]) {\n            if (['readonly', 'checkbox'].includes(fil.attributeTypes[0].fieldType)) {\n              vm.$set(vm.selectedOptions, fil.id, vm.filteredProduct[0][fil.id]);\n            } else if (vm.filteredItems(index).length === 1) {\n              vm.$set(vm.selectedOptions, fil.id, vm.filteredItems(index)[0].id);\n            } else {\n              vm.$set(vm.selectedOptions, fil.id, '');\n            }\n          }\n        });\n      }\n\n      return vm.selectedOptions;\n    },\n    currencySymbol() {\n      return _.get(models.api.Company.getFromStore(0), 'currencySymbol', '$');\n    },\n    canOrder() {\n      return !(\n        !this.selectedProduct\n        || this.reqQty < this.minQty\n        || (this.productGroup.ShowUploadFile === 1 && !this.drawingConsultancyPdfBlobUrl)\n      ) && (\n        !this.currentOrder\n        || this.currentOrder.canAddHardwareProduct(this.selectedProduct)\n      );\n    }\n  },\n\n  watch: {\n    currentOrder(value) {\n      // Clear drawing consultancy pdf document when currentOrder is Null\n      if (!value) {\n        this.drawingConsultancyPdfBlobUrl = '';\n      }\n    },\n  },\n\n  methods: {\n    ...mapActions('app', ['initCurrentOrder']),\n\n    async addToOrder() {\n      const order = await this.initCurrentOrder();\n      order.addItem('hardware', this.selectedProduct._id, this.reqQty, this.drawingConsultancyPdfBlobUrl);\n    }\n  }\n};\n</script>\n\n<style scoped>\n>>> .v-select.fit {\n  width: max-content;\n  min-width: 120px;\n}\n\n>>> .v-select.fit .v-select__selection--comma {\n  text-overflow: unset;\n}\n\n>>> .v-input__slot {\n  margin-bottom: 0px !important;\n}\n\n>>> .v-dialog {\n  max-height: 95%;\n  min-height: 80vh;\n}\n\n.totalPrice.v-text-field--outlined >>> fieldset {\n  border-color: transparent;\n}\n\nnotDisplay {\n  visibility: hidden;\n}\n\n.partCard:hover .displayDetail {\n  visibility: visible;\n  display: inline;\n  position: relative;\n}\n\n.partCard:hover .shimmer {\n\n  background: var(--color) -webkit-gradient(linear, 100% 0, 0 0,\n  from(var(--color)), color-stop(0.5, #ffffff),\n  to(var(--color)));\n\n  background-position: -4rem top; /*50px*/\n  background-repeat: no-repeat;\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  -webkit-animation-name: shimmer;\n  -webkit-animation-duration: 1.5s;\n  -webkit-animation-iteration-count: infinite;\n  -webkit-background-size: 4rem 100%; /*50px*/\n  -webkit-animation-timing-function: linear;\n}\n\n.colorRed {\n  color: #be2a45 !important;\n  --color: #be2a45 !important\n}\n\n.colorGreen {\n  color: #128347 !important;\n  --color: #128347 !important\n}\n\n@-webkit-keyframes shimmer {\n  0% {\n    background-position: -4rem top; /*50px*/\n  }\n\n  70% {\n    background-position: 12.5rem top; /*200px*/\n  }\n\n  100% {\n    background-position: 12.5rem top; /*200px*/\n  }\n}\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOption.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductOption.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductOption.vue?vue&type=template&id=65dbd852&scoped=true&\"\nimport script from \"./ProductOption.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductOption.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductOption.vue?vue&type=style&index=0&id=65dbd852&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"65dbd852\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardText,VCardTitle,VCheckbox,VCol,VContainer,VDialog,VIcon,VRow,VSelect,VSheet,VSpacer,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pt-0\",attrs:{\"fluid\":\"\"}},[(_vm._.isEmpty(_vm.orderLines) && _vm.loadingParts)?_c('v-row',[_c('v-skeleton-loader',{staticClass:\"mx-3\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":(\"table-thead,table-row-divider@\" + _vm.nbrOfOrder)}})],1):_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"12\"}},[_c('v-data-table',{attrs:{\"headers\":_vm.orderLinesTableHeaders,\"items\":_vm.orderLines,\"loading\":_vm._.isEmpty(_vm.orderLines),\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"no-data-text\":_vm.$t('common.noDataAvailable'),\"loading-text\":_vm.$t('common.loadingItems')},on:{\"click:row\":function($event){return _vm.open3DViewer($event)}},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('v-skeleton-loader',{staticClass:\"pa-5 d-flex justify-space-between\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"komacutLine@10\",\"types\":{komacutLine:(\"table-cell@\" + _vm.nbrOfOrder)}}})]},proxy:true},{key:\"item.CustItemName\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('core-thumbnail-viewer',{staticClass:\"mr-5 ml-3\",attrs:{\"part\":item,\"part-lookup-key\":'Item',\"width\":60,\"height\":60,\"file-url\":_vm.getThumbnailUrl(item),\"data-cy\":\"quote-image\"}}),_c('span',{attrs:{\"data-cy\":\"quote-part-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(item.CustItemName))}})],1)]}},{key:\"item.Tolerance\",fn:function(ref){\nvar orderline = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-tolerance-value\"}},[_vm._v(\" \"+_vm._s(orderline.toleranceTranslation)+\" \")])]}},{key:\"item.MaterialStr\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-material-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialTranslation))}})]}},{key:\"item.materialSeriesShortened\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-series-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialSeriesTranslation))}})]}},{key:\"item.MaterialThicknessStr\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-thickness-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialThicknessTranslation))}})]}},{key:\"item.MaterialFinishStr\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-finish-value\"},domProps:{\"innerHTML\":_vm._s(_vm.highlight(orderLine.materialFinishTranslation ))}})]}},{key:\"item.Revision\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-revision-value\"}},[_vm._v(_vm._s(orderLine.Revision))])]}},{key:\"item.CustItemDesc\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-description-value\"}},[_vm._v(_vm._s(orderLine.CustItemDesc))])]}},{key:\"item.Quantity\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-qty-value\"}},[_vm._v(_vm._s(orderLine.Quantity))])]}},{key:\"item.Price\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-unit-value\"}},[_vm._v(_vm._s(_vm.currency(orderLine.Price, {symbol: _vm.company.currencySymbol}).format()))])]}},{key:\"item._id\",fn:function(ref){\nvar orderLine = ref.item;\nreturn [_c('span',{attrs:{\"data-cy\":\"quote-net-value\"}},[_vm._v(_vm._s(_vm.currency(orderLine.Price, {symbol: _vm.company.currencySymbol}).multiply(orderLine.Quantity).format()))])]}}])}),((_vm.loadingParts || (_vm.isLoadingPartsOrderId===_vm.orderId)) && !_vm._.isEmpty(_vm.orderLines))?_vm._l(((_vm.nbrOfOrder - _vm.orderIdInStore.length)),function(index){return _c('v-skeleton-loader',{key:(\"table-\" + index),staticClass:\"pa-5 d-flex justify-space-between\",attrs:{\"width\":\"100%\",\"loading\":\"\",\"type\":\"komacutLine@10\",\"types\":{komacutLine:(\"table-cell@\" + (_vm.nbrOfOrder - _vm.orderIdInStore.length))}}})}):_vm._e(),(!_vm._.isEmpty(_vm.filteredPartItems) && (_vm.nbrOfOrder >1) && (_vm.filteredPartItems.length !== _vm.nbrOfOrder))?_c('v-card',{staticClass:\"grey lighten-2  text-center pa-0 text-uppercase\",attrs:{\"flat\":\"\"},on:{\"click\":_vm.getAllMissingPart}},[_c('span',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(\" \"+_vm._s((\"\" + (_vm.displayAll ? _vm.$t('views.rfqs.hidePart') : _vm.$t('views.rfqs.showAllParts'))))+\" \")]),_c('br'),_c('div',{staticClass:\"mdi mdi-chevron-down mt-n2\",class:{'mdi-rotate-180':_vm.displayAll},staticStyle:{\"font-size\":\"20px\",\"height\":\"25px\"}})]):_vm._e()],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"pt-0\" fluid>\n    <v-row v-if=\"_.isEmpty(orderLines) && loadingParts\">\n      <v-skeleton-loader\n        class=\"mx-3\"\n        width=\"100%\"\n        loading\n        :type=\"`table-thead,table-row-divider@${nbrOfOrder}`\"\n      />\n    </v-row>\n\n    <v-row v-else>\n      <v-col class=\"pt-0\" cols=\"12\">\n        <v-data-table\n          :headers=\"orderLinesTableHeaders\"\n          :items=\"orderLines\"\n          :loading=\"_.isEmpty(orderLines)\"\n          disable-pagination\n          hide-default-footer\n          :no-data-text=\"$t('common.noDataAvailable')\"\n          :loading-text=\"$t('common.loadingItems')\"\n          @click:row=\"open3DViewer($event)\"\n        >\n          <template #loading>\n            <v-skeleton-loader\n              class=\"pa-5 d-flex justify-space-between\"\n              width=\"100%\"\n              loading\n              :type=\"`komacutLine@10`\"\n              :types=\"{komacutLine:`table-cell@${nbrOfOrder}`}\"\n            />\n          </template>\n          <template #item.CustItemName=\"{ item }\">\n            <div style=\"display: flex; align-items: center;\">\n              <core-thumbnail-viewer\n                :part=\"item\"\n                :part-lookup-key=\"'Item'\"\n                :width=\"60\"\n                :height=\"60\"\n                :file-url=\"getThumbnailUrl(item)\"\n                class=\"mr-5 ml-3\"\n                data-cy=\"quote-image\"\n              />\n              <span data-cy=\"quote-part-value\" v-html=\"highlight(item.CustItemName)\" />\n            </div>\n          </template>\n          <!--          <template #item.PDF=\"{item}\">-->\n          <!--            <core-my-part-pdf-viewer :part=\"item\" @click.prevent />-->\n          <!--          </template>-->\n          <template #item.Tolerance=\"{item: orderline }\">\n            <span data-cy=\"quote-tolerance-value\">\n              {{\n                orderline.toleranceTranslation\n              }}\n            </span>\n          </template>\n          <template #item.MaterialStr=\"{ item: orderLine }\">\n            <span\n              data-cy=\"quote-material-value\"\n              v-html=\"highlight(orderLine.materialTranslation)\"\n            />\n          </template>\n          <template #item.materialSeriesShortened=\"{ item: orderLine }\">\n            <span\n              data-cy=\"quote-series-value\"\n              v-html=\"highlight(orderLine.materialSeriesTranslation)\"\n            />\n          </template>\n          <template #item.MaterialThicknessStr=\"{ item: orderLine }\">\n            <span\n              data-cy=\"quote-thickness-value\"\n              v-html=\"highlight(orderLine.materialThicknessTranslation)\"\n            />\n          </template>\n          <template #item.MaterialFinishStr=\"{ item: orderLine }\">\n            <span\n              data-cy=\"quote-finish-value\"\n              v-html=\"highlight(orderLine.materialFinishTranslation )\"\n            />\n          </template>\n          <template #item.Revision=\"{ item: orderLine }\">\n            <span data-cy=\"quote-revision-value\">{{ orderLine.Revision }}</span>\n          </template>\n          <template #item.CustItemDesc=\"{ item: orderLine }\">\n            <span data-cy=\"quote-description-value\">{{ orderLine.CustItemDesc }}</span>\n          </template>\n          <template #item.Quantity=\"{ item: orderLine }\">\n            <span data-cy=\"quote-qty-value\">{{ orderLine.Quantity }}</span>\n          </template>\n          <template #item.Price=\"{ item: orderLine }\">\n            <span data-cy=\"quote-unit-value\">{{\n              currency(orderLine.Price, {symbol: company.currencySymbol}).format()\n            }}</span>\n          </template>\n\n          <template #item._id=\"{ item: orderLine }\">\n            <span data-cy=\"quote-net-value\">{{\n              currency(orderLine.Price, {symbol: company.currencySymbol}).multiply(orderLine.Quantity).format()\n            }}</span>\n          </template>\n        </v-data-table>\n        <template v-if=\"(loadingParts || (isLoadingPartsOrderId===orderId)) && !_.isEmpty(orderLines)\">\n          <v-skeleton-loader\n            v-for=\"index in (nbrOfOrder - orderIdInStore.length)\"\n            :key=\"`table-${index}`\"\n            class=\"pa-5 d-flex justify-space-between\"\n            width=\"100%\"\n            loading\n            :type=\"`komacutLine@10`\"\n            :types=\"{komacutLine:`table-cell@${nbrOfOrder - orderIdInStore.length}`}\"\n          />\n        </template>\n        <v-card\n          v-if=\"!_.isEmpty(filteredPartItems) && (nbrOfOrder >1) && (filteredPartItems.length !== nbrOfOrder)\"\n          flat\n          class=\"grey lighten-2  text-center pa-0 text-uppercase\"\n          @click=\"getAllMissingPart\"\n        >\n          <span style=\" font-size: 12px\">\n            {{ `${displayAll ? $t('views.rfqs.hidePart') : $t('views.rfqs.showAllParts')}` }}\n          </span>\n          <br>\n          <div\n            class=\"mdi mdi-chevron-down mt-n2\"\n            style=\"font-size: 20px; height:25px\"\n            :class=\"{'mdi-rotate-180':displayAll}\"\n          />\n        </v-card>\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\nimport currency from 'currency.js';\n\nconst { OrderLine, Company } = models.api;\n\nexport default {\n  name: 'OrderItemsTable',\n\n  props: {\n    isLoadingPartsOrderId: { type: String },\n    orderId: { type: String },\n    searchValue: { type: String },\n    filteredPartItems: {\n      type: Array,\n      default: () => []\n    },\n    nbrOfOrder: { type: Number }\n  },\n\n  data() {\n    return {\n      currency,\n      displayAll: false,\n      loadingParts: false\n    };\n  },\n\n  computed: {\n    ...mapState('order-lines', { loadingOrderLines: 'isFindPending' }),\n    ...mapState('app', ['locale']),\n    orderLines() {\n      const queryFilter = {\n        query: {\n          CoNum: this.orderId,\n        }\n      };\n\n      if (!this.displayAll && !_.isEmpty(this.filteredPartItems)) {\n        queryFilter.query._id = { $in: this.filteredPartItems };\n      }\n      return OrderLine.findInStore(queryFilter).data;\n    },\n\n    orderIdInStore() {\n      return OrderLine.findInStore({\n        query: {\n          CoNum: this.orderId,\n        },\n      }).data.map(order => order._id);\n    },\n\n    company: () => Company.getFromStore(0),\n\n    toleranceTranslation: vm => item => {\n      if (!item.Tolerance) {\n        return '-';\n      }\n      return vm.$t(`views.instantQuote.tolerance${item.Tolerance.replace('Precision', '').trim()}`);\n    },\n\n    orderLinesTableHeaders: vm => [\n      {\n        text: vm.$t('views.orders.partNumber'),\n        value: 'CustItemName',\n      },\n      {\n        text: vm.$t('views.orders.revision'),\n        value: 'Revision',\n      },\n      {\n        text: vm.$t('common.description'),\n        value: 'CustItemDesc',\n      },\n      {\n        text: vm.$t('views.orders.material'),\n        value: 'MaterialStr',\n      },\n      {\n        text: vm.$t('views.orders.series'),\n        value: 'materialSeriesShortened',\n      },\n      {\n        text: vm.$t('views.orders.thickness'),\n        value: 'MaterialThicknessStr',\n      },\n      {\n        text: vm.$t('views.orders.finish'),\n        value: 'MaterialFinishStr',\n      },\n      {\n        text: vm.$t('views.instantQuote.tolerances'),\n        value: 'Tolerance',\n      },\n\n      {\n        text: vm.$t('views.orders.unitPrice', { currencySymbol: vm.company.currencySymbol }),\n        value: 'Price',\n      },\n      {\n        text: vm.$t('views.orders.quantity'),\n        value: 'Quantity',\n      },\n      {\n        text: vm.$t('views.orders.netPrice', { currencySymbol: vm.company.currencySymbol }),\n        value: '_id',\n      },\n    ].map(h => ({\n      align: 'center',\n      class: ['text-uppercase'],\n      ...h,\n    })),\n  },\n\n  methods: {\n\n    open3DViewer(event) {\n      if (event.ProductType === 'FG') {\n        this.$emit('open3DViewer', event);\n      }\n    },\n\n    highlight(value) {\n      const escapedSearchValue = _.escapeRegExp(this.searchValue);\n      const re = new RegExp(`(${escapedSearchValue})`, 'gi');\n      if (!_.isEmpty(this.filteredPartItems)) {\n        return value.replace(\n          re,\n          '<span style=\"background-color: yellow\">$1</span>'\n        );\n      }\n      return value;\n    },\n    async getAllMissingPart() {\n      this.displayAll = !this.displayAll;\n      if (!this.displayAll) {\n        return;\n      }\n\n      if (this.orderIdInStore.length === this.nbrOfPart) {\n        return;\n      }\n      this.loadingParts = true;\n      await OrderLine.find({\n        query: {\n          CoNum: this.orderId,\n          _id: { $nin: this.orderIdInStore }\n        }\n      });\n      this.loadingParts = false;\n    },\n    getThumbnailUrl(item) {\n      const imageId = _.get(item, 'ThumbnailItemId');\n      if (imageId) {\n        return `/img/hardwareShop/${imageId}.png`;\n      }\n      const productCode = _.get(item, 'ProductCode');\n      if (productCode === 'HW-Bag') {\n        return '/img/HW-Bag-Thumbnail.png';\n      }\n      return '';\n    }\n  },\n\n};\n</script>\n\n<style scoped>\n::v-deep .v-data-table > .v-data-table__wrapper > table > thead > tr > th {\n  height: 25px !important;\n  margin-top: 10px;\n}\n\n>>> .v-data-table__wrapper > table > thead > tr > th {\n  color: #9f9f9f !important;;\n  background-color: #f4f4f4 !important;\n}\n\n::v-deep thead th:first-child {\n  border-radius: 0 !important;\n}\n\n::v-deep thead th:last-child {\n  border-radius: 0 !important;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderItemsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderItemsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrderItemsTable.vue?vue&type=template&id=d3b94924&scoped=true&\"\nimport script from \"./OrderItemsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./OrderItemsTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OrderItemsTable.vue?vue&type=style&index=0&id=d3b94924&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"d3b94924\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCard,VCol,VContainer,VDataTable,VRow,VSkeletonLoader})\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'thumbnails';\n\nconst Model = class Thumbnail extends BaseModel {\n  static modelName = 'Thumbnail';\n\n  static instanceDefaults() {\n    return {\n    };\n  }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","// eslint-disable-next-line max-len\nimport feathersClient, { makeServicePlugin, BaseModel, makeServiceStore } from '../plugins/feathers-client';\n\nconst servicePath = 'hardware-categories';\n\nconst Model = class HardwareCategory extends BaseModel {\n    static modelName = 'HardwareCategory';\n\n    static instanceDefaults() {\n      return {};\n    }\n};\n\nexport default {\n  plugin: makeServicePlugin({\n    servicePath,\n    service: feathersClient.service(servicePath),\n    Model,\n  }),\n\n  store: makeServiceStore({ servicePath, Model }),\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card-actions',{staticClass:\"pt-0\"},[_c('div',[_c('core-ownerships',{attrs:{\"value\":{\n        createdBy: _vm.rfq.createdBy,\n        createdByEmail: _vm.rfq.createdByEmail,\n        createdAt: _vm.rfq.createdAt,\n      }}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card-actions class=\"pt-0\">\n    <div>\n      <core-ownerships\n        :value=\"{\n          createdBy: rfq.createdBy,\n          createdByEmail: rfq.createdByEmail,\n          createdAt: rfq.createdAt,\n        }\"\n      />\n    </div>\n  </v-card-actions>\n</template>\n\n<script>\nexport default {\n  props: [\n    'expanded', 'toggleaction', 'rfq',\n  ],\n\n  computed: {\n    computedExpanded: {\n      get() {\n        return this.toggleExpanded;\n      },\n      set() {\n        this.toggleaction();\n      },\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardActions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQCardActions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RFQCardActions.vue?vue&type=template&id=94913d06&\"\nimport script from \"./RFQCardActions.vue?vue&type=script&lang=js&\"\nexport * from \"./RFQCardActions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCardActions } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCardActions})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"transparent\",attrs:{\"rounded\":\"\",\"width\":\"95%\",\"color\":\"#F9F9F9\",\"elevation\":\"0\"}},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step1.svg\"}}),_c('v-divider',{staticClass:\"dashed-line mt-8 mx-1\"})],1),_c('v-row',{},[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-1.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step1Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step1Desc'))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step2.svg\"}}),_c('v-divider',{staticClass:\"dashed-line mt-8 mx-1\"})],1),_c('v-row',[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-2.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step2Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step2Desc'))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step3.svg\"}}),_c('v-divider',{staticClass:\"dashed-line mt-8 mx-1\"})],1),_c('v-row',[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-3.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step3Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step3Desc'))+\" \")])])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-row',[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-order-step4.svg\"}})]),_c('v-row',{staticClass:\"mt-3\"},[_c('v-col',{staticClass:\"ml-n4\",attrs:{\"cols\":\"2\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/welcomeScreen/icon-digit-4.svg\"}})]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-row',[_c('div',{staticClass:\"text-body-1 font-weight-medium text-uppercase\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step4Label'))+\" \")])]),_c('v-row',[_c('div',{staticStyle:{\"color\":\"#747474\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.dashboard.welcomeScreenOrderStepsBanner.step4Desc'))+\" \")])])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-card\n    rounded\n    width=\"95%\"\n    color=\"#F9F9F9\"\n    elevation=\"0\"\n    class=\"transparent\"\n  >\n    <v-card-text>\n      <v-row>\n        <v-col cols=\"3\" style=\"\">\n          <v-row>\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-order-step1.svg\"\n            >\n            <v-divider class=\"dashed-line mt-8 mx-1\" />\n          </v-row>\n          <v-row class=\"\">\n            <v-col cols=\"2\" class=\"ml-n4\">\n              <img\n                style=\"vertical-align:middle\"\n                src=\"/img/welcomeScreen/icon-digit-1.svg\"\n              >\n            </v-col>\n            <v-col cols=\"10\">\n              <v-row>\n                <div class=\"text-body-1 font-weight-medium text-uppercase\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step1Label') }}\n                </div>\n              </v-row>\n              <v-row>\n                <div class=\"\" style=\"color: #747474\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step1Desc') }}\n                </div>\n              </v-row>\n            </v-col>\n          </v-row>\n        </v-col>\n        <v-col cols=\"3\" style=\"\">\n          <v-row>\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-order-step2.svg\"\n            >\n            <v-divider class=\"dashed-line mt-8 mx-1\" />\n          </v-row>\n          <v-row>\n            <v-col cols=\"2\" class=\"ml-n4\">\n              <img\n                style=\"vertical-align:middle\"\n                src=\"/img/welcomeScreen/icon-digit-2.svg\"\n              >\n            </v-col>\n            <v-col cols=\"10\">\n              <v-row>\n                <div class=\"text-body-1 font-weight-medium text-uppercase\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step2Label') }}\n                </div>\n              </v-row>\n              <v-row>\n                <div class=\"\" style=\"color: #747474\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step2Desc') }}\n                </div>\n              </v-row>\n            </v-col>\n          </v-row>\n        </v-col>\n        <v-col cols=\"3\" style=\"\">\n          <v-row>\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-order-step3.svg\"\n            >\n            <v-divider class=\"dashed-line mt-8 mx-1\" />\n          </v-row>\n          <v-row>\n            <v-col cols=\"2\" class=\"ml-n4\">\n              <img\n                style=\"vertical-align:middle\"\n                src=\"/img/welcomeScreen/icon-digit-3.svg\"\n              >\n            </v-col>\n            <v-col cols=\"10\">\n              <v-row>\n                <div class=\"text-body-1 font-weight-medium text-uppercase\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step3Label') }}\n                </div>\n              </v-row>\n              <v-row>\n                <div class=\"\" style=\"color: #747474\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step3Desc') }}\n                </div>\n              </v-row>\n            </v-col>\n          </v-row>\n        </v-col>\n        <v-col cols=\"3\" style=\"\">\n          <v-row>\n            <img\n              style=\"vertical-align:middle\"\n              src=\"/img/welcomeScreen/icon-order-step4.svg\"\n            >\n          </v-row>\n          <v-row class=\"mt-3\">\n            <v-col cols=\"2\" class=\"ml-n4\">\n              <img\n                style=\"vertical-align:middle\"\n                src=\"/img/welcomeScreen/icon-digit-4.svg\"\n              >\n            </v-col>\n            <v-col cols=\"10\">\n              <v-row>\n                <div class=\"text-body-1 font-weight-medium text-uppercase\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step4Label') }}\n                </div>\n              </v-row>\n              <v-row>\n                <div class=\"\" style=\"color: #747474\">\n                  {{ $t('views.dashboard.welcomeScreenOrderStepsBanner.step4Desc') }}\n                </div>\n              </v-row>\n            </v-col>\n          </v-row>\n        </v-col>\n      </v-row>\n    </v-card-text>\n  </v-card>\n</template>\n\n<script>\nexport default {\n  name: 'WelcomeScreenOrderStepsBanner',\n};\n</script>\n\n<style scoped>\n.dashed-line {\n  margin: 0 auto; /* Center the line horizontally */\n  border-top: 1px dashed #5FCE79; /* You can adjust the color and thickness as needed */\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=template&id=21b21687&scoped=true&\"\nimport script from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WelcomeScreenOrderStepsBanner.vue?vue&type=style&index=0&id=21b21687&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"21b21687\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VDivider,VRow})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfCanvas.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0 mb-3\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"background-color\":\"white\",\"border-radius\":\"10px\"}},[_c('v-col',{staticClass:\"py-2 px-7\",staticStyle:{\"min-width\":\"175px\",\"max-width\":\"175px\"},attrs:{\"cols\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"90px\",\"width\":\"90px\"}}),_c('v-skeleton-loader',{staticClass:\"mt-3\",attrs:{\"type\":\"text\",\"width\":\"70px\",\"height\":\"20px\"}})],1),_c('v-col',{staticClass:\"px-1 pb-0 ma-0 mt-3\"},[_c('v-row',{staticClass:\"pa-1 ma-0\"},[_c('v-skeleton-loader',{attrs:{\"type\":\"text\",\"width\":\"250px\",\"height\":\"20px\"}})],1),_c('v-row',{staticClass:\"px-1 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-row',{staticClass:\"pa-0 ma-0 mt-3\"},[_c('v-col',{staticClass:\"px-1 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1),_c('v-col',{staticClass:\"px-3 ma-0\"},[_c('v-skeleton-loader',{staticClass:\"mb-0\",attrs:{\"type\":\"text\",\"width\":\"125px\"}})],1)],1)],1),_c('v-col',{staticClass:\"pt-2 pb-0 px-1 pr-8\",staticStyle:{\"min-width\":\"190px\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"cols\":\"2\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"image\",\"height\":\"90px\",\"width\":\"100%\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./RfqCardSkeleton.vue?vue&type=template&id=42faf4a0&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VCol,VContainer,VRow,VSkeletonLoader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"800px\"}},[_c('v-simple-table',{staticStyle:{\"width\":\"1000px\"},attrs:{\"dense\":\"\",\"fixed-header\":\"\",\"height\":\"600px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-uppercase\",staticStyle:{\"width\":\"90px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.no'))+\" \")]),_c('th',{staticClass:\"text-left text-uppercase\",staticStyle:{\"width\":\"100px\",\"padding-left\":\"0 !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.type'))+\" \")]),_c('th',{staticClass:\"text-left text-uppercase\",staticStyle:{\"width\":\"100px\",\"padding-left\":\"0 !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.code'))+\" \")]),_c('th',{staticClass:\"text-left text-uppercase\",staticStyle:{\"width\":\"500px\",\"padding-left\":\"0 !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.engineeringTools.tabs.guideLine.description'))+\" \")])])]),_c('tbody',_vm._l((_vm.guideLineList),function(item,index){return _c('tr',{key:item.name},[_c('td',{staticClass:\"pl-5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(index + 1)+\" \")]),_c('td',{staticClass:\"text-left font-weight-bold\",staticStyle:{\"width\":\"150px\"}},[(item.type === _vm.$t('common.Warning') )?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"#C77500\"}},[_vm._v(\" mdi-alert-outline \")]):_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"#B00020\"}},[_vm._v(\" mdi-alert-circle-outline \")]),_vm._v(\" \"+_vm._s(item.type)+\" \")],1),_c('td',{staticClass:\"text-left font-weight-bold\"},[_vm._v(\" \"+_vm._s(item.code)+\" \")]),_c('td',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(item.description)+\" \")])])}),0)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"width: 800px\">\n    <v-simple-table\n      dense\n      fixed-header\n      height=\"600px\"\n      style=\"width: 1000px\"\n    >\n      <template v-slot:default>\n        <thead>\n          <tr>\n            <th class=\"text-uppercase\" style=\"width:90px;\">\n              {{ $t('views.engineeringTools.tabs.guideLine.no') }}\n            </th>\n            <th class=\"text-left text-uppercase\" style=\"width:100px; padding-left: 0 !important;\">\n              {{ $t('views.engineeringTools.tabs.guideLine.type') }}\n            </th>\n            <th class=\"text-left text-uppercase\" style=\"width:100px; padding-left: 0 !important;\">\n              {{ $t('views.engineeringTools.tabs.guideLine.code') }}\n            </th>\n            <th class=\"text-left text-uppercase\" style=\"width:500px; padding-left: 0 !important;\">\n              {{ $t('views.engineeringTools.tabs.guideLine.description') }}\n            </th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr\n            v-for=\"(item, index) in guideLineList\"\n            :key=\"item.name\"\n          >\n            <td class=\"pl-5 font-weight-bold\">\n              {{ index + 1 }}\n            </td>\n            <td class=\"text-left font-weight-bold\" style=\"width:150px\">\n              <v-icon v-if=\"item.type === $t('common.Warning') \" left color=\"#C77500\">\n                mdi-alert-outline\n              </v-icon>\n              <v-icon v-else left color=\"#B00020\">\n                mdi-alert-circle-outline\n              </v-icon>\n              {{ item.type }}\n            </td>\n            <td class=\"text-left font-weight-bold\">\n              {{ item.code }}\n            </td>\n            <td class=\"text-left\">\n              {{ item.description }}\n            </td>\n          </tr>\n        </tbody>\n      </template>\n    </v-simple-table>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'InstantQuoteGuideLine',\n\n  computed: {\n    guideLineList: vm => [\n      { type: vm.$t('common.Error'), code: '200', description: vm.$t('views.engineeringTools.tabs.guideLine.no3DSolidEntitiesDetected') },\n      { type: vm.$t('common.Error'), code: '201', description: vm.$t('views.engineeringTools.tabs.guideLine.multiple3DSolidEntities') },\n      { type: vm.$t('common.Error'), code: '202', description: vm.$t('views.engineeringTools.tabs.guideLine.unsupportedSldprtVersionCaption') },\n      { type: vm.$t('common.Error'), code: '203', description: vm.$t('views.engineeringTools.tabs.guideLine.failedToDetectEngineType') },\n      { type: vm.$t('common.Warning'), code: '301', description: vm.$t('views.engineeringTools.tabs.guideLine.thicknessIsTooBig') },\n      { type: vm.$t('common.Warning'), code: '302', description: vm.$t('views.engineeringTools.tabs.guideLine.smallAndBigRadiiDetected') },\n      { type: vm.$t('common.Warning'), code: '303', description: vm.$t('views.engineeringTools.tabs.guideLine.smallRadiusDetected') },\n      { type: vm.$t('common.Warning'), code: '304', description: vm.$t('views.engineeringTools.tabs.guideLine.bigRadiusDetected') },\n      { type: vm.$t('common.Warning'), code: '306', description: vm.$t('views.engineeringTools.tabs.guideLine.smallDistanceDetectedBetweenHoleToHole') },\n      { type: vm.$t('common.Warning'), code: '307', description: vm.$t('views.engineeringTools.tabs.guideLine.smallDistanceDetectedBetweenHoleToEdge') },\n      { type: vm.$t('common.Warning'), code: '321', description: vm.$t('views.engineeringTools.tabs.guideLine.overallPartLengthLonger') },\n      { type: vm.$t('common.Warning'), code: '322', description: vm.$t('views.engineeringTools.tabs.guideLine.smallChamferOnHoleFound') },\n      { type: vm.$t('common.Warning'), code: '323', description: vm.$t('views.engineeringTools.tabs.guideLine.smallChamferOnOuterEdgesFound') },\n      { type: vm.$t('common.Error'), code: '401', description: vm.$t('views.engineeringTools.tabs.guideLine.thicknessWasNotDetected') },\n      { type: vm.$t('common.Error'), code: '402', description: vm.$t('views.engineeringTools.tabs.guideLine.partCouldNotBeRead') },\n      { type: vm.$t('common.Error'), code: '410', description: vm.$t('views.engineeringTools.tabs.guideLine.generalError') },\n      { type: vm.$t('common.Error'), code: '411', description: vm.$t('views.engineeringTools.tabs.guideLine.partIsNotValidTryToEdit') },\n      { type: vm.$t('common.Error'), code: '412', description: vm.$t('views.engineeringTools.tabs.guideLine.notAllGeometryWasCorrectlyConvertedToSheetMetal') },\n      { type: vm.$t('common.Error'), code: '413', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidFeaturesRecognizedPleaseRepair') },\n      { type: vm.$t('common.Error'), code: '414', description: vm.$t('views.engineeringTools.tabs.guideLine.formFeaturesRecognizedPleaseRemoveThem') },\n      { type: vm.$t('common.Error'), code: '415', description: vm.$t('views.engineeringTools.tabs.guideLine.loftedBendFeaturesRecognized') },\n      { type: vm.$t('common.Error'), code: '416', description: vm.$t('views.engineeringTools.tabs.guideLine.machiningFeatureFound') },\n      { type: vm.$t('common.Error'), code: '417', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidThreadTypeFound') },\n      { type: vm.$t('common.Error'), code: '418', description: vm.$t('views.engineeringTools.tabs.guideLine.filletFeatureDetected') },\n      { type: vm.$t('common.Error'), code: '419', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidDxfGeometry') },\n      { type: vm.$t('common.Error'), code: '420', description: vm.$t('views.engineeringTools.tabs.guideLine.invalidBendFound') },\n      { type: vm.$t('common.Error'), code: '450', description: vm.$t('views.engineeringTools.tabs.guideLine.unfoldedModelIsInterferingWithItself') },\n      { type: vm.$t('common.Error'), code: '451', description: vm.$t('views.engineeringTools.tabs.guideLine.unableToUnfoldTheModel') },\n      { type: vm.$t('common.Error'), code: '500', description: vm.$t('views.engineeringTools.tabs.guideLine.PartDiameterTooSmall') },\n      { type: vm.$t('common.Error'), code: '501', description: vm.$t('views.engineeringTools.tabs.guideLine.PartDiameterTooLarge') },\n      { type: vm.$t('common.Error'), code: '502', description: vm.$t('views.engineeringTools.tabs.guideLine.PartLengthTooSmall') },\n      { type: vm.$t('common.Error'), code: '503', description: vm.$t('views.engineeringTools.tabs.guideLine.PartLengthTooLarge') },\n      { type: vm.$t('common.Error'), code: '504', description: vm.$t('views.engineeringTools.tabs.guideLine.MillingAreaTooLarge') },\n      { type: vm.$t('common.Error'), code: '505', description: vm.$t('views.engineeringTools.tabs.guideLine.HoleSizeTooSmall') },\n      { type: vm.$t('common.Error'), code: '506', description: vm.$t('views.engineeringTools.tabs.guideLine.HoleSizeTooLarge') },\n      { type: vm.$t('common.Error'), code: '507', description: vm.$t('views.engineeringTools.tabs.guideLine.HoleTooDeep') },\n      { type: vm.$t('common.Error'), code: '508', description: vm.$t('views.engineeringTools.tabs.guideLine.WallThicknessTooThin') },\n      { type: vm.$t('common.Error'), code: '509', description: vm.$t('views.engineeringTools.tabs.guideLine.MaxBendError') },\n    ]\n  },\n};\n</script>\n\n<style scoped>\n.theme--light.v-data-table > .v-data-table__wrapper > table > thead > tr > th{\n  background-color: #beebc9 !important;\n  padding: 0 0 0 15px !important;\n  height: 25px !important;\n}\n::v-deep thead th:first-child {\n  border-radius: 5px 0 0 0 ;\n}\n\n::v-deep thead th:last-child {\n  border-radius: 0 5px 0 0 ;\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InstantQuoteGuideLine.vue?vue&type=template&id=26360ced&scoped=true&\"\nimport script from \"./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"\nexport * from \"./InstantQuoteGuideLine.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InstantQuoteGuideLine.vue?vue&type=style&index=0&id=26360ced&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"26360ced\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VIcon,VSimpleTable})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartDesignTable.vue?vue&type=style&index=0&id=82313dcc&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter-checkbox\"},[_c('v-radio-group',{model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}},[_c('v-subheader',[_vm._v(\" \"+_vm._s(_vm.section)+\" \")]),_vm._l((_vm.$attrs.options),function(option,i){return _c('v-list-item',{key:i,attrs:{\"dense\":\"\"}},[_c('v-list-item-action',[_c('v-radio',{attrs:{\"value\":option}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(option)+\" \")])],1)],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"filter-checkbox\">\n    <v-radio-group v-model=\"localValue\">\n      <v-subheader>\n        {{ section }}\n      </v-subheader>\n\n      <v-list-item\n        v-for=\"(option, i) in $attrs.options\"\n        :key=\"i\"\n        dense\n      >\n        <v-list-item-action>\n          <v-radio :value=\"option\" />\n        </v-list-item-action>\n\n        <v-list-item-content>\n          <v-list-item-title>\n            {{ option }}\n          </v-list-item-title>\n        </v-list-item-content>\n      </v-list-item>\n    </v-radio-group>\n  </div>\n</template>\n\n<script>\nimport FilterMixin from '../../../mixins/filter';\n\nexport default {\n  name: 'RadioGroup',\n\n  mixins: [\n    FilterMixin,\n  ],\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RadioGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RadioGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RadioGroup.vue?vue&type=template&id=28fe56e7&scoped=true&\"\nimport script from \"./RadioGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"28fe56e7\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VListItem,VListItemAction,VListItemContent,VListItemTitle,VRadio,VRadioGroup,VSubheader})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"rounded d-flex flex-column align-center py-0 my-0\",staticStyle:{\"background-color\":\"#E9F4ED\"}},[_c('div',{staticStyle:{\"display\":\"grid\",\"width\":\"min-content\",\"grid-template-columns\":\"max-content max-content\"}},[_c('span',{staticClass:\"body-2 text-right\"},[_vm._v(_vm._s(_vm.$t('views.instantQuote.quantity'))+\":: \"+_vm._s('\\xa0'))]),_c('span',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.$t('common.pricePerUnit')))]),_vm._l((_vm.customerPriceRange),function(bracket,i){return [_c('span',{key:(\"qty-\" + i),staticClass:\"text-right\",staticStyle:{\"color\":\"#8D8D8D\"},attrs:{\"data-cy\":(\"unit-price-qty-\" + i)}},[_vm._v(\" \"+_vm._s(i === 0 ? _vm.quantity : bracket.Qty)+\": \"+_vm._s('\\xa0')+\" \")]),_c('span',{key:(\"price-\" + i),attrs:{\"data-cy\":(\"unit-price-amount-\" + i)}},[_vm._v(\" \"+_vm._s(_vm.currency(bracket.Price, { symbol: _vm.company.currencySymbol, precision: 4 }).format())+\" \")])]})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    style=\"background-color: #E9F4ED;\"\n    class=\"rounded d-flex flex-column align-center py-0 my-0\"\n  >\n    <div\n      style=\"\n        display: grid;\n        width: min-content;\n        grid-template-columns: max-content max-content;\n      \"\n    >\n      <span class=\"body-2 text-right\">{{ $t('views.instantQuote.quantity') }}:: {{ '\\xa0' }}</span>\n      <span class=\"body-2\">{{ $t('common.pricePerUnit') }}</span>\n      <template v-for=\"(bracket, i) in customerPriceRange\">\n        <span\n          :key=\"`qty-${i}`\"\n          style=\"color: #8D8D8D\"\n          class=\"text-right\"\n          :data-cy=\"`unit-price-qty-${i}`\"\n        >\n          {{ i === 0 ? quantity : bracket.Qty }}: {{ '\\xa0' }}\n        </span>\n        <span :key=\"`price-${i}`\" :data-cy=\"`unit-price-amount-${i}`\">\n          {{\n            currency(bracket.Price, {\n              symbol: company.currencySymbol,\n              precision: 4\n            }).format()\n\n          }}\n        </span>\n      </template>\n    </div>\n  </div>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n  name: 'ProductPriceMoqTable',\n  props: {\n    part: Object,\n  },\n  data: () => ({\n    currency,\n  }),\n  computed: {\n    company: () => Company.getFromStore(0),\n\n    priceRange: vm => _.get(vm, 'part.priceMOQ', null),\n\n    quantity: vm => {\n      if (!vm.part.ReqQty || vm.part.ReqQty <= 0) {\n        return 1;\n      }\n      if (!vm.part.ReqQty || vm.part.ReqQty <= 100) {\n        return 100;\n      }\n      if (vm.part.ReqQty >= 1000000) {\n        return 1000000;\n      }\n      return vm.part.ReqQty;\n    },\n    customerPriceRange() {\n      if (!this.priceRange || this.quantity <= 0) {\n        return [];\n      }\n\n      const reqQtyPriceIndex = this.priceRange\n        .findIndex(range => range.Qty > this.quantity) - 1;\n\n      if (reqQtyPriceIndex < 0) {\n        return this.priceRange.slice(-1);\n      }\n      return this.priceRange\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductPriceMoqTable.vue?vue&type=template&id=bbeae752&\"\nimport script from \"./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductPriceMoqTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline\"}},[(_vm.isPdfAlreadyUpload)?_c('div',{staticStyle:{\"display\":\"inline\"}},[_c('v-btn',{staticClass:\"pr-1\",attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.isPDFDownload=true}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"20\"}},[_vm._v(\" mdi-open-in-new \")]),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.ViewPdfDrawing'))+\" \")],1),(!_vm.isPdfRemoved)?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPdfRemoveDialog = true}}},[_vm._v(\" mdi-close \")]):_vm._e()],1):_c('v-btn',{attrs:{\"text\":\"\",\"small\":\"\",\"loading\":_vm.isPdfRemoved,\"color\":\"primary\"},on:{\"click\":function($event){_vm.display=true;_vm.isFileAdded = false}}},[_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"25\"}},[_vm._v(\" mdi-file-pdf-box \")]),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.UploadPdfDrawing'))+\" \")],1),_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"500px\",\"is-loading\":_vm.isPdfRemoved,\"ok-button-text\":_vm.$t('common.delete')},on:{\"click:ok\":_vm.removePDF,\"click:cancel\":function($event){_vm.showPdfRemoveDialog =false}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.DeletePdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"pa-10 text-center\"},[_c('span',{staticClass:\"d-block\",domProps:{\"innerHTML\":_vm._s(_vm.$t('common.deleteDialogText', { name: _vm.$t('myPartPdf.PdfDrawingFile') }))}})])]},proxy:true}]),model:{value:(_vm.showPdfRemoveDialog),callback:function ($$v) {_vm.showPdfRemoveDialog=$$v},expression:\"showPdfRemoveDialog\"}}),(_vm.display)?_c('core-dialog',{attrs:{\"type\":\"confirmation\",\"width\":\"1000px\",\"eager\":true,\"is-loading\":_vm.isPdfUploadPending,\"is-ok-disabled\":!_vm.isFileAdded,\"ok-button-text\":_vm.$t('common.submit')},on:{\"click:ok\":function($event){return _vm.myDropZone.processQueue();},\"click:cancel\":function($event){_vm.display = false;}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.UploadPdfDrawing'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{ref:\"myDialog\",staticClass:\" text-center\"},[_c('v-card',{staticClass:\"mt-5\",staticStyle:{\"border\":\"dashed #D7D7D7 2px\",\"background-color\":\"#F1FDF3\",\"min-width\":\"905px\",\"max-width\":\"1000px\"},attrs:{\"height\":\"150\",\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{attrs:{\"color\":\"green\",\"size\":\"60\"}},[_vm._v(\" mdi-cloud-upload-outline \")]),_c('span',{staticClass:\"headline mx-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.dragFilesToUpload'))+\" \")]),_c('v-btn',{staticStyle:{\"background-color\":\"#FFF\"},attrs:{\"id\":\"dropzone-click-target-pdf\",\"depressed\":\"\",\"text\":\"\",\"outlined\":\"\",\"color\":\"success\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.instantQuote.browse'))+\" \")])],1),_c('div',{staticClass:\"d-flex body-2\",staticStyle:{\"color\":\"#4B4B4B\"}},[_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.FileSupported'))+\" \")])])],1),_vm._v(\" \"+_vm._s(_vm.$t('myPartPdf.SingleFileOnly'))+\" \")],1)]},proxy:true}],null,false,2680833433),model:{value:(_vm.display),callback:function ($$v) {_vm.display=$$v},expression:\"display\"}}):_vm._e(),_c('v-overlay',{attrs:{\"value\":_vm.isPDFDownload,\"z-index\":\"90\"}}),_c('v-navigation-drawer',{staticStyle:{\"background-color\":\"#ada6a6\",\"z-index\":\"99 !important\"},attrs:{\"width\":\"60%\",\"fixed\":\"\",\"stateless\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"temporary\":\"\"},model:{value:(_vm.isPDFDownload),callback:function ($$v) {_vm.isPDFDownload=$$v},expression:\"isPDFDownload\"}},[_c('div',{ref:\"rfqViewerContainer\",staticStyle:{\"height\":\"calc(100% - 52px)\"}},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\"},on:{\"click\":function($event){_vm.isPDFDownload=false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.isPDFDownload)?_c('core-pdf-viewer',{attrs:{\"file-name\":_vm.part.Item,\"file-path\":_vm.pdfUri,\"item-height\":800}}):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div style=\"display: inline\">\n    <div v-if=\"isPdfAlreadyUpload\" style=\"display: inline\">\n      <v-btn\n        text\n        small\n        class=\"pr-1\"\n        :loading=\"isPdfRemoved\"\n        color=\"primary\"\n        @click=\"isPDFDownload=true\"\n      >\n        <v-icon left size=\"20\">\n          mdi-open-in-new\n        </v-icon>\n        {{ $t('myPartPdf.ViewPdfDrawing') }}\n      </v-btn>\n      <v-icon v-if=\"!isPdfRemoved\" small @click=\"showPdfRemoveDialog = true\">\n        mdi-close\n      </v-icon>\n    </div>\n    <v-btn\n      v-else\n      text\n      small\n      :loading=\"isPdfRemoved\"\n      color=\"primary\"\n      @click=\"display=true;isFileAdded = false\"\n    >\n      <v-icon left size=\"25\">\n        mdi-file-pdf-box\n      </v-icon>\n      {{ $t('myPartPdf.UploadPdfDrawing') }}\n    </v-btn>\n\n    <core-dialog\n      v-model=\"showPdfRemoveDialog\"\n      type=\"confirmation\"\n      width=\"500px\"\n      :is-loading=\"isPdfRemoved\"\n      :ok-button-text=\"$t('common.delete')\"\n      @click:ok=\"removePDF\"\n      @click:cancel=\"showPdfRemoveDialog =false\"\n    >\n      <template #title>\n        {{ $t('myPartPdf.DeletePdfDrawing') }}\n      </template>\n      <template #content>\n        <div class=\"pa-10 text-center\">\n          <span\n            class=\"d-block\"\n            v-html=\"$t('common.deleteDialogText', { name: $t('myPartPdf.PdfDrawingFile') })\"\n          />\n        </div>\n      </template>\n    </core-dialog>\n\n    <core-dialog\n      v-if=\"display\"\n      v-model=\"display\"\n      type=\"confirmation\"\n      width=\"1000px\"\n      :eager=\"true\"\n      :is-loading=\"isPdfUploadPending\"\n      :is-ok-disabled=\"!isFileAdded\"\n      :ok-button-text=\"$t('common.submit')\"\n      @click:ok=\"myDropZone.processQueue();\"\n      @click:cancel=\"display = false;\"\n    >\n      <template #title>\n        {{ $t('myPartPdf.UploadPdfDrawing') }}\n      </template>\n      <template #content>\n        <div ref=\"myDialog\" class=\" text-center\">\n          <v-card\n            class=\"mt-5\"\n            height=\"150\"\n            flat\n            style=\"border: dashed #D7D7D7 2px;\n              background-color: #F1FDF3;\n              min-width: 905px; max-width: 1000px;\"\n          >\n            <v-card-text class=\"d-flex flex-column justify-space-between align-center\" style=\"height: 100%\">\n              <div class=\"d-flex align-center\">\n                <v-icon color=\"green\" size=\"60\">\n                  mdi-cloud-upload-outline\n                </v-icon>\n                <span class=\"headline mx-4\">\n                  {{ $t('views.instantQuote.dragFilesToUpload') }}\n                </span>\n                <v-btn\n                  id=\"dropzone-click-target-pdf\"\n                  depressed\n                  text\n                  outlined\n                  color=\"success\"\n                  style=\"background-color: #FFF\"\n                >\n                  {{ $t('views.instantQuote.browse') }}\n                </v-btn>\n              </div>\n              <div class=\"d-flex body-2\" style=\"color:#4B4B4B\">\n                {{ $t('myPartPdf.FileSupported') }}\n              </div>\n            </v-card-text>\n          </v-card>\n          {{ $t('myPartPdf.SingleFileOnly') }}\n        </div>\n      </template>\n    </core-dialog>\n\n    <v-overlay :value=\"isPDFDownload\" z-index=\"90\" />\n    <v-navigation-drawer\n      v-model=\"isPDFDownload\"\n      width=\"60%\"\n      fixed\n      stateless\n      hide-overlay\n      right\n      temporary\n      style=\"background-color: #ada6a6; z-index: 99 !important;\"\n    >\n      <div\n        ref=\"rfqViewerContainer\"\n        style=\"height: calc(100% - 52px);\"\n      >\n        <div class=\"d-flex justify-end\">\n          <v-btn\n            icon\n            x-large\n            @click=\"isPDFDownload=false\"\n          >\n            <v-icon>mdi-close</v-icon>\n          </v-btn>\n        </div>\n\n        <core-pdf-viewer\n          v-if=\"isPDFDownload\"\n          :file-name=\"part.Item\"\n          :file-path=\"pdfUri\"\n          :item-height=\"800\"\n        />\n      </div>\n    </v-navigation-drawer>\n  </div>\n</template>\n\n<script>\nimport Dropzone from 'dropzone';\nimport 'dropzone/dist/dropzone.css';\nimport { mapState } from 'vuex';\n\nexport default {\n  name: 'MyPartPdf',\n  props: {\n    part: {\n      type: Object,\n    },\n  },\n  data() {\n    return {\n      showPdfRemoveDialog: false,\n      myDropZone: null,\n      pdfPageHeight: 0,\n      pdfPageWidth: 0,\n      display: false,\n      isPdfAlreadyUpload: false,\n      isPDFDownload: false,\n      isPdfUploadPending: false,\n      isFileAdded: false,\n      isPdfRemoved: false\n    };\n  },\n  computed: {\n    ...mapState('auth', ['accessToken']),\n    dropzoneOptions: vm => {\n      const h = process.env.VUE_APP_API_URL;\n\n      return {\n        url: `${h}upload?rowPointer=${vm.part.DrawingRowPointer.toLowerCase()}&desc=&ext=pdf&uploadToCsi=true`,\n        paramName: 'file',\n        headers: {\n          Authorization: vm.accessToken,\n        },\n        thumbnailWidth: 150,\n        maxFilesize: 20,\n        timeout: 9999999,\n        maxFiles: 1,\n        parallelUploads: 1,\n        acceptedFiles: '.PDF',\n        autoProcessQueue: false,\n        dictDefaultMessage: 'dropZone.dictDefaultMessage',\n        dictFallbackMessage: 'dropZone.dictFallbackMessage',\n        dictFallbackText: 'dropZone.dictFallbackText',\n        dictFileTooBig: 'dropZone.dictFileTooBig',\n        dictInvalidFileType: 'dropZone.dictInvalidFileType',\n        dictResponseError: 'dropZone.dictResponseError',\n        dictCancelUpload: 'dropZone.dictCancelUpload',\n        dictCancelUploadConfirmation: 'dropZone.dictCancelUploadConfirmation',\n        dictRemoveFile: 'dropZone.dictRemoveFile',\n        dictMaxFilesExceeded: 'dropZone.dictMaxFilesExceeded',\n        clickable: '#dropzone-click-target-pdf',\n        previewTemplate: vm.template(),\n        renameFile: file => (file.part ? file.upload.filename : `${vm.part.DrawingRowPointer.toLowerCase()}.pdf`),\n        init() {\n          this.on('maxfilesexceeded', file => {\n            this.removeAllFiles();\n            this.addFile(file);\n          });\n\n          this.on('success', async () => {\n            vm.isPdfUploadPending = false;\n            vm.display = false;\n            await vm.checkIfPdfExist();\n          });\n          this.on('error', async file => {\n            this.removeFile(file);\n          });\n          this.on('sending', () => {\n            vm.isPdfUploadPending = true;\n          });\n\n          this.on('addedfile', async file => {\n            const removeButton = Dropzone.createElement('<span class=\"mdi mdi-close\" style=\"vertical-align: middle; font-size: 1.5rem; cursor: pointer\" ></span>');\n\n            removeButton.addEventListener('click', e => {\n              e.preventDefault();\n              e.stopPropagation();\n              this.removeFile(file);\n              vm.isFileAdded = false;\n            });\n\n            file.previewElement.children[1].appendChild(removeButton);\n            vm.isFileAdded = true;\n          });\n        }\n\n      };\n    },\n    pdfViewerHeight: vm => {\n      if (!vm.$refs.rfqViewerContainer) {\n        return 0;\n      }\n      /* TODO '-12' is due to a random extra scrollbar on the right. Need to find out\n      *   what actually causes it to appear. For now, removing 12 pixels works,\n      * but there is for sure a better way to do this. */\n      return vm.$refs.rfqViewerContainer.getBoundingClientRect().height - 12;\n    },\n\n    pdfUri: vm => {\n      if (!vm.part) {\n        return '';\n      }\n      const host = process.env.VUE_APP_API_URL;\n      const fileName = `${_.get(vm.part, 'DrawingRowPointer', '').toLowerCase()}.pdf`;\n      return `${host}uploads/${fileName}/${vm.accessToken}/${vm.part.Item}`;\n    }\n  },\n  watch: {\n    display(newValue) {\n      if (newValue) {\n        setTimeout(() => {\n          this.myDropZone = new Dropzone(this.$refs.myDialog, this.dropzoneOptions);\n        }, 800);\n      } else {\n        this.myDropZone = null;\n      }\n    }\n  },\n  async created() {\n    await this.checkIfPdfExist();\n  },\n  mounted() {\n    const resizeObserver = new ResizeObserver(() => {\n      /* 70 breathing room */\n      this.pdfPageWidth = this.$refs.rfqViewerContainer.getBoundingClientRect().width - 70;\n      const ratio = 8.5 / 11;\n      this.pdfPageHeight = this.pdfPageWidth / ratio;\n    });\n    resizeObserver.observe(this.$refs.rfqViewerContainer);\n  },\n  methods: {\n    async checkIfPdfExist() {\n      const response = await fetch(\n        this.pdfUri,\n      );\n      this.isPdfAlreadyUpload = response.status === 200;\n    },\n    async removePDF() {\n      this.isPdfRemoved = true;\n      const fileName = `${_.get(this.part, 'DrawingRowPointer', '').toLowerCase()}.pdf`;\n      const uploadUrl = `${process.env.VUE_APP_API_URL}upload`;\n      try {\n        await fetch(\n          `${uploadUrl}/${fileName}`,\n          {\n            method: 'DELETE',\n            headers: {\n              Authorization: this.accessToken,\n            },\n          }\n        );\n      } catch (e) {\n        console.error(e);\n      }\n      this.isPdfRemoved = false;\n      this.isPdfAlreadyUpload = false;\n      this.showPdfRemoveDialog = false;\n      this.$forceUpdate();\n    },\n    template() {\n      return `\n             <div class=\"d-flex align-start flex-column mt-16\">\n                <p style=\"vertical-align: bottom\">Document selected</p>\n                <p id=\"test\" class=\"pa-2\" style=\"background-color: #dee0e4; display: inline\">\n                  <span class=\"mdi mdi-open-in-new font-weight-medium\" style=\"vertical-align: middle; color:#2c984e; font-size:1.2rem\"></span>\n                  <span class=\"font-weight-bold\" style=\"vertical-align: bottom; color:#2c984e; font-size:1rem\" data-dz-name></span>\n                </p>\n             </div>`;\n    }\n  },\n};\n</script>\n\n<style scoped>\n\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdf.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyPartPdf.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MyPartPdf.vue?vue&type=template&id=29bdb0a0&scoped=true&\"\nimport script from \"./MyPartPdf.vue?vue&type=script&lang=js&\"\nexport * from \"./MyPartPdf.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"29bdb0a0\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VNavigationDrawer,VOverlay})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"ma-0 pa-0\"},[_c('v-card',{staticClass:\"pa-0\",attrs:{\"elevation\":\"0\"}},[_c('v-radio-group',{staticClass:\"pl-2\",attrs:{\"value\":_vm.value},on:{\"change\":function($event){return _vm.$emit('input', $event);}}},_vm._l((_vm.shippingAddresses),function(address,i){return _c('v-radio',{key:i,staticClass:\"py-2 mr-3\",attrs:{\"value\":address.ShipToId},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-space-between align-center address-radio-options py-1\",staticStyle:{\"width\":\"100%\"}},[_c('div',[_c('div',{staticClass:\"subtitle-2 \"},[_vm._v(\" \"+_vm._s(address.name)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.formatAddressText(address)))])]),_c('v-btn',{staticClass:\"justify-end\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openAddressFormDialog(address)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-pencil \")])],1)],1)]},proxy:true}],null,true)})}),1),_c('v-card-actions',{staticStyle:{\"position\":\"relative\"}},[_c('v-btn',{staticClass:\"mt-4 ml-4\",staticStyle:{\"position\":\"absolute\",\"top\":\"10px\",\"left\":\"-20px\"},attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openAddressFormDialog();}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-plus \")]),_vm._v(\" New Address \")],1)],1)],1),_c('core-dialog',{attrs:{\"value\":_vm.addressModal.isActive,\"is-loading\":_vm.isShippingAddressCreatePending || _vm.isShippingAddressPatchPending,\"width\":\"60%\",\"type\":\"confirmation\",\"persistent\":\"\"},on:{\"click:ok\":_vm.saveAddress,\"click:cancel\":function($event){_vm.addressModal.isActive = false; _vm.addressModal.address = null;}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" New Address \")]},proxy:true},{key:\"content\",fn:function(){return [_c('form-address',{attrs:{\"address-type\":\"business\"},model:{value:(_vm.addressModal.address),callback:function ($$v) {_vm.$set(_vm.addressModal, \"address\", $$v)},expression:\"addressModal.address\"}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container class=\"ma-0 pa-0\">\n    <v-card class=\"pa-0\" elevation=\"0\">\n      <v-radio-group\n        class=\"pl-2\"\n        :value=\"value\"\n        @change=\"$emit('input', $event);\"\n      >\n        <v-radio\n          v-for=\"(address, i) in shippingAddresses\"\n          :key=\"i\"\n          :value=\"address.ShipToId\"\n          class=\"py-2 mr-3\"\n        >\n          <template #label>\n            <div class=\"d-flex justify-space-between align-center address-radio-options py-1\" style=\"width: 100%\">\n              <div>\n                <div class=\"subtitle-2 \">\n                  {{ address.name }}\n                </div>\n                <div>{{ formatAddressText(address) }}</div>\n              </div>\n              <v-btn\n                class=\"justify-end\"\n                icon\n                small\n                @click.stop=\"openAddressFormDialog(address)\"\n              >\n                <v-icon small>\n                  mdi-pencil\n                </v-icon>\n              </v-btn>\n            </div>\n          </template>\n        </v-radio>\n      </v-radio-group>\n      <v-card-actions style=\"position: relative;\">\n        <v-btn\n          text\n          class=\"mt-4 ml-4\"\n          color=\"primary\"\n          style=\"position: absolute; top: 10px; left: -20px\"\n          @click=\"openAddressFormDialog();\"\n        >\n          <v-icon left>\n            mdi-plus\n          </v-icon>\n          New Address\n        </v-btn>\n      </v-card-actions>\n    </v-card>\n\n    <core-dialog\n      :value=\"addressModal.isActive\"\n      :is-loading=\"isShippingAddressCreatePending || isShippingAddressPatchPending\"\n      width=\"60%\"\n      type=\"confirmation\"\n      persistent\n      @click:ok=\"saveAddress\"\n      @click:cancel=\"addressModal.isActive = false; addressModal.address = null;\"\n    >\n      <template #title>\n        New Address\n      </template>\n\n      <template #content>\n        <form-address v-model=\"addressModal.address\" address-type=\"business\" />\n      </template>\n    </core-dialog>\n  </v-container>\n</template>\n\n<script>\nimport { models } from 'feathers-vuex';\nimport { mapState } from 'vuex';\nimport AddressFormatterMixin from '@/mixins/address-formatter';\n\nconst {\n  ShippingAddress,\n} = models.api;\nexport default { name: 'OrderShippingAddress',\n  mixins: [AddressFormatterMixin],\n  props: ['shippingAddresses', 'value', 'moveButton'],\n  data() {\n    return {\n      content: {},\n      addressModal: {\n        isActive: false,\n        address: null,\n      },\n      tempOrder: {\n        items: [],\n        expediteOption: null,\n        shippingAddress: null,\n        forwarder: null,\n      },\n    };\n  },\n  computed: { ...mapState('shipping-addresses', {\n    isShippingAddressPatchPending: 'isPatchPending',\n    isShippingAddressCreatePending: 'isCreatePending',\n  }),\n\n  ...mapState('orders', {\n    isOrderCreatePending: 'isCreatePending',\n  }) },\n\n  methods: {\n    openAddressFormDialog(address) {\n      this.addressModal.address = address || new ShippingAddress({});\n      this.addressModal.isActive = true;\n    },\n    closeAddressFormDialog() {\n      this.addressModal.address = null;\n      this.addressModal.isActive = false;\n    },\n    async saveAddress() {\n      await this.addressModal.address.save();\n      this.addressModal.isActive = false;\n    },\n  } };\n</script>\n<style scoped>\n.address-radio-options:hover {\n  background-color: rgba(0,0,0,.03);\n}\n\n.button-moved {\n  position: absolute;\n  top: 10px;\n  left: -20px\n}\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderShippingAddress.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrderShippingAddress.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrderShippingAddress.vue?vue&type=template&id=fb74c790&scoped=true&\"\nimport script from \"./OrderShippingAddress.vue?vue&type=script&lang=js&\"\nexport * from \"./OrderShippingAddress.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OrderShippingAddress.vue?vue&type=style&index=0&id=fb74c790&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"fb74c790\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\ninstallComponents(component, {VBtn,VCard,VCardActions,VContainer,VIcon,VRadio,VRadioGroup})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tooltip',{attrs:{\"bottom\":\"\",\"color\":\"transparent\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('td',_vm._g({},on),[_c('span',{staticClass:\"shimmer\"},[_vm._v(\" \"+_vm._s(_vm.customerPriceRangeText)+\" \")])])]}}])},[_c('span',[_c('v-card',{attrs:{\"width\":\"max-content\"}},[_c('v-card-title',{staticClass:\"subtitle-1 d-flex justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('common.unitPricePerQuantity'))+\" \")]),_c('v-divider'),_c('v-list',{attrs:{\"color\":\"transparent\",\"dense\":\"\"}},_vm._l((_vm.customerPriceRangeTable),function(p,i){return _c('v-list-item',{key:i},[_c('v-list-item-content',[_vm._v(\" \"+_vm._s(p.split(':')[0] + ':')+\" \")]),_c('v-list-item-content',{staticClass:\"align-end pr-6\"},[_vm._v(\" \"+_vm._s(p.split(':')[1])+\" \")])],1)}),1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-tooltip bottom color=\"transparent\">\n    <template v-slot:activator=\"{ on }\">\n      <td\n        v-on=\"on\"\n      >\n        <span class=\"shimmer\">\n          {{ customerPriceRangeText }}\n        </span>\n      </td>\n    </template>\n    <span>\n      <v-card width=\"max-content\">\n        <v-card-title class=\"subtitle-1 d-flex justify-center\">\n          {{ $t('common.unitPricePerQuantity') }}\n        </v-card-title>\n\n        <v-divider />\n\n        <v-list\n          color=\"transparent\"\n          dense\n        >\n          <v-list-item\n            v-for=\"(p, i) in customerPriceRangeTable\"\n            :key=\"i\"\n          >\n            <v-list-item-content>\n              {{ p.split(':')[0] + ':' }}\n            </v-list-item-content>\n\n            <v-list-item-content class=\"align-end pr-6\">\n              {{ p.split(':')[1] }}\n            </v-list-item-content>\n          </v-list-item>\n        </v-list>\n      </v-card>\n    </span>\n  </v-tooltip>\n</template>\n\n<script>\nimport currency from 'currency.js';\nimport { models } from 'feathers-vuex';\n\nconst { Company } = models.api;\n\nexport default {\n  name: 'TableUnitPricing',\n\n  props: {\n    item: Object,\n  },\n\n  computed: {\n    company: () => Company.getFromStore(0),\n\n    priceRange() {\n      return JSON.parse(this.item.PriceMOQ);\n    },\n\n    customerPriceRange() {\n      if (!this.priceRange) {\n        return [];\n      }\n\n      const reqQtyPriceIndex = this.priceRange\n        .findIndex(range => range.Qty > this.item.ReqQty) - 1;\n\n      if (reqQtyPriceIndex < 0) {\n        return [];\n      }\n\n      return this.priceRange\n        .slice(reqQtyPriceIndex, Math.min(reqQtyPriceIndex + 3, this.priceRange.length));\n    },\n\n    customerPriceRangeTable() {\n      return this.customerPriceRange.map(range => `${range.Qty}: ${currency(range.Price, { symbol: this.company.currencySymbol }).format()} / unit`);\n    },\n\n    customerPriceRangeText() {\n      if (_.isEmpty(this.customerPriceRange)) {\n        return '';\n      }\n      return `${currency(_.last(this.customerPriceRange).Price, { symbol: this.company.currencySymbol }).format()} - ${currency(this.customerPriceRange[0].Price, { symbol: this.company.currencySymbol }).format()}`;\n    },\n  },\n};\n</script>\n\n<style>\n  .hovered .shimmer {\n    display: inline-block;\n    color: white;\n\n    background: rgba(0, 0, 0, 0.87) -webkit-gradient(linear, 100% 0, 0 0,\n    from(rgba(0, 0, 0, 0.87)), color-stop(0.5, #ffffff),\n    to(rgba(0, 0, 0, 0.87)));\n\n    background-position: -4rem top; /*50px*/\n    background-repeat: no-repeat;\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    -webkit-animation-name: shimmer;\n    -webkit-animation-duration: 1s;\n    -webkit-animation-iteration-count: infinite;\n    -webkit-background-size: 4rem 100%; /*50px*/\n    -webkit-animation-timing-function: linear;\n  }\n\n  @-webkit-keyframes shimmer {\n    from {\n      background-position: -4rem top; /*50px*/\n    }\n    to {\n      background-position: 11rem top; /*200px*/\n    }\n  }\n</style>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableUnitPricing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableUnitPricing.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableUnitPricing.vue?vue&type=template&id=58c01d64&\"\nimport script from \"./TableUnitPricing.vue?vue&type=script&lang=js&\"\nexport * from \"./TableUnitPricing.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableUnitPricing.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VCardTitle,VDivider,VList,VListItem,VListItemContent,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('div',{staticClass:\"d-flex justify-end mr-2 mt-2\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('closePanel')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('span',{staticClass:\"display-1 pb-6\"},[_vm._v(\"Quote Summary\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-3 subtitle-1 font-weight-bold\"},[_vm._v(\"Reference Number:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\"123\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-2 subtitle-1 font-weight-bold\"},[_vm._v(\"Quote Status:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\"status\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-2 subtitle-1 font-weight-bold\"},[_vm._v(\"Number of Parts:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\" Parts\")])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('span',{staticClass:\"mr-2 subtitle-1 font-weight-bold\"},[_vm._v(\"Submitted by:\")]),_c('span',{staticClass:\"align-end subtitle-1\"},[_vm._v(\"createdBy\")])])])],1),_c('v-row',{staticClass:\"px-8\"},[_c('v-col',[_c('core-rfq-parts-table',{attrs:{\"rfq-id\":_vm.rfqId}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-container>\n    <div class=\"d-flex justify-end mr-2 mt-2\">\n      <v-btn icon @click=\"$emit('closePanel')\">\n        <v-icon>mdi-close</v-icon>\n      </v-btn>\n    </div>\n\n    <v-row justify=\"center\">\n      <v-col cols=\"6\">\n        <div class=\"d-flex justify-center\">\n          <span class=\"display-1 pb-6\">Quote Summary</span>\n        </div>\n\n        <div class=\"d-flex justify-space-between\">\n          <span class=\"mr-3 subtitle-1 font-weight-bold\">Reference Number:</span>\n          <span class=\"align-end subtitle-1\">123</span>\n        </div>\n\n        <div class=\"d-flex justify-space-between\">\n          <span class=\"mr-2 subtitle-1 font-weight-bold\">Quote Status:</span>\n          <span class=\"align-end subtitle-1\">status</span>\n        </div>\n\n        <div class=\"d-flex justify-space-between\">\n          <span class=\"mr-2 subtitle-1 font-weight-bold\">Number of Parts:</span>\n          <span class=\"align-end subtitle-1\">\n            Parts</span>\n        </div>\n\n        <div class=\"d-flex justify-space-between\">\n          <span class=\"mr-2 subtitle-1 font-weight-bold\">Submitted by:</span>\n          <span class=\"align-end subtitle-1\">createdBy</span>\n        </div>\n      </v-col>\n    </v-row>\n\n    <v-row class=\"px-8\">\n      <v-col>\n        <core-rfq-parts-table :rfq-id=\"rfqId\" />\n      </v-col>\n    </v-row>\n  </v-container>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n  name: 'RFQPartsPanel',\n  props: {\n    rfqId: {\n      type: String\n    },\n  },\n\n  computed: {\n    ...mapGetters('parts', { findParts: 'find' }),\n\n    parts() {\n      return this.findParts({ query: {\n        EstimateID: this.rfqId\n      } }).data;\n    },\n  },\n};\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQPartsPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RFQPartsPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RFQPartsPanel.vue?vue&type=template&id=06a8e6f6&\"\nimport script from \"./RFQPartsPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./RFQPartsPanel.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","var map = {\n\t\"./core/Avatar.vue\": \"a0ec\",\n\t\"./core/BagCard.vue\": \"bda8\",\n\t\"./core/BagItemsList.vue\": \"3072\",\n\t\"./core/CompactPartCard.vue\": \"8247\",\n\t\"./core/CustomBagPriceMoqTable.vue\": \"99d7\",\n\t\"./core/DfmTable.vue\": \"9e6a\",\n\t\"./core/Dialog.vue\": \"3775\",\n\t\"./core/DrawingConsultancyPdf.vue\": \"9dfa\",\n\t\"./core/DrawingEngineFilesUpload.vue\": \"aece\",\n\t\"./core/EditOrderDropDownInformation.vue\": \"43d6\",\n\t\"./core/FinishColor.vue\": \"7678\",\n\t\"./core/FooterButtonActions.vue\": \"1d43\",\n\t\"./core/HardwareDrawingTable.vue\": \"a6eb\",\n\t\"./core/HardwareProductGroup.vue\": \"1bd3\",\n\t\"./core/HardwareThumbnailViewer.vue\": \"34e0\",\n\t\"./core/HomeHero.vue\": \"c809\",\n\t\"./core/InstantQuoteGuideLine.vue\": \"f579\",\n\t\"./core/Main.vue\": \"6665\",\n\t\"./core/ManufacturingProcessTable.vue\": \"a11db\",\n\t\"./core/ModelViewer.vue\": \"3685\",\n\t\"./core/MyPartPdf.vue\": \"fd1e\",\n\t\"./core/MyPartPdfViewer.vue\": \"658e\",\n\t\"./core/NoContent.vue\": \"a774\",\n\t\"./core/OrderItemsTable.vue\": \"e94f\",\n\t\"./core/OrderShippingAddress.vue\": \"fd97\",\n\t\"./core/Ownerships.vue\": \"8e0a\",\n\t\"./core/PartAnalysisTable.vue\": \"4ca5\",\n\t\"./core/PartCard.vue\": \"082d\",\n\t\"./core/PartCardSkeleton.vue\": \"106f\",\n\t\"./core/PartDesignTable.vue\": \"d559\",\n\t\"./core/PartViewerDrawer.vue\": \"dd29\",\n\t\"./core/PartsDesignDataTable.vue\": \"3b09\",\n\t\"./core/PaymentDialog.vue\": \"9a6c\",\n\t\"./core/PdfCanvas.vue\": \"dfd6\",\n\t\"./core/PdfViewer.vue\": \"964f\",\n\t\"./core/PriceMoqTable.vue\": \"b7db\",\n\t\"./core/PriceMoqTableUnitPriceVariation.vue\": \"e101\",\n\t\"./core/ProcessLimitationsTable.vue\": \"bd8c\",\n\t\"./core/ProductDrawingTable.vue\": \"60f9\",\n\t\"./core/ProductOption.vue\": \"e571\",\n\t\"./core/ProductOptionReadOnly.vue\": \"b7e0\",\n\t\"./core/ProductPriceMoqTable.vue\": \"fcd4\",\n\t\"./core/Promotional.vue\": \"c849\",\n\t\"./core/PurchaseOrdersPdf.vue\": \"c908\",\n\t\"./core/RFQCardActions.vue\": \"eced\",\n\t\"./core/RFQCardTransition.vue\": \"d8e2\",\n\t\"./core/RFQPartsPanel.vue\": \"ff3a\",\n\t\"./core/RangPriceMoq.vue\": \"27ec\",\n\t\"./core/RangPriceMoqLabel.vue\": \"3e8d\",\n\t\"./core/RfqCardSkeleton.vue\": \"f457\",\n\t\"./core/RfqPartCard.vue\": \"136d\",\n\t\"./core/RfqPartsTable.vue\": \"d687\",\n\t\"./core/SearchBar.vue\": \"c4a0\",\n\t\"./core/Snack.vue\": \"b6c2\",\n\t\"./core/StlFileUpload.vue\": \"629a\",\n\t\"./core/SvgViewer.vue\": \"3aff\",\n\t\"./core/TableUnitPricing.vue\": \"fe38\",\n\t\"./core/TechnicalDrawingPdf.vue\": \"6668\",\n\t\"./core/ThumbnailViewer.vue\": \"c596\",\n\t\"./core/TimeField.vue\": \"129d\",\n\t\"./core/UploadCardBodyRadio.vue\": \"3e37\",\n\t\"./core/UploadPartCard.vue\": \"4cbf\",\n\t\"./core/UploadPartHeader.vue\": \"9aa7\",\n\t\"./core/UploadSvgDrawing.vue\": \"3e39\",\n\t\"./core/VersionManager.vue\": \"0adc\",\n\t\"./core/WarningErrorTable.vue\": \"00be\",\n\t\"./core/WelcomeScreenOrderStepsBanner.vue\": \"edef\",\n\t\"./core/WelcomeScreenPromotionCountdownBanner.vue\": \"b013\",\n\t\"./core/WelcomeScreenReferral.vue\": \"4dc8\",\n\t\"./core/WelcomeScreenUploadFileBanner.vue\": \"2cf9\",\n\t\"./core/filter/CheckboxGroup.vue\": \"809e\",\n\t\"./core/filter/Filter.vue\": \"49e2\",\n\t\"./core/filter/Main.vue\": \"5f4f\",\n\t\"./core/filter/RadioGroup.vue\": \"fc6d\",\n\t\"./core/filter/RangeSlider.vue\": \"af5d\",\n\t\"./core/filter/SwitchGroup.vue\": \"abee\",\n\t\"./form/Address.vue\": \"2e19\",\n\t\"./form/Email.vue\": \"1ee7\",\n\t\"./form/Forwarder.vue\": \"2b76\",\n\t\"./form/Phone.vue\": \"502e\",\n\t\"./form/Role.vue\": \"1455\",\n\t\"./form/User.vue\": \"5bb5\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"ffe0\";"],"sourceRoot":""}