@fluid-app/portal-sdk 0.1.230 → 0.1.232
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AppDownloadScreen-BmYJ7Zgb.cjs → AppDownloadScreen-B0YwMqYM.cjs} +2 -2
- package/dist/{AppDownloadScreen-BmYJ7Zgb.cjs.map → AppDownloadScreen-B0YwMqYM.cjs.map} +1 -1
- package/dist/{AppDownloadScreen-zrhWlSE7.mjs → AppDownloadScreen-Dj5ZPsSb.mjs} +2 -2
- package/dist/{AppDownloadScreen-zrhWlSE7.mjs.map → AppDownloadScreen-Dj5ZPsSb.mjs.map} +1 -1
- package/dist/{AppNavigationContext-C1-hd9Rw.cjs → AppNavigationContext-BDs1cOuG.cjs} +1 -1
- package/dist/{AppNavigationContext-C1-hd9Rw.cjs.map → AppNavigationContext-BDs1cOuG.cjs.map} +1 -1
- package/dist/{AppNavigationContext-BcZZMtV6.mjs → AppNavigationContext-DNod9mf6.mjs} +1 -1
- package/dist/{AppNavigationContext-BcZZMtV6.mjs.map → AppNavigationContext-DNod9mf6.mjs.map} +1 -1
- package/dist/{ContactsScreen-BfS33bcq.cjs → ContactsScreen-9cZWC9PP.cjs} +6 -6
- package/dist/{ContactsScreen-DHHzJhO4.mjs → ContactsScreen-B4Ue9m5H.mjs} +9 -22
- package/dist/ContactsScreen-B4Ue9m5H.mjs.map +1 -0
- package/dist/{ContactsScreen-gq1fPZzb.cjs → ContactsScreen-BTQ_qfq3.cjs} +10 -23
- package/dist/ContactsScreen-BTQ_qfq3.cjs.map +1 -0
- package/dist/{CustomersScreen-D55HjYHC.mjs → CustomersScreen-CX3P2KpF.mjs} +1 -1
- package/dist/{CustomersScreen-D55HjYHC.mjs.map → CustomersScreen-CX3P2KpF.mjs.map} +1 -1
- package/dist/{CustomersScreen-DW3BuhBs.cjs → CustomersScreen-GROLIynQ.cjs} +1 -1
- package/dist/{CustomersScreen-DW3BuhBs.cjs.map → CustomersScreen-GROLIynQ.cjs.map} +1 -1
- package/dist/{FluidProvider-Bc56jo27.cjs → FluidProvider-BNL_Apw2.cjs} +27 -7
- package/dist/{FluidProvider-Bc56jo27.cjs.map → FluidProvider-BNL_Apw2.cjs.map} +1 -1
- package/dist/{FluidProvider-CLpYfVNX.mjs → FluidProvider-Dg-eouRw.mjs} +27 -7
- package/dist/FluidProvider-Dg-eouRw.mjs.map +1 -0
- package/dist/{InfiniteScrollSentinel-bVdxImf8.mjs → InfiniteScrollSentinel-CQD9JPVe.mjs} +1 -1
- package/dist/{InfiniteScrollSentinel-bVdxImf8.mjs.map → InfiniteScrollSentinel-CQD9JPVe.mjs.map} +1 -1
- package/dist/{InfiniteScrollSentinel-LcHXpBw-.cjs → InfiniteScrollSentinel-V1ubmA8z.cjs} +1 -1
- package/dist/{InfiniteScrollSentinel-LcHXpBw-.cjs.map → InfiniteScrollSentinel-V1ubmA8z.cjs.map} +1 -1
- package/dist/{MessagingScreen-araykPtU.cjs → MessagingScreen-BMoCh4MT.cjs} +6 -6
- package/dist/{MessagingScreen-BJnHF8Va.cjs → MessagingScreen-CxpLlTW_.cjs} +5 -5
- package/dist/{MessagingScreen-BJnHF8Va.cjs.map → MessagingScreen-CxpLlTW_.cjs.map} +1 -1
- package/dist/{MessagingScreen-DLmXcdxZ.mjs → MessagingScreen-Q17pdhUz.mjs} +3 -3
- package/dist/{MessagingScreen-DLmXcdxZ.mjs.map → MessagingScreen-Q17pdhUz.mjs.map} +1 -1
- package/dist/{MySiteScreen-DsR9VEwa.cjs → MySiteScreen-5-eNH2S6.cjs} +3 -3
- package/dist/{MySiteScreen-DwgWY0cl.cjs → MySiteScreen-B1yomsp6.cjs} +3 -3
- package/dist/{MySiteScreen-DwgWY0cl.cjs.map → MySiteScreen-B1yomsp6.cjs.map} +1 -1
- package/dist/{MySiteScreen-Q9xN2oxD.mjs → MySiteScreen-BBT8FN5s.mjs} +3 -3
- package/dist/{MySiteScreen-Q9xN2oxD.mjs.map → MySiteScreen-BBT8FN5s.mjs.map} +1 -1
- package/dist/OrdersScreen-Co2oatu4.cjs +9 -0
- package/dist/{OrdersScreen-YWHy3VBL.mjs → OrdersScreen-DkTGTQJZ.mjs} +5 -5
- package/dist/{OrdersScreen-YWHy3VBL.mjs.map → OrdersScreen-DkTGTQJZ.mjs.map} +1 -1
- package/dist/{OrdersScreen-BPrt9kNr.cjs → OrdersScreen-e5DdNpD-.cjs} +5 -5
- package/dist/{OrdersScreen-BPrt9kNr.cjs.map → OrdersScreen-e5DdNpD-.cjs.map} +1 -1
- package/dist/{PortalProductsApiProvider-BeCWFRtF.mjs → PortalProductsApiProvider-BIZg_c4Y.mjs} +2 -2
- package/dist/{PortalProductsApiProvider-BeCWFRtF.mjs.map → PortalProductsApiProvider-BIZg_c4Y.mjs.map} +1 -1
- package/dist/{PortalProductsApiProvider-Bb5B1Hv5.cjs → PortalProductsApiProvider-DL8nl7To.cjs} +2 -2
- package/dist/{PortalProductsApiProvider-Bb5B1Hv5.cjs.map → PortalProductsApiProvider-DL8nl7To.cjs.map} +1 -1
- package/dist/{ProfileScreen-KkzdoK5p.cjs → ProfileScreen-BSWw10cc.cjs} +6 -6
- package/dist/{ProfileScreen-B55RliPH.mjs → ProfileScreen-CHsIDbg8.mjs} +6 -6
- package/dist/{ProfileScreen-B55RliPH.mjs.map → ProfileScreen-CHsIDbg8.mjs.map} +1 -1
- package/dist/{ProfileScreen-CgieZEps.cjs → ProfileScreen-CVOS2By3.cjs} +6 -6
- package/dist/{ProfileScreen-CgieZEps.cjs.map → ProfileScreen-CVOS2By3.cjs.map} +1 -1
- package/dist/{ScreenHeaderContext-4WYXIqQ5.mjs → ScreenHeaderContext-Cemdo7bM.mjs} +1 -1
- package/dist/{ScreenHeaderContext-4WYXIqQ5.mjs.map → ScreenHeaderContext-Cemdo7bM.mjs.map} +1 -1
- package/dist/{ScreenHeaderContext-PbjwAMeB.cjs → ScreenHeaderContext-oIu5Bvhs.cjs} +1 -1
- package/dist/{ScreenHeaderContext-PbjwAMeB.cjs.map → ScreenHeaderContext-oIu5Bvhs.cjs.map} +1 -1
- package/dist/{SearchSort-BQ-nf9gJ.mjs → SearchSort-DN0gsmxk.mjs} +1 -1
- package/dist/{SearchSort-BQ-nf9gJ.mjs.map → SearchSort-DN0gsmxk.mjs.map} +1 -1
- package/dist/{SearchSort-Hwga1dIi.cjs → SearchSort-O89uV2dl.cjs} +1 -1
- package/dist/{SearchSort-Hwga1dIi.cjs.map → SearchSort-O89uV2dl.cjs.map} +1 -1
- package/dist/{ShareablesScreen-DjRtywMv.mjs → ShareablesScreen-DHKFnIOE.mjs} +1238 -282
- package/dist/ShareablesScreen-DHKFnIOE.mjs.map +1 -0
- package/dist/{ShareablesScreen-CTIe6EH0.cjs → ShareablesScreen-DQjgnn2x.cjs} +8 -8
- package/dist/{ShareablesScreen-o6frhZUM.cjs → ShareablesScreen-DfrTNnRw.cjs} +1238 -282
- package/dist/ShareablesScreen-DfrTNnRw.cjs.map +1 -0
- package/dist/{ShopScreen-Bgflgt7W.cjs → ShopScreen-CFR2O1jn.cjs} +7 -7
- package/dist/{ShopScreen-DEKy0nFN.mjs → ShopScreen-CLN8FFiL.mjs} +7 -7
- package/dist/{ShopScreen-DEKy0nFN.mjs.map → ShopScreen-CLN8FFiL.mjs.map} +1 -1
- package/dist/{ShopScreen-8VoJvVs7.cjs → ShopScreen-jk3Y3-x8.cjs} +7 -7
- package/dist/{ShopScreen-8VoJvVs7.cjs.map → ShopScreen-jk3Y3-x8.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-mUaEWHn5.mjs → SubscriptionsScreen-CVPj6hhP.mjs} +10 -10
- package/dist/{SubscriptionsScreen-mUaEWHn5.mjs.map → SubscriptionsScreen-CVPj6hhP.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-CISCXowf.cjs → SubscriptionsScreen-DOf7rlRP.cjs} +6 -6
- package/dist/{SubscriptionsScreen-BsOdTfJQ.cjs → SubscriptionsScreen-r2_drNFg.cjs} +11 -11
- package/dist/{SubscriptionsScreen-BsOdTfJQ.cjs.map → SubscriptionsScreen-r2_drNFg.cjs.map} +1 -1
- package/dist/ToDoWidget-BgyusdPn.cjs +8 -0
- package/dist/{ToDoWidget-CaDOZtAB.cjs → ToDoWidget-CQ_zTbhz.cjs} +114 -31
- package/dist/ToDoWidget-CQ_zTbhz.cjs.map +1 -0
- package/dist/{ToDoWidget-Bv258x8F.mjs → ToDoWidget-DYGt45vL.mjs} +116 -23
- package/dist/ToDoWidget-DYGt45vL.mjs.map +1 -0
- package/dist/{UpgradeScreen-4Z5_ALSr.cjs → UpgradeScreen-BJbdv9T9.cjs} +1 -1
- package/dist/{UpgradeScreen-CGiVn0KG.mjs → UpgradeScreen-DMxxZjj_.mjs} +1 -1
- package/dist/{UpgradeScreen-CGiVn0KG.mjs.map → UpgradeScreen-DMxxZjj_.mjs.map} +1 -1
- package/dist/{UpgradeScreen-BaclFXEh.cjs → UpgradeScreen-QhhBuHXE.cjs} +1 -1
- package/dist/{UpgradeScreen-BaclFXEh.cjs.map → UpgradeScreen-QhhBuHXE.cjs.map} +1 -1
- package/dist/{VideoWidget-BntlfHhP.cjs → VideoWidget-Bc6ZAAaA.cjs} +1 -1
- package/dist/{VideoWidget-BntlfHhP.cjs.map → VideoWidget-Bc6ZAAaA.cjs.map} +1 -1
- package/dist/{VideoWidget-DmHZ05vp.mjs → VideoWidget-lTyeZypJ.mjs} +1 -1
- package/dist/{VideoWidget-DmHZ05vp.mjs.map → VideoWidget-lTyeZypJ.mjs.map} +1 -1
- package/dist/{dist-FHf4OHgt.cjs → dist-BQZkLGL6.cjs} +1 -1
- package/dist/{dist-FHf4OHgt.cjs.map → dist-BQZkLGL6.cjs.map} +1 -1
- package/dist/{dist-BQCx-9SK.cjs → dist-DbRTQ2QF.cjs} +1 -1
- package/dist/{dist-BQCx-9SK.cjs.map → dist-DbRTQ2QF.cjs.map} +1 -1
- package/dist/{dist-q1wrtxfG.mjs → dist-PbA1vxAz.mjs} +1 -1
- package/dist/{dist-q1wrtxfG.mjs.map → dist-PbA1vxAz.mjs.map} +1 -1
- package/dist/{dist-5XPflEEG.cjs → dist-myuZC8sf.cjs} +2 -2
- package/dist/{dist-5XPflEEG.cjs.map → dist-myuZC8sf.cjs.map} +1 -1
- package/dist/{dist-CsNsoBdu.mjs → dist-o2cjwzIa.mjs} +2 -2
- package/dist/{dist-CsNsoBdu.mjs.map → dist-o2cjwzIa.mjs.map} +1 -1
- package/dist/{es-nxOxb57F.cjs → es-UfEBhcZD.cjs} +1 -1
- package/dist/{es-nxOxb57F.cjs.map → es-UfEBhcZD.cjs.map} +1 -1
- package/dist/{fluid-pay-api-adapter-COBmngde.cjs → fluid-pay-api-adapter-CLP8wfno.cjs} +1 -1
- package/dist/{fluid-pay-api-adapter-COBmngde.cjs.map → fluid-pay-api-adapter-CLP8wfno.cjs.map} +1 -1
- package/dist/{fluid-pay-api-adapter-Dv2K17WN.mjs → fluid-pay-api-adapter-Dfi0LtxL.mjs} +1 -1
- package/dist/{fluid-pay-api-adapter-Dv2K17WN.mjs.map → fluid-pay-api-adapter-Dfi0LtxL.mjs.map} +1 -1
- package/dist/{format-Dyb61f6F.cjs → format-CytB2M00.cjs} +1 -1
- package/dist/{format-Dyb61f6F.cjs.map → format-CytB2M00.cjs.map} +1 -1
- package/dist/index.cjs +49 -49
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +48 -48
- package/dist/{order-status-badge-CnQE7lFJ.mjs → order-status-badge-CL5XC2va.mjs} +3 -3
- package/dist/{order-status-badge-CnQE7lFJ.mjs.map → order-status-badge-CL5XC2va.mjs.map} +1 -1
- package/dist/{order-status-badge-NMygmn5d.cjs → order-status-badge-Cqkx76d8.cjs} +3 -3
- package/dist/{order-status-badge-NMygmn5d.cjs.map → order-status-badge-Cqkx76d8.cjs.map} +1 -1
- package/dist/parse-task-body-BxbA_DC6.cjs +29 -0
- package/dist/parse-task-body-BxbA_DC6.cjs.map +1 -0
- package/dist/parse-task-body-DEmYvdNM.mjs +24 -0
- package/dist/parse-task-body-DEmYvdNM.mjs.map +1 -0
- package/dist/{portal_tenant-GpShCvG9.cjs → portal_tenant-CNmiAf_A.cjs} +34 -1
- package/dist/portal_tenant-CNmiAf_A.cjs.map +1 -0
- package/dist/{portal_tenant-CFngP8OD.mjs → portal_tenant-Q3x7ALaZ.mjs} +23 -2
- package/dist/portal_tenant-Q3x7ALaZ.mjs.map +1 -0
- package/dist/{portal_tenant_content-WBAKi5Vl.mjs → portal_tenant_content-CEDc7an2.mjs} +2 -2
- package/dist/portal_tenant_content-CEDc7an2.mjs.map +1 -0
- package/dist/{portal_tenant_content-Bnr0IyhM.cjs → portal_tenant_content-D60b_KWd.cjs} +2 -2
- package/dist/portal_tenant_content-D60b_KWd.cjs.map +1 -0
- package/dist/{query-keys-CC2PXIfJ.cjs → query-keys-D3lK70Ea.cjs} +1 -1
- package/dist/{query-keys-BkMRwfNo.mjs.map → query-keys-D3lK70Ea.cjs.map} +1 -1
- package/dist/{query-keys-BkMRwfNo.mjs → query-keys-xJy_fapN.mjs} +1 -1
- package/dist/{query-keys-CC2PXIfJ.cjs.map → query-keys-xJy_fapN.mjs.map} +1 -1
- package/dist/{sortable.esm-BSpvRpWg.mjs → sortable.esm-C8G00cCP.mjs} +1 -1
- package/dist/{sortable.esm-BSpvRpWg.mjs.map → sortable.esm-C8G00cCP.mjs.map} +1 -1
- package/dist/{use-account-Ipii17ZX.mjs → use-account-CBMPhhs7.mjs} +2 -2
- package/dist/{use-account-Ipii17ZX.mjs.map → use-account-CBMPhhs7.mjs.map} +1 -1
- package/dist/{use-account-Bv_VAVxj.cjs → use-account-DcBCP06c.cjs} +2 -2
- package/dist/{use-account-Bv_VAVxj.cjs.map → use-account-DcBCP06c.cjs.map} +1 -1
- package/dist/{use-store-3holBUj4.mjs → use-store-By_7tzrN.mjs} +1 -1
- package/dist/{use-store-3holBUj4.mjs.map → use-store-By_7tzrN.mjs.map} +1 -1
- package/dist/{use-store-D2S1FywW.cjs → use-store-lOOUcpRT.cjs} +1 -1
- package/dist/{use-store-D2S1FywW.cjs.map → use-store-lOOUcpRT.cjs.map} +1 -1
- package/package.json +10 -10
- package/dist/ContactsScreen-DHHzJhO4.mjs.map +0 -1
- package/dist/ContactsScreen-gq1fPZzb.cjs.map +0 -1
- package/dist/FluidProvider-CLpYfVNX.mjs.map +0 -1
- package/dist/OrdersScreen-knd6gnEi.cjs +0 -9
- package/dist/ShareablesScreen-DjRtywMv.mjs.map +0 -1
- package/dist/ShareablesScreen-o6frhZUM.cjs.map +0 -1
- package/dist/ToDoWidget-Bv258x8F.mjs.map +0 -1
- package/dist/ToDoWidget-CaDOZtAB.cjs.map +0 -1
- package/dist/portal_tenant-CFngP8OD.mjs.map +0 -1
- package/dist/portal_tenant-GpShCvG9.cjs.map +0 -1
- package/dist/portal_tenant_content-Bnr0IyhM.cjs.map +0 -1
- package/dist/portal_tenant_content-WBAKi5Vl.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-FHf4OHgt.cjs","names":["useMySiteApi","e","e","t","n","React","e","t","n","r","o","React"],"sources":["../../../mysite/ui/src/portal/hooks/use-mysite-portal.ts","../../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/index.js","../../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/index.js","../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/index.js","../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/sortable.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/sortable.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/index.js"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useMySiteApi } from \"@fluid-app/mysite-core/mysite-api-context\";\nimport type {\n MySiteProfile,\n MySiteLink,\n MySiteFavorite,\n MySiteTheme,\n CreateLinkBody,\n UpdateLinkBody,\n UpdateProfileBody,\n UpdateSettingsBody,\n AddFavoriteBody,\n} from \"@fluid-app/mysite-core/mysite-api-types\";\n\n// ---------------------------------------------------------------------------\n// Query keys — session-scoped, no userId/affiliateId needed\n// ---------------------------------------------------------------------------\n\nexport const PORTAL_MYSITE_KEYS = {\n profile: () => [\"portal-mysite\", \"profile\"] as const,\n links: () => [\"portal-mysite\", \"links\"] as const,\n favorites: () => [\"portal-mysite\", \"favorites\"] as const,\n themes: () => [\"portal-mysite\", \"themes\"] as const,\n};\n\n// ---------------------------------------------------------------------------\n// Profile hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteProfile() {\n const api = useMySiteApi();\n return useQuery<MySiteProfile>({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n queryFn: () => api.fetchProfile(),\n });\n}\n\nexport function usePortalUpdateProfile(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateProfileBody) => api.updateProfile(body),\n onSuccess: (data) => {\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.profile(), data);\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\nexport function usePortalUpdateSettings(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateSettingsBody) => api.updateSettings(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Links hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalLinks() {\n const api = useMySiteApi();\n return useQuery<MySiteLink[]>({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n queryFn: () => api.listLinks(),\n });\n}\n\nexport function usePortalCreateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: CreateLinkBody) => api.createLink(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalUpdateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({ linkId, body }: { linkId: number; body: UpdateLinkBody }) =>\n api.updateLink(linkId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalDeleteLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (linkId: number) => api.deleteLink(linkId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalReorderLinks() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteLink[];\n }) => api.reorderLinks(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n const previousData = queryClient.getQueryData<MySiteLink[]>(\n PORTAL_MYSITE_KEYS.links(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.links(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.links(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Favorites hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalFavorites() {\n const api = useMySiteApi();\n return useQuery<MySiteFavorite[]>({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n queryFn: () => api.listFavorites(),\n });\n}\n\nexport function usePortalAddFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: AddFavoriteBody) => api.addFavorite(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalDeleteFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (favoriteId: number) => api.deleteFavorite(favoriteId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalReorderFavorites() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteFavorite[];\n }) => api.reorderFavorites(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n const previousData = queryClient.getQueryData<MySiteFavorite[]>(\n PORTAL_MYSITE_KEYS.favorites(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.favorites(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.favorites(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Themes hook\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteThemes() {\n const api = useMySiteApi();\n return useQuery<MySiteTheme[]>({\n queryKey: PORTAL_MYSITE_KEYS.themes(),\n queryFn: () => api.listThemes(),\n });\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"react\");const t=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function n(e){const t=Object.prototype.toString.call(e);return\"[object Window]\"===t||\"[object global]\"===t}function r(e){return\"nodeType\"in e}function o(e){var t,o;return e?n(e)?e:r(e)&&null!=(t=null==(o=e.ownerDocument)?void 0:o.defaultView)?t:window:window}function u(e){const{Document:t}=o(e);return e instanceof t}function c(e){return!n(e)&&e instanceof o(e).HTMLElement}function s(e){return e instanceof o(e).SVGElement}const i=t?e.useLayoutEffect:e.useEffect;function a(t){const n=e.useRef(t);return i(()=>{n.current=t}),e.useCallback((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return null==n.current?void 0:n.current(...t)}),[])}let l={};function f(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((t,n)=>{const r=Object.entries(n);for(const[n,o]of r){const r=t[n];null!=r&&(t[n]=r+e*o)}return t},{...t})}}const d=f(1),p=f(-1);function x(e){return\"clientX\"in e&&\"clientY\"in e}function m(e){if(!e)return!1;const{TouchEvent:t}=o(e.target);return t&&e instanceof t}const h=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return\"translate3d(\"+(t?Math.round(t):0)+\"px, \"+(n?Math.round(n):0)+\"px, 0)\"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return\"scaleX(\"+t+\") scaleY(\"+n+\")\"}},Transform:{toString(e){if(e)return[h.Translate.toString(e),h.Scale.toString(e)].join(\" \")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+\" \"+n+\"ms \"+r}}}),b=\"a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]\";exports.CSS=h,exports.add=d,exports.canUseDOM=t,exports.findFirstFocusableNode=function(e){return e.matches(b)?e:e.querySelector(b)},exports.getEventCoordinates=function(e){if(m(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return x(e)?{x:e.clientX,y:e.clientY}:null},exports.getOwnerDocument=function(e){return e?n(e)?e.document:r(e)?u(e)?e:c(e)||s(e)?e.ownerDocument:document:document:document},exports.getWindow=o,exports.hasViewportRelativeCoordinates=x,exports.isDocument=u,exports.isHTMLElement=c,exports.isKeyboardEvent=function(e){if(!e)return!1;const{KeyboardEvent:t}=o(e.target);return t&&e instanceof t},exports.isNode=r,exports.isSVGElement=s,exports.isTouchEvent=m,exports.isWindow=n,exports.subtract=p,exports.useCombinedRefs=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.useMemo(()=>e=>{n.forEach(t=>t(e))},n)},exports.useEvent=a,exports.useInterval=function(){const t=e.useRef(null);return[e.useCallback((e,n)=>{t.current=setInterval(e,n)},[]),e.useCallback(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]},exports.useIsomorphicLayoutEffect=i,exports.useLatestValue=function(t,n){void 0===n&&(n=[t]);const r=e.useRef(t);return i(()=>{r.current!==t&&(r.current=t)},n),r},exports.useLazyMemo=function(t,n){const r=e.useRef();return e.useMemo(()=>{const e=t(r.current);return r.current=e,e},[...n])},exports.useNodeRef=function(t){const n=a(t),r=e.useRef(null),o=e.useCallback(e=>{e!==r.current&&(null==n||n(e,r.current)),r.current=e},[]);return[r,o]},exports.usePrevious=function(t){const n=e.useRef();return e.useEffect(()=>{n.current=t},[t]),n.current},exports.useUniqueId=function(t,n){return e.useMemo(()=>{if(n)return n;const e=null==l[t]?0:l[t]+1;return l[t]=e,t+\"-\"+e},[t,n])};\n//# sourceMappingURL=utilities.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar react = require('react');\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return react.useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? react.useLayoutEffect : react.useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = react.useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return react.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = react.useRef(null);\n const set = react.useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = react.useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = react.useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = react.useRef();\n return react.useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = react.useRef(null);\n const setNodeRef = react.useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = react.useRef();\n react.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return react.useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexports.CSS = CSS;\nexports.add = add;\nexports.canUseDOM = canUseDOM;\nexports.findFirstFocusableNode = findFirstFocusableNode;\nexports.getEventCoordinates = getEventCoordinates;\nexports.getOwnerDocument = getOwnerDocument;\nexports.getWindow = getWindow;\nexports.hasViewportRelativeCoordinates = hasViewportRelativeCoordinates;\nexports.isDocument = isDocument;\nexports.isHTMLElement = isHTMLElement;\nexports.isKeyboardEvent = isKeyboardEvent;\nexports.isNode = isNode;\nexports.isSVGElement = isSVGElement;\nexports.isTouchEvent = isTouchEvent;\nexports.isWindow = isWindow;\nexports.subtract = subtract;\nexports.useCombinedRefs = useCombinedRefs;\nexports.useEvent = useEvent;\nexports.useInterval = useInterval;\nexports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;\nexports.useLatestValue = useLatestValue;\nexports.useLazyMemo = useLazyMemo;\nexports.useNodeRef = useNodeRef;\nexports.usePrevious = usePrevious;\nexports.useUniqueId = useUniqueId;\n//# sourceMappingURL=utilities.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./utilities.cjs.production.min.js')\n} else {\n module.exports = require('./utilities.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),n=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e;const i={display:\"none\"};exports.HiddenText=function(e){let{id:t,value:r}=e;return n.createElement(\"div\",{id:t,style:i},r)},exports.LiveRegion=function(e){let{id:t,announcement:i,ariaLiveType:r=\"assertive\"}=e;return n.createElement(\"div\",{id:t,style:{position:\"fixed\",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:\"hidden\",clip:\"rect(0 0 0 0)\",clipPath:\"inset(100%)\",whiteSpace:\"nowrap\"},role:\"status\",\"aria-live\":r,\"aria-atomic\":!0},i)},exports.useAnnouncement=function(){const[e,n]=t.useState(\"\");return{announce:t.useCallback(e=>{null!=e&&n(e)},[]),announcement:e}};\n//# sourceMappingURL=accessibility.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React__default.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React__default.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = React.useState('');\n const announce = React.useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexports.HiddenText = HiddenText;\nexports.LiveRegion = LiveRegion;\nexports.useAnnouncement = useAnnouncement;\n//# sourceMappingURL=accessibility.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./accessibility.cjs.production.min.js')\n} else {\n module.exports = require('./accessibility.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),n=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e,r=require(\"react-dom\"),o=require(\"@dnd-kit/utilities\"),i=require(\"@dnd-kit/accessibility\");const a=t.createContext(null);function s(e){const n=t.useContext(a);t.useEffect(()=>{if(!n)throw new Error(\"useDndMonitor must be used within a children of <DndContext>\");return n(e)},[e,n])}const l={draggable:\"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"},c={onDragStart(e){let{active:t}=e;return\"Picked up draggable item \"+t.id+\".\"},onDragOver(e){let{active:t,over:n}=e;return n?\"Draggable item \"+t.id+\" was moved over droppable area \"+n.id+\".\":\"Draggable item \"+t.id+\" is no longer over a droppable area.\"},onDragEnd(e){let{active:t,over:n}=e;return n?\"Draggable item \"+t.id+\" was dropped over droppable area \"+n.id:\"Draggable item \"+t.id+\" was dropped.\"},onDragCancel(e){let{active:t}=e;return\"Dragging was cancelled. Draggable item \"+t.id+\" was dropped.\"}};function d(e){let{announcements:a=c,container:d,hiddenTextDescribedById:u,screenReaderInstructions:f=l}=e;const{announce:v,announcement:g}=i.useAnnouncement(),p=o.useUniqueId(\"DndLiveRegion\"),[h,b]=t.useState(!1);if(t.useEffect(()=>{b(!0)},[]),s(t.useMemo(()=>({onDragStart(e){let{active:t}=e;v(a.onDragStart({active:t}))},onDragMove(e){let{active:t,over:n}=e;a.onDragMove&&v(a.onDragMove({active:t,over:n}))},onDragOver(e){let{active:t,over:n}=e;v(a.onDragOver({active:t,over:n}))},onDragEnd(e){let{active:t,over:n}=e;v(a.onDragEnd({active:t,over:n}))},onDragCancel(e){let{active:t,over:n}=e;v(a.onDragCancel({active:t,over:n}))}}),[v,a])),!h)return null;const m=n.createElement(n.Fragment,null,n.createElement(i.HiddenText,{id:u,value:f.draggable}),n.createElement(i.LiveRegion,{id:p,announcement:g}));return d?r.createPortal(m,d):m}var u;function f(){}!function(e){e.DragStart=\"dragStart\",e.DragMove=\"dragMove\",e.DragEnd=\"dragEnd\",e.DragCancel=\"dragCancel\",e.DragOver=\"dragOver\",e.RegisterDroppable=\"registerDroppable\",e.SetDroppableDisabled=\"setDroppableDisabled\",e.UnregisterDroppable=\"unregisterDroppable\"}(u||(u={}));const v=Object.freeze({x:0,y:0});function g(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function p(e,t){const n=o.getEventCoordinates(e);return n?(n.x-t.left)/t.width*100+\"% \"+(n.y-t.top)/t.height*100+\"%\":\"0 0\"}function h(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function b(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function m(e){let{left:t,top:n,height:r,width:o}=e;return[{x:t,y:n},{x:t+o,y:n},{x:t,y:n+r},{x:t+o,y:n+r}]}function y(e,t){if(!e||0===e.length)return null;const[n]=e;return t?n[t]:n}function x(e,t,n){return void 0===t&&(t=e.left),void 0===n&&(n=e.top),{x:t+.5*e.width,y:n+.5*e.height}}function w(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height);if(r<o&&n<i){const a=(o-r)*(i-n);return Number((a/(t.width*t.height+e.width*e.height-a)).toFixed(4))}return 0}const C=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const e of r){const{id:r}=e,i=n.get(r);if(i){const n=w(i,t);n>0&&o.push({id:r,data:{droppableContainer:e,value:n}})}}return o.sort(b)};function E(e,t){const{top:n,left:r,bottom:o,right:i}=t;return n<=e.y&&e.y<=o&&r<=e.x&&e.x<=i}function D(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:v}function R(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}const S=R(1);function M(e){if(e.startsWith(\"matrix3d(\")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(\"matrix(\")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}const N={ignoreTransform:!1};function O(e,t){void 0===t&&(t=N);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:r}=o.getWindow(e).getComputedStyle(e);t&&(n=function(e,t,n){const r=M(t);if(!r)return e;const{scaleX:o,scaleY:i,x:a,y:s}=r,l=e.left-a-(1-o)*parseFloat(n),c=e.top-s-(1-i)*parseFloat(n.slice(n.indexOf(\" \")+1)),d=o?e.width/o:e.width,u=i?e.height/i:e.height;return{width:d,height:u,top:c,right:l+d,bottom:c+u,left:l}}(n,t,r))}const{top:r,left:i,width:a,height:s,bottom:l,right:c}=n;return{top:r,left:i,width:a,height:s,bottom:l,right:c}}function A(e){return O(e,{ignoreTransform:!0})}function L(e,t){const n=[];return e?function r(i){if(null!=t&&n.length>=t)return n;if(!i)return n;if(o.isDocument(i)&&null!=i.scrollingElement&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!o.isHTMLElement(i)||o.isSVGElement(i))return n;if(n.includes(i))return n;const a=o.getWindow(e).getComputedStyle(i);return i!==e&&function(e,t){void 0===t&&(t=o.getWindow(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return[\"overflow\",\"overflowX\",\"overflowY\"].some(e=>{const r=t[e];return\"string\"==typeof r&&n.test(r)})}(i,a)&&n.push(i),function(e,t){return void 0===t&&(t=o.getWindow(e).getComputedStyle(e)),\"fixed\"===t.position}(i,a)?n:r(i.parentNode)}(e):n}function k(e){const[t]=L(e,1);return null!=t?t:null}function T(e){return o.canUseDOM&&e?o.isWindow(e)?e:o.isNode(e)?o.isDocument(e)||e===o.getOwnerDocument(e).scrollingElement?window:o.isHTMLElement(e)?e:null:null:null}function K(e){return o.isWindow(e)?e.scrollX:e.scrollLeft}function P(e){return o.isWindow(e)?e.scrollY:e.scrollTop}function I(e){return{x:K(e),y:P(e)}}var B;function z(e){return!(!o.canUseDOM||!e)&&e===document.scrollingElement}function F(e){const t={x:0,y:0},n=z(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}!function(e){e[e.Forward=1]=\"Forward\",e[e.Backward=-1]=\"Backward\"}(B||(B={}));const W={x:.2,y:.2};function U(e,t,n,r,o){let{top:i,left:a,right:s,bottom:l}=n;void 0===r&&(r=10),void 0===o&&(o=W);const{isTop:c,isBottom:d,isLeft:u,isRight:f}=F(e),v={x:0,y:0},g={x:0,y:0},p=t.height*o.y,h=t.width*o.x;return!c&&i<=t.top+p?(v.y=B.Backward,g.y=r*Math.abs((t.top+p-i)/p)):!d&&l>=t.bottom-p&&(v.y=B.Forward,g.y=r*Math.abs((t.bottom-p-l)/p)),!f&&s>=t.right-h?(v.x=B.Forward,g.x=r*Math.abs((t.right-h-s)/h)):!u&&a<=t.left+h&&(v.x=B.Backward,g.x=r*Math.abs((t.left+h-a)/h)),{direction:v,speed:g}}function j(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function q(e){return e.reduce((e,t)=>o.add(e,I(t)),v)}function H(e,t){if(void 0===t&&(t=O),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);k(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:\"center\",inline:\"center\"})}const X=[[\"x\",[\"left\",\"right\"],function(e){return e.reduce((e,t)=>e+K(t),0)}],[\"y\",[\"top\",\"bottom\"],function(e){return e.reduce((e,t)=>e+P(t),0)}]];class Y{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=L(t),r=q(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[e,t,o]of X)for(const i of t)Object.defineProperty(this,i,{get:()=>{const t=o(n);return this.rect[i]+(r[e]-t)},enumerable:!0});Object.defineProperty(this,\"rect\",{enumerable:!1})}}class V{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function J(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return\"number\"==typeof t?Math.sqrt(n**2+r**2)>t:\"x\"in t&&\"y\"in t?n>t.x&&r>t.y:\"x\"in t?n>t.x:\"y\"in t&&r>t.y}var _,G;function Q(e){e.preventDefault()}function Z(e){e.stopPropagation()}!function(e){e.Click=\"click\",e.DragStart=\"dragstart\",e.Keydown=\"keydown\",e.ContextMenu=\"contextmenu\",e.Resize=\"resize\",e.SelectionChange=\"selectionchange\",e.VisibilityChange=\"visibilitychange\"}(_||(_={})),(G=exports.KeyboardCode||(exports.KeyboardCode={})).Space=\"Space\",G.Down=\"ArrowDown\",G.Right=\"ArrowRight\",G.Left=\"ArrowLeft\",G.Up=\"ArrowUp\",G.Esc=\"Escape\",G.Enter=\"Enter\",G.Tab=\"Tab\";const $={start:[exports.KeyboardCode.Space,exports.KeyboardCode.Enter],cancel:[exports.KeyboardCode.Esc],end:[exports.KeyboardCode.Space,exports.KeyboardCode.Enter,exports.KeyboardCode.Tab]},ee=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case exports.KeyboardCode.Right:return{...n,x:n.x+25};case exports.KeyboardCode.Left:return{...n,x:n.x-25};case exports.KeyboardCode.Down:return{...n,y:n.y+25};case exports.KeyboardCode.Up:return{...n,y:n.y-25}}};class te{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new V(o.getOwnerDocument(t)),this.windowListeners=new V(o.getWindow(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(_.Resize,this.handleCancel),this.windowListeners.add(_.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(_.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&H(n),t(v)}handleKeyDown(e){if(o.isKeyboardEvent(e)){const{active:t,context:n,options:r}=this.props,{keyboardCodes:i=$,coordinateGetter:a=ee,scrollBehavior:s=\"smooth\"}=r,{code:l}=e;if(i.end.includes(l))return void this.handleEnd(e);if(i.cancel.includes(l))return void this.handleCancel(e);const{collisionRect:c}=n.current,d=c?{x:c.left,y:c.top}:v;this.referenceCoordinates||(this.referenceCoordinates=d);const u=a(e,{active:t,context:n.current,currentCoordinates:d});if(u){const t=o.subtract(u,d),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(const n of i){const o=e.code,{isTop:i,isRight:a,isLeft:l,isBottom:c,maxScroll:d,minScroll:f}=F(n),v=j(n),g={x:Math.min(o===exports.KeyboardCode.Right?v.right-v.width/2:v.right,Math.max(o===exports.KeyboardCode.Right?v.left:v.left+v.width/2,u.x)),y:Math.min(o===exports.KeyboardCode.Down?v.bottom-v.height/2:v.bottom,Math.max(o===exports.KeyboardCode.Down?v.top:v.top+v.height/2,u.y))},p=o===exports.KeyboardCode.Right&&!a||o===exports.KeyboardCode.Left&&!l,h=o===exports.KeyboardCode.Down&&!c||o===exports.KeyboardCode.Up&&!i;if(p&&g.x!==u.x){const e=n.scrollLeft+t.x,i=o===exports.KeyboardCode.Right&&e<=d.x||o===exports.KeyboardCode.Left&&e>=f.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:s});r.x=i?n.scrollLeft-e:o===exports.KeyboardCode.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:s});break}if(h&&g.y!==u.y){const e=n.scrollTop+t.y,i=o===exports.KeyboardCode.Down&&e<=d.y||o===exports.KeyboardCode.Up&&e>=f.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:s});r.y=i?n.scrollTop-e:o===exports.KeyboardCode.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:s});break}}this.handleMove(e,o.add(o.subtract(u,this.referenceCoordinates),r))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function ne(e){return Boolean(e&&\"distance\"in e)}function re(e){return Boolean(e&&\"delay\"in e)}te.activators=[{eventName:\"onKeyDown\",handler:(e,t,n)=>{let{keyboardCodes:r=$,onActivation:o}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const t=i.activatorNode.current;return!(t&&e.target!==t||(e.preventDefault(),null==o||o({event:e.nativeEvent}),0))}return!1}}];class oe{constructor(e,t,n){var r;void 0===n&&(n=function(e){const{EventTarget:t}=o.getWindow(e);return e instanceof t?e:o.getOwnerDocument(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:i}=e,{target:a}=i;this.props=e,this.events=t,this.document=o.getOwnerDocument(a),this.documentListeners=new V(this.document),this.listeners=new V(n),this.windowListeners=new V(o.getWindow(a)),this.initialCoordinates=null!=(r=o.getEventCoordinates(i))?r:v,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(_.Resize,this.handleCancel),this.windowListeners.add(_.DragStart,Q),this.windowListeners.add(_.VisibilityChange,this.handleCancel),this.windowListeners.add(_.ContextMenu,Q),this.documentListeners.add(_.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(re(t))return this.timeoutId=setTimeout(this.handleStart,t.delay),void this.handlePending(t);if(ne(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){const{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(_.Click,Z,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(_.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:r,props:i}=this,{onMove:a,options:{activationConstraint:s}}=i;if(!r)return;const l=null!=(t=o.getEventCoordinates(e))?t:v,c=o.subtract(r,l);if(!n&&s){if(ne(s)){if(null!=s.tolerance&&J(c,s.tolerance))return this.handleCancel();if(J(c,s.distance))return this.handleStart()}return re(s)&&J(c,s.tolerance)?this.handleCancel():void this.handlePending(s,c)}e.cancelable&&e.preventDefault(),a(l)}handleEnd(){const{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){const{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===exports.KeyboardCode.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}const ie={cancel:{name:\"pointercancel\"},move:{name:\"pointermove\"},end:{name:\"pointerup\"}};class ae extends oe{constructor(e){const{event:t}=e,n=o.getOwnerDocument(t.target);super(e,ie,n)}}ae.activators=[{eventName:\"onPointerDown\",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!(!n.isPrimary||0!==n.button||(null==r||r({event:n}),0))}}];const se={move:{name:\"mousemove\"},end:{name:\"mouseup\"}};var le;!function(e){e[e.RightClick=2]=\"RightClick\"}(le||(le={}));class ce extends oe{constructor(e){super(e,se,o.getOwnerDocument(e.event.target))}}ce.activators=[{eventName:\"onMouseDown\",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==le.RightClick&&(null==r||r({event:n}),!0)}}];const de={cancel:{name:\"touchcancel\"},move:{name:\"touchmove\"},end:{name:\"touchend\"}};class ue extends oe{constructor(e){super(e,de)}static setup(){return window.addEventListener(de.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(de.move.name,e)};function e(){}}}var fe,ve;ue.activators=[{eventName:\"onTouchStart\",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return!(o.length>1||(null==r||r({event:n}),0))}}],(fe=exports.AutoScrollActivator||(exports.AutoScrollActivator={}))[fe.Pointer=0]=\"Pointer\",fe[fe.DraggableRect=1]=\"DraggableRect\",(ve=exports.TraversalOrder||(exports.TraversalOrder={}))[ve.TreeOrder=0]=\"TreeOrder\",ve[ve.ReversedTreeOrder=1]=\"ReversedTreeOrder\";const ge={x:{[B.Backward]:!1,[B.Forward]:!1},y:{[B.Backward]:!1,[B.Forward]:!1}};var pe;(pe=exports.MeasuringStrategy||(exports.MeasuringStrategy={}))[pe.Always=0]=\"Always\",pe[pe.BeforeDragging=1]=\"BeforeDragging\",pe[pe.WhileDragging=2]=\"WhileDragging\",(exports.MeasuringFrequency||(exports.MeasuringFrequency={})).Optimized=\"optimized\";const he=new Map;function be(e,t){return o.useLazyMemo(n=>e?n||(\"function\"==typeof t?t(e):e):null,[t,e])}function me(e){let{callback:n,disabled:r}=e;const i=o.useEvent(n),a=t.useMemo(()=>{if(r||\"undefined\"==typeof window||void 0===window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(i)},[r]);return t.useEffect(()=>()=>null==a?void 0:a.disconnect(),[a]),a}function ye(e){return new Y(O(e),e)}function xe(e,n,r){void 0===n&&(n=ye);const[i,a]=t.useState(null);function s(){a(t=>{if(!e)return null;var o;if(!1===e.isConnected)return null!=(o=null!=t?t:r)?o:null;const i=n(e);return JSON.stringify(t)===JSON.stringify(i)?t:i})}const l=function(e){let{callback:n,disabled:r}=e;const i=o.useEvent(n),a=t.useMemo(()=>{if(r||\"undefined\"==typeof window||void 0===window.MutationObserver)return;const{MutationObserver:e}=window;return new e(i)},[i,r]);return t.useEffect(()=>()=>null==a?void 0:a.disconnect(),[a]),a}({callback(t){if(e)for(const n of t){const{type:t,target:r}=n;if(\"childList\"===t&&r instanceof HTMLElement&&r.contains(e)){s();break}}}}),c=me({callback:s});return o.useIsomorphicLayoutEffect(()=>{s(),e?(null==c||c.observe(e),null==l||l.observe(document.body,{childList:!0,subtree:!0})):(null==c||c.disconnect(),null==l||l.disconnect())},[e]),i}const we=[];function Ce(e,n){void 0===n&&(n=[]);const r=t.useRef(null);return t.useEffect(()=>{r.current=null},n),t.useEffect(()=>{const t=e!==v;t&&!r.current&&(r.current=e),!t&&r.current&&(r.current=null)},[e]),r.current?o.subtract(e,r.current):v}function Ee(e){return t.useMemo(()=>e?function(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null,[e])}const De=[];function Re(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return o.isHTMLElement(t)?t:e}const Se=[{sensor:ae,options:{}},{sensor:te,options:{}}],Me={current:{}},Ne={draggable:{measure:A},droppable:{measure:A,strategy:exports.MeasuringStrategy.WhileDragging,frequency:exports.MeasuringFrequency.Optimized},dragOverlay:{measure:O}};class Oe extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}const Ae={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Oe,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:f},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Ne,measureDroppableContainers:f,windowRect:null,measuringScheduled:!1},Le={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:\"\"},dispatch:f,draggableNodes:new Map,over:null,measureDroppableContainers:f},ke=t.createContext(Le),Te=t.createContext(Ae);function Ke(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Oe}}}function Pe(e,t){switch(t.type){case u.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case u.DragMove:return null==e.draggable.active?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case u.DragEnd:case u.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case u.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Oe(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case u.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Oe(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case u.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Oe(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Ie(e){let{disabled:n}=e;const{active:r,activatorEvent:i,draggableNodes:a}=t.useContext(ke),s=o.usePrevious(i),l=o.usePrevious(null==r?void 0:r.id);return t.useEffect(()=>{if(!n&&!i&&s&&null!=l){if(!o.isKeyboardEvent(s))return;if(document.activeElement===s.target)return;const e=a.get(l);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=o.findFirstFocusableNode(e);if(t){t.focus();break}}})}},[i,n,a,l,s]),null}function Be(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}const ze=t.createContext({...v,scaleX:1,scaleY:1});var Fe;!function(e){e[e.Uninitialized=0]=\"Uninitialized\",e[e.Initializing=1]=\"Initializing\",e[e.Initialized=2]=\"Initialized\"}(Fe||(Fe={}));const We=t.memo((function(e){var i,s,l,c;let{id:f,accessibility:g,autoScroll:p=!0,children:h,sensors:b=Se,collisionDetection:m=C,measuring:x,modifiers:w,...E}=e;const R=t.useReducer(Pe,void 0,Ke),[M,N]=R,[A,K]=function(){const[e]=t.useState(()=>new Set),n=t.useCallback(t=>(e.add(t),()=>e.delete(t)),[e]);return[t.useCallback(t=>{let{type:n,event:r}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)})},[e]),n]}(),[P,F]=t.useState(Fe.Uninitialized),W=P===Fe.Initialized,{draggable:{active:j,nodes:H,translate:X},droppable:{containers:V}}=M,J=null!=j?H.get(j):null,_=t.useRef({initial:null,translated:null}),G=t.useMemo(()=>{var e;return null!=j?{id:j,data:null!=(e=null==J?void 0:J.data)?e:Me,rect:_}:null},[j,J]),Q=t.useRef(null),[Z,$]=t.useState(null),[ee,te]=t.useState(null),ne=o.useLatestValue(E,Object.values(E)),re=o.useUniqueId(\"DndDescribedBy\",f),oe=t.useMemo(()=>V.getEnabled(),[V]),ie=t.useMemo(()=>({draggable:{...Ne.draggable,...null==ae?void 0:ae.draggable},droppable:{...Ne.droppable,...null==ae?void 0:ae.droppable},dragOverlay:{...Ne.dragOverlay,...null==ae?void 0:ae.dragOverlay}}),[null==(ae=x)?void 0:ae.draggable,null==ae?void 0:ae.droppable,null==ae?void 0:ae.dragOverlay]);var ae;const{droppableRects:se,measureDroppableContainers:le,measuringScheduled:ce}=function(e,n){let{dragging:r,dependencies:i,config:a}=n;const[s,l]=t.useState(null),{frequency:c,measure:d,strategy:u}=a,f=t.useRef(e),v=function(){switch(u){case exports.MeasuringStrategy.Always:return!1;case exports.MeasuringStrategy.BeforeDragging:return r;default:return!r}}(),g=o.useLatestValue(v),p=t.useCallback((function(e){void 0===e&&(e=[]),g.current||l(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))}),[g]),h=t.useRef(null),b=o.useLazyMemo(t=>{if(v&&!r)return he;if(!t||t===he||f.current!==e||null!=s){const t=new Map;for(let n of e){if(!n)continue;if(s&&s.length>0&&!s.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}const e=n.node.current,r=e?new Y(d(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,s,r,v,d]);return t.useEffect(()=>{f.current=e},[e]),t.useEffect(()=>{v||p()},[r,v]),t.useEffect(()=>{s&&s.length>0&&l(null)},[JSON.stringify(s)]),t.useEffect(()=>{v||\"number\"!=typeof c||null!==h.current||(h.current=setTimeout(()=>{p(),h.current=null},c))},[c,v,p,...i]),{droppableRects:b,measureDroppableContainers:p,measuringScheduled:null!=s}}(oe,{dragging:W,dependencies:[X.x,X.y],config:ie.droppable}),de=function(e,t){const n=null!=t?e.get(t):void 0,r=n?n.node.current:null;return o.useLazyMemo(e=>{var n;return null==t?null:null!=(n=null!=r?r:e)?n:null},[r,t])}(H,j),ue=t.useMemo(()=>ee?o.getEventCoordinates(ee):null,[ee]),fe=function(){const e=W&&!(!1===(null==Z?void 0:Z.autoScrollEnabled))&&!(\"object\"==typeof p?!1===p.enabled:!1===p);return\"object\"==typeof p?{...p,enabled:e}:{enabled:e}}(),ve=function(e,t){return be(e,t)}(de,ie.draggable.measure);!function(e){let{activeNode:n,measure:r,initialRect:i,config:a=!0}=e;const s=t.useRef(!1),{x:l,y:c}=\"boolean\"==typeof a?{x:a,y:a}:a;o.useIsomorphicLayoutEffect(()=>{if(!l&&!c||!n)return void(s.current=!1);if(s.current||!i)return;const e=null==n?void 0:n.node.current;if(!e||!1===e.isConnected)return;const t=D(r(e),i);if(l||(t.x=0),c||(t.y=0),s.current=!0,Math.abs(t.x)>0||Math.abs(t.y)>0){const n=k(e);n&&n.scrollBy({top:t.y,left:t.x})}},[n,l,c,i,r])}({activeNode:null!=j?H.get(j):null,config:fe.layoutShiftCompensation,initialRect:ve,measure:ie.draggable.measure});const pe=xe(de,ie.draggable.measure,ve),ye=xe(de?de.parentElement:null),Oe=t.useRef({activatorEvent:null,active:null,activeNode:de,collisionRect:null,collisions:null,droppableRects:se,draggableNodes:H,draggingNode:null,draggingNodeRect:null,droppableContainers:V,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Ae=V.getNodeFor(null==(i=Oe.current.over)?void 0:i.id),Le=function(e){let{measure:n}=e;const[r,i]=t.useState(null),a=me({callback:t.useCallback(e=>{for(const{target:t}of e)if(o.isHTMLElement(t)){i(e=>{const r=n(t);return e?{...e,width:r.width,height:r.height}:r});break}},[n])}),s=t.useCallback(e=>{const t=Re(e);null==a||a.disconnect(),t&&(null==a||a.observe(t)),i(t?n(t):null)},[n,a]),[l,c]=o.useNodeRef(s);return t.useMemo(()=>({nodeRef:l,rect:r,setRef:c}),[r,l,c])}({measure:ie.dragOverlay.measure}),We=null!=(s=Le.nodeRef.current)?s:de,Ue=W?null!=(l=Le.rect)?l:pe:null,je=Boolean(Le.nodeRef.current&&Le.rect),qe=D(He=je?null:pe,be(He));var He;const Xe=Ee(We?o.getWindow(We):null),Ye=function(e){const n=t.useRef(e),r=o.useLazyMemo(t=>e?t&&t!==we&&e&&n.current&&e.parentNode===n.current.parentNode?t:L(e):we,[e]);return t.useEffect(()=>{n.current=e},[e]),r}(W?null!=Ae?Ae:de:null),Ve=function(e,n){void 0===n&&(n=O);const[r]=e,i=Ee(r?o.getWindow(r):null),[a,s]=t.useState(De);function l(){s(()=>e.length?e.map(e=>z(e)?i:new Y(n(e),e)):De)}const c=me({callback:l});return o.useIsomorphicLayoutEffect(()=>{null==c||c.disconnect(),l(),e.forEach(e=>null==c?void 0:c.observe(e))},[e]),a}(Ye),Je=Be(w,{transform:{x:X.x-qe.x,y:X.y-qe.y,scaleX:1,scaleY:1},activatorEvent:ee,active:G,activeNodeRect:pe,containerNodeRect:ye,draggingNodeRect:Ue,over:Oe.current.over,overlayNodeRect:Le.rect,scrollableAncestors:Ye,scrollableAncestorRects:Ve,windowRect:Xe}),_e=ue?o.add(ue,X):null,Ge=function(e){const[n,r]=t.useState(null),i=t.useRef(e),a=t.useCallback(e=>{const t=T(e.target);t&&r(e=>e?(e.set(t,I(t)),new Map(e)):null)},[]);return t.useEffect(()=>{const t=i.current;if(e!==t){n(t);const o=e.map(e=>{const t=T(e);return t?(t.addEventListener(\"scroll\",a,{passive:!0}),[t,I(t)]):null}).filter(e=>null!=e);r(o.length?new Map(o):null),i.current=e}return()=>{n(e),n(t)};function n(e){e.forEach(e=>{const t=T(e);null==t||t.removeEventListener(\"scroll\",a)})}},[a,e]),t.useMemo(()=>e.length?n?Array.from(n.values()).reduce((e,t)=>o.add(e,t),v):q(e):v,[e,n])}(Ye),Qe=Ce(Ge),Ze=Ce(Ge,[pe]),$e=o.add(Je,Qe),et=Ue?S(Ue,Je):null,tt=G&&et?m({active:G,collisionRect:et,droppableRects:se,droppableContainers:oe,pointerCoordinates:_e}):null,nt=y(tt,\"id\"),[rt,ot]=t.useState(null),it=function(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}(je?Je:o.add(Je,Ze),null!=(c=null==rt?void 0:rt.rect)?c:null,pe),at=t.useRef(null),st=t.useCallback((e,t)=>{let{sensor:n,options:o}=t;if(null==Q.current)return;const i=H.get(Q.current);if(!i)return;const a=e.nativeEvent,s=new n({active:Q.current,activeNode:i,event:a,options:o,context:Oe,onAbort(e){if(!H.get(e))return;const{onDragAbort:t}=ne.current,n={id:e};null==t||t(n),A({type:\"onDragAbort\",event:n})},onPending(e,t,n,r){if(!H.get(e))return;const{onDragPending:o}=ne.current,i={id:e,constraint:t,initialCoordinates:n,offset:r};null==o||o(i),A({type:\"onDragPending\",event:i})},onStart(e){const t=Q.current;if(null==t)return;const n=H.get(t);if(!n)return;const{onDragStart:o}=ne.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:_}};r.unstable_batchedUpdates(()=>{null==o||o(i),F(Fe.Initializing),N({type:u.DragStart,initialCoordinates:e,active:t}),A({type:\"onDragStart\",event:i}),$(at.current),te(a)})},onMove(e){N({type:u.DragMove,coordinates:e})},onEnd:l(u.DragEnd),onCancel:l(u.DragCancel)});function l(e){return async function(){const{active:t,collisions:n,over:o,scrollAdjustedTranslate:i}=Oe.current;let s=null;if(t&&i){const{cancelDrop:r}=ne.current;s={activatorEvent:a,active:t,collisions:n,delta:i,over:o},e===u.DragEnd&&\"function\"==typeof r&&await Promise.resolve(r(s))&&(e=u.DragCancel)}Q.current=null,r.unstable_batchedUpdates(()=>{N({type:e}),F(Fe.Uninitialized),ot(null),$(null),te(null),at.current=null;const t=e===u.DragEnd?\"onDragEnd\":\"onDragCancel\";if(s){const e=ne.current[t];null==e||e(s),A({type:t,event:s})}})}}at.current=s},[H]),lt=function(e,n){return t.useMemo(()=>e.reduce((e,t)=>{const{sensor:r}=t;return[...e,...r.activators.map(e=>({eventName:e.eventName,handler:n(e.handler,t)}))]},[]),[e,n])}(b,t.useCallback((e,t)=>(n,r)=>{const o=n.nativeEvent,i=H.get(r);null!==Q.current||!i||o.dndKit||o.defaultPrevented||!0===e(n,t.options,{active:i})&&(o.dndKit={capturedBy:t.sensor},Q.current=r,st(n,t))},[H,st]));!function(e){t.useEffect(()=>{if(!o.canUseDOM)return;const t=e.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(const e of t)null==e||e()}},e.map(e=>{let{sensor:t}=e;return t}))}(b),o.useIsomorphicLayoutEffect(()=>{pe&&P===Fe.Initializing&&F(Fe.Initialized)},[pe,P]),t.useEffect(()=>{const{onDragMove:e}=ne.current,{active:t,activatorEvent:n,collisions:o,over:i}=Oe.current;if(!t||!n)return;const a={active:t,activatorEvent:n,collisions:o,delta:{x:$e.x,y:$e.y},over:i};r.unstable_batchedUpdates(()=>{null==e||e(a),A({type:\"onDragMove\",event:a})})},[$e.x,$e.y]),t.useEffect(()=>{const{active:e,activatorEvent:t,collisions:n,droppableContainers:o,scrollAdjustedTranslate:i}=Oe.current;if(!e||null==Q.current||!t||!i)return;const{onDragOver:a}=ne.current,s=o.get(nt),l=s&&s.rect.current?{id:s.id,rect:s.rect.current,data:s.data,disabled:s.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:l};r.unstable_batchedUpdates(()=>{ot(l),null==a||a(c),A({type:\"onDragOver\",event:c})})},[nt]),o.useIsomorphicLayoutEffect(()=>{Oe.current={activatorEvent:ee,active:G,activeNode:de,collisionRect:et,collisions:tt,droppableRects:se,draggableNodes:H,draggingNode:We,draggingNodeRect:Ue,droppableContainers:V,over:rt,scrollableAncestors:Ye,scrollAdjustedTranslate:$e},_.current={initial:Ue,translated:et}},[G,de,tt,et,H,We,Ue,se,V,rt,Ye,$e]),function(e){let{acceleration:n,activator:r=exports.AutoScrollActivator.Pointer,canScroll:i,draggingRect:a,enabled:s,interval:l=5,order:c=exports.TraversalOrder.TreeOrder,pointerCoordinates:d,scrollableAncestors:u,scrollableAncestorRects:f,delta:v,threshold:g}=e;const p=function(e){let{delta:t,disabled:n}=e;const r=o.usePrevious(t);return o.useLazyMemo(e=>{if(n||!r||!e)return ge;const o=Math.sign(t.x-r.x),i=Math.sign(t.y-r.y);return{x:{[B.Backward]:e.x[B.Backward]||-1===o,[B.Forward]:e.x[B.Forward]||1===o},y:{[B.Backward]:e.y[B.Backward]||-1===i,[B.Forward]:e.y[B.Forward]||1===i}}},[n,t,r])}({delta:v,disabled:!s}),[h,b]=o.useInterval(),m=t.useRef({x:0,y:0}),y=t.useRef({x:0,y:0}),x=t.useMemo(()=>{switch(r){case exports.AutoScrollActivator.Pointer:return d?{top:d.y,bottom:d.y,left:d.x,right:d.x}:null;case exports.AutoScrollActivator.DraggableRect:return a}},[r,a,d]),w=t.useRef(null),C=t.useCallback(()=>{const e=w.current;e&&e.scrollBy(m.current.x*y.current.x,m.current.y*y.current.y)},[]),E=t.useMemo(()=>c===exports.TraversalOrder.TreeOrder?[...u].reverse():u,[c,u]);t.useEffect(()=>{if(s&&u.length&&x){for(const e of E){if(!1===(null==i?void 0:i(e)))continue;const t=u.indexOf(e),r=f[t];if(!r)continue;const{direction:o,speed:a}=U(e,r,x,n,g);for(const e of[\"x\",\"y\"])p[e][o[e]]||(a[e]=0,o[e]=0);if(a.x>0||a.y>0)return b(),w.current=e,h(C,l),m.current=a,void(y.current=o)}m.current={x:0,y:0},y.current={x:0,y:0},b()}else b()},[n,C,i,b,s,l,JSON.stringify(x),JSON.stringify(p),h,u,E,f,JSON.stringify(g)])}({...fe,delta:X,draggingRect:et,pointerCoordinates:_e,scrollableAncestors:Ye,scrollableAncestorRects:Ve});const ct=t.useMemo(()=>({active:G,activeNode:de,activeNodeRect:pe,activatorEvent:ee,collisions:tt,containerNodeRect:ye,dragOverlay:Le,draggableNodes:H,droppableContainers:V,droppableRects:se,over:rt,measureDroppableContainers:le,scrollableAncestors:Ye,scrollableAncestorRects:Ve,measuringConfiguration:ie,measuringScheduled:ce,windowRect:Xe}),[G,de,pe,ee,tt,ye,Le,H,V,se,rt,le,Ye,Ve,ie,ce,Xe]),dt=t.useMemo(()=>({activatorEvent:ee,activators:lt,active:G,activeNodeRect:pe,ariaDescribedById:{draggable:re},dispatch:N,draggableNodes:H,over:rt,measureDroppableContainers:le}),[ee,lt,G,pe,N,re,H,rt,le]);return n.createElement(a.Provider,{value:K},n.createElement(ke.Provider,{value:dt},n.createElement(Te.Provider,{value:ct},n.createElement(ze.Provider,{value:it},h)),n.createElement(Ie,{disabled:!1===(null==g?void 0:g.restoreFocus)})),n.createElement(d,{...g,hiddenTextDescribedById:re}))})),Ue=t.createContext(null),je=\"button\";function qe(){return t.useContext(Te)}const He={timeout:25};function Xe(e){let{animation:r,children:i}=e;const[a,s]=t.useState(null),[l,c]=t.useState(null),d=o.usePrevious(i);return i||a||!d||s(d),o.useIsomorphicLayoutEffect(()=>{if(!l)return;const e=null==a?void 0:a.props.id;null!=(null==a?void 0:a.key)&&null!=e?Promise.resolve(r(e,l)).then(()=>{s(null)}):s(null)},[r,a,l]),n.createElement(n.Fragment,null,i,a?t.cloneElement(a,{ref:c}):null)}const Ye={x:0,y:0,scaleX:1,scaleY:1};function Ve(e){let{children:t}=e;return n.createElement(ke.Provider,{value:Le},n.createElement(ze.Provider,{value:Ye},t))}const Je={position:\"fixed\",touchAction:\"none\"},_e=e=>o.isKeyboardEvent(e)?\"transform 250ms ease\":void 0,Ge=t.forwardRef((e,t)=>{let{as:r,activatorEvent:i,adjustScale:a,children:s,className:l,rect:c,style:d,transform:u,transition:f=_e}=e;if(!c)return null;const v=a?u:{...u,scaleX:1,scaleY:1},g={...Je,width:c.width,height:c.height,top:c.top,left:c.left,transform:o.CSS.Transform.toString(v),transformOrigin:a&&i?p(i,c):void 0,transition:\"function\"==typeof f?f(i):f,...d};return n.createElement(r,{className:l,style:g,ref:t},s)}),Qe=e=>t=>{let{active:n,dragOverlay:r}=t;const o={},{styles:i,className:a}=e;if(null!=i&&i.active)for(const[e,t]of Object.entries(i.active))void 0!==t&&(o[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(null!=i&&i.dragOverlay)for(const[e,t]of Object.entries(i.dragOverlay))void 0!==t&&r.node.style.setProperty(e,t);return null!=a&&a.active&&n.node.classList.add(a.active),null!=a&&a.dragOverlay&&r.node.classList.add(a.dragOverlay),function(){for(const[e,t]of Object.entries(o))n.node.style.setProperty(e,t);null!=a&&a.active&&n.node.classList.remove(a.active)}},Ze={duration:250,easing:\"ease\",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:o.CSS.Transform.toString(t)},{transform:o.CSS.Transform.toString(n)}]},sideEffects:Qe({styles:{active:{opacity:\"0\"}}})};let $e=0;function et(e){return t.useMemo(()=>{if(null!=e)return $e++,$e},[e])}const tt=n.memo(e=>{let{adjustScale:r=!1,children:i,dropAnimation:a,style:s,transition:l,modifiers:c,wrapperElement:d=\"div\",className:u,zIndex:f=999}=e;const{activatorEvent:v,active:g,activeNodeRect:p,containerNodeRect:h,draggableNodes:b,droppableContainers:m,dragOverlay:y,over:x,measuringConfiguration:w,scrollableAncestors:C,scrollableAncestorRects:E,windowRect:D}=qe(),R=t.useContext(ze),S=et(null==g?void 0:g.id),N=Be(c,{activatorEvent:v,active:g,activeNodeRect:p,containerNodeRect:h,draggingNodeRect:y.rect,over:x,overlayNodeRect:y.rect,scrollableAncestors:C,scrollableAncestorRects:E,transform:R,windowRect:D}),O=be(p),A=function(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return o.useEvent((e,a)=>{if(null===t)return;const s=n.get(e);if(!s)return;const l=s.node.current;if(!l)return;const c=Re(a);if(!c)return;const{transform:d}=o.getWindow(a).getComputedStyle(a),u=M(d);if(!u)return;const f=\"function\"==typeof t?t:function(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...Ze,...e};return e=>{let{active:i,dragOverlay:a,transform:s,...l}=e;if(!t)return;const c={x:s.x-(a.rect.left-i.rect.left),y:s.y-(a.rect.top-i.rect.top),scaleX:1!==s.scaleX?i.rect.width*s.scaleX/a.rect.width:1,scaleY:1!==s.scaleY?i.rect.height*s.scaleY/a.rect.height:1},d=o({...l,active:i,dragOverlay:a,transform:{initial:s,final:c}}),[u]=d,f=d[d.length-1];if(JSON.stringify(u)===JSON.stringify(f))return;const v=null==r?void 0:r({active:i,dragOverlay:a,...l}),g=a.node.animate(d,{duration:t,easing:n,fill:\"forwards\"});return new Promise(e=>{g.onfinish=()=>{null==v||v(),e()}})}}(t);return H(l,i.draggable.measure),f({active:{id:e,data:s.data,node:l,rect:i.draggable.measure(l)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}({config:a,draggableNodes:b,droppableContainers:m,measuringConfiguration:w});return n.createElement(Ve,null,n.createElement(Xe,{animation:A},g&&S?n.createElement(Ge,{key:S,id:g.id,ref:O?y.setRef:void 0,as:d,activatorEvent:v,adjustScale:r,className:u,transition:l,rect:O,style:{zIndex:f,...s},transform:N},i):null))});exports.DndContext=We,exports.DragOverlay=tt,exports.KeyboardSensor=te,exports.MouseSensor=ce,exports.PointerSensor=ae,exports.TouchSensor=ue,exports.applyModifiers=Be,exports.closestCenter=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=x(t,t.left,t.top),i=[];for(const e of r){const{id:t}=e,r=n.get(t);if(r){const n=g(x(r),o);i.push({id:t,data:{droppableContainer:e,value:n}})}}return i.sort(h)},exports.closestCorners=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=m(t),i=[];for(const e of r){const{id:t}=e,r=n.get(t);if(r){const n=m(r),a=o.reduce((e,t,r)=>e+g(n[r],t),0),s=Number((a/4).toFixed(4));i.push({id:t,data:{droppableContainer:e,value:s}})}}return i.sort(h)},exports.defaultAnnouncements=c,exports.defaultCoordinates=v,exports.defaultDropAnimation=Ze,exports.defaultDropAnimationSideEffects=Qe,exports.defaultKeyboardCoordinateGetter=ee,exports.defaultScreenReaderInstructions=l,exports.getClientRect=O,exports.getFirstCollision=y,exports.getScrollableAncestors=L,exports.pointerWithin=e=>{let{droppableContainers:t,droppableRects:n,pointerCoordinates:r}=e;if(!r)return[];const o=[];for(const e of t){const{id:t}=e,i=n.get(t);if(i&&E(r,i)){const n=m(i).reduce((e,t)=>e+g(r,t),0),a=Number((n/4).toFixed(4));o.push({id:t,data:{droppableContainer:e,value:a}})}}return o.sort(h)},exports.rectIntersection=C,exports.useDndContext=qe,exports.useDndMonitor=s,exports.useDraggable=function(e){let{id:n,data:r,disabled:i=!1,attributes:a}=e;const s=o.useUniqueId(\"Draggable\"),{activators:l,activatorEvent:c,active:d,activeNodeRect:u,ariaDescribedById:f,draggableNodes:v,over:g}=t.useContext(ke),{role:p=je,roleDescription:h=\"draggable\",tabIndex:b=0}=null!=a?a:{},m=(null==d?void 0:d.id)===n,y=t.useContext(m?ze:Ue),[x,w]=o.useNodeRef(),[C,E]=o.useNodeRef(),D=function(e,n){return t.useMemo(()=>e.reduce((e,t)=>{let{eventName:r,handler:o}=t;return e[r]=e=>{o(e,n)},e},{}),[e,n])}(l,n),R=o.useLatestValue(r);return o.useIsomorphicLayoutEffect(()=>(v.set(n,{id:n,key:s,node:x,activatorNode:C,data:R}),()=>{const e=v.get(n);e&&e.key===s&&v.delete(n)}),[v,n]),{active:d,activatorEvent:c,activeNodeRect:u,attributes:t.useMemo(()=>({role:p,tabIndex:b,\"aria-disabled\":i,\"aria-pressed\":!(!m||p!==je)||void 0,\"aria-roledescription\":h,\"aria-describedby\":f.draggable}),[i,p,b,m,h,f.draggable]),isDragging:m,listeners:i?void 0:D,node:x,over:g,setNodeRef:w,setActivatorNodeRef:E,transform:y}},exports.useDroppable=function(e){let{data:n,disabled:r=!1,id:i,resizeObserverConfig:a}=e;const s=o.useUniqueId(\"Droppable\"),{active:l,dispatch:c,over:d,measureDroppableContainers:f}=t.useContext(ke),v=t.useRef({disabled:r}),g=t.useRef(!1),p=t.useRef(null),h=t.useRef(null),{disabled:b,updateMeasurementsFor:m,timeout:y}={...He,...a},x=o.useLatestValue(null!=m?m:i),w=me({callback:t.useCallback(()=>{g.current?(null!=h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{f(Array.isArray(x.current)?x.current:[x.current]),h.current=null},y)):g.current=!0},[y]),disabled:b||!l}),C=t.useCallback((e,t)=>{w&&(t&&(w.unobserve(t),g.current=!1),e&&w.observe(e))},[w]),[E,D]=o.useNodeRef(C),R=o.useLatestValue(n);return t.useEffect(()=>{w&&E.current&&(w.disconnect(),g.current=!1,w.observe(E.current))},[E,w]),t.useEffect(()=>(c({type:u.RegisterDroppable,element:{id:i,key:s,disabled:r,node:E,rect:p,data:R}}),()=>c({type:u.UnregisterDroppable,key:s,id:i})),[i]),t.useEffect(()=>{r!==v.current.disabled&&(c({type:u.SetDroppableDisabled,id:i,key:s,disabled:r}),v.current.disabled=r)},[i,s,r,c]),{active:l,rect:p,isOver:(null==d?void 0:d.id)===i,node:E,over:d,setNodeRef:D}},exports.useSensor=function(e,n){return t.useMemo(()=>({sensor:e,options:null!=n?n:{}}),[e,n])},exports.useSensors=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.useMemo(()=>[...n].filter(e=>null!=e),[...n])};\n//# sourceMappingURL=core.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar reactDom = require('react-dom');\nvar utilities = require('@dnd-kit/utilities');\nvar accessibility = require('@dnd-kit/accessibility');\n\nconst DndMonitorContext = /*#__PURE__*/React.createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = React.useContext(DndMonitorContext);\n React.useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = React.useState(() => new Set());\n const registerListener = React.useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = React.useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = accessibility.useAnnouncement();\n const liveRegionId = utilities.useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(React.useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React__default.createElement(React__default.Fragment, null, React__default.createElement(accessibility.HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React__default.createElement(accessibility.LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? reactDom.createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return React.useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return React.useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = utilities.getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = utilities.getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = utilities.getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = utilities.getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (utilities.isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!utilities.isHTMLElement(node) || utilities.isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = utilities.getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!utilities.canUseDOM || !element) {\n return null;\n }\n\n if (utilities.isWindow(element)) {\n return element;\n }\n\n if (!utilities.isNode(element)) {\n return null;\n }\n\n if (utilities.isDocument(element) || element === utilities.getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (utilities.isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (utilities.isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (utilities.isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!utilities.canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return utilities.add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = utilities.getWindow(target);\n return target instanceof EventTarget ? target : utilities.getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(exports.KeyboardCode || (exports.KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [exports.KeyboardCode.Space, exports.KeyboardCode.Enter],\n cancel: [exports.KeyboardCode.Esc],\n end: [exports.KeyboardCode.Space, exports.KeyboardCode.Enter, exports.KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case exports.KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case exports.KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case exports.KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case exports.KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(utilities.getOwnerDocument(target));\n this.windowListeners = new Listeners(utilities.getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (utilities.isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = utilities.subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === exports.KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === exports.KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === exports.KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === exports.KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === exports.KeyboardCode.Right && !isRight || direction === exports.KeyboardCode.Left && !isLeft;\n const canScrollY = direction === exports.KeyboardCode.Down && !isBottom || direction === exports.KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === exports.KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === exports.KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === exports.KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === exports.KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === exports.KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === exports.KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, utilities.add(utilities.subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = utilities.getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(utilities.getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = utilities.getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = utilities.getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = utilities.subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === exports.KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = utilities.getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, utilities.getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(exports.AutoScrollActivator || (exports.AutoScrollActivator = {}));\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(exports.TraversalOrder || (exports.TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = exports.AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = exports.TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = utilities.useInterval();\n const scrollSpeed = React.useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = React.useRef({\n x: 0,\n y: 0\n });\n const rect = React.useMemo(() => {\n switch (activator) {\n case exports.AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case exports.AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = React.useRef(null);\n const autoScroll = React.useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = React.useMemo(() => order === exports.TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n React.useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = utilities.usePrevious(delta);\n return utilities.useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return utilities.useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return React.useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(exports.MeasuringStrategy || (exports.MeasuringStrategy = {}));\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(exports.MeasuringFrequency || (exports.MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = React.useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = React.useRef(containers);\n const disabled = isDisabled();\n const disabledRef = utilities.useLatestValue(disabled);\n const measureDroppableContainers = React.useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = React.useRef(null);\n const droppableRects = utilities.useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n React.useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n React.useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n React.useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n React.useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case exports.MeasuringStrategy.Always:\n return false;\n\n case exports.MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return utilities.useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = utilities.useEvent(callback);\n const mutationObserver = React.useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n React.useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = utilities.useEvent(callback);\n const resizeObserver = React.useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n React.useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = React.useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n utilities.useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = React.useRef(node);\n const ancestors = utilities.useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n React.useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = React.useState(null);\n const prevElements = React.useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = React.useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n React.useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return React.useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => utilities.add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = React.useRef(null);\n React.useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n React.useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? utilities.subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n React.useEffect(() => {\n if (!utilities.canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return React.useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return React.useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? utilities.getWindow(firstElement) : null);\n const [rects, setRects] = React.useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n utilities.useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return utilities.isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = React.useState(null);\n const handleResize = React.useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (utilities.isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = React.useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = utilities.useNodeRef(handleNodeChange);\n return React.useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: exports.MeasuringStrategy.WhileDragging,\n frequency: exports.MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/React.createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/React.createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = React.useContext(InternalContext);\n const previousActivatorEvent = utilities.usePrevious(activatorEvent);\n const previousActiveId = utilities.usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n React.useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!utilities.isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = utilities.findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return React.useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = React.useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n utilities.useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/React.createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = React.useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = React.useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = React.useRef({\n initial: null,\n translated: null\n });\n const active = React.useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = React.useRef(null);\n const [activeSensor, setActiveSensor] = React.useState(null);\n const [activatorEvent, setActivatorEvent] = React.useState(null);\n const latestProps = utilities.useLatestValue(props, Object.values(props));\n const draggableDescribedById = utilities.useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = React.useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = React.useMemo(() => activatorEvent ? utilities.getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = React.useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? utilities.getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? utilities.add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = utilities.add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = React.useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : utilities.add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = React.useRef(null);\n const instantiateSensor = React.useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n reactDom.unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n reactDom.unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = React.useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n utilities.useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n React.useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n reactDom.unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n React.useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n reactDom.unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n utilities.useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = React.useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = React.useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React__default.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React__default.createElement(InternalContext.Provider, {\n value: internalContext\n }, React__default.createElement(PublicContext.Provider, {\n value: publicContext\n }, React__default.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React__default.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React__default.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/React.createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = utilities.useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = React.useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = React.useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = utilities.useNodeRef();\n const [activatorNode, setActivatorNodeRef] = utilities.useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = utilities.useLatestValue(data);\n utilities.useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = React.useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return React.useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = utilities.useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = React.useContext(InternalContext);\n const previous = React.useRef({\n disabled\n });\n const resizeObserverConnected = React.useRef(false);\n const rect = React.useRef(null);\n const callbackId = React.useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = utilities.useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = React.useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = React.useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = utilities.useNodeRef(handleNodeChange);\n const dataRef = utilities.useLatestValue(data);\n React.useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n React.useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n React.useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = React.useState(null);\n const [element, setElement] = React.useState(null);\n const previousChildren = utilities.usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n utilities.useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React__default.createElement(React__default.Fragment, null, children, clonedChildren ? React.cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React__default.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React__default.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = utilities.isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: utilities.CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React__default.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: utilities.CSS.Transform.toString(initial)\n }, {\n transform: utilities.CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return utilities.useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = utilities.getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return React.useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React__default.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = React.useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React__default.createElement(NullifiedContextProvider, null, React__default.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React__default.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexports.DndContext = DndContext;\nexports.DragOverlay = DragOverlay;\nexports.KeyboardSensor = KeyboardSensor;\nexports.MouseSensor = MouseSensor;\nexports.PointerSensor = PointerSensor;\nexports.TouchSensor = TouchSensor;\nexports.applyModifiers = applyModifiers;\nexports.closestCenter = closestCenter;\nexports.closestCorners = closestCorners;\nexports.defaultAnnouncements = defaultAnnouncements;\nexports.defaultCoordinates = defaultCoordinates;\nexports.defaultDropAnimation = defaultDropAnimationConfiguration;\nexports.defaultDropAnimationSideEffects = defaultDropAnimationSideEffects;\nexports.defaultKeyboardCoordinateGetter = defaultKeyboardCoordinateGetter;\nexports.defaultScreenReaderInstructions = defaultScreenReaderInstructions;\nexports.getClientRect = getClientRect;\nexports.getFirstCollision = getFirstCollision;\nexports.getScrollableAncestors = getScrollableAncestors;\nexports.pointerWithin = pointerWithin;\nexports.rectIntersection = rectIntersection;\nexports.useDndContext = useDndContext;\nexports.useDndMonitor = useDndMonitor;\nexports.useDraggable = useDraggable;\nexports.useDroppable = useDroppable;\nexports.useSensor = useSensor;\nexports.useSensors = useSensors;\n//# sourceMappingURL=core.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./core.cjs.production.min.js')\n} else {\n module.exports = require('./core.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),r=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e,n=require(\"@dnd-kit/core\"),o=require(\"@dnd-kit/utilities\");function i(e,t,r){const n=e.slice();return n.splice(r<0?n.length+r:r,0,n.splice(t,1)[0]),n}function a(e,t){return e.reduce((e,r,n)=>{const o=t.get(r);return o&&(e[n]=o),e},Array(e.length))}function s(e){return null!==e&&e>=0}const d={scaleX:1,scaleY:1},l=e=>{let{rects:t,activeIndex:r,overIndex:n,index:o}=e;const a=i(t,n,r),s=t[o],d=a[o];return d&&s?{x:d.left-s.left,y:d.top-s.top,scaleX:d.width/s.width,scaleY:d.height/s.height}:null},c={scaleX:1,scaleY:1},u=r.createContext({activeIndex:-1,containerId:\"Sortable\",disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:l,disabled:{draggable:!1,droppable:!1}}),f=e=>{let{id:t,items:r,activeIndex:n,overIndex:o}=e;return i(r,n,o).indexOf(t)},p=e=>{let{containerId:t,isSorting:r,wasDragging:n,index:o,items:i,newIndex:a,previousItems:s,previousContainerId:d,transition:l}=e;return!(!l||!n||s!==i&&o===a||!r&&(a===o||t!==d))},g={duration:200,easing:\"ease\"},b=o.CSS.Transition.toString({property:\"transform\",duration:0,easing:\"linear\"}),x={roleDescription:\"sortable\"};function v(e){if(!e)return!1;const t=e.data.current;return!!(t&&\"sortable\"in t&&\"object\"==typeof t.sortable&&\"containerId\"in t.sortable&&\"items\"in t.sortable&&\"index\"in t.sortable)}const h=[n.KeyboardCode.Down,n.KeyboardCode.Right,n.KeyboardCode.Up,n.KeyboardCode.Left];function I(e,t){return!(!v(e)||!v(t))&&e.data.current.sortable.containerId===t.data.current.sortable.containerId}exports.SortableContext=function(e){let{children:i,id:s,items:d,strategy:c=l,disabled:f=!1}=e;const{active:p,dragOverlay:g,droppableRects:b,over:x,measureDroppableContainers:v}=n.useDndContext(),h=o.useUniqueId(\"Sortable\",s),I=Boolean(null!==g.rect),y=t.useMemo(()=>d.map(e=>\"object\"==typeof e&&\"id\"in e?e.id:e),[d]),m=null!=p,w=p?y.indexOf(p.id):-1,C=x?y.indexOf(x.id):-1,R=t.useRef(y),S=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(y,R.current),D=-1!==C&&-1===w||S,O=function(e){return\"boolean\"==typeof e?{draggable:e,droppable:e}:e}(f);o.useIsomorphicLayoutEffect(()=>{S&&m&&v(y)},[S,y,m,v]),t.useEffect(()=>{R.current=y},[y]);const N=t.useMemo(()=>({activeIndex:w,containerId:h,disabled:O,disableTransforms:D,items:y,overIndex:C,useDragOverlay:I,sortedRects:a(y,b),strategy:c}),[w,h,O.draggable,O.droppable,D,y,C,b,I,c]);return r.createElement(u.Provider,{value:N},i)},exports.arrayMove=i,exports.arraySwap=function(e,t,r){const n=e.slice();return n[t]=e[r],n[r]=e[t],n},exports.defaultAnimateLayoutChanges=p,exports.defaultNewIndexGetter=f,exports.hasSortableData=v,exports.horizontalListSortingStrategy=e=>{var t;let{rects:r,activeNodeRect:n,activeIndex:o,overIndex:i,index:a}=e;const s=null!=(t=r[o])?t:n;if(!s)return null;const l=function(e,t,r){const n=e[t],o=e[t-1],i=e[t+1];return n&&(o||i)?r<t?o?n.left-(o.left+o.width):i.left-(n.left+n.width):i?i.left-(n.left+n.width):n.left-(o.left+o.width):0}(r,a,o);if(a===o){const e=r[i];return e?{x:o<i?e.left+e.width-(s.left+s.width):e.left-s.left,y:0,...d}:null}return a>o&&a<=i?{x:-s.width-l,y:0,...d}:a<o&&a>=i?{x:s.width+l,y:0,...d}:{x:0,y:0,...d}},exports.rectSortingStrategy=l,exports.rectSwappingStrategy=e=>{let t,r,{activeIndex:n,index:o,rects:i,overIndex:a}=e;return o===n&&(t=i[o],r=i[a]),o===a&&(t=i[o],r=i[n]),r&&t?{x:r.left-t.left,y:r.top-t.top,scaleX:r.width/t.width,scaleY:r.height/t.height}:null},exports.sortableKeyboardCoordinates=(e,t)=>{let{context:{active:r,collisionRect:i,droppableRects:a,droppableContainers:s,over:d,scrollableAncestors:l}}=t;if(h.includes(e.code)){if(e.preventDefault(),!r||!i)return;const t=[];s.getEnabled().forEach(r=>{if(!r||null!=r&&r.disabled)return;const o=a.get(r.id);if(o)switch(e.code){case n.KeyboardCode.Down:i.top<o.top&&t.push(r);break;case n.KeyboardCode.Up:i.top>o.top&&t.push(r);break;case n.KeyboardCode.Left:i.left>o.left&&t.push(r);break;case n.KeyboardCode.Right:i.left<o.left&&t.push(r)}});const f=n.closestCorners({active:r,collisionRect:i,droppableRects:a,droppableContainers:t,pointerCoordinates:null});let p=n.getFirstCollision(f,\"id\");if(p===(null==d?void 0:d.id)&&f.length>1&&(p=f[1].id),null!=p){const e=s.get(r.id),t=s.get(p),d=t?a.get(t.id):null,f=null==t?void 0:t.node.current;if(f&&d&&e&&t){const r=n.getScrollableAncestors(f).some((e,t)=>l[t]!==e),a=I(e,t),s=(u=t,!(!v(c=e)||!v(u))&&!!I(c,u)&&c.data.current.sortable.index<u.data.current.sortable.index),p=r||!a?{x:0,y:0}:{x:s?i.width-d.width:0,y:s?i.height-d.height:0},g={x:d.left,y:d.top};return p.x&&p.y?g:o.subtract(g,p)}}}var c,u},exports.useSortable=function(e){let{animateLayoutChanges:r=p,attributes:i,disabled:a,data:d,getNewIndex:l=f,id:c,strategy:v,resizeObserverConfig:h,transition:I=g}=e;const{items:y,containerId:m,activeIndex:w,disabled:C,disableTransforms:R,sortedRects:S,overIndex:D,useDragOverlay:O,strategy:N}=t.useContext(u),E=function(e,t){var r,n;return\"boolean\"==typeof e?{draggable:e,droppable:!1}:{draggable:null!=(r=null==e?void 0:e.draggable)?r:t.draggable,droppable:null!=(n=null==e?void 0:e.droppable)?n:t.droppable}}(a,C),K=y.indexOf(c),L=t.useMemo(()=>({sortable:{containerId:m,index:K,items:y},...d}),[m,d,K,y]),T=t.useMemo(()=>y.slice(y.indexOf(c)),[y,c]),{rect:M,node:A,isOver:k,setNodeRef:X}=n.useDroppable({id:c,data:L,disabled:E.droppable,resizeObserverConfig:{updateMeasurementsFor:T,...h}}),{active:Y,activatorEvent:j,activeNodeRect:q,attributes:z,setNodeRef:U,listeners:B,isDragging:F,over:P,setActivatorNodeRef:_,transform:G}=n.useDraggable({id:c,data:L,attributes:{...x,...i},disabled:E.draggable}),H=o.useCombinedRefs(X,U),J=Boolean(Y),Q=J&&!R&&s(w)&&s(D),V=!O&&F,W=V&&Q?G:null,Z=Q?null!=W?W:(null!=v?v:N)({rects:S,activeNodeRect:q,activeIndex:w,overIndex:D,index:K}):null,$=s(w)&&s(D)?l({id:c,items:y,activeIndex:w,overIndex:D}):K,ee=null==Y?void 0:Y.id,te=t.useRef({activeId:ee,items:y,newIndex:$,containerId:m}),re=y!==te.current.items,ne=r({active:Y,containerId:m,isDragging:F,isSorting:J,id:c,index:K,items:y,newIndex:te.current.newIndex,previousItems:te.current.items,previousContainerId:te.current.containerId,transition:I,wasDragging:null!=te.current.activeId}),oe=function(e){let{disabled:r,index:i,node:a,rect:s}=e;const[d,l]=t.useState(null),c=t.useRef(i);return o.useIsomorphicLayoutEffect(()=>{if(!r&&i!==c.current&&a.current){const e=s.current;if(e){const t=n.getClientRect(a.current,{ignoreTransform:!0}),r={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(r.x||r.y)&&l(r)}}i!==c.current&&(c.current=i)},[r,i,a,s]),t.useEffect(()=>{d&&l(null)},[d]),d}({disabled:!ne,index:K,node:A,rect:M});return t.useEffect(()=>{J&&te.current.newIndex!==$&&(te.current.newIndex=$),m!==te.current.containerId&&(te.current.containerId=m),y!==te.current.items&&(te.current.items=y)},[J,$,m,y]),t.useEffect(()=>{if(ee===te.current.activeId)return;if(null!=ee&&null==te.current.activeId)return void(te.current.activeId=ee);const e=setTimeout(()=>{te.current.activeId=ee},50);return()=>clearTimeout(e)},[ee]),{active:Y,activeIndex:w,attributes:z,data:L,rect:M,index:K,newIndex:$,items:y,isOver:k,isSorting:J,isDragging:F,listeners:B,node:A,overIndex:D,over:P,setNodeRef:H,setActivatorNodeRef:_,setDroppableNodeRef:X,setDraggableNodeRef:U,transform:null!=oe?oe:Z,transition:oe||re&&te.current.newIndex===K?b:V&&!o.isKeyboardEvent(j)||!I?void 0:J||ne?o.CSS.Transition.toString({...I,property:\"transform\"}):void 0}},exports.verticalListSortingStrategy=e=>{var t;let{activeIndex:r,activeNodeRect:n,index:o,rects:i,overIndex:a}=e;const s=null!=(t=i[r])?t:n;if(!s)return null;if(o===r){const e=i[a];return e?{x:0,y:r<a?e.top+e.height-(s.top+s.height):e.top-s.top,...c}:null}const d=function(e,t,r){const n=e[t],o=e[t-1],i=e[t+1];return n?r<t?o?n.top-(o.top+o.height):i?i.top-(n.top+n.height):0:i?i.top-(n.top+n.height):o?n.top-(o.top+o.height):0:0}(i,o,r);return o>r&&o<=a?{x:0,y:-s.height-d,...c}:o<r&&o>=a?{x:0,y:s.height+d,...c}:{x:0,y:0,...c}};\n//# sourceMappingURL=sortable.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar core = require('@dnd-kit/core');\nvar utilities = require('@dnd-kit/utilities');\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React__default.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = core.useDndContext();\n const containerId = utilities.useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = React.useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = React.useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n utilities.useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n React.useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = React.useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React__default.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/utilities.CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = React.useState(null);\n const previousIndex = React.useRef(index);\n utilities.useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = core.getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n React.useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = React.useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = React.useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = React.useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = core.useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = core.useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = utilities.useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = React.useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n React.useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n React.useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !utilities.isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return utilities.CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [core.KeyboardCode.Down, core.KeyboardCode.Right, core.KeyboardCode.Up, core.KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case core.KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case core.KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case core.KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case core.KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = core.closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = core.getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = core.getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : utilities.subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexports.SortableContext = SortableContext;\nexports.arrayMove = arrayMove;\nexports.arraySwap = arraySwap;\nexports.defaultAnimateLayoutChanges = defaultAnimateLayoutChanges;\nexports.defaultNewIndexGetter = defaultNewIndexGetter;\nexports.hasSortableData = hasSortableData;\nexports.horizontalListSortingStrategy = horizontalListSortingStrategy;\nexports.rectSortingStrategy = rectSortingStrategy;\nexports.rectSwappingStrategy = rectSwappingStrategy;\nexports.sortableKeyboardCoordinates = sortableKeyboardCoordinates;\nexports.useSortable = useSortable;\nexports.verticalListSortingStrategy = verticalListSortingStrategy;\n//# sourceMappingURL=sortable.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./sortable.cjs.production.min.js')\n} else {\n module.exports = require('./sortable.cjs.development.js')\n}\n"],"x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12],"mappings":";;;;AAoBA,MAAa,qBAAqB;CAChC,eAAe,CAAC,iBAAiB,UAAU;CAC3C,aAAa,CAAC,iBAAiB,QAAQ;CACvC,iBAAiB,CAAC,iBAAiB,YAAY;CAC/C,cAAc,CAAC,iBAAiB,SAAS;CAC1C;AAMD,SAAgB,yBAAyB;CACvC,MAAM,MAAMA,2BAAAA,cAAc;AAC1B,SAAA,GAAA,sBAAA,UAA+B;EAC7B,UAAU,mBAAmB,SAAS;EACtC,eAAe,IAAI,cAAc;EAClC,CAAC;;AAGJ,SAAgB,uBAAuB,SAAsC;CAC3E,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,SAA4B,IAAI,cAAc,KAAK;EAChE,YAAY,SAAS;AACnB,eAAY,aAAa,mBAAmB,SAAS,EAAE,KAAK;AAC5D,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,SAAS,EACvC,CAAC;AACF,YAAS,aAAa;;EAEzB,CAAC;;AAGJ,SAAgB,wBAAwB,SAAsC;CAC5E,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,SAA6B,IAAI,eAAe,KAAK;EAClE,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,SAAS,EACvC,CAAC;AACF,YAAS,aAAa;;EAEzB,CAAC;;AAOJ,SAAgB,iBAAiB;CAC/B,MAAM,MAAMA,2BAAAA,cAAc;AAC1B,SAAA,GAAA,sBAAA,UAA8B;EAC5B,UAAU,mBAAmB,OAAO;EACpC,eAAe,IAAI,WAAW;EAC/B,CAAC;;AAGJ,SAAgB,sBAAsB;CACpC,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,SAAyB,IAAI,WAAW,KAAK;EAC1D,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,OAAO,EACrC,CAAC;;EAEL,CAAC;;AAGJ,SAAgB,sBAAsB;CACpC,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,EAAE,QAAQ,WACrB,IAAI,WAAW,QAAQ,KAAK;EAC9B,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,OAAO,EACrC,CAAC;;EAEL,CAAC;;AAGJ,SAAgB,sBAAsB;CACpC,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,WAAmB,IAAI,WAAW,OAAO;EACtD,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,OAAO,EACrC,CAAC;;EAEL,CAAC;;AAGJ,SAAgB,wBAAwB;CACtC,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,EACX,iBAII,IAAI,aAAa,WAAW;EAClC,UAAU,OAAO,EAAE,sBAAsB;AACvC,SAAM,YAAY,cAAc,EAC9B,UAAU,mBAAmB,OAAO,EACrC,CAAC;GACF,MAAM,eAAe,YAAY,aAC/B,mBAAmB,OAAO,CAC3B;AACD,eAAY,aAAa,mBAAmB,OAAO,EAAE,gBAAgB;AACrE,UAAO,EAAE,cAAc;;EAEzB,UAAU,MAAM,OAAO,YAAY;AACjC,OAAI,SAAS,aACX,aAAY,aACV,mBAAmB,OAAO,EAC1B,QAAQ,aACT;;EAGL,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,OAAO,EACrC,CAAC;;EAEL,CAAC;;AAOJ,SAAgB,qBAAqB;CACnC,MAAM,MAAMA,2BAAAA,cAAc;AAC1B,SAAA,GAAA,sBAAA,UAAkC;EAChC,UAAU,mBAAmB,WAAW;EACxC,eAAe,IAAI,eAAe;EACnC,CAAC;;AAiBJ,SAAgB,0BAA0B;CACxC,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,eAAuB,IAAI,eAAe,WAAW;EAClE,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,WAAW,EACzC,CAAC;;EAEL,CAAC;;AAGJ,SAAgB,4BAA4B;CAC1C,MAAM,MAAMA,2BAAAA,cAAc;CAC1B,MAAM,eAAA,GAAA,sBAAA,iBAA8B;AAEpC,SAAA,GAAA,sBAAA,aAAmB;EACjB,aAAa,EACX,iBAII,IAAI,iBAAiB,WAAW;EACtC,UAAU,OAAO,EAAE,sBAAsB;AACvC,SAAM,YAAY,cAAc,EAC9B,UAAU,mBAAmB,WAAW,EACzC,CAAC;GACF,MAAM,eAAe,YAAY,aAC/B,mBAAmB,WAAW,CAC/B;AACD,eAAY,aAAa,mBAAmB,WAAW,EAAE,gBAAgB;AACzE,UAAO,EAAE,cAAc;;EAEzB,UAAU,MAAM,OAAO,YAAY;AACjC,OAAI,SAAS,aACX,aAAY,aACV,mBAAmB,WAAW,EAC9B,QAAQ,aACT;;EAGL,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,mBAAmB,WAAW,EACzC,CAAC;;EAEL,CAAC;;AAOJ,SAAgB,wBAAwB;CACtC,MAAM,MAAMA,2BAAAA,cAAc;AAC1B,SAAA,GAAA,sBAAA,UAA+B;EAC7B,UAAU,mBAAmB,QAAQ;EACrC,eAAe,IAAI,YAAY;EAChC,CAAC;;;;;ACxPS,QAAO,eAAe,SAAQ,cAAa,EAAC,OAAM,CAAC,GAAE,CAAC;CAAC,IAAIC,MAAE,QAAQ,QAAQ;CAAC,MAAM,IAAE,eAAa,OAAO,UAAQ,KAAK,MAAI,OAAO,YAAU,KAAK,MAAI,OAAO,SAAS;CAAc,SAAS,EAAE,GAAE;EAAC,MAAM,IAAE,OAAO,UAAU,SAAS,KAAK,EAAE;AAAC,SAAM,sBAAoB,KAAG,sBAAoB;;CAAE,SAAS,EAAE,GAAE;AAAC,SAAM,cAAa;;CAAE,SAAS,EAAE,GAAE;EAAC,IAAI,GAAE;AAAE,SAAO,IAAE,EAAE,EAAE,GAAC,IAAE,EAAE,EAAE,IAAE,SAAO,IAAE,SAAO,IAAE,EAAE,iBAAe,KAAK,IAAE,EAAE,eAAa,IAAE,SAAO;;CAAO,SAAS,EAAE,GAAE;EAAC,MAAK,EAAC,UAAS,MAAG,EAAE,EAAE;AAAC,SAAO,aAAa;;CAAE,SAAS,EAAE,GAAE;AAAC,SAAM,CAAC,EAAE,EAAE,IAAE,aAAa,EAAE,EAAE,CAAC;;CAAY,SAAS,EAAE,GAAE;AAAC,SAAO,aAAa,EAAE,EAAE,CAAC;;CAAW,MAAM,IAAE,IAAEA,IAAE,kBAAgBA,IAAE;CAAU,SAAS,EAAE,GAAE;EAAC,MAAM,IAAEA,IAAE,OAAO,EAAE;AAAC,SAAO,QAAM;AAAC,KAAE,UAAQ;IAAG,EAACA,IAAE,aAAa,WAAU;AAAC,QAAI,IAAI,IAAE,UAAU,QAAO,IAAE,IAAI,MAAM,EAAE,EAAC,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,KAAG,UAAU;AAAG,UAAO,QAAM,EAAE,UAAQ,KAAK,IAAE,EAAE,QAAQ,GAAG,EAAE;MAAG,EAAE,CAAC;;CAAC,IAAI,IAAE,EAAE;CAAC,SAAS,EAAE,GAAE;AAAC,SAAO,SAAS,GAAE;AAAC,QAAI,IAAI,IAAE,UAAU,QAAO,IAAE,IAAI,MAAM,IAAE,IAAE,IAAE,IAAE,EAAE,EAAC,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,IAAE,KAAG,UAAU;AAAG,UAAO,EAAE,QAAQ,GAAE,MAAI;IAAC,MAAM,IAAE,OAAO,QAAQ,EAAE;AAAC,SAAI,MAAK,CAAC,GAAE,MAAK,GAAE;KAAC,MAAM,IAAE,EAAE;AAAG,aAAM,MAAI,EAAE,KAAG,IAAE,IAAE;;AAAG,WAAO;MAAG,EAAC,GAAG,GAAE,CAAC;;;CAAE,MAAM,IAAE,EAAE,EAAE,EAAC,IAAE,EAAE,GAAG;CAAC,SAAS,EAAE,GAAE;AAAC,SAAM,aAAY,KAAG,aAAY;;CAAE,SAAS,EAAE,GAAE;AAAC,MAAG,CAAC,EAAE,QAAM,CAAC;EAAE,MAAK,EAAC,YAAW,MAAG,EAAE,EAAE,OAAO;AAAC,SAAO,KAAG,aAAa;;CAAE,MAAM,IAAE,OAAO,OAAO;EAAC,WAAU,EAAC,SAAS,GAAE;AAAC,OAAG,CAAC,EAAE;GAAO,MAAK,EAAC,GAAE,GAAE,GAAE,MAAG;AAAE,UAAM,kBAAgB,IAAE,KAAK,MAAM,EAAE,GAAC,KAAG,UAAQ,IAAE,KAAK,MAAM,EAAE,GAAC,KAAG;KAAU;EAAC,OAAM,EAAC,SAAS,GAAE;AAAC,OAAG,CAAC,EAAE;GAAO,MAAK,EAAC,QAAO,GAAE,QAAO,MAAG;AAAE,UAAM,YAAU,IAAE,cAAY,IAAE;KAAK;EAAC,WAAU,EAAC,SAAS,GAAE;AAAC,OAAG,EAAE,QAAM,CAAC,EAAE,UAAU,SAAS,EAAE,EAAC,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI;KAAE;EAAC,YAAW,EAAC,SAAS,GAAE;GAAC,IAAG,EAAC,UAAS,GAAE,UAAS,GAAE,QAAO,MAAG;AAAE,UAAO,IAAE,MAAI,IAAE,QAAM;KAAG;EAAC,CAAC,EAAC,IAAE;AAAyI,SAAQ,MAAI,GAAE,QAAQ,MAAI,GAAE,QAAQ,YAAU,GAAE,QAAQ,yBAAuB,SAAS,GAAE;AAAC,SAAO,EAAE,QAAQ,EAAE,GAAC,IAAE,EAAE,cAAc,EAAE;IAAE,QAAQ,sBAAoB,SAAS,GAAE;AAAC,MAAG,EAAE,EAAE,EAAC;AAAC,OAAG,EAAE,WAAS,EAAE,QAAQ,QAAO;IAAC,MAAK,EAAC,SAAQ,GAAE,SAAQ,MAAG,EAAE,QAAQ;AAAG,WAAM;KAAC,GAAE;KAAE,GAAE;KAAE;;AAAC,OAAG,EAAE,kBAAgB,EAAE,eAAe,QAAO;IAAC,MAAK,EAAC,SAAQ,GAAE,SAAQ,MAAG,EAAE,eAAe;AAAG,WAAM;KAAC,GAAE;KAAE,GAAE;KAAE;;;AAAE,SAAO,EAAE,EAAE,GAAC;GAAC,GAAE,EAAE;GAAQ,GAAE,EAAE;GAAQ,GAAC;IAAM,QAAQ,mBAAiB,SAAS,GAAE;AAAC,SAAO,IAAE,EAAE,EAAE,GAAC,EAAE,WAAS,EAAE,EAAE,GAAC,EAAE,EAAE,GAAC,IAAE,EAAE,EAAE,IAAE,EAAE,EAAE,GAAC,EAAE,gBAAc,WAAS,WAAS;IAAU,QAAQ,YAAU,GAAE,QAAQ,iCAA+B,GAAE,QAAQ,aAAW,GAAE,QAAQ,gBAAc,GAAE,QAAQ,kBAAgB,SAAS,GAAE;AAAC,MAAG,CAAC,EAAE,QAAM,CAAC;EAAE,MAAK,EAAC,eAAc,MAAG,EAAE,EAAE,OAAO;AAAC,SAAO,KAAG,aAAa;IAAG,QAAQ,SAAO,GAAE,QAAQ,eAAa,GAAE,QAAQ,eAAa,GAAE,QAAQ,WAAS,GAAE,QAAQ,WAAS,GAAE,QAAQ,kBAAgB,WAAU;AAAC,OAAI,IAAI,IAAE,UAAU,QAAO,IAAE,IAAI,MAAM,EAAE,EAAC,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,KAAG,UAAU;AAAG,SAAOA,IAAE,eAAY,MAAG;AAAC,KAAE,SAAQ,MAAG,EAAE,EAAE,CAAC;KAAE,EAAE;IAAE,QAAQ,WAAS,GAAE,QAAQ,cAAY,WAAU;EAAC,MAAM,IAAEA,IAAE,OAAO,KAAK;AAAC,SAAM,CAACA,IAAE,aAAa,GAAE,MAAI;AAAC,KAAE,UAAQ,YAAY,GAAE,EAAE;KAAE,EAAE,CAAC,EAACA,IAAE,kBAAgB;AAAC,YAAO,EAAE,YAAU,cAAc,EAAE,QAAQ,EAAC,EAAE,UAAQ;KAAO,EAAE,CAAC,CAAC;IAAE,QAAQ,4BAA0B,GAAE,QAAQ,iBAAe,SAAS,GAAE,GAAE;AAAC,OAAK,MAAI,MAAI,IAAE,CAAC,EAAE;EAAE,MAAM,IAAEA,IAAE,OAAO,EAAE;AAAC,SAAO,QAAM;AAAC,KAAE,YAAU,MAAI,EAAE,UAAQ;KAAI,EAAE,EAAC;IAAG,QAAQ,cAAY,SAAS,GAAE,GAAE;EAAC,MAAM,IAAEA,IAAE,QAAQ;AAAC,SAAOA,IAAE,cAAY;GAAC,MAAM,IAAE,EAAE,EAAE,QAAQ;AAAC,UAAO,EAAE,UAAQ,GAAE;KAAG,CAAC,GAAG,EAAE,CAAC;IAAE,QAAQ,aAAW,SAAS,GAAE;EAAC,MAAM,IAAE,EAAE,EAAE,EAAC,IAAEA,IAAE,OAAO,KAAK;AAA+E,SAAM,CAAC,GAAnFA,IAAE,aAAY,MAAG;AAAC,SAAI,EAAE,WAAgB,IAAK,GAAE,EAAE,QAAQ,EAAE,EAAE,UAAQ;KAAG,EAAE,CAAC,CAAY;IAAE,QAAQ,cAAY,SAAS,GAAE;EAAC,MAAM,IAAEA,IAAE,QAAQ;AAAC,SAAOA,IAAE,gBAAc;AAAC,KAAE,UAAQ;KAAG,CAAC,EAAE,CAAC,EAAC,EAAE;IAAS,QAAQ,cAAY,SAAS,GAAE,GAAE;AAAC,SAAOA,IAAE,cAAY;AAAC,OAAG,EAAE,QAAO;GAAE,MAAM,IAAE,QAAM,EAAE,KAAG,IAAE,EAAE,KAAG;AAAE,UAAO,EAAE,KAAG,GAAE,IAAE,MAAI;KAAG,CAAC,GAAE,EAAE,CAAC;;;;;;ACEtrH,QAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAE7D,IAAI,QAAQ,QAAQ,QAAQ;CAE5B,SAAS,kBAAkB;AACzB,OAAK,IAAI,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,EAAE,OAAO,GAAG,OAAO,MAAM,OAC/E,MAAK,QAAQ,UAAU;AAGzB,SAAO,MAAM,eAAc,SAAQ;AACjC,QAAK,SAAQ,QAAO,IAAI,KAAK,CAAC;KAEhC,KAAK;;CAIP,MAAM,YAAY,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa,eAAe,OAAO,OAAO,SAAS,kBAAkB;CAEtI,SAAS,SAAS,SAAS;EACzB,MAAM,gBAAgB,OAAO,UAAU,SAAS,KAAK,QAAQ;AAC7D,SAAO,kBAAkB,qBACzB,kBAAkB;;CAGpB,SAAS,OAAO,MAAM;AACpB,SAAO,cAAc;;CAGvB,SAAS,UAAU,QAAQ;EACzB,IAAI,uBAAuB;AAE3B,MAAI,CAAC,OACH,QAAO;AAGT,MAAI,SAAS,OAAO,CAClB,QAAO;AAGT,MAAI,CAAC,OAAO,OAAO,CACjB,QAAO;AAGT,UAAQ,yBAAyB,yBAAyB,OAAO,kBAAkB,OAAO,KAAK,IAAI,uBAAuB,gBAAgB,OAAO,wBAAwB;;CAG3K,SAAS,WAAW,MAAM;EACxB,MAAM,EACJ,aACE,UAAU,KAAK;AACnB,SAAO,gBAAgB;;CAGzB,SAAS,cAAc,MAAM;AAC3B,MAAI,SAAS,KAAK,CAChB,QAAO;AAGT,SAAO,gBAAgB,UAAU,KAAK,CAAC;;CAGzC,SAAS,aAAa,MAAM;AAC1B,SAAO,gBAAgB,UAAU,KAAK,CAAC;;CAGzC,SAAS,iBAAiB,QAAQ;AAChC,MAAI,CAAC,OACH,QAAO;AAGT,MAAI,SAAS,OAAO,CAClB,QAAO,OAAO;AAGhB,MAAI,CAAC,OAAO,OAAO,CACjB,QAAO;AAGT,MAAI,WAAW,OAAO,CACpB,QAAO;AAGT,MAAI,cAAc,OAAO,IAAI,aAAa,OAAO,CAC/C,QAAO,OAAO;AAGhB,SAAO;;;;;;CAQT,MAAM,4BAA4B,YAAY,MAAM,kBAAkB,MAAM;CAE5E,SAAS,SAAS,SAAS;EACzB,MAAM,aAAa,MAAM,OAAO,QAAQ;AACxC,kCAAgC;AAC9B,cAAW,UAAU;IACrB;AACF,SAAO,MAAM,YAAY,WAAY;AACnC,QAAK,IAAI,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,EAAE,OAAO,GAAG,OAAO,MAAM,OAC/E,MAAK,QAAQ,UAAU;AAGzB,UAAO,WAAW,WAAW,OAAO,KAAK,IAAI,WAAW,QAAQ,GAAG,KAAK;KACvE,EAAE,CAAC;;CAGR,SAAS,cAAc;EACrB,MAAM,cAAc,MAAM,OAAO,KAAK;AAUtC,SAAO,CATK,MAAM,aAAa,UAAU,aAAa;AACpD,eAAY,UAAU,YAAY,UAAU,SAAS;KACpD,EAAE,CAAC,EACQ,MAAM,kBAAkB;AACpC,OAAI,YAAY,YAAY,MAAM;AAChC,kBAAc,YAAY,QAAQ;AAClC,gBAAY,UAAU;;KAEvB,EAAE,CAAC,CACa;;CAGrB,SAAS,eAAe,OAAO,cAAc;AAC3C,MAAI,iBAAiB,KAAK,EACxB,gBAAe,CAAC,MAAM;EAGxB,MAAM,WAAW,MAAM,OAAO,MAAM;AACpC,kCAAgC;AAC9B,OAAI,SAAS,YAAY,MACvB,UAAS,UAAU;KAEpB,aAAa;AAChB,SAAO;;CAGT,SAAS,YAAY,UAAU,cAAc;EAC3C,MAAM,WAAW,MAAM,QAAQ;AAC/B,SAAO,MAAM,cAAc;GACzB,MAAM,WAAW,SAAS,SAAS,QAAQ;AAC3C,YAAS,UAAU;AACnB,UAAO;KAET,CAAC,GAAG,aAAa,CAAC;;CAGpB,SAAS,WAAW,UAAU;EAC5B,MAAM,kBAAkB,SAAS,SAAS;EAC1C,MAAM,OAAO,MAAM,OAAO,KAAK;AAS/B,SAAO,CAAC,MARW,MAAM,aAAY,YAAW;AAC9C,OAAI,YAAY,KAAK,QACnB,mBAAmD,SAAS,KAAK,QAAQ;AAG3E,QAAK,UAAU;KAEjB,EAAE,CAAC,CACsB;;CAG3B,SAAS,YAAY,OAAO;EAC1B,MAAM,MAAM,MAAM,QAAQ;AAC1B,QAAM,gBAAgB;AACpB,OAAI,UAAU;KACb,CAAC,MAAM,CAAC;AACX,SAAO,IAAI;;CAGb,IAAI,MAAM,EAAE;CACZ,SAAS,YAAY,QAAQ,OAAO;AAClC,SAAO,MAAM,cAAc;AACzB,OAAI,MACF,QAAO;GAGT,MAAM,KAAK,IAAI,WAAW,OAAO,IAAI,IAAI,UAAU;AACnD,OAAI,UAAU;AACd,UAAO,SAAS,MAAM;KACrB,CAAC,QAAQ,MAAM,CAAC;;CAGrB,SAAS,mBAAmB,UAAU;AACpC,SAAO,SAAU,QAAQ;AACvB,QAAK,IAAI,OAAO,UAAU,QAAQ,cAAc,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,EAAE,EAAE,OAAO,GAAG,OAAO,MAAM,OACzG,aAAY,OAAO,KAAK,UAAU;AAGpC,UAAO,YAAY,QAAQ,aAAa,eAAe;IACrD,MAAM,UAAU,OAAO,QAAQ,WAAW;AAE1C,SAAK,MAAM,CAAC,KAAK,oBAAoB,SAAS;KAC5C,MAAM,QAAQ,YAAY;AAE1B,SAAI,SAAS,KACX,aAAY,OAAO,QAAQ,WAAW;;AAI1C,WAAO;MACN,EAAE,GAAG,QACP,CAAC;;;CAIN,MAAM,MAAmB,mCAAmB,EAAE;CAC9C,MAAM,WAAwB,mCAAmB,GAAG;CAEpD,SAAS,+BAA+B,OAAO;AAC7C,SAAO,aAAa,SAAS,aAAa;;CAG5C,SAAS,gBAAgB,OAAO;AAC9B,MAAI,CAAC,MACH,QAAO;EAGT,MAAM,EACJ,kBACE,UAAU,MAAM,OAAO;AAC3B,SAAO,iBAAiB,iBAAiB;;CAG3C,SAAS,aAAa,OAAO;AAC3B,MAAI,CAAC,MACH,QAAO;EAGT,MAAM,EACJ,eACE,UAAU,MAAM,OAAO;AAC3B,SAAO,cAAc,iBAAiB;;;;;CAOxC,SAAS,oBAAoB,OAAO;AAClC,MAAI,aAAa,MAAM;OACjB,MAAM,WAAW,MAAM,QAAQ,QAAQ;IACzC,MAAM,EACJ,SAAS,GACT,SAAS,MACP,MAAM,QAAQ;AAClB,WAAO;KACL;KACA;KACD;cACQ,MAAM,kBAAkB,MAAM,eAAe,QAAQ;IAC9D,MAAM,EACJ,SAAS,GACT,SAAS,MACP,MAAM,eAAe;AACzB,WAAO;KACL;KACA;KACD;;;AAIL,MAAI,+BAA+B,MAAM,CACvC,QAAO;GACL,GAAG,MAAM;GACT,GAAG,MAAM;GACV;AAGH,SAAO;;CAGT,MAAM,MAAmB,uBAAO,OAAO;EACrC,WAAW,EACT,SAAS,WAAW;AAClB,OAAI,CAAC,UACH;GAGF,MAAM,EACJ,GACA,MACE;AACJ,UAAO,kBAAkB,IAAI,KAAK,MAAM,EAAE,GAAG,KAAK,UAAU,IAAI,KAAK,MAAM,EAAE,GAAG,KAAK;KAGxF;EACD,OAAO,EACL,SAAS,WAAW;AAClB,OAAI,CAAC,UACH;GAGF,MAAM,EACJ,QACA,WACE;AACJ,UAAO,YAAY,SAAS,cAAc,SAAS;KAGtD;EACD,WAAW,EACT,SAAS,WAAW;AAClB,OAAI,CAAC,UACH;AAGF,UAAO,CAAC,IAAI,UAAU,SAAS,UAAU,EAAE,IAAI,MAAM,SAAS,UAAU,CAAC,CAAC,KAAK,IAAI;KAGtF;EACD,YAAY,EACV,SAAS,MAAM;GACb,IAAI,EACF,UACA,UACA,WACE;AACJ,UAAO,WAAW,MAAM,WAAW,QAAQ;KAG9C;EACF,CAAC;CAEF,MAAM,WAAW;CACjB,SAAS,uBAAuB,SAAS;AACvC,MAAI,QAAQ,QAAQ,SAAS,CAC3B,QAAO;AAGT,SAAO,QAAQ,cAAc,SAAS;;AAGxC,SAAQ,MAAM;AACd,SAAQ,MAAM;AACd,SAAQ,YAAY;AACpB,SAAQ,yBAAyB;AACjC,SAAQ,sBAAsB;AAC9B,SAAQ,mBAAmB;AAC3B,SAAQ,YAAY;AACpB,SAAQ,iCAAiC;AACzC,SAAQ,aAAa;AACrB,SAAQ,gBAAgB;AACxB,SAAQ,kBAAkB;AAC1B,SAAQ,SAAS;AACjB,SAAQ,eAAe;AACvB,SAAQ,eAAe;AACvB,SAAQ,WAAW;AACnB,SAAQ,WAAW;AACnB,SAAQ,kBAAkB;AAC1B,SAAQ,WAAW;AACnB,SAAQ,cAAc;AACtB,SAAQ,4BAA4B;AACpC,SAAQ,iBAAiB;AACzB,SAAQ,cAAc;AACtB,SAAQ,aAAa;AACrB,SAAQ,cAAc;AACtB,SAAQ,cAAc;;;;;ACpWtB,KAAI,QAAQ,IAAI,aAAa,aAC3B,QAAO,UAAA,sCAAA;KAEP,QAAO,UAAA,mCAAA;;;;;ACNI,QAAO,eAAe,SAAQ,cAAa,EAAC,OAAM,CAAC,GAAE,CAAC;CAAC,IAAIC,KAAEC,MAAE,QAAQ,QAAQ,EAACC,OAAG,MAAED,QAAI,YAAU,OAAOD,OAAG,aAAYA,MAAEA,IAAE,UAAQA;CAAE,MAAM,IAAE,EAAC,SAAQ,QAAO;AAAC,SAAQ,aAAW,SAAS,GAAE;EAAC,IAAG,EAAC,IAAG,GAAE,OAAM,MAAG;AAAE,SAAOE,IAAE,cAAc,OAAM;GAAC,IAAG;GAAE,OAAM;GAAE,EAAC,EAAE;IAAE,QAAQ,aAAW,SAAS,GAAE;EAAC,IAAG,EAAC,IAAG,GAAE,cAAa,GAAE,cAAa,IAAE,gBAAa;AAAE,SAAOA,IAAE,cAAc,OAAM;GAAC,IAAG;GAAE,OAAM;IAAC,UAAS;IAAQ,KAAI;IAAE,MAAK;IAAE,OAAM;IAAE,QAAO;IAAE,QAAO;IAAG,QAAO;IAAE,SAAQ;IAAE,UAAS;IAAS,MAAK;IAAgB,UAAS;IAAc,YAAW;IAAS;GAAC,MAAK;GAAS,aAAY;GAAE,eAAc,CAAC;GAAE,EAAC,EAAE;IAAE,QAAQ,kBAAgB,WAAU;EAAC,MAAK,CAAC,GAAE,KAAGD,IAAE,SAAS,GAAG;AAAC,SAAM;GAAC,UAASA,IAAE,aAAY,MAAG;AAAC,YAAM,KAAG,EAAE,EAAE;MAAE,EAAE,CAAC;GAAC,cAAa;GAAE;;;;;;ACEjuB,QAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAE7D,SAAS,gBAAiB,IAAI;AAAE,SAAQ,MAAO,OAAO,OAAO,YAAa,aAAa,KAAM,GAAG,aAAa;;CAE7G,IAAIE,UAAQ,QAAQ,QAAQ;CAC5B,IAAI,iBAAiB,gBAAgBA,QAAM;CAE3C,MAAM,eAAe,EACnB,SAAS,QACV;CACD,SAAS,WAAW,MAAM;EACxB,IAAI,EACF,IACA,UACE;AACJ,SAAO,eAAe,cAAc,OAAO;GACrC;GACJ,OAAO;GACR,EAAE,MAAM;;CAGX,SAAS,WAAW,MAAM;EACxB,IAAI,EACF,IACA,cACA,eAAe,gBACb;AAgBJ,SAAO,eAAe,cAAc,OAAO;GACrC;GACJ,OAhBqB;IACrB,UAAU;IACV,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,YAAY;IACb;GAIC,MAAM;GACN,aAAa;GACb,eAAe;GAChB,EAAE,aAAa;;CAGlB,SAAS,kBAAkB;EACzB,MAAM,CAAC,cAAc,mBAAmBA,QAAM,SAAS,GAAG;AAM1D,SAAO;GACL,UANeA,QAAM,aAAY,UAAS;AAC1C,QAAI,SAAS,KACX,iBAAgB,MAAM;MAEvB,EAAE,CAAC;GAGJ;GACD;;AAGH,SAAQ,aAAa;AACrB,SAAQ,aAAa;AACrB,SAAQ,kBAAkB;;;;;ACjE1B,KAAI,QAAQ,IAAI,aAAa,aAC3B,QAAO,UAAA,0CAAA;KAEP,QAAO,UAAA,uCAAA;;;;;ACNI,QAAO,eAAe,SAAQ,cAAa,EAAC,OAAM,CAAC,GAAE,CAAC;CAAC,IAAIC,KAAEC,MAAE,QAAQ,QAAQ,EAACC,OAAG,MAAED,QAAI,YAAU,OAAOD,OAAG,aAAYA,MAAEA,IAAE,UAAQA,KAAEG,MAAE,QAAQ,YAAY,EAACC,MAAAA,gBAAAA,EAAgC,IAAA,gBAAA;CAAoC,MAAM,IAAEH,IAAE,cAAc,KAAK;CAAC,SAAS,EAAE,GAAE;EAAC,MAAM,IAAEA,IAAE,WAAW,EAAE;AAAC,MAAE,gBAAc;AAAC,OAAG,CAAC,EAAE,OAAM,IAAI,MAAM,+DAA+D;AAAC,UAAO,EAAE,EAAE;KAAE,CAAC,GAAE,EAAE,CAAC;;CAAC,MAAM,IAAE,EAAC,WAAU,iNAAgN,EAAC,IAAE;EAAC,YAAY,GAAE;GAAC,IAAG,EAAC,QAAO,MAAG;AAAE,UAAM,8BAA4B,EAAE,KAAG;;EAAK,WAAW,GAAE;GAAC,IAAG,EAAC,QAAO,GAAE,MAAK,MAAG;AAAE,UAAO,IAAE,oBAAkB,EAAE,KAAG,oCAAkC,EAAE,KAAG,MAAI,oBAAkB,EAAE,KAAG;;EAAwC,UAAU,GAAE;GAAC,IAAG,EAAC,QAAO,GAAE,MAAK,MAAG;AAAE,UAAO,IAAE,oBAAkB,EAAE,KAAG,sCAAoC,EAAE,KAAG,oBAAkB,EAAE,KAAG;;EAAiB,aAAa,GAAE;GAAC,IAAG,EAAC,QAAO,MAAG;AAAE,UAAM,4CAA0C,EAAE,KAAG;;EAAiB;CAAC,SAAS,EAAE,GAAE;EAAC,IAAG,EAAC,eAAc,IAAE,GAAE,WAAU,GAAE,yBAAwB,GAAE,0BAAyB,IAAE,MAAG;EAAE,MAAK,EAAC,UAAS,GAAE,cAAa,MAAG,EAAE,iBAAiB,EAAC,IAAEG,IAAE,YAAY,gBAAgB,EAAC,CAAC,GAAE,KAAGH,IAAE,SAAS,CAAC,EAAE;AAAC,MAAGA,IAAE,gBAAc;AAAC,KAAE,CAAC,EAAE;KAAE,EAAE,CAAC,EAAC,EAAEA,IAAE,eAAa;GAAC,YAAY,GAAE;IAAC,IAAG,EAAC,QAAO,MAAG;AAAE,MAAE,EAAE,YAAY,EAAC,QAAO,GAAE,CAAC,CAAC;;GAAE,WAAW,GAAE;IAAC,IAAG,EAAC,QAAO,GAAE,MAAK,MAAG;AAAE,MAAE,cAAY,EAAE,EAAE,WAAW;KAAC,QAAO;KAAE,MAAK;KAAE,CAAC,CAAC;;GAAE,WAAW,GAAE;IAAC,IAAG,EAAC,QAAO,GAAE,MAAK,MAAG;AAAE,MAAE,EAAE,WAAW;KAAC,QAAO;KAAE,MAAK;KAAE,CAAC,CAAC;;GAAE,UAAU,GAAE;IAAC,IAAG,EAAC,QAAO,GAAE,MAAK,MAAG;AAAE,MAAE,EAAE,UAAU;KAAC,QAAO;KAAE,MAAK;KAAE,CAAC,CAAC;;GAAE,aAAa,GAAE;IAAC,IAAG,EAAC,QAAO,GAAE,MAAK,MAAG;AAAE,MAAE,EAAE,aAAa;KAAC,QAAO;KAAE,MAAK;KAAE,CAAC,CAAC;;GAAE,GAAE,CAAC,GAAE,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,QAAO;EAAK,MAAM,IAAEC,IAAE,cAAcA,IAAE,UAAS,MAAKA,IAAE,cAAc,EAAE,YAAW;GAAC,IAAG;GAAE,OAAM,EAAE;GAAU,CAAC,EAACA,IAAE,cAAc,EAAE,YAAW;GAAC,IAAG;GAAE,cAAa;GAAE,CAAC,CAAC;AAAC,SAAO,IAAEC,IAAE,aAAa,GAAE,EAAE,GAAC;;CAAE,IAAI;CAAE,SAAS,IAAG;AAAE,EAAC,SAAS,GAAE;AAAC,IAAE,YAAU,aAAY,EAAE,WAAS,YAAW,EAAE,UAAQ,WAAU,EAAE,aAAW,cAAa,EAAE,WAAS,YAAW,EAAE,oBAAkB,qBAAoB,EAAE,uBAAqB,wBAAuB,EAAE,sBAAoB;IAAuB,MAAI,IAAE,EAAE,EAAE;CAAC,MAAM,IAAE,OAAO,OAAO;EAAC,GAAE;EAAE,GAAE;EAAE,CAAC;CAAC,SAAS,EAAE,GAAE,GAAE;AAAC,SAAO,KAAK,KAAK,KAAK,IAAI,EAAE,IAAE,EAAE,GAAE,EAAE,GAAC,KAAK,IAAI,EAAE,IAAE,EAAE,GAAE,EAAE,CAAC;;CAAC,SAAS,EAAE,GAAE,GAAE;EAAC,MAAM,IAAEC,IAAE,oBAAoB,EAAE;AAAC,SAAO,KAAG,EAAE,IAAE,EAAE,QAAM,EAAE,QAAM,MAAI,QAAM,EAAE,IAAE,EAAE,OAAK,EAAE,SAAO,MAAI,MAAI;;CAAM,SAAS,EAAE,GAAE,GAAE;EAAC,IAAG,EAAC,MAAK,EAAC,OAAM,QAAI,GAAE,EAAC,MAAK,EAAC,OAAM,QAAI;AAAE,SAAO,IAAE;;CAAE,SAAS,EAAE,GAAE,GAAE;EAAC,IAAG,EAAC,MAAK,EAAC,OAAM,QAAI,GAAE,EAAC,MAAK,EAAC,OAAM,QAAI;AAAE,SAAO,IAAE;;CAAE,SAAS,EAAE,GAAE;EAAC,IAAG,EAAC,MAAK,GAAE,KAAI,GAAE,QAAO,GAAE,OAAM,MAAG;AAAE,SAAM;GAAC;IAAC,GAAE;IAAE,GAAE;IAAE;GAAC;IAAC,GAAE,IAAE;IAAE,GAAE;IAAE;GAAC;IAAC,GAAE;IAAE,GAAE,IAAE;IAAE;GAAC;IAAC,GAAE,IAAE;IAAE,GAAE,IAAE;IAAE;GAAC;;CAAC,SAAS,EAAE,GAAE,GAAE;AAAC,MAAG,CAAC,KAAG,MAAI,EAAE,OAAO,QAAO;EAAK,MAAK,CAAC,KAAG;AAAE,SAAO,IAAE,EAAE,KAAG;;CAAE,SAAS,EAAE,GAAE,GAAE,GAAE;AAAC,SAAO,KAAK,MAAI,MAAI,IAAE,EAAE,OAAM,KAAK,MAAI,MAAI,IAAE,EAAE,MAAK;GAAC,GAAE,IAAE,KAAG,EAAE;GAAM,GAAE,IAAE,KAAG,EAAE;GAAO;;CAAC,SAAS,EAAE,GAAE,GAAE;EAAC,MAAM,IAAE,KAAK,IAAI,EAAE,KAAI,EAAE,IAAI,EAAC,IAAE,KAAK,IAAI,EAAE,MAAK,EAAE,KAAK,EAAC,IAAE,KAAK,IAAI,EAAE,OAAK,EAAE,OAAM,EAAE,OAAK,EAAE,MAAM,EAAC,IAAE,KAAK,IAAI,EAAE,MAAI,EAAE,QAAO,EAAE,MAAI,EAAE,OAAO;AAAC,MAAG,IAAE,KAAG,IAAE,GAAE;GAAC,MAAM,KAAG,IAAE,MAAI,IAAE;AAAG,UAAO,QAAQ,KAAG,EAAE,QAAM,EAAE,SAAO,EAAE,QAAM,EAAE,SAAO,IAAI,QAAQ,EAAE,CAAC;;AAAC,SAAO;;CAAE,MAAM,KAAE,MAAG;EAAC,IAAG,EAAC,eAAc,GAAE,gBAAe,GAAE,qBAAoB,MAAG;EAAE,MAAM,IAAE,EAAE;AAAC,OAAI,MAAM,KAAK,GAAE;GAAC,MAAK,EAAC,IAAG,MAAG,GAAE,IAAE,EAAE,IAAI,EAAE;AAAC,OAAG,GAAE;IAAC,MAAM,IAAE,EAAE,GAAE,EAAE;AAAC,QAAE,KAAG,EAAE,KAAK;KAAC,IAAG;KAAE,MAAK;MAAC,oBAAmB;MAAE,OAAM;MAAE;KAAC,CAAC;;;AAAE,SAAO,EAAE,KAAK,EAAE;;CAAE,SAAS,EAAE,GAAE,GAAE;EAAC,MAAK,EAAC,KAAI,GAAE,MAAK,GAAE,QAAO,GAAE,OAAM,MAAG;AAAE,SAAO,KAAG,EAAE,KAAG,EAAE,KAAG,KAAG,KAAG,EAAE,KAAG,EAAE,KAAG;;CAAE,SAAS,EAAE,GAAE,GAAE;AAAC,SAAO,KAAG,IAAE;GAAC,GAAE,EAAE,OAAK,EAAE;GAAK,GAAE,EAAE,MAAI,EAAE;GAAI,GAAC;;CAAE,SAAS,EAAE,GAAE;AAAC,SAAO,SAAS,GAAE;AAAC,QAAI,IAAI,IAAE,UAAU,QAAO,IAAE,IAAI,MAAM,IAAE,IAAE,IAAE,IAAE,EAAE,EAAC,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,IAAE,KAAG,UAAU;AAAG,UAAO,EAAE,QAAQ,GAAE,OAAK;IAAC,GAAG;IAAE,KAAI,EAAE,MAAI,IAAE,EAAE;IAAE,QAAO,EAAE,SAAO,IAAE,EAAE;IAAE,MAAK,EAAE,OAAK,IAAE,EAAE;IAAE,OAAM,EAAE,QAAM,IAAE,EAAE;IAAE,GAAE,EAAC,GAAG,GAAE,CAAC;;;CAAE,MAAM,IAAE,EAAE,EAAE;CAAC,SAAS,EAAE,GAAE;AAAC,MAAG,EAAE,WAAW,YAAY,EAAC;GAAC,MAAM,IAAE,EAAE,MAAM,GAAE,GAAG,CAAC,MAAM,KAAK;AAAC,UAAM;IAAC,GAAE,CAAC,EAAE;IAAI,GAAE,CAAC,EAAE;IAAI,QAAO,CAAC,EAAE;IAAG,QAAO,CAAC,EAAE;IAAG;;AAAC,MAAG,EAAE,WAAW,UAAU,EAAC;GAAC,MAAM,IAAE,EAAE,MAAM,GAAE,GAAG,CAAC,MAAM,KAAK;AAAC,UAAM;IAAC,GAAE,CAAC,EAAE;IAAG,GAAE,CAAC,EAAE;IAAG,QAAO,CAAC,EAAE;IAAG,QAAO,CAAC,EAAE;IAAG;;AAAC,SAAO;;CAAK,MAAM,IAAE,EAAC,iBAAgB,CAAC,GAAE;CAAC,SAAS,EAAE,GAAE,GAAE;AAAC,OAAK,MAAI,MAAI,IAAE;EAAG,IAAI,IAAE,EAAE,uBAAuB;AAAC,MAAG,EAAE,iBAAgB;GAAC,MAAK,EAAC,WAAU,GAAE,iBAAgB,MAAGA,IAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE;AAAC,SAAI,IAAE,SAAS,GAAE,GAAE,GAAE;IAAC,MAAM,IAAE,EAAE,EAAE;AAAC,QAAG,CAAC,EAAE,QAAO;IAAE,MAAK,EAAC,QAAO,GAAE,QAAO,GAAE,GAAE,GAAE,GAAE,MAAG,GAAE,IAAE,EAAE,OAAK,KAAG,IAAE,KAAG,WAAW,EAAE,EAAC,IAAE,EAAE,MAAI,KAAG,IAAE,KAAG,WAAW,EAAE,MAAM,EAAE,QAAQ,IAAI,GAAC,EAAE,CAAC,EAAC,IAAE,IAAE,EAAE,QAAM,IAAE,EAAE,OAAM,IAAE,IAAE,EAAE,SAAO,IAAE,EAAE;AAAO,WAAM;KAAC,OAAM;KAAE,QAAO;KAAE,KAAI;KAAE,OAAM,IAAE;KAAE,QAAO,IAAE;KAAE,MAAK;KAAE;KAAE,GAAE,GAAE,EAAE;;EAAE,MAAK,EAAC,KAAI,GAAE,MAAK,GAAE,OAAM,GAAE,QAAO,GAAE,QAAO,GAAE,OAAM,MAAG;AAAE,SAAM;GAAC,KAAI;GAAE,MAAK;GAAE,OAAM;GAAE,QAAO;GAAE,QAAO;GAAE,OAAM;GAAE;;CAAC,SAAS,EAAE,GAAE;AAAC,SAAO,EAAE,GAAE,EAAC,iBAAgB,CAAC,GAAE,CAAC;;CAAC,SAAS,EAAE,GAAE,GAAE;EAAC,MAAM,IAAE,EAAE;AAAC,SAAO,IAAE,SAAS,EAAE,GAAE;AAAC,OAAG,QAAM,KAAG,EAAE,UAAQ,EAAE,QAAO;AAAE,OAAG,CAAC,EAAE,QAAO;AAAE,OAAGA,IAAE,WAAW,EAAE,IAAE,QAAM,EAAE,oBAAkB,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,QAAO,EAAE,KAAK,EAAE,iBAAiB,EAAC;AAAE,OAAG,CAACA,IAAE,cAAc,EAAE,IAAEA,IAAE,aAAa,EAAE,CAAC,QAAO;AAAE,OAAG,EAAE,SAAS,EAAE,CAAC,QAAO;GAAE,MAAM,IAAEA,IAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE;AAAC,UAAO,MAAI,KAAG,SAAS,GAAE,GAAE;AAAC,SAAK,MAAI,MAAI,IAAEA,IAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE;IAAE,MAAM,IAAE;AAAwB,WAAM;KAAC;KAAW;KAAY;KAAY,CAAC,MAAK,MAAG;KAAC,MAAM,IAAE,EAAE;AAAG,YAAM,YAAU,OAAO,KAAG,EAAE,KAAK,EAAE;MAAE;KAAE,GAAE,EAAE,IAAE,EAAE,KAAK,EAAE,EAAC,SAAS,GAAE,GAAE;AAAC,WAAO,KAAK,MAAI,MAAI,IAAEA,IAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE,GAAE,YAAU,EAAE;KAAU,GAAE,EAAE,GAAC,IAAE,EAAE,EAAE,WAAW;IAAE,EAAE,GAAC;;CAAE,SAAS,EAAE,GAAE;EAAC,MAAK,CAAC,KAAG,EAAE,GAAE,EAAE;AAAC,SAAO,QAAM,IAAE,IAAE;;CAAK,SAAS,EAAE,GAAE;AAAC,SAAOA,IAAE,aAAW,IAAEA,IAAE,SAAS,EAAE,GAAC,IAAEA,IAAE,OAAO,EAAE,GAACA,IAAE,WAAW,EAAE,IAAE,MAAIA,IAAE,iBAAiB,EAAE,CAAC,mBAAiB,SAAOA,IAAE,cAAc,EAAE,GAAC,IAAE,OAAK,OAAK;;CAAK,SAAS,EAAE,GAAE;AAAC,SAAOA,IAAE,SAAS,EAAE,GAAC,EAAE,UAAQ,EAAE;;CAAW,SAAS,EAAE,GAAE;AAAC,SAAOA,IAAE,SAAS,EAAE,GAAC,EAAE,UAAQ,EAAE;;CAAU,SAAS,EAAE,GAAE;AAAC,SAAM;GAAC,GAAE,EAAE,EAAE;GAAC,GAAE,EAAE,EAAE;GAAC;;CAAC,IAAI;CAAE,SAAS,EAAE,GAAE;AAAC,SAAM,EAAE,CAACA,IAAE,aAAW,CAAC,MAAI,MAAI,SAAS;;CAAiB,SAAS,EAAE,GAAE;EAAC,MAAM,IAAE;GAAC,GAAE;GAAE,GAAE;GAAE,EAAC,IAAE,EAAE,EAAE,GAAC;GAAC,QAAO,OAAO;GAAY,OAAM,OAAO;GAAW,GAAC;GAAC,QAAO,EAAE;GAAa,OAAM,EAAE;GAAY,EAAC,IAAE;GAAC,GAAE,EAAE,cAAY,EAAE;GAAM,GAAE,EAAE,eAAa,EAAE;GAAO;AAAC,SAAM;GAAC,OAAM,EAAE,aAAW,EAAE;GAAE,QAAO,EAAE,cAAY,EAAE;GAAE,UAAS,EAAE,aAAW,EAAE;GAAE,SAAQ,EAAE,cAAY,EAAE;GAAE,WAAU;GAAE,WAAU;GAAE;;AAAC,EAAC,SAAS,GAAE;AAAC,IAAE,EAAE,UAAQ,KAAG,WAAU,EAAE,EAAE,WAAS,MAAI;IAAY,MAAI,IAAE,EAAE,EAAE;CAAC,MAAM,IAAE;EAAC,GAAE;EAAG,GAAE;EAAG;CAAC,SAAS,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE;EAAC,IAAG,EAAC,KAAI,GAAE,MAAK,GAAE,OAAM,GAAE,QAAO,MAAG;AAAE,OAAK,MAAI,MAAI,IAAE,KAAI,KAAK,MAAI,MAAI,IAAE;EAAG,MAAK,EAAC,OAAM,GAAE,UAAS,GAAE,QAAO,GAAE,SAAQ,MAAG,EAAE,EAAE,EAAC,IAAE;GAAC,GAAE;GAAE,GAAE;GAAE,EAAC,IAAE;GAAC,GAAE;GAAE,GAAE;GAAE,EAAC,IAAE,EAAE,SAAO,EAAE,GAAE,IAAE,EAAE,QAAM,EAAE;AAAE,SAAM,CAAC,KAAG,KAAG,EAAE,MAAI,KAAG,EAAE,IAAE,EAAE,UAAS,EAAE,IAAE,IAAE,KAAK,KAAK,EAAE,MAAI,IAAE,KAAG,EAAE,IAAE,CAAC,KAAG,KAAG,EAAE,SAAO,MAAI,EAAE,IAAE,EAAE,SAAQ,EAAE,IAAE,IAAE,KAAK,KAAK,EAAE,SAAO,IAAE,KAAG,EAAE,GAAE,CAAC,KAAG,KAAG,EAAE,QAAM,KAAG,EAAE,IAAE,EAAE,SAAQ,EAAE,IAAE,IAAE,KAAK,KAAK,EAAE,QAAM,IAAE,KAAG,EAAE,IAAE,CAAC,KAAG,KAAG,EAAE,OAAK,MAAI,EAAE,IAAE,EAAE,UAAS,EAAE,IAAE,IAAE,KAAK,KAAK,EAAE,OAAK,IAAE,KAAG,EAAE,GAAE;GAAC,WAAU;GAAE,OAAM;GAAE;;CAAC,SAAS,EAAE,GAAE;AAAC,MAAG,MAAI,SAAS,kBAAiB;GAAC,MAAK,EAAC,YAAW,GAAE,aAAY,MAAG;AAAO,UAAM;IAAC,KAAI;IAAE,MAAK;IAAE,OAAM;IAAE,QAAO;IAAE,OAAM;IAAE,QAAO;IAAE;;EAAC,MAAK,EAAC,KAAI,GAAE,MAAK,GAAE,OAAM,GAAE,QAAO,MAAG,EAAE,uBAAuB;AAAC,SAAM;GAAC,KAAI;GAAE,MAAK;GAAE,OAAM;GAAE,QAAO;GAAE,OAAM,EAAE;GAAY,QAAO,EAAE;GAAa;;CAAC,SAAS,EAAE,GAAE;AAAC,SAAO,EAAE,QAAQ,GAAE,MAAIA,IAAE,IAAI,GAAE,EAAE,EAAE,CAAC,EAAC,EAAE;;CAAC,SAAS,EAAE,GAAE,GAAE;AAAC,MAAG,KAAK,MAAI,MAAI,IAAE,IAAG,CAAC,EAAE;EAAO,MAAK,EAAC,KAAI,GAAE,MAAK,GAAE,QAAO,GAAE,OAAM,MAAG,EAAE,EAAE;AAAC,IAAE,EAAE,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,OAAO,eAAa,KAAG,OAAO,eAAa,EAAE,eAAe;GAAC,OAAM;GAAS,QAAO;GAAS,CAAC;;CAAC,MAAM,IAAE,CAAC;EAAC;EAAI,CAAC,QAAO,QAAQ;EAAC,SAAS,GAAE;AAAC,UAAO,EAAE,QAAQ,GAAE,MAAI,IAAE,EAAE,EAAE,EAAC,EAAE;;EAAE,EAAC;EAAC;EAAI,CAAC,OAAM,SAAS;EAAC,SAAS,GAAE;AAAC,UAAO,EAAE,QAAQ,GAAE,MAAI,IAAE,EAAE,EAAE,EAAC,EAAE;;EAAE,CAAC;CAAC,IAAM,IAAN,MAAO;EAAC,YAAY,GAAE,GAAE;AAAC,QAAK,OAAK,KAAK,GAAE,KAAK,QAAM,KAAK,GAAE,KAAK,SAAO,KAAK,GAAE,KAAK,MAAI,KAAK,GAAE,KAAK,SAAO,KAAK,GAAE,KAAK,QAAM,KAAK,GAAE,KAAK,OAAK,KAAK;GAAE,MAAM,IAAE,EAAE,EAAE,EAAC,IAAE,EAAE,EAAE;AAAC,QAAK,OAAK,EAAC,GAAG,GAAE,EAAC,KAAK,QAAM,EAAE,OAAM,KAAK,SAAO,EAAE;AAAO,QAAI,MAAK,CAAC,GAAE,GAAE,MAAK,EAAE,MAAI,MAAM,KAAK,EAAE,QAAO,eAAe,MAAK,GAAE;IAAC,WAAQ;KAAC,MAAM,IAAE,EAAE,EAAE;AAAC,YAAO,KAAK,KAAK,MAAI,EAAE,KAAG;;IAAI,YAAW,CAAC;IAAE,CAAC;AAAC,UAAO,eAAe,MAAK,QAAO,EAAC,YAAW,CAAC,GAAE,CAAC;;;CAAE,IAAM,IAAN,MAAO;EAAC,YAAY,GAAE;AAAC,QAAK,SAAO,KAAK,GAAE,KAAK,YAAU,EAAE,EAAC,KAAK,kBAAc;AAAC,SAAK,UAAU,SAAQ,MAAG;KAAC,IAAI;AAAE,YAAO,SAAO,IAAE,KAAK,UAAQ,KAAK,IAAE,EAAE,oBAAoB,GAAG,EAAE;MAAE;MAAE,KAAK,SAAO;;EAAE,IAAI,GAAE,GAAE,GAAE;GAAC,IAAI;AAAE,YAAO,IAAE,KAAK,WAAS,EAAE,iBAAiB,GAAE,GAAE,EAAE,EAAC,KAAK,UAAU,KAAK;IAAC;IAAE;IAAE;IAAE,CAAC;;;CAAE,SAAS,EAAE,GAAE,GAAE;EAAC,MAAM,IAAE,KAAK,IAAI,EAAE,EAAE,EAAC,IAAE,KAAK,IAAI,EAAE,EAAE;AAAC,SAAM,YAAU,OAAO,IAAE,KAAK,KAAK,KAAG,IAAE,KAAG,EAAE,GAAC,IAAE,OAAM,KAAG,OAAM,IAAE,IAAE,EAAE,KAAG,IAAE,EAAE,IAAE,OAAM,IAAE,IAAE,EAAE,IAAE,OAAM,KAAG,IAAE,EAAE;;CAAE,IAAI,GAAE;CAAE,SAAS,EAAE,GAAE;AAAC,IAAE,gBAAgB;;CAAC,SAAS,EAAE,GAAE;AAAC,IAAE,iBAAiB;;AAAC,EAAC,SAAS,GAAE;AAAC,IAAE,QAAM,SAAQ,EAAE,YAAU,aAAY,EAAE,UAAQ,WAAU,EAAE,cAAY,eAAc,EAAE,SAAO,UAAS,EAAE,kBAAgB,mBAAkB,EAAE,mBAAiB;IAAoB,MAAI,IAAE,EAAE,EAAE,EAAC,CAAC,IAAE,QAAQ,iBAAe,QAAQ,eAAa,EAAE,GAAG,QAAM,SAAQ,EAAE,OAAK,aAAY,EAAE,QAAM,cAAa,EAAE,OAAK,aAAY,EAAE,KAAG,WAAU,EAAE,MAAI,UAAS,EAAE,QAAM,SAAQ,EAAE,MAAI;CAAM,MAAM,IAAE;EAAC,OAAM,CAAC,QAAQ,aAAa,OAAM,QAAQ,aAAa,MAAM;EAAC,QAAO,CAAC,QAAQ,aAAa,IAAI;EAAC,KAAI;GAAC,QAAQ,aAAa;GAAM,QAAQ,aAAa;GAAM,QAAQ,aAAa;GAAI;EAAC,EAAC,MAAI,GAAE,MAAI;EAAC,IAAG,EAAC,oBAAmB,MAAG;AAAE,UAAO,EAAE,MAAT;GAAe,KAAK,QAAQ,aAAa,MAAM,QAAM;IAAC,GAAG;IAAE,GAAE,EAAE,IAAE;IAAG;GAAC,KAAK,QAAQ,aAAa,KAAK,QAAM;IAAC,GAAG;IAAE,GAAE,EAAE,IAAE;IAAG;GAAC,KAAK,QAAQ,aAAa,KAAK,QAAM;IAAC,GAAG;IAAE,GAAE,EAAE,IAAE;IAAG;GAAC,KAAK,QAAQ,aAAa,GAAG,QAAM;IAAC,GAAG;IAAE,GAAE,EAAE,IAAE;IAAG;;;CAAG,IAAM,KAAN,MAAQ;EAAC,YAAY,GAAE;AAAC,QAAK,QAAM,KAAK,GAAE,KAAK,oBAAkB,CAAC,GAAE,KAAK,uBAAqB,KAAK,GAAE,KAAK,YAAU,KAAK,GAAE,KAAK,kBAAgB,KAAK,GAAE,KAAK,QAAM;GAAE,MAAK,EAAC,OAAM,EAAC,QAAO,QAAI;AAAE,QAAK,QAAM,GAAE,KAAK,YAAU,IAAI,EAAEA,IAAE,iBAAiB,EAAE,CAAC,EAAC,KAAK,kBAAgB,IAAI,EAAEA,IAAE,UAAU,EAAE,CAAC,EAAC,KAAK,gBAAc,KAAK,cAAc,KAAK,KAAK,EAAC,KAAK,eAAa,KAAK,aAAa,KAAK,KAAK,EAAC,KAAK,QAAQ;;EAAC,SAAQ;AAAC,QAAK,aAAa,EAAC,KAAK,gBAAgB,IAAI,EAAE,QAAO,KAAK,aAAa,EAAC,KAAK,gBAAgB,IAAI,EAAE,kBAAiB,KAAK,aAAa,EAAC,iBAAe,KAAK,UAAU,IAAI,EAAE,SAAQ,KAAK,cAAc,CAAC;;EAAC,cAAa;GAAC,MAAK,EAAC,YAAW,GAAE,SAAQ,MAAG,KAAK,OAAM,IAAE,EAAE,KAAK;AAAQ,QAAG,EAAE,EAAE,EAAC,EAAE,EAAE;;EAAC,cAAc,GAAE;AAAC,OAAGA,IAAE,gBAAgB,EAAE,EAAC;IAAC,MAAK,EAAC,QAAO,GAAE,SAAQ,GAAE,SAAQ,MAAG,KAAK,OAAM,EAAC,eAAc,IAAE,GAAE,kBAAiB,IAAE,IAAG,gBAAe,IAAE,aAAU,GAAE,EAAC,MAAK,MAAG;AAAE,QAAG,EAAE,IAAI,SAAS,EAAE,CAAC,QAAO,KAAK,KAAK,UAAU,EAAE;AAAC,QAAG,EAAE,OAAO,SAAS,EAAE,CAAC,QAAO,KAAK,KAAK,aAAa,EAAE;IAAC,MAAK,EAAC,eAAc,MAAG,EAAE,SAAQ,IAAE,IAAE;KAAC,GAAE,EAAE;KAAK,GAAE,EAAE;KAAI,GAAC;AAAE,SAAK,yBAAuB,KAAK,uBAAqB;IAAG,MAAM,IAAE,EAAE,GAAE;KAAC,QAAO;KAAE,SAAQ,EAAE;KAAQ,oBAAmB;KAAE,CAAC;AAAC,QAAG,GAAE;KAAC,MAAM,IAAEA,IAAE,SAAS,GAAE,EAAE,EAAC,IAAE;MAAC,GAAE;MAAE,GAAE;MAAE,EAAC,EAAC,qBAAoB,MAAG,EAAE;AAAQ,UAAI,MAAM,KAAK,GAAE;MAAC,MAAM,IAAE,EAAE,MAAK,EAAC,OAAM,GAAE,SAAQ,GAAE,QAAO,GAAE,UAAS,GAAE,WAAU,GAAE,WAAU,MAAG,EAAE,EAAE,EAAC,IAAE,EAAE,EAAE,EAAC,IAAE;OAAC,GAAE,KAAK,IAAI,MAAI,QAAQ,aAAa,QAAM,EAAE,QAAM,EAAE,QAAM,IAAE,EAAE,OAAM,KAAK,IAAI,MAAI,QAAQ,aAAa,QAAM,EAAE,OAAK,EAAE,OAAK,EAAE,QAAM,GAAE,EAAE,EAAE,CAAC;OAAC,GAAE,KAAK,IAAI,MAAI,QAAQ,aAAa,OAAK,EAAE,SAAO,EAAE,SAAO,IAAE,EAAE,QAAO,KAAK,IAAI,MAAI,QAAQ,aAAa,OAAK,EAAE,MAAI,EAAE,MAAI,EAAE,SAAO,GAAE,EAAE,EAAE,CAAC;OAAC,EAAC,IAAE,MAAI,QAAQ,aAAa,SAAO,CAAC,KAAG,MAAI,QAAQ,aAAa,QAAM,CAAC,GAAE,IAAE,MAAI,QAAQ,aAAa,QAAM,CAAC,KAAG,MAAI,QAAQ,aAAa,MAAI,CAAC;AAAE,UAAG,KAAG,EAAE,MAAI,EAAE,GAAE;OAAC,MAAM,IAAE,EAAE,aAAW,EAAE,GAAE,IAAE,MAAI,QAAQ,aAAa,SAAO,KAAG,EAAE,KAAG,MAAI,QAAQ,aAAa,QAAM,KAAG,EAAE;AAAE,WAAG,KAAG,CAAC,EAAE,EAAE,QAAO,KAAK,EAAE,SAAS;QAAC,MAAK;QAAE,UAAS;QAAE,CAAC;AAAC,SAAE,IAAE,IAAE,EAAE,aAAW,IAAE,MAAI,QAAQ,aAAa,QAAM,EAAE,aAAW,EAAE,IAAE,EAAE,aAAW,EAAE,GAAE,EAAE,KAAG,EAAE,SAAS;QAAC,MAAK,CAAC,EAAE;QAAE,UAAS;QAAE,CAAC;AAAC;;AAAM,UAAG,KAAG,EAAE,MAAI,EAAE,GAAE;OAAC,MAAM,IAAE,EAAE,YAAU,EAAE,GAAE,IAAE,MAAI,QAAQ,aAAa,QAAM,KAAG,EAAE,KAAG,MAAI,QAAQ,aAAa,MAAI,KAAG,EAAE;AAAE,WAAG,KAAG,CAAC,EAAE,EAAE,QAAO,KAAK,EAAE,SAAS;QAAC,KAAI;QAAE,UAAS;QAAE,CAAC;AAAC,SAAE,IAAE,IAAE,EAAE,YAAU,IAAE,MAAI,QAAQ,aAAa,OAAK,EAAE,YAAU,EAAE,IAAE,EAAE,YAAU,EAAE,GAAE,EAAE,KAAG,EAAE,SAAS;QAAC,KAAI,CAAC,EAAE;QAAE,UAAS;QAAE,CAAC;AAAC;;;AAAO,UAAK,WAAW,GAAEA,IAAE,IAAIA,IAAE,SAAS,GAAE,KAAK,qBAAqB,EAAC,EAAE,CAAC;;;;EAAG,WAAW,GAAE,GAAE;GAAC,MAAK,EAAC,QAAO,MAAG,KAAK;AAAM,KAAE,gBAAgB,EAAC,EAAE,EAAE;;EAAC,UAAU,GAAE;GAAC,MAAK,EAAC,OAAM,MAAG,KAAK;AAAM,KAAE,gBAAgB,EAAC,KAAK,QAAQ,EAAC,GAAG;;EAAC,aAAa,GAAE;GAAC,MAAK,EAAC,UAAS,MAAG,KAAK;AAAM,KAAE,gBAAgB,EAAC,KAAK,QAAQ,EAAC,GAAG;;EAAC,SAAQ;AAAC,QAAK,UAAU,WAAW,EAAC,KAAK,gBAAgB,WAAW;;;CAAE,SAAS,GAAG,GAAE;AAAC,SAAO,QAAQ,KAAG,cAAa,EAAE;;CAAC,SAAS,GAAG,GAAE;AAAC,SAAO,QAAQ,KAAG,WAAU,EAAE;;AAAC,IAAG,aAAW,CAAC;EAAC,WAAU;EAAY,UAAS,GAAE,GAAE,MAAI;GAAC,IAAG,EAAC,eAAc,IAAE,GAAE,cAAa,MAAG,GAAE,EAAC,QAAO,MAAG;GAAE,MAAK,EAAC,MAAK,MAAG,EAAE;AAAY,OAAG,EAAE,MAAM,SAAS,EAAE,EAAC;IAAC,MAAM,IAAE,EAAE,cAAc;AAAQ,WAAM,EAAE,KAAG,EAAE,WAAS,MAAI,EAAE,gBAAgB,EAAO,IAAK,EAAC,OAAM,EAAE,aAAY,CAAC,EAAC;;AAAI,UAAM,CAAC;;EAAG,CAAC;CAAC,IAAM,KAAN,MAAQ;EAAC,YAAY,GAAE,GAAE,GAAE;GAAC,IAAI;AAAE,QAAK,MAAI,MAAI,IAAE,SAAS,GAAE;IAAC,MAAK,EAAC,aAAY,MAAGA,IAAE,UAAU,EAAE;AAAC,WAAO,aAAa,IAAE,IAAEA,IAAE,iBAAiB,EAAE;KAAE,EAAE,MAAM,OAAO,GAAE,KAAK,QAAM,KAAK,GAAE,KAAK,SAAO,KAAK,GAAE,KAAK,oBAAkB,CAAC,GAAE,KAAK,WAAS,KAAK,GAAE,KAAK,YAAU,CAAC,GAAE,KAAK,qBAAmB,KAAK,GAAE,KAAK,YAAU,MAAK,KAAK,YAAU,KAAK,GAAE,KAAK,oBAAkB,KAAK,GAAE,KAAK,kBAAgB,KAAK,GAAE,KAAK,QAAM,GAAE,KAAK,SAAO;GAAE,MAAK,EAAC,OAAM,MAAG,GAAE,EAAC,QAAO,MAAG;AAAE,QAAK,QAAM,GAAE,KAAK,SAAO,GAAE,KAAK,WAASA,IAAE,iBAAiB,EAAE,EAAC,KAAK,oBAAkB,IAAI,EAAE,KAAK,SAAS,EAAC,KAAK,YAAU,IAAI,EAAE,EAAE,EAAC,KAAK,kBAAgB,IAAI,EAAEA,IAAE,UAAU,EAAE,CAAC,EAAC,KAAK,qBAAmB,SAAO,IAAEA,IAAE,oBAAoB,EAAE,IAAE,IAAE,GAAE,KAAK,cAAY,KAAK,YAAY,KAAK,KAAK,EAAC,KAAK,aAAW,KAAK,WAAW,KAAK,KAAK,EAAC,KAAK,YAAU,KAAK,UAAU,KAAK,KAAK,EAAC,KAAK,eAAa,KAAK,aAAa,KAAK,KAAK,EAAC,KAAK,gBAAc,KAAK,cAAc,KAAK,KAAK,EAAC,KAAK,sBAAoB,KAAK,oBAAoB,KAAK,KAAK,EAAC,KAAK,QAAQ;;EAAC,SAAQ;GAAC,MAAK,EAAC,QAAO,GAAE,OAAM,EAAC,SAAQ,EAAC,sBAAqB,GAAE,4BAA2B,UAAK;AAAK,OAAG,KAAK,UAAU,IAAI,EAAE,KAAK,MAAK,KAAK,YAAW,EAAC,SAAQ,CAAC,GAAE,CAAC,EAAC,KAAK,UAAU,IAAI,EAAE,IAAI,MAAK,KAAK,UAAU,EAAC,EAAE,UAAQ,KAAK,UAAU,IAAI,EAAE,OAAO,MAAK,KAAK,aAAa,EAAC,KAAK,gBAAgB,IAAI,EAAE,QAAO,KAAK,aAAa,EAAC,KAAK,gBAAgB,IAAI,EAAE,WAAU,EAAE,EAAC,KAAK,gBAAgB,IAAI,EAAE,kBAAiB,KAAK,aAAa,EAAC,KAAK,gBAAgB,IAAI,EAAE,aAAY,EAAE,EAAC,KAAK,kBAAkB,IAAI,EAAE,SAAQ,KAAK,cAAc,EAAC,GAAE;AAAC,QAAG,QAAM,KAAG,EAAE;KAAC,OAAM,KAAK,MAAM;KAAM,YAAW,KAAK,MAAM;KAAW,SAAQ,KAAK,MAAM;KAAQ,CAAC,CAAC,QAAO,KAAK,aAAa;AAAC,QAAG,GAAG,EAAE,CAAC,QAAO,KAAK,YAAU,WAAW,KAAK,aAAY,EAAE,MAAM,EAAC,KAAK,KAAK,cAAc,EAAE;AAAC,QAAG,GAAG,EAAE,CAAC,QAAO,KAAK,KAAK,cAAc,EAAE;;AAAC,QAAK,aAAa;;EAAC,SAAQ;AAAC,QAAK,UAAU,WAAW,EAAC,KAAK,gBAAgB,WAAW,EAAC,WAAW,KAAK,kBAAkB,WAAU,GAAG,EAAC,SAAO,KAAK,cAAY,aAAa,KAAK,UAAU,EAAC,KAAK,YAAU;;EAAM,cAAc,GAAE,GAAE;GAAC,MAAK,EAAC,QAAO,GAAE,WAAU,MAAG,KAAK;AAAM,KAAE,GAAE,GAAE,KAAK,oBAAmB,EAAE;;EAAC,cAAa;GAAC,MAAK,EAAC,oBAAmB,MAAG,MAAK,EAAC,SAAQ,MAAG,KAAK;AAAM,SAAI,KAAK,YAAU,CAAC,GAAE,KAAK,kBAAkB,IAAI,EAAE,OAAM,GAAE,EAAC,SAAQ,CAAC,GAAE,CAAC,EAAC,KAAK,qBAAqB,EAAC,KAAK,kBAAkB,IAAI,EAAE,iBAAgB,KAAK,oBAAoB,EAAC,EAAE,EAAE;;EAAE,WAAW,GAAE;GAAC,IAAI;GAAE,MAAK,EAAC,WAAU,GAAE,oBAAmB,GAAE,OAAM,MAAG,MAAK,EAAC,QAAO,GAAE,SAAQ,EAAC,sBAAqB,QAAI;AAAE,OAAG,CAAC,EAAE;GAAO,MAAM,IAAE,SAAO,IAAEA,IAAE,oBAAoB,EAAE,IAAE,IAAE,GAAE,IAAEA,IAAE,SAAS,GAAE,EAAE;AAAC,OAAG,CAAC,KAAG,GAAE;AAAC,QAAG,GAAG,EAAE,EAAC;AAAC,SAAG,QAAM,EAAE,aAAW,EAAE,GAAE,EAAE,UAAU,CAAC,QAAO,KAAK,cAAc;AAAC,SAAG,EAAE,GAAE,EAAE,SAAS,CAAC,QAAO,KAAK,aAAa;;AAAC,WAAO,GAAG,EAAE,IAAE,EAAE,GAAE,EAAE,UAAU,GAAC,KAAK,cAAc,GAAC,KAAK,KAAK,cAAc,GAAE,EAAE;;AAAC,KAAE,cAAY,EAAE,gBAAgB,EAAC,EAAE,EAAE;;EAAC,YAAW;GAAC,MAAK,EAAC,SAAQ,GAAE,OAAM,MAAG,KAAK;AAAM,QAAK,QAAQ,EAAC,KAAK,aAAW,EAAE,KAAK,MAAM,OAAO,EAAC,GAAG;;EAAC,eAAc;GAAC,MAAK,EAAC,SAAQ,GAAE,UAAS,MAAG,KAAK;AAAM,QAAK,QAAQ,EAAC,KAAK,aAAW,EAAE,KAAK,MAAM,OAAO,EAAC,GAAG;;EAAC,cAAc,GAAE;AAAC,KAAE,SAAO,QAAQ,aAAa,OAAK,KAAK,cAAc;;EAAC,sBAAqB;GAAC,IAAI;AAAE,YAAO,IAAE,KAAK,SAAS,cAAc,KAAG,EAAE,iBAAiB;;;CAAE,MAAM,KAAG;EAAC,QAAO,EAAC,MAAK,iBAAgB;EAAC,MAAK,EAAC,MAAK,eAAc;EAAC,KAAI,EAAC,MAAK,aAAY;EAAC;CAAC,IAAM,KAAN,cAAiB,GAAE;EAAC,YAAY,GAAE;GAAC,MAAK,EAAC,OAAM,MAAG,GAAE,IAAEA,IAAE,iBAAiB,EAAE,OAAO;AAAC,SAAM,GAAE,IAAG,EAAE;;;AAAE,IAAG,aAAW,CAAC;EAAC,WAAU;EAAgB,UAAS,GAAE,MAAI;GAAC,IAAG,EAAC,aAAY,MAAG,GAAE,EAAC,cAAa,MAAG;AAAE,UAAM,EAAE,CAAC,EAAE,aAAW,MAAI,EAAE,WAAe,IAAK,EAAC,OAAM,GAAE,CAAC,EAAC;;EAAK,CAAC;CAAC,MAAM,KAAG;EAAC,MAAK,EAAC,MAAK,aAAY;EAAC,KAAI,EAAC,MAAK,WAAU;EAAC;CAAC,IAAI;AAAG,EAAC,SAAS,GAAE;AAAC,IAAE,EAAE,aAAW,KAAG;IAAc,OAAK,KAAG,EAAE,EAAE;CAAC,IAAM,KAAN,cAAiB,GAAE;EAAC,YAAY,GAAE;AAAC,SAAM,GAAE,IAAGA,IAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;;;AAAE,IAAG,aAAW,CAAC;EAAC,WAAU;EAAc,UAAS,GAAE,MAAI;GAAC,IAAG,EAAC,aAAY,MAAG,GAAE,EAAC,cAAa,MAAG;AAAE,UAAO,EAAE,WAAS,GAAG,eAAmB,IAAK,EAAC,OAAM,GAAE,CAAC,EAAC,CAAC;;EAAI,CAAC;CAAC,MAAM,KAAG;EAAC,QAAO,EAAC,MAAK,eAAc;EAAC,MAAK,EAAC,MAAK,aAAY;EAAC,KAAI,EAAC,MAAK,YAAW;EAAC;CAAC,IAAM,KAAN,cAAiB,GAAE;EAAC,YAAY,GAAE;AAAC,SAAM,GAAE,GAAG;;EAAC,OAAO,QAAO;AAAC,UAAO,OAAO,iBAAiB,GAAG,KAAK,MAAK,GAAE;IAAC,SAAQ,CAAC;IAAE,SAAQ,CAAC;IAAE,CAAC,EAAC,WAAU;AAAC,WAAO,oBAAoB,GAAG,KAAK,MAAK,EAAE;;GAAE,SAAS,IAAG;;;CAAI,IAAI,IAAG;AAAG,IAAG,aAAW,CAAC;EAAC,WAAU;EAAe,UAAS,GAAE,MAAI;GAAC,IAAG,EAAC,aAAY,MAAG,GAAE,EAAC,cAAa,MAAG;GAAE,MAAK,EAAC,SAAQ,MAAG;AAAE,UAAM,EAAE,EAAE,SAAO,MAAU,IAAK,EAAC,OAAM,GAAE,CAAC,EAAC;;EAAK,CAAC,EAAC,CAAC,KAAG,QAAQ,wBAAsB,QAAQ,sBAAoB,EAAE,GAAG,GAAG,UAAQ,KAAG,WAAU,GAAG,GAAG,gBAAc,KAAG,iBAAgB,CAAC,KAAG,QAAQ,mBAAiB,QAAQ,iBAAe,EAAE,GAAG,GAAG,YAAU,KAAG,aAAY,GAAG,GAAG,oBAAkB,KAAG;CAAoB,MAAM,KAAG;EAAC,GAAE;IAAE,EAAE,WAAU,CAAC;IAAG,EAAE,UAAS,CAAC;GAAE;EAAC,GAAE;IAAE,EAAE,WAAU,CAAC;IAAG,EAAE,UAAS,CAAC;GAAE;EAAC;CAAC,IAAI;AAAG,EAAC,KAAG,QAAQ,sBAAoB,QAAQ,oBAAkB,EAAE,GAAG,GAAG,SAAO,KAAG,UAAS,GAAG,GAAG,iBAAe,KAAG,kBAAiB,GAAG,GAAG,gBAAc,KAAG,iBAAgB,CAAC,QAAQ,uBAAqB,QAAQ,qBAAmB,EAAE,GAAG,YAAU;CAAY,MAAM,qBAAG,IAAI,KAAG;CAAC,SAAS,GAAG,GAAE,GAAE;AAAC,SAAOA,IAAE,aAAY,MAAG,IAAE,MAAI,cAAY,OAAO,IAAE,EAAE,EAAE,GAAC,KAAG,MAAK,CAAC,GAAE,EAAE,CAAC;;CAAC,SAAS,GAAG,GAAE;EAAC,IAAG,EAAC,UAAS,GAAE,UAAS,MAAG;EAAE,MAAM,IAAEA,IAAE,SAAS,EAAE,EAAC,IAAEH,IAAE,cAAY;AAAC,OAAG,KAAG,eAAa,OAAO,UAAQ,KAAK,MAAI,OAAO,eAAe;GAAO,MAAK,EAAC,gBAAe,MAAG;AAAO,UAAO,IAAI,EAAE,EAAE;KAAE,CAAC,EAAE,CAAC;AAAC,SAAOA,IAAE,sBAAkB,QAAM,IAAE,KAAK,IAAE,EAAE,YAAY,EAAC,CAAC,EAAE,CAAC,EAAC;;CAAE,SAAS,GAAG,GAAE;AAAC,SAAO,IAAI,EAAE,EAAE,EAAE,EAAC,EAAE;;CAAC,SAAS,GAAG,GAAE,GAAE,GAAE;AAAC,OAAK,MAAI,MAAI,IAAE;EAAI,MAAK,CAAC,GAAE,KAAGA,IAAE,SAAS,KAAK;EAAC,SAAS,IAAG;AAAC,MAAE,MAAG;AAAC,QAAG,CAAC,EAAE,QAAO;IAAK,IAAI;AAAE,QAAG,CAAC,MAAI,EAAE,YAAY,QAAO,SAAO,IAAE,QAAM,IAAE,IAAE,KAAG,IAAE;IAAK,MAAM,IAAE,EAAE,EAAE;AAAC,WAAO,KAAK,UAAU,EAAE,KAAG,KAAK,UAAU,EAAE,GAAC,IAAE;KAAG;;EAAC,MAAM,IAAE,SAAS,GAAE;GAAC,IAAG,EAAC,UAAS,GAAE,UAAS,MAAG;GAAE,MAAM,IAAEG,IAAE,SAAS,EAAE,EAAC,IAAEH,IAAE,cAAY;AAAC,QAAG,KAAG,eAAa,OAAO,UAAQ,KAAK,MAAI,OAAO,iBAAiB;IAAO,MAAK,EAAC,kBAAiB,MAAG;AAAO,WAAO,IAAI,EAAE,EAAE;MAAE,CAAC,GAAE,EAAE,CAAC;AAAC,UAAOA,IAAE,sBAAkB,QAAM,IAAE,KAAK,IAAE,EAAE,YAAY,EAAC,CAAC,EAAE,CAAC,EAAC;IAAG,EAAC,SAAS,GAAE;AAAC,OAAG,EAAE,MAAI,MAAM,KAAK,GAAE;IAAC,MAAK,EAAC,MAAK,GAAE,QAAO,MAAG;AAAE,QAAG,gBAAc,KAAG,aAAa,eAAa,EAAE,SAAS,EAAE,EAAC;AAAC,QAAG;AAAC;;;KAAS,CAAC,EAAC,IAAE,GAAG,EAAC,UAAS,GAAE,CAAC;AAAC,SAAOG,IAAE,gCAA8B;AAAC,MAAG,EAAC,KAAS,GAAK,QAAQ,EAAE,EAAO,GAAK,QAAQ,SAAS,MAAK;IAAC,WAAU,CAAC;IAAE,SAAQ,CAAC;IAAE,CAAC,KAAS,GAAK,YAAY,EAAO,GAAK,YAAY;KAAG,CAAC,EAAE,CAAC,EAAC;;CAAE,MAAM,KAAG,EAAE;CAAC,SAAS,GAAG,GAAE,GAAE;AAAC,OAAK,MAAI,MAAI,IAAE,EAAE;EAAE,MAAM,IAAEH,IAAE,OAAO,KAAK;AAAC,SAAOA,IAAE,gBAAc;AAAC,KAAE,UAAQ;KAAM,EAAE,EAACA,IAAE,gBAAc;GAAC,MAAM,IAAE,MAAI;AAAE,QAAG,CAAC,EAAE,YAAU,EAAE,UAAQ,IAAG,CAAC,KAAG,EAAE,YAAU,EAAE,UAAQ;KAAO,CAAC,EAAE,CAAC,EAAC,EAAE,UAAQG,IAAE,SAAS,GAAE,EAAE,QAAQ,GAAC;;CAAE,SAAS,GAAG,GAAE;AAAC,SAAOH,IAAE,cAAY,IAAE,SAAS,GAAE;GAAC,MAAM,IAAE,EAAE,YAAW,IAAE,EAAE;AAAY,UAAM;IAAC,KAAI;IAAE,MAAK;IAAE,OAAM;IAAE,QAAO;IAAE,OAAM;IAAE,QAAO;IAAE;IAAE,EAAE,GAAC,MAAK,CAAC,EAAE,CAAC;;CAAC,MAAM,KAAG,EAAE;CAAC,SAAS,GAAG,GAAE;AAAC,MAAG,CAAC,EAAE,QAAO;AAAK,MAAG,EAAE,SAAS,SAAO,EAAE,QAAO;EAAE,MAAM,IAAE,EAAE,SAAS;AAAG,SAAOG,IAAE,cAAc,EAAE,GAAC,IAAE;;CAAE,MAAM,KAAG,CAAC;EAAC,QAAO;EAAG,SAAQ,EAAE;EAAC,EAAC;EAAC,QAAO;EAAG,SAAQ,EAAE;EAAC,CAAC,EAAC,KAAG,EAAC,SAAQ,EAAE,EAAC,EAAC,KAAG;EAAC,WAAU,EAAC,SAAQ,GAAE;EAAC,WAAU;GAAC,SAAQ;GAAE,UAAS,QAAQ,kBAAkB;GAAc,WAAU,QAAQ,mBAAmB;GAAU;EAAC,aAAY,EAAC,SAAQ,GAAE;EAAC;CAAC,IAAM,KAAN,cAAiB,IAAG;EAAC,IAAI,GAAE;GAAC,IAAI;AAAE,UAAO,QAAM,KAAG,SAAO,IAAE,MAAM,IAAI,EAAE,IAAE,IAAE,KAAK;;EAAE,UAAS;AAAC,UAAO,MAAM,KAAK,KAAK,QAAQ,CAAC;;EAAC,aAAY;AAAC,UAAO,KAAK,SAAS,CAAC,QAAO,MAAG;IAAC,IAAG,EAAC,UAAS,MAAG;AAAE,WAAM,CAAC;KAAG;;EAAC,WAAW,GAAE;GAAC,IAAI,GAAE;AAAE,UAAO,SAAO,IAAE,SAAO,IAAE,KAAK,IAAI,EAAE,IAAE,KAAK,IAAE,EAAE,KAAK,WAAS,IAAE,KAAK;;;CAAG,MAAM,KAAG;EAAC,gBAAe;EAAK,QAAO;EAAK,YAAW;EAAK,gBAAe;EAAK,YAAW;EAAK,mBAAkB;EAAK,gCAAe,IAAI,KAAG;EAAC,gCAAe,IAAI,KAAG;EAAC,qBAAoB,IAAI,IAAE;EAAC,MAAK;EAAK,aAAY;GAAC,SAAQ,EAAC,SAAQ,MAAK;GAAC,MAAK;GAAK,QAAO;GAAE;EAAC,qBAAoB,EAAE;EAAC,yBAAwB,EAAE;EAAC,wBAAuB;EAAG,4BAA2B;EAAE,YAAW;EAAK,oBAAmB,CAAC;EAAE,EAAC,KAAG;EAAC,gBAAe;EAAK,YAAW,EAAE;EAAC,QAAO;EAAK,gBAAe;EAAK,mBAAkB,EAAC,WAAU,IAAG;EAAC,UAAS;EAAE,gCAAe,IAAI,KAAG;EAAC,MAAK;EAAK,4BAA2B;EAAE,EAAC,KAAGH,IAAE,cAAc,GAAG,EAAC,KAAGA,IAAE,cAAc,GAAG;CAAC,SAAS,KAAI;AAAC,SAAM;GAAC,WAAU;IAAC,QAAO;IAAK,oBAAmB;KAAC,GAAE;KAAE,GAAE;KAAE;IAAC,uBAAM,IAAI,KAAG;IAAC,WAAU;KAAC,GAAE;KAAE,GAAE;KAAE;IAAC;GAAC,WAAU,EAAC,YAAW,IAAI,IAAE,EAAC;GAAC;;CAAC,SAAS,GAAG,GAAE,GAAE;AAAC,UAAO,EAAE,MAAT;GAAe,KAAK,EAAE,UAAU,QAAM;IAAC,GAAG;IAAE,WAAU;KAAC,GAAG,EAAE;KAAU,oBAAmB,EAAE;KAAmB,QAAO,EAAE;KAAO;IAAC;GAAC,KAAK,EAAE,SAAS,QAAO,QAAM,EAAE,UAAU,SAAO,IAAE;IAAC,GAAG;IAAE,WAAU;KAAC,GAAG,EAAE;KAAU,WAAU;MAAC,GAAE,EAAE,YAAY,IAAE,EAAE,UAAU,mBAAmB;MAAE,GAAE,EAAE,YAAY,IAAE,EAAE,UAAU,mBAAmB;MAAE;KAAC;IAAC;GAAC,KAAK,EAAE;GAAQ,KAAK,EAAE,WAAW,QAAM;IAAC,GAAG;IAAE,WAAU;KAAC,GAAG,EAAE;KAAU,QAAO;KAAK,oBAAmB;MAAC,GAAE;MAAE,GAAE;MAAE;KAAC,WAAU;MAAC,GAAE;MAAE,GAAE;MAAE;KAAC;IAAC;GAAC,KAAK,EAAE,mBAAkB;IAAC,MAAK,EAAC,SAAQ,MAAG,GAAE,EAAC,IAAG,MAAG,GAAE,IAAE,IAAI,GAAG,EAAE,UAAU,WAAW;AAAC,WAAO,EAAE,IAAI,GAAE,EAAE,EAAC;KAAC,GAAG;KAAE,WAAU;MAAC,GAAG,EAAE;MAAU,YAAW;MAAE;KAAC;;GAAC,KAAK,EAAE,sBAAqB;IAAC,MAAK,EAAC,IAAG,GAAE,KAAI,GAAE,UAAS,MAAG,GAAE,IAAE,EAAE,UAAU,WAAW,IAAI,EAAE;AAAC,QAAG,CAAC,KAAG,MAAI,EAAE,IAAI,QAAO;IAAE,MAAM,IAAE,IAAI,GAAG,EAAE,UAAU,WAAW;AAAC,WAAO,EAAE,IAAI,GAAE;KAAC,GAAG;KAAE,UAAS;KAAE,CAAC,EAAC;KAAC,GAAG;KAAE,WAAU;MAAC,GAAG,EAAE;MAAU,YAAW;MAAE;KAAC;;GAAC,KAAK,EAAE,qBAAoB;IAAC,MAAK,EAAC,IAAG,GAAE,KAAI,MAAG,GAAE,IAAE,EAAE,UAAU,WAAW,IAAI,EAAE;AAAC,QAAG,CAAC,KAAG,MAAI,EAAE,IAAI,QAAO;IAAE,MAAM,IAAE,IAAI,GAAG,EAAE,UAAU,WAAW;AAAC,WAAO,EAAE,OAAO,EAAE,EAAC;KAAC,GAAG;KAAE,WAAU;MAAC,GAAG,EAAE;MAAU,YAAW;MAAE;KAAC;;GAAC,QAAQ,QAAO;;;CAAG,SAAS,GAAG,GAAE;EAAC,IAAG,EAAC,UAAS,MAAG;EAAE,MAAK,EAAC,QAAO,GAAE,gBAAe,GAAE,gBAAe,MAAGA,IAAE,WAAW,GAAG,EAAC,IAAEG,IAAE,YAAY,EAAE,EAAC,IAAEA,IAAE,YAAY,QAAM,IAAE,KAAK,IAAE,EAAE,GAAG;AAAC,SAAOH,IAAE,gBAAc;AAAC,OAAG,CAAC,KAAG,CAAC,KAAG,KAAG,QAAM,GAAE;AAAC,QAAG,CAACG,IAAE,gBAAgB,EAAE,CAAC;AAAO,QAAG,SAAS,kBAAgB,EAAE,OAAO;IAAO,MAAM,IAAE,EAAE,IAAI,EAAE;AAAC,QAAG,CAAC,EAAE;IAAO,MAAK,EAAC,eAAc,GAAE,MAAK,MAAG;AAAE,QAAG,CAAC,EAAE,WAAS,CAAC,EAAE,QAAQ;AAAO,gCAA0B;AAAC,UAAI,MAAM,KAAI,CAAC,EAAE,SAAQ,EAAE,QAAQ,EAAC;AAAC,UAAG,CAAC,EAAE;MAAS,MAAM,IAAEA,IAAE,uBAAuB,EAAE;AAAC,UAAG,GAAE;AAAC,SAAE,OAAO;AAAC;;;MAAS;;KAAG;GAAC;GAAE;GAAE;GAAE;GAAE;GAAE,CAAC,EAAC;;CAAK,SAAS,GAAG,GAAE,GAAE;EAAC,IAAG,EAAC,WAAU,GAAE,GAAG,MAAG;AAAE,SAAO,QAAM,KAAG,EAAE,SAAO,EAAE,QAAQ,GAAE,MAAI,EAAE;GAAC,WAAU;GAAE,GAAG;GAAE,CAAC,EAAC,EAAE,GAAC;;CAAE,MAAM,KAAGH,IAAE,cAAc;EAAC,GAAG;EAAE,QAAO;EAAE,QAAO;EAAE,CAAC;CAAC,IAAI;AAAG,EAAC,SAAS,GAAE;AAAC,IAAE,EAAE,gBAAc,KAAG,iBAAgB,EAAE,EAAE,eAAa,KAAG,gBAAe,EAAE,EAAE,cAAY,KAAG;IAAe,OAAK,KAAG,EAAE,EAAE;CAAC,MAAM,KAAGA,IAAE,MAAM,SAAS,GAAE;EAAC,IAAI,GAAE,GAAE,GAAE;EAAE,IAAG,EAAC,IAAG,GAAE,eAAc,GAAE,YAAW,IAAE,CAAC,GAAE,UAAS,GAAE,SAAQ,IAAE,IAAG,oBAAmB,IAAE,GAAE,WAAU,GAAE,WAAU,GAAE,GAAG,MAAG;EAAE,MAAmC,CAAC,GAAE,KAA9BA,IAAE,WAAW,IAAG,KAAK,GAAE,GAAG,EAAS,CAAC,GAAE,KAAG,WAAU;GAAC,MAAK,CAAC,KAAGA,IAAE,+BAAa,IAAI,KAAG,CAAC,EAAC,IAAEA,IAAE,aAAY,OAAI,EAAE,IAAI,EAAE,QAAK,EAAE,OAAO,EAAE,GAAE,CAAC,EAAE,CAAC;AAAC,UAAM,CAACA,IAAE,aAAY,MAAG;IAAC,IAAG,EAAC,MAAK,GAAE,OAAM,MAAG;AAAE,MAAE,SAAQ,MAAG;KAAC,IAAI;AAAE,YAAO,SAAO,IAAE,EAAE,MAAI,KAAK,IAAE,EAAE,KAAK,GAAE,EAAE;MAAE;MAAE,CAAC,EAAE,CAAC,EAAC,EAAE;KAAG,EAAC,CAAC,GAAE,KAAGA,IAAE,SAAS,GAAG,cAAc,EAAC,IAAE,MAAI,GAAG,aAAY,EAAC,WAAU,EAAC,QAAO,GAAE,OAAM,GAAE,WAAU,KAAG,WAAU,EAAC,YAAW,QAAI,GAAE,IAAE,QAAM,IAAE,EAAE,IAAI,EAAE,GAAC,MAAK,IAAEA,IAAE,OAAO;GAAC,SAAQ;GAAK,YAAW;GAAK,CAAC,EAAC,IAAEA,IAAE,cAAY;GAAC,IAAI;AAAE,UAAO,QAAM,IAAE;IAAC,IAAG;IAAE,MAAK,SAAO,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE,QAAM,IAAE;IAAG,MAAK;IAAE,GAAC;KAAM,CAAC,GAAE,EAAE,CAAC,EAAC,IAAEA,IAAE,OAAO,KAAK,EAAC,CAAC,GAAE,KAAGA,IAAE,SAAS,KAAK,EAAC,CAAC,IAAG,MAAIA,IAAE,SAAS,KAAK,EAAC,KAAGG,IAAE,eAAe,GAAE,OAAO,OAAO,EAAE,CAAC,EAAC,KAAGA,IAAE,YAAY,kBAAiB,EAAE,EAAC,KAAGH,IAAE,cAAY,EAAE,YAAY,EAAC,CAAC,EAAE,CAAC,EAAC,KAAGA,IAAE,eAAa;GAAC,WAAU;IAAC,GAAG,GAAG;IAAU,GAAG,QAAM,KAAG,KAAK,IAAE,GAAG;IAAU;GAAC,WAAU;IAAC,GAAG,GAAG;IAAU,GAAG,QAAM,KAAG,KAAK,IAAE,GAAG;IAAU;GAAC,aAAY;IAAC,GAAG,GAAG;IAAY,GAAG,QAAM,KAAG,KAAK,IAAE,GAAG;IAAY;GAAC,GAAE;GAAC,SAAO,KAAG,KAAG,KAAK,IAAE,GAAG;GAAU,QAAM,KAAG,KAAK,IAAE,GAAG;GAAU,QAAM,KAAG,KAAK,IAAE,GAAG;GAAY,CAAC;EAAC,IAAI;EAAG,MAAK,EAAC,gBAAe,IAAG,4BAA2B,IAAG,oBAAmB,OAAI,SAAS,GAAE,GAAE;GAAC,IAAG,EAAC,UAAS,GAAE,cAAa,GAAE,QAAO,MAAG;GAAE,MAAK,CAAC,GAAE,KAAGA,IAAE,SAAS,KAAK,EAAC,EAAC,WAAU,GAAE,SAAQ,GAAE,UAAS,MAAG,GAAE,IAAEA,IAAE,OAAO,EAAE,EAAC,IAAE,WAAU;AAAC,YAAO,GAAP;KAAU,KAAK,QAAQ,kBAAkB,OAAO,QAAM,CAAC;KAAE,KAAK,QAAQ,kBAAkB,eAAe,QAAO;KAAE,QAAQ,QAAM,CAAC;;MAAK,EAAC,IAAEG,IAAE,eAAe,EAAE,EAAC,IAAEH,IAAE,aAAa,SAAS,GAAE;AAAC,SAAK,MAAI,MAAI,IAAE,EAAE,GAAE,EAAE,WAAS,GAAE,MAAG,SAAO,IAAE,IAAE,EAAE,OAAO,EAAE,QAAO,MAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;OAAG,CAAC,EAAE,CAAC,EAAC,IAAEA,IAAE,OAAO,KAAK,EAAC,IAAEG,IAAE,aAAY,MAAG;AAAC,QAAG,KAAG,CAAC,EAAE,QAAO;AAAG,QAAG,CAAC,KAAG,MAAI,MAAI,EAAE,YAAU,KAAG,QAAM,GAAE;KAAC,MAAM,oBAAE,IAAI,KAAG;AAAC,UAAI,IAAI,KAAK,GAAE;AAAC,UAAG,CAAC,EAAE;AAAS,UAAG,KAAG,EAAE,SAAO,KAAG,CAAC,EAAE,SAAS,EAAE,GAAG,IAAE,EAAE,KAAK,SAAQ;AAAC,SAAE,IAAI,EAAE,IAAG,EAAE,KAAK,QAAQ;AAAC;;MAAS,MAAM,IAAE,EAAE,KAAK,SAAQ,IAAE,IAAE,IAAI,EAAE,EAAE,EAAE,EAAC,EAAE,GAAC;AAAK,QAAE,KAAK,UAAQ,GAAE,KAAG,EAAE,IAAI,EAAE,IAAG,EAAE;;AAAC,YAAO;;AAAE,WAAO;MAAG;IAAC;IAAE;IAAE;IAAE;IAAE;IAAE,CAAC;AAAC,UAAOH,IAAE,gBAAc;AAAC,MAAE,UAAQ;MAAG,CAAC,EAAE,CAAC,EAACA,IAAE,gBAAc;AAAC,SAAG,GAAG;MAAE,CAAC,GAAE,EAAE,CAAC,EAACA,IAAE,gBAAc;AAAC,SAAG,EAAE,SAAO,KAAG,EAAE,KAAK;MAAE,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,EAACA,IAAE,gBAAc;AAAC,SAAG,YAAU,OAAO,KAAG,SAAO,EAAE,YAAU,EAAE,UAAQ,iBAAe;AAAC,QAAG,EAAC,EAAE,UAAQ;OAAM,EAAE;MAAG;IAAC;IAAE;IAAE;IAAE,GAAG;IAAE,CAAC,EAAC;IAAC,gBAAe;IAAE,4BAA2B;IAAE,oBAAmB,QAAM;IAAE;IAAE,IAAG;GAAC,UAAS;GAAE,cAAa,CAAC,EAAE,GAAE,EAAE,EAAE;GAAC,QAAO,GAAG;GAAU,CAAC,EAAC,KAAG,SAAS,GAAE,GAAE;GAAC,MAAM,IAAE,QAAM,IAAE,EAAE,IAAI,EAAE,GAAC,KAAK,GAAE,IAAE,IAAE,EAAE,KAAK,UAAQ;AAAK,UAAOG,IAAE,aAAY,MAAG;IAAC,IAAI;AAAE,WAAO,QAAM,IAAE,OAAK,SAAO,IAAE,QAAM,IAAE,IAAE,KAAG,IAAE;MAAM,CAAC,GAAE,EAAE,CAAC;IAAE,GAAE,EAAE,EAAC,KAAGH,IAAE,cAAY,KAAGG,IAAE,oBAAoB,GAAG,GAAC,MAAK,CAAC,GAAG,CAAC,EAAC,KAAG,WAAU;GAAC,MAAM,IAAE,KAAG,EAAE,CAAC,OAAK,QAAM,IAAE,KAAK,IAAE,EAAE,uBAAqB,EAAE,YAAU,OAAO,IAAE,CAAC,MAAI,EAAE,UAAQ,CAAC,MAAI;AAAG,UAAM,YAAU,OAAO,IAAE;IAAC,GAAG;IAAE,SAAQ;IAAE,GAAC,EAAC,SAAQ,GAAE;KAAG,EAAC,KAAG,SAAS,GAAE,GAAE;AAAC,UAAO,GAAG,GAAE,EAAE;IAAE,IAAG,GAAG,UAAU,QAAQ;AAAC,GAAC,SAAS,GAAE;GAAC,IAAG,EAAC,YAAW,GAAE,SAAQ,GAAE,aAAY,GAAE,QAAO,IAAE,CAAC,MAAG;GAAE,MAAM,IAAEH,IAAE,OAAO,CAAC,EAAE,EAAC,EAAC,GAAE,GAAE,GAAE,MAAG,aAAW,OAAO,IAAE;IAAC,GAAE;IAAE,GAAE;IAAE,GAAC;AAAE,OAAE,gCAA8B;AAAC,QAAG,CAAC,KAAG,CAAC,KAAG,CAAC,EAAE,QAAO,MAAK,EAAE,UAAQ,CAAC;AAAG,QAAG,EAAE,WAAS,CAAC,EAAE;IAAO,MAAM,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE,KAAK;AAAQ,QAAG,CAAC,KAAG,CAAC,MAAI,EAAE,YAAY;IAAO,MAAM,IAAE,EAAE,EAAE,EAAE,EAAC,EAAE;AAAC,QAAG,MAAI,EAAE,IAAE,IAAG,MAAI,EAAE,IAAE,IAAG,EAAE,UAAQ,CAAC,GAAE,KAAK,IAAI,EAAE,EAAE,GAAC,KAAG,KAAK,IAAI,EAAE,EAAE,GAAC,GAAE;KAAC,MAAM,IAAE,EAAE,EAAE;AAAC,UAAG,EAAE,SAAS;MAAC,KAAI,EAAE;MAAE,MAAK,EAAE;MAAE,CAAC;;MAAG;IAAC;IAAE;IAAE;IAAE;IAAE;IAAE,CAAC;KAAE;GAAC,YAAW,QAAM,IAAE,EAAE,IAAI,EAAE,GAAC;GAAK,QAAO,GAAG;GAAwB,aAAY;GAAG,SAAQ,GAAG,UAAU;GAAQ,CAAC;EAAC,MAAM,KAAG,GAAG,IAAG,GAAG,UAAU,SAAQ,GAAG,EAAC,KAAG,GAAG,KAAG,GAAG,gBAAc,KAAK,EAAC,KAAGA,IAAE,OAAO;GAAC,gBAAe;GAAK,QAAO;GAAK,YAAW;GAAG,eAAc;GAAK,YAAW;GAAK,gBAAe;GAAG,gBAAe;GAAE,cAAa;GAAK,kBAAiB;GAAK,qBAAoB;GAAE,MAAK;GAAK,qBAAoB,EAAE;GAAC,yBAAwB;GAAK,CAAC,EAAC,KAAG,EAAE,WAAW,SAAO,IAAE,GAAG,QAAQ,QAAM,KAAK,IAAE,EAAE,GAAG,EAAC,KAAG,SAAS,GAAE;GAAC,IAAG,EAAC,SAAQ,MAAG;GAAE,MAAK,CAAC,GAAE,KAAGA,IAAE,SAAS,KAAK,EAAC,IAAE,GAAG,EAAC,UAASA,IAAE,aAAY,MAAG;AAAC,SAAI,MAAK,EAAC,QAAO,OAAK,EAAE,KAAGG,IAAE,cAAc,EAAE,EAAC;AAAC,QAAE,MAAG;MAAC,MAAM,IAAE,EAAE,EAAE;AAAC,aAAO,IAAE;OAAC,GAAG;OAAE,OAAM,EAAE;OAAM,QAAO,EAAE;OAAO,GAAC;OAAG;AAAC;;MAAQ,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,IAAEH,IAAE,aAAY,MAAG;IAAC,MAAM,IAAE,GAAG,EAAE;AAAO,OAAK,YAAY,EAAC,KAAU,GAAK,QAAQ,EAAE,EAAE,EAAE,IAAE,EAAE,EAAE,GAAC,KAAK;MAAE,CAAC,GAAE,EAAE,CAAC,EAAC,CAAC,GAAE,KAAGG,IAAE,WAAW,EAAE;AAAC,UAAOH,IAAE,eAAa;IAAC,SAAQ;IAAE,MAAK;IAAE,QAAO;IAAE,GAAE;IAAC;IAAE;IAAE;IAAE,CAAC;IAAE,EAAC,SAAQ,GAAG,YAAY,SAAQ,CAAC,EAAC,KAAG,SAAO,IAAE,GAAG,QAAQ,WAAS,IAAE,IAAG,KAAG,IAAE,SAAO,IAAE,GAAG,QAAM,IAAE,KAAG,MAAK,KAAG,QAAQ,GAAG,QAAQ,WAAS,GAAG,KAAK,EAAC,KAAG,EAAE,KAAG,KAAG,OAAK,IAAG,GAAG,GAAG,CAAC;EAAC,IAAI;EAAG,MAAM,KAAG,GAAG,KAAGG,IAAE,UAAU,GAAG,GAAC,KAAK,EAAC,KAAG,SAAS,GAAE;GAAC,MAAM,IAAEH,IAAE,OAAO,EAAE,EAAC,IAAEG,IAAE,aAAY,MAAG,IAAE,KAAG,MAAI,MAAI,KAAG,EAAE,WAAS,EAAE,eAAa,EAAE,QAAQ,aAAW,IAAE,EAAE,EAAE,GAAC,IAAG,CAAC,EAAE,CAAC;AAAC,UAAOH,IAAE,gBAAc;AAAC,MAAE,UAAQ;MAAG,CAAC,EAAE,CAAC,EAAC;IAAG,IAAE,QAAM,KAAG,KAAG,KAAG,KAAK,EAAC,KAAG,SAAS,GAAE,GAAE;AAAC,QAAK,MAAI,MAAI,IAAE;GAAG,MAAK,CAAC,KAAG,GAAE,IAAE,GAAG,IAAEG,IAAE,UAAU,EAAE,GAAC,KAAK,EAAC,CAAC,GAAE,KAAGH,IAAE,SAAS,GAAG;GAAC,SAAS,IAAG;AAAC,YAAM,EAAE,SAAO,EAAE,KAAI,MAAG,EAAE,EAAE,GAAC,IAAE,IAAI,EAAE,EAAE,EAAE,EAAC,EAAE,CAAC,GAAC,GAAG;;GAAC,MAAM,IAAE,GAAG,EAAC,UAAS,GAAE,CAAC;AAAC,UAAOG,IAAE,gCAA8B;AAAO,OAAK,YAAY,EAAC,GAAG,EAAC,EAAE,SAAQ,MAAG,QAAM,IAAE,KAAK,IAAE,EAAE,QAAQ,EAAE,CAAC;MAAE,CAAC,EAAE,CAAC,EAAC;IAAG,GAAG,EAAC,KAAG,GAAG,GAAE;GAAC,WAAU;IAAC,GAAE,EAAE,IAAE,GAAG;IAAE,GAAE,EAAE,IAAE,GAAG;IAAE,QAAO;IAAE,QAAO;IAAE;GAAC,gBAAe;GAAG,QAAO;GAAE,gBAAe;GAAG,mBAAkB;GAAG,kBAAiB;GAAG,MAAK,GAAG,QAAQ;GAAK,iBAAgB,GAAG;GAAK,qBAAoB;GAAG,yBAAwB;GAAG,YAAW;GAAG,CAAC,EAAC,KAAG,KAAGA,IAAE,IAAI,IAAG,EAAE,GAAC,MAAK,KAAG,SAAS,GAAE;GAAC,MAAK,CAAC,GAAE,KAAGH,IAAE,SAAS,KAAK,EAAC,IAAEA,IAAE,OAAO,EAAE,EAAC,IAAEA,IAAE,aAAY,MAAG;IAAC,MAAM,IAAE,EAAE,EAAE,OAAO;AAAC,SAAG,GAAE,MAAG,KAAG,EAAE,IAAI,GAAE,EAAE,EAAE,CAAC,EAAC,IAAI,IAAI,EAAE,IAAE,KAAK;MAAE,EAAE,CAAC;AAAC,UAAOA,IAAE,gBAAc;IAAC,MAAM,IAAE,EAAE;AAAQ,QAAG,MAAI,GAAE;AAAC,OAAE,EAAE;KAAC,MAAM,IAAE,EAAE,KAAI,MAAG;MAAC,MAAM,IAAE,EAAE,EAAE;AAAC,aAAO,KAAG,EAAE,iBAAiB,UAAS,GAAE,EAAC,SAAQ,CAAC,GAAE,CAAC,EAAC,CAAC,GAAE,EAAE,EAAE,CAAC,IAAE;OAAM,CAAC,QAAO,MAAG,QAAM,EAAE;AAAC,OAAE,EAAE,SAAO,IAAI,IAAI,EAAE,GAAC,KAAK,EAAC,EAAE,UAAQ;;AAAE,iBAAU;AAAC,OAAE,EAAE,EAAC,EAAE,EAAE;;IAAE,SAAS,EAAE,GAAE;AAAC,OAAE,SAAQ,MAAG;AAAS,QAAE,EAAE,EAAY,oBAAoB,UAAS,EAAE;OAAE;;MAAG,CAAC,GAAE,EAAE,CAAC,EAACA,IAAE,cAAY,EAAE,SAAO,IAAE,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,GAAE,MAAIG,IAAE,IAAI,GAAE,EAAE,EAAC,EAAE,GAAC,EAAE,EAAE,GAAC,GAAE,CAAC,GAAE,EAAE,CAAC;IAAE,GAAG,EAAC,KAAG,GAAG,GAAG,EAAC,KAAG,GAAG,IAAG,CAAC,GAAG,CAAC,EAAC,KAAGA,IAAE,IAAI,IAAG,GAAG,EAAC,KAAG,KAAG,EAAE,IAAG,GAAG,GAAC,MAAK,KAAG,KAAG,KAAG,EAAE;GAAC,QAAO;GAAE,eAAc;GAAG,gBAAe;GAAG,qBAAoB;GAAG,oBAAmB;GAAG,CAAC,GAAC,MAAK,KAAG,EAAE,IAAG,KAAK,EAAC,CAAC,IAAG,MAAIH,IAAE,SAAS,KAAK,EAAC,KAAG,SAAS,GAAE,GAAE,GAAE;AAAC,UAAM;IAAC,GAAG;IAAE,QAAO,KAAG,IAAE,EAAE,QAAM,EAAE,QAAM;IAAE,QAAO,KAAG,IAAE,EAAE,SAAO,EAAE,SAAO;IAAE;IAAE,KAAG,KAAGG,IAAE,IAAI,IAAG,GAAG,EAAC,SAAO,IAAE,QAAM,KAAG,KAAK,IAAE,GAAG,QAAM,IAAE,MAAK,GAAG,EAAC,KAAGH,IAAE,OAAO,KAAK,EAAC,KAAGA,IAAE,aAAa,GAAE,MAAI;GAAC,IAAG,EAAC,QAAO,GAAE,SAAQ,MAAG;AAAE,OAAG,QAAM,EAAE,QAAQ;GAAO,MAAM,IAAE,EAAE,IAAI,EAAE,QAAQ;AAAC,OAAG,CAAC,EAAE;GAAO,MAAM,IAAE,EAAE,aAAY,IAAE,IAAI,EAAE;IAAC,QAAO,EAAE;IAAQ,YAAW;IAAE,OAAM;IAAE,SAAQ;IAAE,SAAQ;IAAG,QAAQ,GAAE;AAAC,SAAG,CAAC,EAAE,IAAI,EAAE,CAAC;KAAO,MAAK,EAAC,aAAY,MAAG,GAAG,SAAQ,IAAE,EAAC,IAAG,GAAE;AAAO,SAAK,EAAE,EAAC,EAAE;MAAC,MAAK;MAAc,OAAM;MAAE,CAAC;;IAAE,UAAU,GAAE,GAAE,GAAE,GAAE;AAAC,SAAG,CAAC,EAAE,IAAI,EAAE,CAAC;KAAO,MAAK,EAAC,eAAc,MAAG,GAAG,SAAQ,IAAE;MAAC,IAAG;MAAE,YAAW;MAAE,oBAAmB;MAAE,QAAO;MAAE;AAAO,SAAK,EAAE,EAAC,EAAE;MAAC,MAAK;MAAgB,OAAM;MAAE,CAAC;;IAAE,QAAQ,GAAE;KAAC,MAAM,IAAE,EAAE;AAAQ,SAAG,QAAM,EAAE;KAAO,MAAM,IAAE,EAAE,IAAI,EAAE;AAAC,SAAG,CAAC,EAAE;KAAO,MAAK,EAAC,aAAY,MAAG,GAAG,SAAQ,IAAE;MAAC,gBAAe;MAAE,QAAO;OAAC,IAAG;OAAE,MAAK,EAAE;OAAK,MAAK;OAAE;MAAC;AAAC,SAAE,8BAA4B;AAAO,UAAK,EAAE,EAAC,EAAE,GAAG,aAAa,EAAC,EAAE;OAAC,MAAK,EAAE;OAAU,oBAAmB;OAAE,QAAO;OAAE,CAAC,EAAC,EAAE;OAAC,MAAK;OAAc,OAAM;OAAE,CAAC,EAAC,EAAE,GAAG,QAAQ,EAAC,GAAG,EAAE;OAAE;;IAAE,OAAO,GAAE;AAAC,OAAE;MAAC,MAAK,EAAE;MAAS,aAAY;MAAE,CAAC;;IAAE,OAAM,EAAE,EAAE,QAAQ;IAAC,UAAS,EAAE,EAAE,WAAW;IAAC,CAAC;GAAC,SAAS,EAAE,GAAE;AAAC,WAAO,iBAAgB;KAAC,MAAK,EAAC,QAAO,GAAE,YAAW,GAAE,MAAK,GAAE,yBAAwB,MAAG,GAAG;KAAQ,IAAI,IAAE;AAAK,SAAG,KAAG,GAAE;MAAC,MAAK,EAAC,YAAW,MAAG,GAAG;AAAQ,UAAE;OAAC,gBAAe;OAAE,QAAO;OAAE,YAAW;OAAE,OAAM;OAAE,MAAK;OAAE,EAAC,MAAI,EAAE,WAAS,cAAY,OAAO,KAAG,MAAM,QAAQ,QAAQ,EAAE,EAAE,CAAC,KAAG,IAAE,EAAE;;AAAY,OAAE,UAAQ,MAAKE,IAAE,8BAA4B;AAAC,QAAE,EAAC,MAAK,GAAE,CAAC,EAAC,EAAE,GAAG,cAAc,EAAC,GAAG,KAAK,EAAC,EAAE,KAAK,EAAC,GAAG,KAAK,EAAC,GAAG,UAAQ;MAAK,MAAM,IAAE,MAAI,EAAE,UAAQ,cAAY;AAAe,UAAG,GAAE;OAAC,MAAM,IAAE,GAAG,QAAQ;AAAS,WAAK,EAAE,EAAC,EAAE;QAAC,MAAK;QAAE,OAAM;QAAE,CAAC;;OAAG;;;AAAE,MAAG,UAAQ;KAAG,CAAC,EAAE,CAAC,EAAC,KAAG,SAAS,GAAE,GAAE;AAAC,UAAOF,IAAE,cAAY,EAAE,QAAQ,GAAE,MAAI;IAAC,MAAK,EAAC,QAAO,MAAG;AAAE,WAAM,CAAC,GAAG,GAAE,GAAG,EAAE,WAAW,KAAI,OAAI;KAAC,WAAU,EAAE;KAAU,SAAQ,EAAE,EAAE,SAAQ,EAAE;KAAC,EAAE,CAAC;MAAE,EAAE,CAAC,EAAC,CAAC,GAAE,EAAE,CAAC;IAAE,GAAEA,IAAE,aAAa,GAAE,OAAK,GAAE,MAAI;GAAC,MAAM,IAAE,EAAE,aAAY,IAAE,EAAE,IAAI,EAAE;AAAC,YAAO,EAAE,WAAS,CAAC,KAAG,EAAE,UAAQ,EAAE,oBAAkB,CAAC,MAAI,EAAE,GAAE,EAAE,SAAQ,EAAC,QAAO,GAAE,CAAC,KAAG,EAAE,SAAO,EAAC,YAAW,EAAE,QAAO,EAAC,EAAE,UAAQ,GAAE,GAAG,GAAE,EAAE;KAAG,CAAC,GAAE,GAAG,CAAC,CAAC;AAAC,GAAC,SAAS,GAAE;AAAC,OAAE,gBAAc;AAAC,QAAG,CAACG,IAAE,UAAU;IAAO,MAAM,IAAE,EAAE,KAAI,MAAG;KAAC,IAAG,EAAC,QAAO,MAAG;AAAE,YAAO,QAAM,EAAE,QAAM,KAAK,IAAE,EAAE,OAAO;MAAE;AAAC,iBAAU;AAAC,UAAI,MAAM,KAAK,EAAQ,MAAM;;MAAG,EAAE,KAAI,MAAG;IAAC,IAAG,EAAC,QAAO,MAAG;AAAE,WAAO;KAAG,CAAC;KAAE,EAAE,EAACA,IAAE,gCAA8B;AAAC,SAAI,MAAI,GAAG,gBAAc,EAAE,GAAG,YAAY;KAAE,CAAC,IAAG,EAAE,CAAC,EAACH,IAAE,gBAAc;GAAC,MAAK,EAAC,YAAW,MAAG,GAAG,SAAQ,EAAC,QAAO,GAAE,gBAAe,GAAE,YAAW,GAAE,MAAK,MAAG,GAAG;AAAQ,OAAG,CAAC,KAAG,CAAC,EAAE;GAAO,MAAM,IAAE;IAAC,QAAO;IAAE,gBAAe;IAAE,YAAW;IAAE,OAAM;KAAC,GAAE,GAAG;KAAE,GAAE,GAAG;KAAE;IAAC,MAAK;IAAE;AAAC,OAAE,8BAA4B;AAAO,QAAK,EAAE,EAAC,EAAE;KAAC,MAAK;KAAa,OAAM;KAAE,CAAC;KAAE;KAAE,CAAC,GAAG,GAAE,GAAG,EAAE,CAAC,EAACA,IAAE,gBAAc;GAAC,MAAK,EAAC,QAAO,GAAE,gBAAe,GAAE,YAAW,GAAE,qBAAoB,GAAE,yBAAwB,MAAG,GAAG;AAAQ,OAAG,CAAC,KAAG,QAAM,EAAE,WAAS,CAAC,KAAG,CAAC,EAAE;GAAO,MAAK,EAAC,YAAW,MAAG,GAAG,SAAQ,IAAE,EAAE,IAAI,GAAG,EAAC,IAAE,KAAG,EAAE,KAAK,UAAQ;IAAC,IAAG,EAAE;IAAG,MAAK,EAAE,KAAK;IAAQ,MAAK,EAAE;IAAK,UAAS,EAAE;IAAS,GAAC,MAAK,IAAE;IAAC,QAAO;IAAE,gBAAe;IAAE,YAAW;IAAE,OAAM;KAAC,GAAE,EAAE;KAAE,GAAE,EAAE;KAAE;IAAC,MAAK;IAAE;AAAC,OAAE,8BAA4B;AAAC,OAAG,EAAE,EAAO,IAAK,EAAE,EAAC,EAAE;KAAC,MAAK;KAAa,OAAM;KAAE,CAAC;KAAE;KAAE,CAAC,GAAG,CAAC,EAACG,IAAE,gCAA8B;AAAC,MAAG,UAAQ;IAAC,gBAAe;IAAG,QAAO;IAAE,YAAW;IAAG,eAAc;IAAG,YAAW;IAAG,gBAAe;IAAG,gBAAe;IAAE,cAAa;IAAG,kBAAiB;IAAG,qBAAoB;IAAE,MAAK;IAAG,qBAAoB;IAAG,yBAAwB;IAAG,EAAC,EAAE,UAAQ;IAAC,SAAQ;IAAG,YAAW;IAAG;KAAE;GAAC;GAAE;GAAG;GAAG;GAAG;GAAE;GAAG;GAAG;GAAG;GAAE;GAAG;GAAG;GAAG,CAAC,EAAC,SAAS,GAAE;GAAC,IAAG,EAAC,cAAa,GAAE,WAAU,IAAE,QAAQ,oBAAoB,SAAQ,WAAU,GAAE,cAAa,GAAE,SAAQ,GAAE,UAAS,IAAE,GAAE,OAAM,IAAE,QAAQ,eAAe,WAAU,oBAAmB,GAAE,qBAAoB,GAAE,yBAAwB,GAAE,OAAM,GAAE,WAAU,MAAG;GAAE,MAAM,IAAE,SAAS,GAAE;IAAC,IAAG,EAAC,OAAM,GAAE,UAAS,MAAG;IAAE,MAAM,IAAEA,IAAE,YAAY,EAAE;AAAC,WAAOA,IAAE,aAAY,MAAG;AAAC,SAAG,KAAG,CAAC,KAAG,CAAC,EAAE,QAAO;KAAG,MAAM,IAAE,KAAK,KAAK,EAAE,IAAE,EAAE,EAAE,EAAC,IAAE,KAAK,KAAK,EAAE,IAAE,EAAE,EAAE;AAAC,YAAM;MAAC,GAAE;QAAE,EAAE,WAAU,EAAE,EAAE,EAAE,aAAW,OAAK;QAAG,EAAE,UAAS,EAAE,EAAE,EAAE,YAAU,MAAI;OAAE;MAAC,GAAE;QAAE,EAAE,WAAU,EAAE,EAAE,EAAE,aAAW,OAAK;QAAG,EAAE,UAAS,EAAE,EAAE,EAAE,YAAU,MAAI;OAAE;MAAC;OAAE;KAAC;KAAE;KAAE;KAAE,CAAC;KAAE;IAAC,OAAM;IAAE,UAAS,CAAC;IAAE,CAAC,EAAC,CAAC,GAAE,KAAGA,IAAE,aAAa,EAAC,IAAEH,IAAE,OAAO;IAAC,GAAE;IAAE,GAAE;IAAE,CAAC,EAAC,IAAEA,IAAE,OAAO;IAAC,GAAE;IAAE,GAAE;IAAE,CAAC,EAAC,IAAEA,IAAE,cAAY;AAAC,YAAO,GAAP;KAAU,KAAK,QAAQ,oBAAoB,QAAQ,QAAO,IAAE;MAAC,KAAI,EAAE;MAAE,QAAO,EAAE;MAAE,MAAK,EAAE;MAAE,OAAM,EAAE;MAAE,GAAC;KAAK,KAAK,QAAQ,oBAAoB,cAAc,QAAO;;MAAI;IAAC;IAAE;IAAE;IAAE,CAAC,EAAC,IAAEA,IAAE,OAAO,KAAK,EAAC,IAAEA,IAAE,kBAAgB;IAAC,MAAM,IAAE,EAAE;AAAQ,SAAG,EAAE,SAAS,EAAE,QAAQ,IAAE,EAAE,QAAQ,GAAE,EAAE,QAAQ,IAAE,EAAE,QAAQ,EAAE;MAAE,EAAE,CAAC,EAAC,IAAEA,IAAE,cAAY,MAAI,QAAQ,eAAe,YAAU,CAAC,GAAG,EAAE,CAAC,SAAS,GAAC,GAAE,CAAC,GAAE,EAAE,CAAC;AAAC,OAAE,gBAAc;AAAC,QAAG,KAAG,EAAE,UAAQ,GAAE;AAAC,UAAI,MAAM,KAAK,GAAE;AAAC,UAAG,CAAC,OAAK,QAAM,IAAE,KAAK,IAAE,EAAE,EAAE,EAAE;MAAS,MAAqB,IAAE,EAAf,EAAE,QAAQ,EAAE;AAAQ,UAAG,CAAC,EAAE;MAAS,MAAK,EAAC,WAAU,GAAE,OAAM,MAAG,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE;AAAC,WAAI,MAAM,KAAI,CAAC,KAAI,IAAI,CAAC,GAAE,GAAG,EAAE,QAAM,EAAE,KAAG,GAAE,EAAE,KAAG;AAAG,UAAG,EAAE,IAAE,KAAG,EAAE,IAAE,EAAE,QAAO,GAAG,EAAC,EAAE,UAAQ,GAAE,EAAE,GAAE,EAAE,EAAC,EAAE,UAAQ,GAAE,MAAK,EAAE,UAAQ;;AAAG,OAAE,UAAQ;MAAC,GAAE;MAAE,GAAE;MAAE,EAAC,EAAE,UAAQ;MAAC,GAAE;MAAE,GAAE;MAAE,EAAC,GAAG;UAAM,IAAG;MAAE;IAAC;IAAE;IAAE;IAAE;IAAE;IAAE;IAAE,KAAK,UAAU,EAAE;IAAC,KAAK,UAAU,EAAE;IAAC;IAAE;IAAE;IAAE;IAAE,KAAK,UAAU,EAAE;IAAC,CAAC;IAAE;GAAC,GAAG;GAAG,OAAM;GAAE,cAAa;GAAG,oBAAmB;GAAG,qBAAoB;GAAG,yBAAwB;GAAG,CAAC;EAAC,MAAM,KAAGA,IAAE,eAAa;GAAC,QAAO;GAAE,YAAW;GAAG,gBAAe;GAAG,gBAAe;GAAG,YAAW;GAAG,mBAAkB;GAAG,aAAY;GAAG,gBAAe;GAAE,qBAAoB;GAAE,gBAAe;GAAG,MAAK;GAAG,4BAA2B;GAAG,qBAAoB;GAAG,yBAAwB;GAAG,wBAAuB;GAAG,oBAAmB;GAAG,YAAW;GAAG,GAAE;GAAC;GAAE;GAAG;GAAG;GAAG;GAAG;GAAG;GAAG;GAAE;GAAE;GAAG;GAAG;GAAG;GAAG;GAAG;GAAG;GAAG;GAAG,CAAC,EAAC,KAAGA,IAAE,eAAa;GAAC,gBAAe;GAAG,YAAW;GAAG,QAAO;GAAE,gBAAe;GAAG,mBAAkB,EAAC,WAAU,IAAG;GAAC,UAAS;GAAE,gBAAe;GAAE,MAAK;GAAG,4BAA2B;GAAG,GAAE;GAAC;GAAG;GAAG;GAAE;GAAG;GAAE;GAAG;GAAE;GAAG;GAAG,CAAC;AAAC,SAAOC,IAAE,cAAc,EAAE,UAAS,EAAC,OAAM,GAAE,EAACA,IAAE,cAAc,GAAG,UAAS,EAAC,OAAM,IAAG,EAACA,IAAE,cAAc,GAAG,UAAS,EAAC,OAAM,IAAG,EAACA,IAAE,cAAc,GAAG,UAAS,EAAC,OAAM,IAAG,EAAC,EAAE,CAAC,EAACA,IAAE,cAAc,IAAG,EAAC,UAAS,CAAC,OAAK,QAAM,IAAE,KAAK,IAAE,EAAE,eAAc,CAAC,CAAC,EAACA,IAAE,cAAc,GAAE;GAAC,GAAG;GAAE,yBAAwB;GAAG,CAAC,CAAC;IAAG,EAAC,KAAGD,IAAE,cAAc,KAAK,EAAC,KAAG;CAAS,SAAS,KAAI;AAAC,SAAOA,IAAE,WAAW,GAAG;;CAAC,MAAM,KAAG,EAAC,SAAQ,IAAG;CAAC,SAAS,GAAG,GAAE;EAAC,IAAG,EAAC,WAAU,GAAE,UAAS,MAAG;EAAE,MAAK,CAAC,GAAE,KAAGA,IAAE,SAAS,KAAK,EAAC,CAAC,GAAE,KAAGA,IAAE,SAAS,KAAK,EAAC,IAAEG,IAAE,YAAY,EAAE;AAAC,SAAO,KAAG,KAAG,CAAC,KAAG,EAAE,EAAE,EAACA,IAAE,gCAA8B;AAAC,OAAG,CAAC,EAAE;GAAO,MAAM,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE,MAAM;AAAG,YAAO,QAAM,IAAE,KAAK,IAAE,EAAE,QAAM,QAAM,IAAE,QAAQ,QAAQ,EAAE,GAAE,EAAE,CAAC,CAAC,WAAS;AAAC,MAAE,KAAK;KAAE,GAAC,EAAE,KAAK;KAAE;GAAC;GAAE;GAAE;GAAE,CAAC,EAACF,IAAE,cAAcA,IAAE,UAAS,MAAK,GAAE,IAAED,IAAE,aAAa,GAAE,EAAC,KAAI,GAAE,CAAC,GAAC,KAAK;;CAAC,MAAM,KAAG;EAAC,GAAE;EAAE,GAAE;EAAE,QAAO;EAAE,QAAO;EAAE;CAAC,SAAS,GAAG,GAAE;EAAC,IAAG,EAAC,UAAS,MAAG;AAAE,SAAOC,IAAE,cAAc,GAAG,UAAS,EAAC,OAAM,IAAG,EAACA,IAAE,cAAc,GAAG,UAAS,EAAC,OAAM,IAAG,EAAC,EAAE,CAAC;;CAAC,MAAM,KAAG;EAAC,UAAS;EAAQ,aAAY;EAAO,EAAC,MAAG,MAAGE,IAAE,gBAAgB,EAAE,GAAC,yBAAuB,KAAK,GAAE,KAAGH,IAAE,YAAY,GAAE,MAAI;EAAC,IAAG,EAAC,IAAG,GAAE,gBAAe,GAAE,aAAY,GAAE,UAAS,GAAE,WAAU,GAAE,MAAK,GAAE,OAAM,GAAE,WAAU,GAAE,YAAW,IAAE,OAAI;AAAE,MAAG,CAAC,EAAE,QAAO;EAAK,MAAM,IAAE,IAAE,IAAE;GAAC,GAAG;GAAE,QAAO;GAAE,QAAO;GAAE,EAAC,IAAE;GAAC,GAAG;GAAG,OAAM,EAAE;GAAM,QAAO,EAAE;GAAO,KAAI,EAAE;GAAI,MAAK,EAAE;GAAK,WAAUG,IAAE,IAAI,UAAU,SAAS,EAAE;GAAC,iBAAgB,KAAG,IAAE,EAAE,GAAE,EAAE,GAAC,KAAK;GAAE,YAAW,cAAY,OAAO,IAAE,EAAE,EAAE,GAAC;GAAE,GAAG;GAAE;AAAC,SAAOF,IAAE,cAAc,GAAE;GAAC,WAAU;GAAE,OAAM;GAAE,KAAI;GAAE,EAAC,EAAE;GAAE,EAAC,MAAG,OAAG,MAAG;EAAC,IAAG,EAAC,QAAO,GAAE,aAAY,MAAG;EAAE,MAAM,IAAE,EAAE,EAAC,EAAC,QAAO,GAAE,WAAU,MAAG;AAAE,MAAG,QAAM,KAAG,EAAE,OAAO,MAAI,MAAK,CAAC,GAAE,MAAK,OAAO,QAAQ,EAAE,OAAO,CAAC,MAAK,MAAI,MAAI,EAAE,KAAG,EAAE,KAAK,MAAM,iBAAiB,EAAE,EAAC,EAAE,KAAK,MAAM,YAAY,GAAE,EAAE;AAAE,MAAG,QAAM,KAAG,EAAE,YAAY,MAAI,MAAK,CAAC,GAAE,MAAK,OAAO,QAAQ,EAAE,YAAY,CAAC,MAAK,MAAI,KAAG,EAAE,KAAK,MAAM,YAAY,GAAE,EAAE;AAAC,SAAO,QAAM,KAAG,EAAE,UAAQ,EAAE,KAAK,UAAU,IAAI,EAAE,OAAO,EAAC,QAAM,KAAG,EAAE,eAAa,EAAE,KAAK,UAAU,IAAI,EAAE,YAAY,EAAC,WAAU;AAAC,QAAI,MAAK,CAAC,GAAE,MAAK,OAAO,QAAQ,EAAE,CAAC,GAAE,KAAK,MAAM,YAAY,GAAE,EAAE;AAAC,WAAM,KAAG,EAAE,UAAQ,EAAE,KAAK,UAAU,OAAO,EAAE,OAAO;;IAAG,KAAG;EAAC,UAAS;EAAI,QAAO;EAAO,YAAU,MAAG;GAAC,IAAG,EAAC,WAAU,EAAC,SAAQ,GAAE,OAAM,QAAI;AAAE,UAAM,CAAC,EAAC,WAAUE,IAAE,IAAI,UAAU,SAAS,EAAE,EAAC,EAAC,EAAC,WAAUA,IAAE,IAAI,UAAU,SAAS,EAAE,EAAC,CAAC;;EAAE,aAAY,GAAG,EAAC,QAAO,EAAC,QAAO,EAAC,SAAQ,KAAI,EAAC,EAAC,CAAC;EAAC;CAAC,IAAI,KAAG;CAAE,SAAS,GAAG,GAAE;AAAC,SAAOH,IAAE,cAAY;AAAC,OAAG,QAAM,EAAE,QAAO,MAAK;KAAI,CAAC,EAAE,CAAC;;CAAC,MAAM,KAAGC,IAAE,MAAK,MAAG;EAAC,IAAG,EAAC,aAAY,IAAE,CAAC,GAAE,UAAS,GAAE,eAAc,GAAE,OAAM,GAAE,YAAW,GAAE,WAAU,GAAE,gBAAe,IAAE,OAAM,WAAU,GAAE,QAAO,IAAE,QAAK;EAAE,MAAK,EAAC,gBAAe,GAAE,QAAO,GAAE,gBAAe,GAAE,mBAAkB,GAAE,gBAAe,GAAE,qBAAoB,GAAE,aAAY,GAAE,MAAK,GAAE,wBAAuB,GAAE,qBAAoB,GAAE,yBAAwB,GAAE,YAAW,MAAG,IAAI,EAAC,IAAED,IAAE,WAAW,GAAG,EAAC,IAAE,GAAG,QAAM,IAAE,KAAK,IAAE,EAAE,GAAG,EAAC,IAAE,GAAG,GAAE;GAAC,gBAAe;GAAE,QAAO;GAAE,gBAAe;GAAE,mBAAkB;GAAE,kBAAiB,EAAE;GAAK,MAAK;GAAE,iBAAgB,EAAE;GAAK,qBAAoB;GAAE,yBAAwB;GAAE,WAAU;GAAE,YAAW;GAAE,CAAC,EAAC,IAAE,GAAG,EAAE,EAAC,IAAE,SAAS,GAAE;GAAC,IAAG,EAAC,QAAO,GAAE,gBAAe,GAAE,qBAAoB,GAAE,wBAAuB,MAAG;AAAE,UAAOG,IAAE,UAAU,GAAE,MAAI;AAAC,QAAG,SAAO,EAAE;IAAO,MAAM,IAAE,EAAE,IAAI,EAAE;AAAC,QAAG,CAAC,EAAE;IAAO,MAAM,IAAE,EAAE,KAAK;AAAQ,QAAG,CAAC,EAAE;IAAO,MAAM,IAAE,GAAG,EAAE;AAAC,QAAG,CAAC,EAAE;IAAO,MAAK,EAAC,WAAU,MAAGA,IAAE,UAAU,EAAE,CAAC,iBAAiB,EAAE,EAAC,IAAE,EAAE,EAAE;AAAC,QAAG,CAAC,EAAE;IAAO,MAAM,IAAE,cAAY,OAAO,IAAE,IAAE,SAAS,GAAE;KAAC,MAAK,EAAC,UAAS,GAAE,QAAO,GAAE,aAAY,GAAE,WAAU,MAAG;MAAC,GAAG;MAAG,GAAG;MAAE;AAAC,aAAO,MAAG;MAAC,IAAG,EAAC,QAAO,GAAE,aAAY,GAAE,WAAU,GAAE,GAAG,MAAG;AAAE,UAAG,CAAC,EAAE;MAAO,MAAM,IAAE;OAAC,GAAE,EAAE,KAAG,EAAE,KAAK,OAAK,EAAE,KAAK;OAAM,GAAE,EAAE,KAAG,EAAE,KAAK,MAAI,EAAE,KAAK;OAAK,QAAO,MAAI,EAAE,SAAO,EAAE,KAAK,QAAM,EAAE,SAAO,EAAE,KAAK,QAAM;OAAE,QAAO,MAAI,EAAE,SAAO,EAAE,KAAK,SAAO,EAAE,SAAO,EAAE,KAAK,SAAO;OAAE,EAAC,IAAE,EAAE;OAAC,GAAG;OAAE,QAAO;OAAE,aAAY;OAAE,WAAU;QAAC,SAAQ;QAAE,OAAM;QAAE;OAAC,CAAC,EAAC,CAAC,KAAG,GAAE,IAAE,EAAE,EAAE,SAAO;AAAG,UAAG,KAAK,UAAU,EAAE,KAAG,KAAK,UAAU,EAAE,CAAC;MAAO,MAAM,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE;OAAC,QAAO;OAAE,aAAY;OAAE,GAAG;OAAE,CAAC,EAAC,IAAE,EAAE,KAAK,QAAQ,GAAE;OAAC,UAAS;OAAE,QAAO;OAAE,MAAK;OAAW,CAAC;AAAC,aAAO,IAAI,SAAQ,MAAG;AAAC,SAAE,iBAAa;AAAO,aAAM,EAAC,GAAG;;QAAG;;MAAG,EAAE;AAAC,WAAO,EAAE,GAAE,EAAE,UAAU,QAAQ,EAAC,EAAE;KAAC,QAAO;MAAC,IAAG;MAAE,MAAK,EAAE;MAAK,MAAK;MAAE,MAAK,EAAE,UAAU,QAAQ,EAAE;MAAC;KAAC,gBAAe;KAAE,aAAY;MAAC,MAAK;MAAE,MAAK,EAAE,YAAY,QAAQ,EAAE;MAAC;KAAC,qBAAoB;KAAE,wBAAuB;KAAE,WAAU;KAAE,CAAC;KAAE;IAAE;GAAC,QAAO;GAAE,gBAAe;GAAE,qBAAoB;GAAE,wBAAuB;GAAE,CAAC;AAAC,SAAOF,IAAE,cAAc,IAAG,MAAKA,IAAE,cAAc,IAAG,EAAC,WAAU,GAAE,EAAC,KAAG,IAAEA,IAAE,cAAc,IAAG;GAAC,KAAI;GAAE,IAAG,EAAE;GAAG,KAAI,IAAE,EAAE,SAAO,KAAK;GAAE,IAAG;GAAE,gBAAe;GAAE,aAAY;GAAE,WAAU;GAAE,YAAW;GAAE,MAAK;GAAE,OAAM;IAAC,QAAO;IAAE,GAAG;IAAE;GAAC,WAAU;GAAE,EAAC,EAAE,GAAC,KAAK,CAAC;GAAE;AAAC,SAAQ,aAAW,IAAG,QAAQ,cAAY,IAAG,QAAQ,iBAAe,IAAG,QAAQ,cAAY,IAAG,QAAQ,gBAAc,IAAG,QAAQ,cAAY,IAAG,QAAQ,iBAAe,IAAG,QAAQ,iBAAc,MAAG;EAAC,IAAG,EAAC,eAAc,GAAE,gBAAe,GAAE,qBAAoB,MAAG;EAAE,MAAM,IAAE,EAAE,GAAE,EAAE,MAAK,EAAE,IAAI,EAAC,IAAE,EAAE;AAAC,OAAI,MAAM,KAAK,GAAE;GAAC,MAAK,EAAC,IAAG,MAAG,GAAE,IAAE,EAAE,IAAI,EAAE;AAAC,OAAG,GAAE;IAAC,MAAM,IAAE,EAAE,EAAE,EAAE,EAAC,EAAE;AAAC,MAAE,KAAK;KAAC,IAAG;KAAE,MAAK;MAAC,oBAAmB;MAAE,OAAM;MAAE;KAAC,CAAC;;;AAAE,SAAO,EAAE,KAAK,EAAE;IAAE,QAAQ,kBAAe,MAAG;EAAC,IAAG,EAAC,eAAc,GAAE,gBAAe,GAAE,qBAAoB,MAAG;EAAE,MAAM,IAAE,EAAE,EAAE,EAAC,IAAE,EAAE;AAAC,OAAI,MAAM,KAAK,GAAE;GAAC,MAAK,EAAC,IAAG,MAAG,GAAE,IAAE,EAAE,IAAI,EAAE;AAAC,OAAG,GAAE;IAAC,MAAM,IAAE,EAAE,EAAE,EAAC,IAAE,EAAE,QAAQ,GAAE,GAAE,MAAI,IAAE,EAAE,EAAE,IAAG,EAAE,EAAC,EAAE,EAAC,IAAE,QAAQ,IAAE,GAAG,QAAQ,EAAE,CAAC;AAAC,MAAE,KAAK;KAAC,IAAG;KAAE,MAAK;MAAC,oBAAmB;MAAE,OAAM;MAAE;KAAC,CAAC;;;AAAE,SAAO,EAAE,KAAK,EAAE;IAAE,QAAQ,uBAAqB,GAAE,QAAQ,qBAAmB,GAAE,QAAQ,uBAAqB,IAAG,QAAQ,kCAAgC,IAAG,QAAQ,kCAAgC,IAAG,QAAQ,kCAAgC,GAAE,QAAQ,gBAAc,GAAE,QAAQ,oBAAkB,GAAE,QAAQ,yBAAuB,GAAE,QAAQ,iBAAc,MAAG;EAAC,IAAG,EAAC,qBAAoB,GAAE,gBAAe,GAAE,oBAAmB,MAAG;AAAE,MAAG,CAAC,EAAE,QAAM,EAAE;EAAC,MAAM,IAAE,EAAE;AAAC,OAAI,MAAM,KAAK,GAAE;GAAC,MAAK,EAAC,IAAG,MAAG,GAAE,IAAE,EAAE,IAAI,EAAE;AAAC,OAAG,KAAG,EAAE,GAAE,EAAE,EAAC;IAAC,MAAM,IAAE,EAAE,EAAE,CAAC,QAAQ,GAAE,MAAI,IAAE,EAAE,GAAE,EAAE,EAAC,EAAE,EAAC,IAAE,QAAQ,IAAE,GAAG,QAAQ,EAAE,CAAC;AAAC,MAAE,KAAK;KAAC,IAAG;KAAE,MAAK;MAAC,oBAAmB;MAAE,OAAM;MAAE;KAAC,CAAC;;;AAAE,SAAO,EAAE,KAAK,EAAE;IAAE,QAAQ,mBAAiB,GAAE,QAAQ,gBAAc,IAAG,QAAQ,gBAAc,GAAE,QAAQ,eAAa,SAAS,GAAE;EAAC,IAAG,EAAC,IAAG,GAAE,MAAK,GAAE,UAAS,IAAE,CAAC,GAAE,YAAW,MAAG;EAAE,MAAM,IAAEE,IAAE,YAAY,YAAY,EAAC,EAAC,YAAW,GAAE,gBAAe,GAAE,QAAO,GAAE,gBAAe,GAAE,mBAAkB,GAAE,gBAAe,GAAE,MAAK,MAAGH,IAAE,WAAW,GAAG,EAAC,EAAC,MAAK,IAAE,IAAG,iBAAgB,IAAE,aAAY,UAAS,IAAE,MAAG,QAAM,IAAE,IAAE,EAAE,EAAC,KAAG,QAAM,IAAE,KAAK,IAAE,EAAE,QAAM,GAAE,IAAEA,IAAE,WAAW,IAAE,KAAG,GAAG,EAAC,CAAC,GAAE,KAAGG,IAAE,YAAY,EAAC,CAAC,GAAE,KAAGA,IAAE,YAAY,EAAC,IAAE,SAAS,GAAE,GAAE;AAAC,UAAOH,IAAE,cAAY,EAAE,QAAQ,GAAE,MAAI;IAAC,IAAG,EAAC,WAAU,GAAE,SAAQ,MAAG;AAAE,WAAO,EAAE,MAAG,MAAG;AAAC,OAAE,GAAE,EAAE;OAAE;MAAG,EAAE,CAAC,EAAC,CAAC,GAAE,EAAE,CAAC;IAAE,GAAE,EAAE,EAAC,IAAEG,IAAE,eAAe,EAAE;AAAC,SAAOA,IAAE,iCAA+B,EAAE,IAAI,GAAE;GAAC,IAAG;GAAE,KAAI;GAAE,MAAK;GAAE,eAAc;GAAE,MAAK;GAAE,CAAC,QAAK;GAAC,MAAM,IAAE,EAAE,IAAI,EAAE;AAAC,QAAG,EAAE,QAAM,KAAG,EAAE,OAAO,EAAE;MAAG,CAAC,GAAE,EAAE,CAAC,EAAC;GAAC,QAAO;GAAE,gBAAe;GAAE,gBAAe;GAAE,YAAWH,IAAE,eAAa;IAAC,MAAK;IAAE,UAAS;IAAE,iBAAgB;IAAE,gBAAe,EAAE,CAAC,KAAG,MAAI,OAAK,KAAK;IAAE,wBAAuB;IAAE,oBAAmB,EAAE;IAAU,GAAE;IAAC;IAAE;IAAE;IAAE;IAAE;IAAE,EAAE;IAAU,CAAC;GAAC,YAAW;GAAE,WAAU,IAAE,KAAK,IAAE;GAAE,MAAK;GAAE,MAAK;GAAE,YAAW;GAAE,qBAAoB;GAAE,WAAU;GAAE;IAAE,QAAQ,eAAa,SAAS,GAAE;EAAC,IAAG,EAAC,MAAK,GAAE,UAAS,IAAE,CAAC,GAAE,IAAG,GAAE,sBAAqB,MAAG;EAAE,MAAM,IAAEG,IAAE,YAAY,YAAY,EAAC,EAAC,QAAO,GAAE,UAAS,GAAE,MAAK,GAAE,4BAA2B,MAAGH,IAAE,WAAW,GAAG,EAAC,IAAEA,IAAE,OAAO,EAAC,UAAS,GAAE,CAAC,EAAC,IAAEA,IAAE,OAAO,CAAC,EAAE,EAAC,IAAEA,IAAE,OAAO,KAAK,EAAC,IAAEA,IAAE,OAAO,KAAK,EAAC,EAAC,UAAS,GAAE,uBAAsB,GAAE,SAAQ,MAAG;GAAC,GAAG;GAAG,GAAG;GAAE,EAAC,IAAEG,IAAE,eAAe,QAAM,IAAE,IAAE,EAAE,EAAC,IAAE,GAAG;GAAC,UAASH,IAAE,kBAAgB;AAAC,MAAE,WAAS,QAAM,EAAE,WAAS,aAAa,EAAE,QAAQ,EAAC,EAAE,UAAQ,iBAAe;AAAC,OAAE,MAAM,QAAQ,EAAE,QAAQ,GAAC,EAAE,UAAQ,CAAC,EAAE,QAAQ,CAAC,EAAC,EAAE,UAAQ;OAAM,EAAE,IAAE,EAAE,UAAQ,CAAC;MAAG,CAAC,EAAE,CAAC;GAAC,UAAS,KAAG,CAAC;GAAE,CAAC,EAAC,IAAEA,IAAE,aAAa,GAAE,MAAI;AAAC,SAAI,MAAI,EAAE,UAAU,EAAE,EAAC,EAAE,UAAQ,CAAC,IAAG,KAAG,EAAE,QAAQ,EAAE;KAAG,CAAC,EAAE,CAAC,EAAC,CAAC,GAAE,KAAGG,IAAE,WAAW,EAAE,EAAC,IAAEA,IAAE,eAAe,EAAE;AAAC,SAAOH,IAAE,gBAAc;AAAC,QAAG,EAAE,YAAU,EAAE,YAAY,EAAC,EAAE,UAAQ,CAAC,GAAE,EAAE,QAAQ,EAAE,QAAQ;KAAG,CAAC,GAAE,EAAE,CAAC,EAACA,IAAE,iBAAe,EAAE;GAAC,MAAK,EAAE;GAAkB,SAAQ;IAAC,IAAG;IAAE,KAAI;IAAE,UAAS;IAAE,MAAK;IAAE,MAAK;IAAE,MAAK;IAAE;GAAC,CAAC,QAAK,EAAE;GAAC,MAAK,EAAE;GAAoB,KAAI;GAAE,IAAG;GAAE,CAAC,GAAE,CAAC,EAAE,CAAC,EAACA,IAAE,gBAAc;AAAC,SAAI,EAAE,QAAQ,aAAW,EAAE;IAAC,MAAK,EAAE;IAAqB,IAAG;IAAE,KAAI;IAAE,UAAS;IAAE,CAAC,EAAC,EAAE,QAAQ,WAAS;KAAI;GAAC;GAAE;GAAE;GAAE;GAAE,CAAC,EAAC;GAAC,QAAO;GAAE,MAAK;GAAE,SAAQ,QAAM,IAAE,KAAK,IAAE,EAAE,QAAM;GAAE,MAAK;GAAE,MAAK;GAAE,YAAW;GAAE;IAAE,QAAQ,YAAU,SAAS,GAAE,GAAE;AAAC,SAAOA,IAAE,eAAa;GAAC,QAAO;GAAE,SAAQ,QAAM,IAAE,IAAE,EAAE;GAAC,GAAE,CAAC,GAAE,EAAE,CAAC;IAAE,QAAQ,aAAW,WAAU;AAAC,OAAI,IAAI,IAAE,UAAU,QAAO,IAAE,IAAI,MAAM,EAAE,EAAC,IAAE,GAAE,IAAE,GAAE,IAAI,GAAE,KAAG,UAAU;AAAG,SAAOA,IAAE,cAAY,CAAC,GAAG,EAAE,CAAC,QAAO,MAAG,QAAM,EAAE,EAAC,CAAC,GAAG,EAAE,CAAC;;;;;;ACE/3yC,QAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAE7D,SAAS,gBAAiB,IAAI;AAAE,SAAQ,MAAO,OAAO,OAAO,YAAa,aAAa,KAAM,GAAG,aAAa;;CAE7G,IAAII,UAAQ,QAAQ,QAAQ;CAC5B,IAAI,iBAAiB,gBAAgBA,QAAM;CAC3C,IAAI,WAAW,QAAQ,YAAY;CACnC,IAAI,YAAA,gBAAA;CACJ,IAAI,gBAAA,gBAAA;CAEJ,MAAM,oBAAiC,wBAAM,cAAc,KAAK;CAEhE,SAAS,cAAc,UAAU;EAC/B,MAAM,mBAAmBA,QAAM,WAAW,kBAAkB;AAC5D,UAAM,gBAAgB;AACpB,OAAI,CAAC,iBACH,OAAM,IAAI,MAAM,+DAA+D;AAIjF,UADoB,iBAAiB,SAAS;KAE7C,CAAC,UAAU,iBAAiB,CAAC;;CAGlC,SAAS,wBAAwB;EAC/B,MAAM,CAAC,aAAaA,QAAM,+BAAe,IAAI,KAAK,CAAC;EACnD,MAAM,mBAAmBA,QAAM,aAAY,aAAY;AACrD,aAAU,IAAI,SAAS;AACvB,gBAAa,UAAU,OAAO,SAAS;KACtC,CAAC,UAAU,CAAC;AAYf,SAAO,CAXUA,QAAM,aAAY,SAAQ;GACzC,IAAI,EACF,MACA,UACE;AACJ,aAAU,SAAQ,aAAY;IAC5B,IAAI;AAEJ,YAAQ,iBAAiB,SAAS,UAAU,OAAO,KAAK,IAAI,eAAe,KAAK,UAAU,MAAM;KAChG;KACD,CAAC,UAAU,CAAC,EACG,iBAAiB;;CAGrC,MAAM,kCAAkC,EACtC,WAAW,iNACZ;CACD,MAAM,uBAAuB;EAC3B,YAAY,MAAM;GAChB,IAAI,EACF,WACE;AACJ,UAAO,8BAA8B,OAAO,KAAK;;EAGnD,WAAW,OAAO;GAChB,IAAI,EACF,QACA,SACE;AAEJ,OAAI,KACF,QAAO,oBAAoB,OAAO,KAAK,oCAAoC,KAAK,KAAK;AAGvF,UAAO,oBAAoB,OAAO,KAAK;;EAGzC,UAAU,OAAO;GACf,IAAI,EACF,QACA,SACE;AAEJ,OAAI,KACF,QAAO,oBAAoB,OAAO,KAAK,sCAAsC,KAAK;AAGpF,UAAO,oBAAoB,OAAO,KAAK;;EAGzC,aAAa,OAAO;GAClB,IAAI,EACF,WACE;AACJ,UAAO,4CAA4C,OAAO,KAAK;;EAGlE;CAED,SAAS,cAAc,MAAM;EAC3B,IAAI,EACF,gBAAgB,sBAChB,WACA,yBACA,2BAA2B,oCACzB;EACJ,MAAM,EACJ,UACA,iBACE,cAAc,iBAAiB;EACnC,MAAM,eAAe,UAAU,YAAY,gBAAgB;EAC3D,MAAM,CAAC,SAAS,cAAcA,QAAM,SAAS,MAAM;AACnD,UAAM,gBAAgB;AACpB,cAAW,KAAK;KACf,EAAE,CAAC;AACN,gBAAcA,QAAM,eAAe;GACjC,YAAY,OAAO;IACjB,IAAI,EACF,WACE;AACJ,aAAS,cAAc,YAAY,EACjC,QACD,CAAC,CAAC;;GAGL,WAAW,OAAO;IAChB,IAAI,EACF,QACA,SACE;AAEJ,QAAI,cAAc,WAChB,UAAS,cAAc,WAAW;KAChC;KACA;KACD,CAAC,CAAC;;GAIP,WAAW,OAAO;IAChB,IAAI,EACF,QACA,SACE;AACJ,aAAS,cAAc,WAAW;KAChC;KACA;KACD,CAAC,CAAC;;GAGL,UAAU,OAAO;IACf,IAAI,EACF,QACA,SACE;AACJ,aAAS,cAAc,UAAU;KAC/B;KACA;KACD,CAAC,CAAC;;GAGL,aAAa,OAAO;IAClB,IAAI,EACF,QACA,SACE;AACJ,aAAS,cAAc,aAAa;KAClC;KACA;KACD,CAAC,CAAC;;GAGN,GAAG,CAAC,UAAU,cAAc,CAAC,CAAC;AAE/B,MAAI,CAAC,QACH,QAAO;EAGT,MAAM,SAAS,eAAe,cAAc,eAAe,UAAU,MAAM,eAAe,cAAc,cAAc,YAAY;GAChI,IAAI;GACJ,OAAO,yBAAyB;GACjC,CAAC,EAAE,eAAe,cAAc,cAAc,YAAY;GACzD,IAAI;GACU;GACf,CAAC,CAAC;AACH,SAAO,YAAY,SAAS,aAAa,QAAQ,UAAU,GAAG;;CAGhE,IAAI;AAEJ,EAAC,SAAU,QAAQ;AACjB,SAAO,eAAe;AACtB,SAAO,cAAc;AACrB,SAAO,aAAa;AACpB,SAAO,gBAAgB;AACvB,SAAO,cAAc;AACrB,SAAO,uBAAuB;AAC9B,SAAO,0BAA0B;AACjC,SAAO,yBAAyB;IAC/B,WAAW,SAAS,EAAE,EAAE;CAE3B,SAAS,OAAO;CAEhB,SAAS,UAAU,QAAQ,SAAS;AAClC,SAAOA,QAAM,eAAe;GAC1B;GACA,SAAS,WAAW,OAAO,UAAU,EAAE;GACxC,GACD,CAAC,QAAQ,QAAQ,CAAC;;CAGpB,SAAS,aAAa;AACpB,OAAK,IAAI,OAAO,UAAU,QAAQ,UAAU,IAAI,MAAM,KAAK,EAAE,OAAO,GAAG,OAAO,MAAM,OAClF,SAAQ,QAAQ,UAAU;AAG5B,SAAOA,QAAM,cAAc,CAAC,GAAG,QAAQ,CAAC,QAAO,WAAU,UAAU,KAAK,EACxE,CAAC,GAAG,QAAQ,CAAC;;CAGf,MAAM,qBAAkC,uBAAO,OAAO;EACpD,GAAG;EACH,GAAG;EACJ,CAAC;;;;CAKF,SAAS,gBAAgB,IAAI,IAAI;AAC/B,SAAO,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;;CAGvE,SAAS,2BAA2B,OAAO,MAAM;EAC/C,MAAM,mBAAmB,UAAU,oBAAoB,MAAM;AAE7D,MAAI,CAAC,iBACH,QAAO;EAGT,MAAM,kBAAkB;GACtB,IAAI,iBAAiB,IAAI,KAAK,QAAQ,KAAK,QAAQ;GACnD,IAAI,iBAAiB,IAAI,KAAK,OAAO,KAAK,SAAS;GACpD;AACD,SAAO,gBAAgB,IAAI,OAAO,gBAAgB,IAAI;;;;;CAMxD,SAAS,kBAAkB,MAAM,OAAO;EACtC,IAAI,EACF,MAAM,EACJ,OAAO,QAEP;EACJ,IAAI,EACF,MAAM,EACJ,OAAO,QAEP;AACJ,SAAO,IAAI;;;;;CAMb,SAAS,mBAAmB,OAAO,OAAO;EACxC,IAAI,EACF,MAAM,EACJ,OAAO,QAEP;EACJ,IAAI,EACF,MAAM,EACJ,OAAO,QAEP;AACJ,SAAO,IAAI;;;;;;CAOb,SAAS,mBAAmB,OAAO;EACjC,IAAI,EACF,MACA,KACA,QACA,UACE;AACJ,SAAO;GAAC;IACN,GAAG;IACH,GAAG;IACJ;GAAE;IACD,GAAG,OAAO;IACV,GAAG;IACJ;GAAE;IACD,GAAG;IACH,GAAG,MAAM;IACV;GAAE;IACD,GAAG,OAAO;IACV,GAAG,MAAM;IACV;GAAC;;CAEJ,SAAS,kBAAkB,YAAY,UAAU;AAC/C,MAAI,CAAC,cAAc,WAAW,WAAW,EACvC,QAAO;EAGT,MAAM,CAAC,kBAAkB;AACzB,SAAO,WAAW,eAAe,YAAY;;;;;CAO/C,SAAS,kBAAkB,MAAM,MAAM,KAAK;AAC1C,MAAI,SAAS,KAAK,EAChB,QAAO,KAAK;AAGd,MAAI,QAAQ,KAAK,EACf,OAAM,KAAK;AAGb,SAAO;GACL,GAAG,OAAO,KAAK,QAAQ;GACvB,GAAG,MAAM,KAAK,SAAS;GACxB;;;;;;CAQH,MAAM,iBAAgB,SAAQ;EAC5B,IAAI,EACF,eACA,gBACA,wBACE;EACJ,MAAM,aAAa,kBAAkB,eAAe,cAAc,MAAM,cAAc,IAAI;EAC1F,MAAM,aAAa,EAAE;AAErB,OAAK,MAAM,sBAAsB,qBAAqB;GACpD,MAAM,EACJ,OACE;GACJ,MAAM,OAAO,eAAe,IAAI,GAAG;AAEnC,OAAI,MAAM;IACR,MAAM,cAAc,gBAAgB,kBAAkB,KAAK,EAAE,WAAW;AACxE,eAAW,KAAK;KACd;KACA,MAAM;MACJ;MACA,OAAO;MACR;KACF,CAAC;;;AAIN,SAAO,WAAW,KAAK,kBAAkB;;;;;;CAQ3C,MAAM,kBAAiB,SAAQ;EAC7B,IAAI,EACF,eACA,gBACA,wBACE;EACJ,MAAM,UAAU,mBAAmB,cAAc;EACjD,MAAM,aAAa,EAAE;AAErB,OAAK,MAAM,sBAAsB,qBAAqB;GACpD,MAAM,EACJ,OACE;GACJ,MAAM,OAAO,eAAe,IAAI,GAAG;AAEnC,OAAI,MAAM;IACR,MAAM,cAAc,mBAAmB,KAAK;IAC5C,MAAM,YAAY,QAAQ,QAAQ,aAAa,QAAQ,UAAU;AAC/D,YAAO,cAAc,gBAAgB,YAAY,QAAQ,OAAO;OAC/D,EAAE;IACL,MAAM,oBAAoB,QAAQ,YAAY,GAAG,QAAQ,EAAE,CAAC;AAC5D,eAAW,KAAK;KACd;KACA,MAAM;MACJ;MACA,OAAO;MACR;KACF,CAAC;;;AAIN,SAAO,WAAW,KAAK,kBAAkB;;;;;CAO3C,SAAS,qBAAqB,OAAO,QAAQ;EAC3C,MAAM,MAAM,KAAK,IAAI,OAAO,KAAK,MAAM,IAAI;EAC3C,MAAM,OAAO,KAAK,IAAI,OAAO,MAAM,MAAM,KAAK;EAC9C,MAAM,QAAQ,KAAK,IAAI,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM;EAC5E,MAAM,SAAS,KAAK,IAAI,OAAO,MAAM,OAAO,QAAQ,MAAM,MAAM,MAAM,OAAO;EAC7E,MAAM,QAAQ,QAAQ;EACtB,MAAM,SAAS,SAAS;AAExB,MAAI,OAAO,SAAS,MAAM,QAAQ;GAChC,MAAM,aAAa,OAAO,QAAQ,OAAO;GACzC,MAAM,YAAY,MAAM,QAAQ,MAAM;GACtC,MAAM,mBAAmB,QAAQ;GACjC,MAAM,oBAAoB,oBAAoB,aAAa,YAAY;AACvE,UAAO,OAAO,kBAAkB,QAAQ,EAAE,CAAC;;AAI7C,SAAO;;;;;;CAOT,MAAM,oBAAmB,SAAQ;EAC/B,IAAI,EACF,eACA,gBACA,wBACE;EACJ,MAAM,aAAa,EAAE;AAErB,OAAK,MAAM,sBAAsB,qBAAqB;GACpD,MAAM,EACJ,OACE;GACJ,MAAM,OAAO,eAAe,IAAI,GAAG;AAEnC,OAAI,MAAM;IACR,MAAM,oBAAoB,qBAAqB,MAAM,cAAc;AAEnE,QAAI,oBAAoB,EACtB,YAAW,KAAK;KACd;KACA,MAAM;MACJ;MACA,OAAO;MACR;KACF,CAAC;;;AAKR,SAAO,WAAW,KAAK,mBAAmB;;;;;CAO5C,SAAS,kBAAkB,OAAO,MAAM;EACtC,MAAM,EACJ,KACA,MACA,QACA,UACE;AACJ,SAAO,OAAO,MAAM,KAAK,MAAM,KAAK,UAAU,QAAQ,MAAM,KAAK,MAAM,KAAK;;;;;CAO9E,MAAM,iBAAgB,SAAQ;EAC5B,IAAI,EACF,qBACA,gBACA,uBACE;AAEJ,MAAI,CAAC,mBACH,QAAO,EAAE;EAGX,MAAM,aAAa,EAAE;AAErB,OAAK,MAAM,sBAAsB,qBAAqB;GACpD,MAAM,EACJ,OACE;GACJ,MAAM,OAAO,eAAe,IAAI,GAAG;AAEnC,OAAI,QAAQ,kBAAkB,oBAAoB,KAAK,EAAE;IAOvD,MAAM,YADU,mBAAmB,KAAK,CACd,QAAQ,aAAa,WAAW;AACxD,YAAO,cAAc,gBAAgB,oBAAoB,OAAO;OAC/D,EAAE;IACL,MAAM,oBAAoB,QAAQ,YAAY,GAAG,QAAQ,EAAE,CAAC;AAC5D,eAAW,KAAK;KACd;KACA,MAAM;MACJ;MACA,OAAO;MACR;KACF,CAAC;;;AAIN,SAAO,WAAW,KAAK,kBAAkB;;CAG3C,SAAS,YAAY,WAAW,OAAO,OAAO;AAC5C,SAAO;GAAE,GAAG;GACV,QAAQ,SAAS,QAAQ,MAAM,QAAQ,MAAM,QAAQ;GACrD,QAAQ,SAAS,QAAQ,MAAM,SAAS,MAAM,SAAS;GACxD;;CAGH,SAAS,aAAa,OAAO,OAAO;AAClC,SAAO,SAAS,QAAQ;GACtB,GAAG,MAAM,OAAO,MAAM;GACtB,GAAG,MAAM,MAAM,MAAM;GACtB,GAAG;;CAGN,SAAS,uBAAuB,UAAU;AACxC,SAAO,SAAS,iBAAiB,MAAM;AACrC,QAAK,IAAI,OAAO,UAAU,QAAQ,cAAc,IAAI,MAAM,OAAO,IAAI,OAAO,IAAI,EAAE,EAAE,OAAO,GAAG,OAAO,MAAM,OACzG,aAAY,OAAO,KAAK,UAAU;AAGpC,UAAO,YAAY,QAAQ,KAAK,gBAAgB;IAAE,GAAG;IACnD,KAAK,IAAI,MAAM,WAAW,WAAW;IACrC,QAAQ,IAAI,SAAS,WAAW,WAAW;IAC3C,MAAM,IAAI,OAAO,WAAW,WAAW;IACvC,OAAO,IAAI,QAAQ,WAAW,WAAW;IAC1C,GAAG,EAAE,GAAG,MACR,CAAC;;;CAGN,MAAM,kBAA+B,uCAAuB,EAAE;CAE9D,SAAS,eAAe,WAAW;AACjC,MAAI,UAAU,WAAW,YAAY,EAAE;GACrC,MAAM,iBAAiB,UAAU,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK;AACzD,UAAO;IACL,GAAG,CAAC,eAAe;IACnB,GAAG,CAAC,eAAe;IACnB,QAAQ,CAAC,eAAe;IACxB,QAAQ,CAAC,eAAe;IACzB;aACQ,UAAU,WAAW,UAAU,EAAE;GAC1C,MAAM,iBAAiB,UAAU,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK;AACzD,UAAO;IACL,GAAG,CAAC,eAAe;IACnB,GAAG,CAAC,eAAe;IACnB,QAAQ,CAAC,eAAe;IACxB,QAAQ,CAAC,eAAe;IACzB;;AAGH,SAAO;;CAGT,SAAS,iBAAiB,MAAM,WAAW,iBAAiB;EAC1D,MAAM,kBAAkB,eAAe,UAAU;AAEjD,MAAI,CAAC,gBACH,QAAO;EAGT,MAAM,EACJ,QACA,QACA,GAAG,YACH,GAAG,eACD;EACJ,MAAM,IAAI,KAAK,OAAO,cAAc,IAAI,UAAU,WAAW,gBAAgB;EAC7E,MAAM,IAAI,KAAK,MAAM,cAAc,IAAI,UAAU,WAAW,gBAAgB,MAAM,gBAAgB,QAAQ,IAAI,GAAG,EAAE,CAAC;EACpH,MAAM,IAAI,SAAS,KAAK,QAAQ,SAAS,KAAK;EAC9C,MAAM,IAAI,SAAS,KAAK,SAAS,SAAS,KAAK;AAC/C,SAAO;GACL,OAAO;GACP,QAAQ;GACR,KAAK;GACL,OAAO,IAAI;GACX,QAAQ,IAAI;GACZ,MAAM;GACP;;CAGH,MAAM,iBAAiB,EACrB,iBAAiB,OAClB;;;;CAKD,SAAS,cAAc,SAAS,SAAS;AACvC,MAAI,YAAY,KAAK,EACnB,WAAU;EAGZ,IAAI,OAAO,QAAQ,uBAAuB;AAE1C,MAAI,QAAQ,iBAAiB;GAC3B,MAAM,EACJ,WACA,oBACE,UAAU,UAAU,QAAQ,CAAC,iBAAiB,QAAQ;AAE1D,OAAI,UACF,QAAO,iBAAiB,MAAM,WAAW,gBAAgB;;EAI7D,MAAM,EACJ,KACA,MACA,OACA,QACA,QACA,UACE;AACJ,SAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACD;;;;;;;;;;CAWH,SAAS,+BAA+B,SAAS;AAC/C,SAAO,cAAc,SAAS,EAC5B,iBAAiB,MAClB,CAAC;;CAGJ,SAAS,oBAAoB,SAAS;EACpC,MAAM,QAAQ,QAAQ;EACtB,MAAM,SAAS,QAAQ;AACvB,SAAO;GACL,KAAK;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR;GACA;GACD;;CAGH,SAAS,QAAQ,MAAM,eAAe;AACpC,MAAI,kBAAkB,KAAK,EACzB,iBAAgB,UAAU,UAAU,KAAK,CAAC,iBAAiB,KAAK;AAGlE,SAAO,cAAc,aAAa;;CAGpC,SAAS,aAAa,SAAS,eAAe;AAC5C,MAAI,kBAAkB,KAAK,EACzB,iBAAgB,UAAU,UAAU,QAAQ,CAAC,iBAAiB,QAAQ;EAGxE,MAAM,gBAAgB;AAEtB,SADmB;GAAC;GAAY;GAAa;GAAY,CACvC,MAAK,aAAY;GACjC,MAAM,QAAQ,cAAc;AAC5B,UAAO,OAAO,UAAU,WAAW,cAAc,KAAK,MAAM,GAAG;IAC/D;;CAGJ,SAAS,uBAAuB,SAAS,OAAO;EAC9C,MAAM,gBAAgB,EAAE;EAExB,SAAS,wBAAwB,MAAM;AACrC,OAAI,SAAS,QAAQ,cAAc,UAAU,MAC3C,QAAO;AAGT,OAAI,CAAC,KACH,QAAO;AAGT,OAAI,UAAU,WAAW,KAAK,IAAI,KAAK,oBAAoB,QAAQ,CAAC,cAAc,SAAS,KAAK,iBAAiB,EAAE;AACjH,kBAAc,KAAK,KAAK,iBAAiB;AACzC,WAAO;;AAGT,OAAI,CAAC,UAAU,cAAc,KAAK,IAAI,UAAU,aAAa,KAAK,CAChE,QAAO;AAGT,OAAI,cAAc,SAAS,KAAK,CAC9B,QAAO;GAGT,MAAM,gBAAgB,UAAU,UAAU,QAAQ,CAAC,iBAAiB,KAAK;AAEzE,OAAI,SAAS;QACP,aAAa,MAAM,cAAc,CACnC,eAAc,KAAK,KAAK;;AAI5B,OAAI,QAAQ,MAAM,cAAc,CAC9B,QAAO;AAGT,UAAO,wBAAwB,KAAK,WAAW;;AAGjD,MAAI,CAAC,QACH,QAAO;AAGT,SAAO,wBAAwB,QAAQ;;CAEzC,SAAS,2BAA2B,MAAM;EACxC,MAAM,CAAC,2BAA2B,uBAAuB,MAAM,EAAE;AACjE,SAAO,2BAA2B,OAAO,0BAA0B;;CAGrE,SAAS,qBAAqB,SAAS;AACrC,MAAI,CAAC,UAAU,aAAa,CAAC,QAC3B,QAAO;AAGT,MAAI,UAAU,SAAS,QAAQ,CAC7B,QAAO;AAGT,MAAI,CAAC,UAAU,OAAO,QAAQ,CAC5B,QAAO;AAGT,MAAI,UAAU,WAAW,QAAQ,IAAI,YAAY,UAAU,iBAAiB,QAAQ,CAAC,iBACnF,QAAO;AAGT,MAAI,UAAU,cAAc,QAAQ,CAClC,QAAO;AAGT,SAAO;;CAGT,SAAS,qBAAqB,SAAS;AACrC,MAAI,UAAU,SAAS,QAAQ,CAC7B,QAAO,QAAQ;AAGjB,SAAO,QAAQ;;CAEjB,SAAS,qBAAqB,SAAS;AACrC,MAAI,UAAU,SAAS,QAAQ,CAC7B,QAAO,QAAQ;AAGjB,SAAO,QAAQ;;CAEjB,SAAS,qBAAqB,SAAS;AACrC,SAAO;GACL,GAAG,qBAAqB,QAAQ;GAChC,GAAG,qBAAqB,QAAQ;GACjC;;CAGH,IAAI;AAEJ,EAAC,SAAU,WAAW;AACpB,YAAU,UAAU,aAAa,KAAK;AACtC,YAAU,UAAU,cAAc,MAAM;IACvC,cAAc,YAAY,EAAE,EAAE;CAEjC,SAAS,2BAA2B,SAAS;AAC3C,MAAI,CAAC,UAAU,aAAa,CAAC,QAC3B,QAAO;AAGT,SAAO,YAAY,SAAS;;CAG9B,SAAS,kBAAkB,oBAAoB;EAC7C,MAAM,YAAY;GAChB,GAAG;GACH,GAAG;GACJ;EACD,MAAM,aAAa,2BAA2B,mBAAmB,GAAG;GAClE,QAAQ,OAAO;GACf,OAAO,OAAO;GACf,GAAG;GACF,QAAQ,mBAAmB;GAC3B,OAAO,mBAAmB;GAC3B;EACD,MAAM,YAAY;GAChB,GAAG,mBAAmB,cAAc,WAAW;GAC/C,GAAG,mBAAmB,eAAe,WAAW;GACjD;AAKD,SAAO;GACL,OALY,mBAAmB,aAAa,UAAU;GAMtD,QALa,mBAAmB,cAAc,UAAU;GAMxD,UALe,mBAAmB,aAAa,UAAU;GAMzD,SALc,mBAAmB,cAAc,UAAU;GAMzD;GACA;GACD;;CAGH,MAAM,mBAAmB;EACvB,GAAG;EACH,GAAG;EACJ;CACD,SAAS,2BAA2B,iBAAiB,qBAAqB,MAAM,cAAc,qBAAqB;EACjH,IAAI,EACF,KACA,MACA,OACA,WACE;AAEJ,MAAI,iBAAiB,KAAK,EACxB,gBAAe;AAGjB,MAAI,wBAAwB,KAAK,EAC/B,uBAAsB;EAGxB,MAAM,EACJ,OACA,UACA,QACA,YACE,kBAAkB,gBAAgB;EACtC,MAAM,YAAY;GAChB,GAAG;GACH,GAAG;GACJ;EACD,MAAM,QAAQ;GACZ,GAAG;GACH,GAAG;GACJ;EACD,MAAM,YAAY;GAChB,QAAQ,oBAAoB,SAAS,oBAAoB;GACzD,OAAO,oBAAoB,QAAQ,oBAAoB;GACxD;AAED,MAAI,CAAC,SAAS,OAAO,oBAAoB,MAAM,UAAU,QAAQ;AAE/D,aAAU,IAAI,UAAU;AACxB,SAAM,IAAI,eAAe,KAAK,KAAK,oBAAoB,MAAM,UAAU,SAAS,OAAO,UAAU,OAAO;aAC/F,CAAC,YAAY,UAAU,oBAAoB,SAAS,UAAU,QAAQ;AAE/E,aAAU,IAAI,UAAU;AACxB,SAAM,IAAI,eAAe,KAAK,KAAK,oBAAoB,SAAS,UAAU,SAAS,UAAU,UAAU,OAAO;;AAGhH,MAAI,CAAC,WAAW,SAAS,oBAAoB,QAAQ,UAAU,OAAO;AAEpE,aAAU,IAAI,UAAU;AACxB,SAAM,IAAI,eAAe,KAAK,KAAK,oBAAoB,QAAQ,UAAU,QAAQ,SAAS,UAAU,MAAM;aACjG,CAAC,UAAU,QAAQ,oBAAoB,OAAO,UAAU,OAAO;AAExE,aAAU,IAAI,UAAU;AACxB,SAAM,IAAI,eAAe,KAAK,KAAK,oBAAoB,OAAO,UAAU,QAAQ,QAAQ,UAAU,MAAM;;AAG1G,SAAO;GACL;GACA;GACD;;CAGH,SAAS,qBAAqB,SAAS;AACrC,MAAI,YAAY,SAAS,kBAAkB;GACzC,MAAM,EACJ,YACA,gBACE;AACJ,UAAO;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACT;;EAGH,MAAM,EACJ,KACA,MACA,OACA,WACE,QAAQ,uBAAuB;AACnC,SAAO;GACL;GACA;GACA;GACA;GACA,OAAO,QAAQ;GACf,QAAQ,QAAQ;GACjB;;CAGH,SAAS,iBAAiB,qBAAqB;AAC7C,SAAO,oBAAoB,QAAQ,KAAK,SAAS;AAC/C,UAAO,UAAU,IAAI,KAAK,qBAAqB,KAAK,CAAC;KACpD,mBAAmB;;CAExB,SAAS,iBAAiB,qBAAqB;AAC7C,SAAO,oBAAoB,QAAQ,KAAK,SAAS;AAC/C,UAAO,MAAM,qBAAqB,KAAK;KACtC,EAAE;;CAEP,SAAS,iBAAiB,qBAAqB;AAC7C,SAAO,oBAAoB,QAAQ,KAAK,SAAS;AAC/C,UAAO,MAAM,qBAAqB,KAAK;KACtC,EAAE;;CAGP,SAAS,uBAAuB,SAAS,SAAS;AAChD,MAAI,YAAY,KAAK,EACnB,WAAU;AAGZ,MAAI,CAAC,QACH;EAGF,MAAM,EACJ,KACA,MACA,QACA,UACE,QAAQ,QAAQ;AAGpB,MAAI,CAF4B,2BAA2B,QAAQ,CAGjE;AAGF,MAAI,UAAU,KAAK,SAAS,KAAK,OAAO,OAAO,eAAe,QAAQ,OAAO,WAC3E,SAAQ,eAAe;GACrB,OAAO;GACP,QAAQ;GACT,CAAC;;CAIN,MAAM,aAAa,CAAC;EAAC;EAAK,CAAC,QAAQ,QAAQ;EAAE;EAAiB,EAAE;EAAC;EAAK,CAAC,OAAO,SAAS;EAAE;EAAiB,CAAC;CAC3G,IAAM,OAAN,MAAW;EACT,YAAY,MAAM,SAAS;AACzB,QAAK,OAAO,KAAK;AACjB,QAAK,QAAQ,KAAK;AAClB,QAAK,SAAS,KAAK;AACnB,QAAK,MAAM,KAAK;AAChB,QAAK,SAAS,KAAK;AACnB,QAAK,QAAQ,KAAK;AAClB,QAAK,OAAO,KAAK;GACjB,MAAM,sBAAsB,uBAAuB,QAAQ;GAC3D,MAAM,gBAAgB,iBAAiB,oBAAoB;AAC3D,QAAK,OAAO,EAAE,GAAG,MAChB;AACD,QAAK,QAAQ,KAAK;AAClB,QAAK,SAAS,KAAK;AAEnB,QAAK,MAAM,CAAC,MAAM,MAAM,oBAAoB,WAC1C,MAAK,MAAM,OAAO,KAChB,QAAO,eAAe,MAAM,KAAK;IAC/B,WAAW;KACT,MAAM,iBAAiB,gBAAgB,oBAAoB;KAC3D,MAAM,sBAAsB,cAAc,QAAQ;AAClD,YAAO,KAAK,KAAK,OAAO;;IAE1B,YAAY;IACb,CAAC;AAIN,UAAO,eAAe,MAAM,QAAQ,EAClC,YAAY,OACb,CAAC;;;CAKN,IAAM,YAAN,MAAgB;EACd,YAAY,QAAQ;AAClB,QAAK,SAAS,KAAK;AACnB,QAAK,YAAY,EAAE;AAEnB,QAAK,kBAAkB;AACrB,SAAK,UAAU,SAAQ,aAAY;KACjC,IAAI;AAEJ,aAAQ,eAAe,KAAK,WAAW,OAAO,KAAK,IAAI,aAAa,oBAAoB,GAAG,SAAS;MACpG;;AAGJ,QAAK,SAAS;;EAGhB,IAAI,WAAW,SAAS,SAAS;GAC/B,IAAI;AAEJ,IAAC,gBAAgB,KAAK,WAAW,QAAgB,cAAc,iBAAiB,WAAW,SAAS,QAAQ;AAC5G,QAAK,UAAU,KAAK;IAAC;IAAW;IAAS;IAAQ,CAAC;;;CAKtD,SAAS,uBAAuB,QAAQ;EAMtC,MAAM,EACJ,gBACE,UAAU,UAAU,OAAO;AAC/B,SAAO,kBAAkB,cAAc,SAAS,UAAU,iBAAiB,OAAO;;CAGpF,SAAS,oBAAoB,OAAO,aAAa;EAC/C,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE;EAC5B,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE;AAE5B,MAAI,OAAO,gBAAgB,SACzB,QAAO,KAAK,KAAK,MAAM,IAAI,MAAM,EAAE,GAAG;AAGxC,MAAI,OAAO,eAAe,OAAO,YAC/B,QAAO,KAAK,YAAY,KAAK,KAAK,YAAY;AAGhD,MAAI,OAAO,YACT,QAAO,KAAK,YAAY;AAG1B,MAAI,OAAO,YACT,QAAO,KAAK,YAAY;AAG1B,SAAO;;CAGT,IAAI;AAEJ,EAAC,SAAU,WAAW;AACpB,YAAU,WAAW;AACrB,YAAU,eAAe;AACzB,YAAU,aAAa;AACvB,YAAU,iBAAiB;AAC3B,YAAU,YAAY;AACtB,YAAU,qBAAqB;AAC/B,YAAU,sBAAsB;IAC/B,cAAc,YAAY,EAAE,EAAE;CAEjC,SAAS,eAAe,OAAO;AAC7B,QAAM,gBAAgB;;CAExB,SAAS,gBAAgB,OAAO;AAC9B,QAAM,iBAAiB;;AAGzB,EAAC,SAAU,cAAc;AACvB,eAAa,WAAW;AACxB,eAAa,UAAU;AACvB,eAAa,WAAW;AACxB,eAAa,UAAU;AACvB,eAAa,QAAQ;AACrB,eAAa,SAAS;AACtB,eAAa,WAAW;AACxB,eAAa,SAAS;IACrB,QAAQ,iBAAiB,QAAQ,eAAe,EAAE,EAAE;CAEvD,MAAM,uBAAuB;EAC3B,OAAO,CAAC,QAAQ,aAAa,OAAO,QAAQ,aAAa,MAAM;EAC/D,QAAQ,CAAC,QAAQ,aAAa,IAAI;EAClC,KAAK;GAAC,QAAQ,aAAa;GAAO,QAAQ,aAAa;GAAO,QAAQ,aAAa;GAAI;EACxF;CACD,MAAM,mCAAmC,OAAO,SAAS;EACvD,IAAI,EACF,uBACE;AAEJ,UAAQ,MAAM,MAAd;GACE,KAAK,QAAQ,aAAa,MACxB,QAAO;IAAE,GAAG;IACV,GAAG,mBAAmB,IAAI;IAC3B;GAEH,KAAK,QAAQ,aAAa,KACxB,QAAO;IAAE,GAAG;IACV,GAAG,mBAAmB,IAAI;IAC3B;GAEH,KAAK,QAAQ,aAAa,KACxB,QAAO;IAAE,GAAG;IACV,GAAG,mBAAmB,IAAI;IAC3B;GAEH,KAAK,QAAQ,aAAa,GACxB,QAAO;IAAE,GAAG;IACV,GAAG,mBAAmB,IAAI;IAC3B;;;CAMP,IAAM,iBAAN,MAAqB;EACnB,YAAY,OAAO;AACjB,QAAK,QAAQ,KAAK;AAClB,QAAK,oBAAoB;AACzB,QAAK,uBAAuB,KAAK;AACjC,QAAK,YAAY,KAAK;AACtB,QAAK,kBAAkB,KAAK;AAC5B,QAAK,QAAQ;GACb,MAAM,EACJ,OAAO,EACL,aAEA;AACJ,QAAK,QAAQ;AACb,QAAK,YAAY,IAAI,UAAU,UAAU,iBAAiB,OAAO,CAAC;AAClE,QAAK,kBAAkB,IAAI,UAAU,UAAU,UAAU,OAAO,CAAC;AACjE,QAAK,gBAAgB,KAAK,cAAc,KAAK,KAAK;AAClD,QAAK,eAAe,KAAK,aAAa,KAAK,KAAK;AAChD,QAAK,QAAQ;;EAGf,SAAS;AACP,QAAK,aAAa;AAClB,QAAK,gBAAgB,IAAI,UAAU,QAAQ,KAAK,aAAa;AAC7D,QAAK,gBAAgB,IAAI,UAAU,kBAAkB,KAAK,aAAa;AACvE,oBAAiB,KAAK,UAAU,IAAI,UAAU,SAAS,KAAK,cAAc,CAAC;;EAG7E,cAAc;GACZ,MAAM,EACJ,YACA,YACE,KAAK;GACT,MAAM,OAAO,WAAW,KAAK;AAE7B,OAAI,KACF,wBAAuB,KAAK;AAG9B,WAAQ,mBAAmB;;EAG7B,cAAc,OAAO;AACnB,OAAI,UAAU,gBAAgB,MAAM,EAAE;IACpC,MAAM,EACJ,QACA,SACA,YACE,KAAK;IACT,MAAM,EACJ,gBAAgB,sBAChB,mBAAmB,iCACnB,iBAAiB,aACf;IACJ,MAAM,EACJ,SACE;AAEJ,QAAI,cAAc,IAAI,SAAS,KAAK,EAAE;AACpC,UAAK,UAAU,MAAM;AACrB;;AAGF,QAAI,cAAc,OAAO,SAAS,KAAK,EAAE;AACvC,UAAK,aAAa,MAAM;AACxB;;IAGF,MAAM,EACJ,kBACE,QAAQ;IACZ,MAAM,qBAAqB,gBAAgB;KACzC,GAAG,cAAc;KACjB,GAAG,cAAc;KAClB,GAAG;AAEJ,QAAI,CAAC,KAAK,qBACR,MAAK,uBAAuB;IAG9B,MAAM,iBAAiB,iBAAiB,OAAO;KAC7C;KACA,SAAS,QAAQ;KACjB;KACD,CAAC;AAEF,QAAI,gBAAgB;KAClB,MAAM,mBAAmB,UAAU,SAAS,gBAAgB,mBAAmB;KAC/E,MAAM,cAAc;MAClB,GAAG;MACH,GAAG;MACJ;KACD,MAAM,EACJ,wBACE,QAAQ;AAEZ,UAAK,MAAM,mBAAmB,qBAAqB;MACjD,MAAM,YAAY,MAAM;MACxB,MAAM,EACJ,OACA,SACA,QACA,UACA,WACA,cACE,kBAAkB,gBAAgB;MACtC,MAAM,oBAAoB,qBAAqB,gBAAgB;MAC/D,MAAM,qBAAqB;OACzB,GAAG,KAAK,IAAI,cAAc,QAAQ,aAAa,QAAQ,kBAAkB,QAAQ,kBAAkB,QAAQ,IAAI,kBAAkB,OAAO,KAAK,IAAI,cAAc,QAAQ,aAAa,QAAQ,kBAAkB,OAAO,kBAAkB,OAAO,kBAAkB,QAAQ,GAAG,eAAe,EAAE,CAAC;OAC7R,GAAG,KAAK,IAAI,cAAc,QAAQ,aAAa,OAAO,kBAAkB,SAAS,kBAAkB,SAAS,IAAI,kBAAkB,QAAQ,KAAK,IAAI,cAAc,QAAQ,aAAa,OAAO,kBAAkB,MAAM,kBAAkB,MAAM,kBAAkB,SAAS,GAAG,eAAe,EAAE,CAAC;OAC9R;MACD,MAAM,aAAa,cAAc,QAAQ,aAAa,SAAS,CAAC,WAAW,cAAc,QAAQ,aAAa,QAAQ,CAAC;MACvH,MAAM,aAAa,cAAc,QAAQ,aAAa,QAAQ,CAAC,YAAY,cAAc,QAAQ,aAAa,MAAM,CAAC;AAErH,UAAI,cAAc,mBAAmB,MAAM,eAAe,GAAG;OAC3D,MAAM,uBAAuB,gBAAgB,aAAa,iBAAiB;OAC3E,MAAM,4BAA4B,cAAc,QAAQ,aAAa,SAAS,wBAAwB,UAAU,KAAK,cAAc,QAAQ,aAAa,QAAQ,wBAAwB,UAAU;AAElM,WAAI,6BAA6B,CAAC,iBAAiB,GAAG;AAGpD,wBAAgB,SAAS;SACvB,MAAM;SACN,UAAU;SACX,CAAC;AACF;;AAGF,WAAI,0BACF,aAAY,IAAI,gBAAgB,aAAa;WAE7C,aAAY,IAAI,cAAc,QAAQ,aAAa,QAAQ,gBAAgB,aAAa,UAAU,IAAI,gBAAgB,aAAa,UAAU;AAG/I,WAAI,YAAY,EACd,iBAAgB,SAAS;QACvB,MAAM,CAAC,YAAY;QACnB,UAAU;QACX,CAAC;AAGJ;iBACS,cAAc,mBAAmB,MAAM,eAAe,GAAG;OAClE,MAAM,uBAAuB,gBAAgB,YAAY,iBAAiB;OAC1E,MAAM,4BAA4B,cAAc,QAAQ,aAAa,QAAQ,wBAAwB,UAAU,KAAK,cAAc,QAAQ,aAAa,MAAM,wBAAwB,UAAU;AAE/L,WAAI,6BAA6B,CAAC,iBAAiB,GAAG;AAGpD,wBAAgB,SAAS;SACvB,KAAK;SACL,UAAU;SACX,CAAC;AACF;;AAGF,WAAI,0BACF,aAAY,IAAI,gBAAgB,YAAY;WAE5C,aAAY,IAAI,cAAc,QAAQ,aAAa,OAAO,gBAAgB,YAAY,UAAU,IAAI,gBAAgB,YAAY,UAAU;AAG5I,WAAI,YAAY,EACd,iBAAgB,SAAS;QACvB,KAAK,CAAC,YAAY;QAClB,UAAU;QACX,CAAC;AAGJ;;;AAIJ,UAAK,WAAW,OAAO,UAAU,IAAI,UAAU,SAAS,gBAAgB,KAAK,qBAAqB,EAAE,YAAY,CAAC;;;;EAKvH,WAAW,OAAO,aAAa;GAC7B,MAAM,EACJ,WACE,KAAK;AACT,SAAM,gBAAgB;AACtB,UAAO,YAAY;;EAGrB,UAAU,OAAO;GACf,MAAM,EACJ,UACE,KAAK;AACT,SAAM,gBAAgB;AACtB,QAAK,QAAQ;AACb,UAAO;;EAGT,aAAa,OAAO;GAClB,MAAM,EACJ,aACE,KAAK;AACT,SAAM,gBAAgB;AACtB,QAAK,QAAQ;AACb,aAAU;;EAGZ,SAAS;AACP,QAAK,UAAU,WAAW;AAC1B,QAAK,gBAAgB,WAAW;;;AAIpC,gBAAe,aAAa,CAAC;EAC3B,WAAW;EACX,UAAU,OAAO,MAAM,UAAU;GAC/B,IAAI,EACF,gBAAgB,sBAChB,iBACE;GACJ,IAAI,EACF,WACE;GACJ,MAAM,EACJ,SACE,MAAM;AAEV,OAAI,cAAc,MAAM,SAAS,KAAK,EAAE;IACtC,MAAM,YAAY,OAAO,cAAc;AAEvC,QAAI,aAAa,MAAM,WAAW,UAChC,QAAO;AAGT,UAAM,gBAAgB;AACtB,mBAA6C,EAC3C,OAAO,MAAM,aACd,CAAC;AACF,WAAO;;AAGT,UAAO;;EAEV,CAAC;CAEF,SAAS,qBAAqB,YAAY;AACxC,SAAO,QAAQ,cAAc,cAAc,WAAW;;CAGxD,SAAS,kBAAkB,YAAY;AACrC,SAAO,QAAQ,cAAc,WAAW,WAAW;;CAGrD,IAAM,wBAAN,MAA4B;EAC1B,YAAY,OAAO,QAAQ,gBAAgB;GACzC,IAAI;AAEJ,OAAI,mBAAmB,KAAK,EAC1B,kBAAiB,uBAAuB,MAAM,MAAM,OAAO;AAG7D,QAAK,QAAQ,KAAK;AAClB,QAAK,SAAS,KAAK;AACnB,QAAK,oBAAoB;AACzB,QAAK,WAAW,KAAK;AACrB,QAAK,YAAY;AACjB,QAAK,qBAAqB,KAAK;AAC/B,QAAK,YAAY;AACjB,QAAK,YAAY,KAAK;AACtB,QAAK,oBAAoB,KAAK;AAC9B,QAAK,kBAAkB,KAAK;AAC5B,QAAK,QAAQ;AACb,QAAK,SAAS;GACd,MAAM,EACJ,UACE;GACJ,MAAM,EACJ,WACE;AACJ,QAAK,QAAQ;AACb,QAAK,SAAS;AACd,QAAK,WAAW,UAAU,iBAAiB,OAAO;AAClD,QAAK,oBAAoB,IAAI,UAAU,KAAK,SAAS;AACrD,QAAK,YAAY,IAAI,UAAU,eAAe;AAC9C,QAAK,kBAAkB,IAAI,UAAU,UAAU,UAAU,OAAO,CAAC;AACjE,QAAK,sBAAsB,uBAAuB,UAAU,oBAAoB,MAAM,KAAK,OAAO,uBAAuB;AACzH,QAAK,cAAc,KAAK,YAAY,KAAK,KAAK;AAC9C,QAAK,aAAa,KAAK,WAAW,KAAK,KAAK;AAC5C,QAAK,YAAY,KAAK,UAAU,KAAK,KAAK;AAC1C,QAAK,eAAe,KAAK,aAAa,KAAK,KAAK;AAChD,QAAK,gBAAgB,KAAK,cAAc,KAAK,KAAK;AAClD,QAAK,sBAAsB,KAAK,oBAAoB,KAAK,KAAK;AAC9D,QAAK,QAAQ;;EAGf,SAAS;GACP,MAAM,EACJ,QACA,OAAO,EACL,SAAS,EACP,sBACA,mCAGF;AACJ,QAAK,UAAU,IAAI,OAAO,KAAK,MAAM,KAAK,YAAY,EACpD,SAAS,OACV,CAAC;AACF,QAAK,UAAU,IAAI,OAAO,IAAI,MAAM,KAAK,UAAU;AAEnD,OAAI,OAAO,OACT,MAAK,UAAU,IAAI,OAAO,OAAO,MAAM,KAAK,aAAa;AAG3D,QAAK,gBAAgB,IAAI,UAAU,QAAQ,KAAK,aAAa;AAC7D,QAAK,gBAAgB,IAAI,UAAU,WAAW,eAAe;AAC7D,QAAK,gBAAgB,IAAI,UAAU,kBAAkB,KAAK,aAAa;AACvE,QAAK,gBAAgB,IAAI,UAAU,aAAa,eAAe;AAC/D,QAAK,kBAAkB,IAAI,UAAU,SAAS,KAAK,cAAc;AAEjE,OAAI,sBAAsB;AACxB,QAAI,8BAA8B,QAAQ,2BAA2B;KACnE,OAAO,KAAK,MAAM;KAClB,YAAY,KAAK,MAAM;KACvB,SAAS,KAAK,MAAM;KACrB,CAAC,CACA,QAAO,KAAK,aAAa;AAG3B,QAAI,kBAAkB,qBAAqB,EAAE;AAC3C,UAAK,YAAY,WAAW,KAAK,aAAa,qBAAqB,MAAM;AACzE,UAAK,cAAc,qBAAqB;AACxC;;AAGF,QAAI,qBAAqB,qBAAqB,EAAE;AAC9C,UAAK,cAAc,qBAAqB;AACxC;;;AAIJ,QAAK,aAAa;;EAGpB,SAAS;AACP,QAAK,UAAU,WAAW;AAC1B,QAAK,gBAAgB,WAAW;AAGhC,cAAW,KAAK,kBAAkB,WAAW,GAAG;AAEhD,OAAI,KAAK,cAAc,MAAM;AAC3B,iBAAa,KAAK,UAAU;AAC5B,SAAK,YAAY;;;EAIrB,cAAc,YAAY,QAAQ;GAChC,MAAM,EACJ,QACA,cACE,KAAK;AACT,aAAU,QAAQ,YAAY,KAAK,oBAAoB,OAAO;;EAGhE,cAAc;GACZ,MAAM,EACJ,uBACE;GACJ,MAAM,EACJ,YACE,KAAK;AAET,OAAI,oBAAoB;AACtB,SAAK,YAAY;AAEjB,SAAK,kBAAkB,IAAI,UAAU,OAAO,iBAAiB,EAC3D,SAAS,MACV,CAAC;AAEF,SAAK,qBAAqB;AAE1B,SAAK,kBAAkB,IAAI,UAAU,iBAAiB,KAAK,oBAAoB;AAC/E,YAAQ,mBAAmB;;;EAI/B,WAAW,OAAO;GAChB,IAAI;GAEJ,MAAM,EACJ,WACA,oBACA,UACE;GACJ,MAAM,EACJ,QACA,SAAS,EACP,2BAEA;AAEJ,OAAI,CAAC,mBACH;GAGF,MAAM,eAAe,wBAAwB,UAAU,oBAAoB,MAAM,KAAK,OAAO,wBAAwB;GACrH,MAAM,QAAQ,UAAU,SAAS,oBAAoB,YAAY;AAEjE,OAAI,CAAC,aAAa,sBAAsB;AACtC,QAAI,qBAAqB,qBAAqB,EAAE;AAC9C,SAAI,qBAAqB,aAAa,QAAQ,oBAAoB,OAAO,qBAAqB,UAAU,CACtG,QAAO,KAAK,cAAc;AAG5B,SAAI,oBAAoB,OAAO,qBAAqB,SAAS,CAC3D,QAAO,KAAK,aAAa;;AAI7B,QAAI,kBAAkB,qBAAqB;SACrC,oBAAoB,OAAO,qBAAqB,UAAU,CAC5D,QAAO,KAAK,cAAc;;AAI9B,SAAK,cAAc,sBAAsB,MAAM;AAC/C;;AAGF,OAAI,MAAM,WACR,OAAM,gBAAgB;AAGxB,UAAO,YAAY;;EAGrB,YAAY;GACV,MAAM,EACJ,SACA,UACE,KAAK;AACT,QAAK,QAAQ;AAEb,OAAI,CAAC,KAAK,UACR,SAAQ,KAAK,MAAM,OAAO;AAG5B,UAAO;;EAGT,eAAe;GACb,MAAM,EACJ,SACA,aACE,KAAK;AACT,QAAK,QAAQ;AAEb,OAAI,CAAC,KAAK,UACR,SAAQ,KAAK,MAAM,OAAO;AAG5B,aAAU;;EAGZ,cAAc,OAAO;AACnB,OAAI,MAAM,SAAS,QAAQ,aAAa,IACtC,MAAK,cAAc;;EAIvB,sBAAsB;GACpB,IAAI;AAEJ,IAAC,wBAAwB,KAAK,SAAS,cAAc,KAAK,QAAgB,sBAAsB,iBAAiB;;;CAKrH,MAAM,SAAS;EACb,QAAQ,EACN,MAAM,iBACP;EACD,MAAM,EACJ,MAAM,eACP;EACD,KAAK,EACH,MAAM,aACP;EACF;CACD,IAAM,gBAAN,cAA4B,sBAAsB;EAChD,YAAY,OAAO;GACjB,MAAM,EACJ,UACE;GAGJ,MAAM,iBAAiB,UAAU,iBAAiB,MAAM,OAAO;AAC/D,SAAM,OAAO,QAAQ,eAAe;;;AAIxC,eAAc,aAAa,CAAC;EAC1B,WAAW;EACX,UAAU,MAAM,UAAU;GACxB,IAAI,EACF,aAAa,UACX;GACJ,IAAI,EACF,iBACE;AAEJ,OAAI,CAAC,MAAM,aAAa,MAAM,WAAW,EACvC,QAAO;AAGT,kBAA6C,EAC3C,OACD,CAAC;AACF,UAAO;;EAEV,CAAC;CAEF,MAAM,WAAW;EACf,MAAM,EACJ,MAAM,aACP;EACD,KAAK,EACH,MAAM,WACP;EACF;CACD,IAAI;AAEJ,EAAC,SAAU,aAAa;AACtB,cAAY,YAAY,gBAAgB,KAAK;IAC5C,gBAAgB,cAAc,EAAE,EAAE;CAErC,IAAM,cAAN,cAA0B,sBAAsB;EAC9C,YAAY,OAAO;AACjB,SAAM,OAAO,UAAU,UAAU,iBAAiB,MAAM,MAAM,OAAO,CAAC;;;AAI1E,aAAY,aAAa,CAAC;EACxB,WAAW;EACX,UAAU,MAAM,UAAU;GACxB,IAAI,EACF,aAAa,UACX;GACJ,IAAI,EACF,iBACE;AAEJ,OAAI,MAAM,WAAW,YAAY,WAC/B,QAAO;AAGT,kBAA6C,EAC3C,OACD,CAAC;AACF,UAAO;;EAEV,CAAC;CAEF,MAAM,WAAW;EACf,QAAQ,EACN,MAAM,eACP;EACD,MAAM,EACJ,MAAM,aACP;EACD,KAAK,EACH,MAAM,YACP;EACF;CACD,IAAM,cAAN,cAA0B,sBAAsB;EAC9C,YAAY,OAAO;AACjB,SAAM,OAAO,SAAS;;EAGxB,OAAO,QAAQ;AAIb,UAAO,iBAAiB,SAAS,KAAK,MAAM,MAAM;IAChD,SAAS;IACT,SAAS;IACV,CAAC;AACF,UAAO,SAAS,WAAW;AACzB,WAAO,oBAAoB,SAAS,KAAK,MAAM,KAAK;;GAItD,SAAS,OAAO;;;AAIpB,aAAY,aAAa,CAAC;EACxB,WAAW;EACX,UAAU,MAAM,UAAU;GACxB,IAAI,EACF,aAAa,UACX;GACJ,IAAI,EACF,iBACE;GACJ,MAAM,EACJ,YACE;AAEJ,OAAI,QAAQ,SAAS,EACnB,QAAO;AAGT,kBAA6C,EAC3C,OACD,CAAC;AACF,UAAO;;EAEV,CAAC;AAEF,EAAC,SAAU,qBAAqB;AAC9B,sBAAoB,oBAAoB,aAAa,KAAK;AAC1D,sBAAoB,oBAAoB,mBAAmB,KAAK;IAC/D,QAAQ,wBAAwB,QAAQ,sBAAsB,EAAE,EAAE;AAErE,EAAC,SAAU,gBAAgB;AACzB,iBAAe,eAAe,eAAe,KAAK;AAClD,iBAAe,eAAe,uBAAuB,KAAK;IACzD,QAAQ,mBAAmB,QAAQ,iBAAiB,EAAE,EAAE;CAE3D,SAAS,gBAAgB,MAAM;EAC7B,IAAI,EACF,cACA,YAAY,QAAQ,oBAAoB,SACxC,WACA,cACA,SACA,WAAW,GACX,QAAQ,QAAQ,eAAe,WAC/B,oBACA,qBACA,yBACA,OACA,cACE;EACJ,MAAM,eAAe,gBAAgB;GACnC;GACA,UAAU,CAAC;GACZ,CAAC;EACF,MAAM,CAAC,uBAAuB,2BAA2B,UAAU,aAAa;EAChF,MAAM,cAAcA,QAAM,OAAO;GAC/B,GAAG;GACH,GAAG;GACJ,CAAC;EACF,MAAM,kBAAkBA,QAAM,OAAO;GACnC,GAAG;GACH,GAAG;GACJ,CAAC;EACF,MAAM,OAAOA,QAAM,cAAc;AAC/B,WAAQ,WAAR;IACE,KAAK,QAAQ,oBAAoB,QAC/B,QAAO,qBAAqB;KAC1B,KAAK,mBAAmB;KACxB,QAAQ,mBAAmB;KAC3B,MAAM,mBAAmB;KACzB,OAAO,mBAAmB;KAC3B,GAAG;IAEN,KAAK,QAAQ,oBAAoB,cAC/B,QAAO;;KAEV;GAAC;GAAW;GAAc;GAAmB,CAAC;EACjD,MAAM,qBAAqBA,QAAM,OAAO,KAAK;EAC7C,MAAM,aAAaA,QAAM,kBAAkB;GACzC,MAAM,kBAAkB,mBAAmB;AAE3C,OAAI,CAAC,gBACH;GAGF,MAAM,aAAa,YAAY,QAAQ,IAAI,gBAAgB,QAAQ;GACnE,MAAM,YAAY,YAAY,QAAQ,IAAI,gBAAgB,QAAQ;AAClE,mBAAgB,SAAS,YAAY,UAAU;KAC9C,EAAE,CAAC;EACN,MAAM,4BAA4BA,QAAM,cAAc,UAAU,QAAQ,eAAe,YAAY,CAAC,GAAG,oBAAoB,CAAC,SAAS,GAAG,qBAAqB,CAAC,OAAO,oBAAoB,CAAC;AAC1L,UAAM,gBAAgB;AACpB,OAAI,CAAC,WAAW,CAAC,oBAAoB,UAAU,CAAC,MAAM;AACpD,6BAAyB;AACzB;;AAGF,QAAK,MAAM,mBAAmB,2BAA2B;AACvD,SAAK,aAAa,OAAO,KAAK,IAAI,UAAU,gBAAgB,MAAM,MAChE;IAIF,MAAM,sBAAsB,wBADd,oBAAoB,QAAQ,gBAAgB;AAG1D,QAAI,CAAC,oBACH;IAGF,MAAM,EACJ,WACA,UACE,2BAA2B,iBAAiB,qBAAqB,MAAM,cAAc,UAAU;AAEnG,SAAK,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC3B,KAAI,CAAC,aAAa,MAAM,UAAU,QAAQ;AACxC,WAAM,QAAQ;AACd,eAAU,QAAQ;;AAItB,QAAI,MAAM,IAAI,KAAK,MAAM,IAAI,GAAG;AAC9B,8BAAyB;AACzB,wBAAmB,UAAU;AAC7B,2BAAsB,YAAY,SAAS;AAC3C,iBAAY,UAAU;AACtB,qBAAgB,UAAU;AAC1B;;;AAIJ,eAAY,UAAU;IACpB,GAAG;IACH,GAAG;IACJ;AACD,mBAAgB,UAAU;IACxB,GAAG;IACH,GAAG;IACJ;AACD,4BAAyB;KAE3B;GAAC;GAAc;GAAY;GAAW;GAAyB;GAAS;GACxE,KAAK,UAAU,KAAK;GACpB,KAAK,UAAU,aAAa;GAAE;GAAuB;GAAqB;GAA2B;GACrG,KAAK,UAAU,UAAU;GAAC,CAAC;;CAE7B,MAAM,sBAAsB;EAC1B,GAAG;IACA,UAAU,WAAW;IACrB,UAAU,UAAU;GACtB;EACD,GAAG;IACA,UAAU,WAAW;IACrB,UAAU,UAAU;GACtB;EACF;CAED,SAAS,gBAAgB,OAAO;EAC9B,IAAI,EACF,OACA,aACE;EACJ,MAAM,gBAAgB,UAAU,YAAY,MAAM;AAClD,SAAO,UAAU,aAAY,mBAAkB;AAC7C,OAAI,YAAY,CAAC,iBAAiB,CAAC,eAEjC,QAAO;GAGT,MAAM,YAAY;IAChB,GAAG,KAAK,KAAK,MAAM,IAAI,cAAc,EAAE;IACvC,GAAG,KAAK,KAAK,MAAM,IAAI,cAAc,EAAE;IACxC;AAED,UAAO;IACL,GAAG;MACA,UAAU,WAAW,eAAe,EAAE,UAAU,aAAa,UAAU,MAAM;MAC7E,UAAU,UAAU,eAAe,EAAE,UAAU,YAAY,UAAU,MAAM;KAC7E;IACD,GAAG;MACA,UAAU,WAAW,eAAe,EAAE,UAAU,aAAa,UAAU,MAAM;MAC7E,UAAU,UAAU,eAAe,EAAE,UAAU,YAAY,UAAU,MAAM;KAC7E;IACF;KACA;GAAC;GAAU;GAAO;GAAc,CAAC;;CAGtC,SAAS,cAAc,gBAAgB,IAAI;EACzC,MAAM,gBAAgB,MAAM,OAAO,eAAe,IAAI,GAAG,GAAG,KAAA;EAC5D,MAAM,OAAO,gBAAgB,cAAc,KAAK,UAAU;AAC1D,SAAO,UAAU,aAAY,eAAc;GACzC,IAAI;AAEJ,OAAI,MAAM,KACR,QAAO;AAMT,WAAQ,OAAO,QAAQ,OAAO,OAAO,eAAe,OAAO,OAAO;KACjE,CAAC,MAAM,GAAG,CAAC;;CAGhB,SAAS,qBAAqB,SAAS,qBAAqB;AAC1D,SAAOA,QAAM,cAAc,QAAQ,QAAQ,aAAa,WAAW;GACjE,MAAM,EACJ,QAAQ,WACN;GACJ,MAAM,mBAAmB,OAAO,WAAW,KAAI,eAAc;IAC3D,WAAW,UAAU;IACrB,SAAS,oBAAoB,UAAU,SAAS,OAAO;IACxD,EAAE;AACH,UAAO,CAAC,GAAG,aAAa,GAAG,iBAAiB;KAC3C,EAAE,CAAC,EAAE,CAAC,SAAS,oBAAoB,CAAC;;AAGzC,EAAC,SAAU,mBAAmB;AAC5B,oBAAkB,kBAAkB,YAAY,KAAK;AACrD,oBAAkB,kBAAkB,oBAAoB,KAAK;AAC7D,oBAAkB,kBAAkB,mBAAmB,KAAK;IAC3D,QAAQ,sBAAsB,QAAQ,oBAAoB,EAAE,EAAE;AAEjE,EAAC,SAAU,oBAAoB;AAC7B,qBAAmB,eAAe;IACjC,QAAQ,uBAAuB,QAAQ,qBAAqB,EAAE,EAAE;CAEnE,MAAM,+BAA4B,IAAI,KAAK;CAC3C,SAAS,sBAAsB,YAAY,MAAM;EAC/C,IAAI,EACF,UACA,cACA,WACE;EACJ,MAAM,CAAC,OAAO,YAAYA,QAAM,SAAS,KAAK;EAC9C,MAAM,EACJ,WACA,SACA,aACE;EACJ,MAAM,gBAAgBA,QAAM,OAAO,WAAW;EAC9C,MAAM,WAAW,YAAY;EAC7B,MAAM,cAAc,UAAU,eAAe,SAAS;EACtD,MAAM,6BAA6BA,QAAM,YAAY,SAAU,KAAK;AAClE,OAAI,QAAQ,KAAK,EACf,OAAM,EAAE;AAGV,OAAI,YAAY,QACd;AAGF,aAAS,UAAS;AAChB,QAAI,UAAU,KACZ,QAAO;AAGT,WAAO,MAAM,OAAO,IAAI,QAAO,OAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;KAC1D;KACD,CAAC,YAAY,CAAC;EACjB,MAAM,YAAYA,QAAM,OAAO,KAAK;EACpC,MAAM,iBAAiB,UAAU,aAAY,kBAAiB;AAC5D,OAAI,YAAY,CAAC,SACf,QAAO;AAGT,OAAI,CAAC,iBAAiB,kBAAkB,gBAAgB,cAAc,YAAY,cAAc,SAAS,MAAM;IAC7G,MAAM,sBAAM,IAAI,KAAK;AAErB,SAAK,IAAI,aAAa,YAAY;AAChC,SAAI,CAAC,UACH;AAGF,SAAI,SAAS,MAAM,SAAS,KAAK,CAAC,MAAM,SAAS,UAAU,GAAG,IAAI,UAAU,KAAK,SAAS;AAExF,UAAI,IAAI,UAAU,IAAI,UAAU,KAAK,QAAQ;AAC7C;;KAGF,MAAM,OAAO,UAAU,KAAK;KAC5B,MAAM,OAAO,OAAO,IAAI,KAAK,QAAQ,KAAK,EAAE,KAAK,GAAG;AACpD,eAAU,KAAK,UAAU;AAEzB,SAAI,KACF,KAAI,IAAI,UAAU,IAAI,KAAK;;AAI/B,WAAO;;AAGT,UAAO;KACN;GAAC;GAAY;GAAO;GAAU;GAAU;GAAQ,CAAC;AACpD,UAAM,gBAAgB;AACpB,iBAAc,UAAU;KACvB,CAAC,WAAW,CAAC;AAChB,UAAM,gBAAgB;AACpB,OAAI,SACF;AAGF,+BAA4B;KAE9B,CAAC,UAAU,SAAS,CAAC;AACrB,UAAM,gBAAgB;AACpB,OAAI,SAAS,MAAM,SAAS,EAC1B,UAAS,KAAK;KAGlB,CAAC,KAAK,UAAU,MAAM,CAAC,CAAC;AACxB,UAAM,gBAAgB;AACpB,OAAI,YAAY,OAAO,cAAc,YAAY,UAAU,YAAY,KACrE;AAGF,aAAU,UAAU,iBAAiB;AACnC,gCAA4B;AAC5B,cAAU,UAAU;MACnB,UAAU;KAEf;GAAC;GAAW;GAAU;GAA4B,GAAG;GAAa,CAAC;AACnE,SAAO;GACL;GACA;GACA,oBAAoB,SAAS;GAC9B;EAED,SAAS,aAAa;AACpB,WAAQ,UAAR;IACE,KAAK,QAAQ,kBAAkB,OAC7B,QAAO;IAET,KAAK,QAAQ,kBAAkB,eAC7B,QAAO;IAET,QACE,QAAO,CAAC;;;;CAKhB,SAAS,gBAAgB,OAAO,WAAW;AACzC,SAAO,UAAU,aAAY,kBAAiB;AAC5C,OAAI,CAAC,MACH,QAAO;AAGT,OAAI,cACF,QAAO;AAGT,UAAO,OAAO,cAAc,aAAa,UAAU,MAAM,GAAG;KAC3D,CAAC,WAAW,MAAM,CAAC;;CAGxB,SAAS,eAAe,MAAM,SAAS;AACrC,SAAO,gBAAgB,MAAM,QAAQ;;;;;;CAQvC,SAAS,oBAAoB,MAAM;EACjC,IAAI,EACF,UACA,aACE;EACJ,MAAM,kBAAkB,UAAU,SAAS,SAAS;EACpD,MAAM,mBAAmBA,QAAM,cAAc;AAC3C,OAAI,YAAY,OAAO,WAAW,eAAe,OAAO,OAAO,qBAAqB,YAClF;GAGF,MAAM,EACJ,qBACE;AACJ,UAAO,IAAI,iBAAiB,gBAAgB;KAC3C,CAAC,iBAAiB,SAAS,CAAC;AAC/B,UAAM,gBAAgB;AACpB,gBAAa,oBAAoB,OAAO,KAAK,IAAI,iBAAiB,YAAY;KAC7E,CAAC,iBAAiB,CAAC;AACtB,SAAO;;;;;;CAQT,SAAS,kBAAkB,MAAM;EAC/B,IAAI,EACF,UACA,aACE;EACJ,MAAM,eAAe,UAAU,SAAS,SAAS;EACjD,MAAM,iBAAiBA,QAAM,cAAc;AACzC,OAAI,YAAY,OAAO,WAAW,eAAe,OAAO,OAAO,mBAAmB,YAChF;GAGF,MAAM,EACJ,mBACE;AACJ,UAAO,IAAI,eAAe,aAAa;KAEzC,CAAC,SAAS,CAAC;AACX,UAAM,gBAAgB;AACpB,gBAAa,kBAAkB,OAAO,KAAK,IAAI,eAAe,YAAY;KACzE,CAAC,eAAe,CAAC;AACpB,SAAO;;CAGT,SAAS,eAAe,SAAS;AAC/B,SAAO,IAAI,KAAK,cAAc,QAAQ,EAAE,QAAQ;;CAGlD,SAAS,QAAQ,SAAS,SAAS,cAAc;AAC/C,MAAI,YAAY,KAAK,EACnB,WAAU;EAGZ,MAAM,CAAC,MAAM,WAAWA,QAAM,SAAS,KAAK;EAE5C,SAAS,cAAc;AACrB,YAAQ,gBAAe;AACrB,QAAI,CAAC,QACH,QAAO;AAGT,QAAI,QAAQ,gBAAgB,OAAO;KACjC,IAAI;AAIJ,aAAQ,OAAO,eAAe,OAAO,cAAc,iBAAiB,OAAO,OAAO;;IAGpF,MAAM,UAAU,QAAQ,QAAQ;AAEhC,QAAI,KAAK,UAAU,YAAY,KAAK,KAAK,UAAU,QAAQ,CACzD,QAAO;AAGT,WAAO;KACP;;EAGJ,MAAM,mBAAmB,oBAAoB,EAC3C,SAAS,SAAS;AAChB,OAAI,CAAC,QACH;AAGF,QAAK,MAAM,UAAU,SAAS;IAC5B,MAAM,EACJ,MACA,WACE;AAEJ,QAAI,SAAS,eAAe,kBAAkB,eAAe,OAAO,SAAS,QAAQ,EAAE;AACrF,kBAAa;AACb;;;KAKP,CAAC;EACF,MAAM,iBAAiB,kBAAkB,EACvC,UAAU,aACX,CAAC;AACF,YAAU,gCAAgC;AACxC,gBAAa;AAEb,OAAI,SAAS;AACX,oBAAiD,QAAQ,QAAQ;AACjE,sBAAqD,QAAQ,SAAS,MAAM;KAC1E,WAAW;KACX,SAAS;KACV,CAAC;UACG;AACL,oBAAiD,YAAY;AAC7D,sBAAqD,YAAY;;KAElE,CAAC,QAAQ,CAAC;AACb,SAAO;;CAGT,SAAS,aAAa,MAAM;AAE1B,SAAO,aAAa,MADA,gBAAgB,KAAK,CACH;;CAGxC,MAAM,iBAAiB,EAAE;CACzB,SAAS,uBAAuB,MAAM;EACpC,MAAM,eAAeA,QAAM,OAAO,KAAK;EACvC,MAAM,YAAY,UAAU,aAAY,kBAAiB;AACvD,OAAI,CAAC,KACH,QAAO;AAGT,OAAI,iBAAiB,kBAAkB,kBAAkB,QAAQ,aAAa,WAAW,KAAK,eAAe,aAAa,QAAQ,WAChI,QAAO;AAGT,UAAO,uBAAuB,KAAK;KAClC,CAAC,KAAK,CAAC;AACV,UAAM,gBAAgB;AACpB,gBAAa,UAAU;KACtB,CAAC,KAAK,CAAC;AACV,SAAO;;CAGT,SAAS,iBAAiB,UAAU;EAClC,MAAM,CAAC,mBAAmB,wBAAwBA,QAAM,SAAS,KAAK;EACtE,MAAM,eAAeA,QAAM,OAAO,SAAS;EAE3C,MAAM,eAAeA,QAAM,aAAY,UAAS;GAC9C,MAAM,mBAAmB,qBAAqB,MAAM,OAAO;AAE3D,OAAI,CAAC,iBACH;AAGF,yBAAqB,sBAAqB;AACxC,QAAI,CAAC,kBACH,QAAO;AAGT,sBAAkB,IAAI,kBAAkB,qBAAqB,iBAAiB,CAAC;AAC/E,WAAO,IAAI,IAAI,kBAAkB;KACjC;KACD,EAAE,CAAC;AACN,UAAM,gBAAgB;GACpB,MAAM,mBAAmB,aAAa;AAEtC,OAAI,aAAa,kBAAkB;AACjC,YAAQ,iBAAiB;IACzB,MAAM,UAAU,SAAS,KAAI,YAAW;KACtC,MAAM,oBAAoB,qBAAqB,QAAQ;AAEvD,SAAI,mBAAmB;AACrB,wBAAkB,iBAAiB,UAAU,cAAc,EACzD,SAAS,MACV,CAAC;AACF,aAAO,CAAC,mBAAmB,qBAAqB,kBAAkB,CAAC;;AAGrE,YAAO;MACP,CAAC,QAAO,UAAS,SAAS,KAAK;AACjC,yBAAqB,QAAQ,SAAS,IAAI,IAAI,QAAQ,GAAG,KAAK;AAC9D,iBAAa,UAAU;;AAGzB,gBAAa;AACX,YAAQ,SAAS;AACjB,YAAQ,iBAAiB;;GAG3B,SAAS,QAAQ,UAAU;AACzB,aAAS,SAAQ,YAAW;AACA,0BAAqB,QAAQ,EACA,oBAAoB,UAAU,aAAa;MAClG;;KAEH,CAAC,cAAc,SAAS,CAAC;AAC5B,SAAOA,QAAM,cAAc;AACzB,OAAI,SAAS,OACX,QAAO,oBAAoB,MAAM,KAAK,kBAAkB,QAAQ,CAAC,CAAC,QAAQ,KAAK,gBAAgB,UAAU,IAAI,KAAK,YAAY,EAAE,mBAAmB,GAAG,iBAAiB,SAAS;AAGlL,UAAO;KACN,CAAC,UAAU,kBAAkB,CAAC;;CAGnC,SAAS,sBAAsB,eAAe,cAAc;AAC1D,MAAI,iBAAiB,KAAK,EACxB,gBAAe,EAAE;EAGnB,MAAM,uBAAuBA,QAAM,OAAO,KAAK;AAC/C,UAAM,gBAAgB;AACpB,wBAAqB,UAAU;KAEjC,aAAa;AACb,UAAM,gBAAgB;GACpB,MAAM,mBAAmB,kBAAkB;AAE3C,OAAI,oBAAoB,CAAC,qBAAqB,QAC5C,sBAAqB,UAAU;AAGjC,OAAI,CAAC,oBAAoB,qBAAqB,QAC5C,sBAAqB,UAAU;KAEhC,CAAC,cAAc,CAAC;AACnB,SAAO,qBAAqB,UAAU,UAAU,SAAS,eAAe,qBAAqB,QAAQ,GAAG;;CAG1G,SAAS,eAAe,SAAS;AAC/B,UAAM,gBAAgB;AACpB,OAAI,CAAC,UAAU,UACb;GAGF,MAAM,cAAc,QAAQ,KAAI,SAAQ;IACtC,IAAI,EACF,WACE;AACJ,WAAO,OAAO,SAAS,OAAO,KAAK,IAAI,OAAO,OAAO;KACrD;AACF,gBAAa;AACX,SAAK,MAAM,YAAY,YACrB,aAAsC;;KAK5C,QAAQ,KAAI,UAAS;GACnB,IAAI,EACF,WACE;AACJ,UAAO;IACP,CAAC;;CAGL,SAAS,sBAAsB,WAAW,IAAI;AAC5C,SAAOA,QAAM,cAAc;AACzB,UAAO,UAAU,QAAQ,KAAK,SAAS;IACrC,IAAI,EACF,WACA,YACE;AAEJ,QAAI,cAAa,UAAS;AACxB,aAAQ,OAAO,GAAG;;AAGpB,WAAO;MACN,EAAE,CAAC;KACL,CAAC,WAAW,GAAG,CAAC;;CAGrB,SAAS,cAAc,SAAS;AAC9B,SAAOA,QAAM,cAAc,UAAU,oBAAoB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;;CAGtF,MAAM,iBAAiB,EAAE;CACzB,SAAS,SAAS,UAAU,SAAS;AACnC,MAAI,YAAY,KAAK,EACnB,WAAU;EAGZ,MAAM,CAAC,gBAAgB;EACvB,MAAM,aAAa,cAAc,eAAe,UAAU,UAAU,aAAa,GAAG,KAAK;EACzF,MAAM,CAAC,OAAO,YAAYA,QAAM,SAAS,eAAe;EAExD,SAAS,eAAe;AACtB,kBAAe;AACb,QAAI,CAAC,SAAS,OACZ,QAAO;AAGT,WAAO,SAAS,KAAI,YAAW,2BAA2B,QAAQ,GAAG,aAAa,IAAI,KAAK,QAAQ,QAAQ,EAAE,QAAQ,CAAC;KACtH;;EAGJ,MAAM,iBAAiB,kBAAkB,EACvC,UAAU,cACX,CAAC;AACF,YAAU,gCAAgC;AACxC,mBAAiD,YAAY;AAC7D,iBAAc;AACd,YAAS,SAAQ,YAAW,kBAAkB,OAAO,KAAK,IAAI,eAAe,QAAQ,QAAQ,CAAC;KAC7F,CAAC,SAAS,CAAC;AACd,SAAO;;CAGT,SAAS,kBAAkB,MAAM;AAC/B,MAAI,CAAC,KACH,QAAO;AAGT,MAAI,KAAK,SAAS,SAAS,EACzB,QAAO;EAGT,MAAM,aAAa,KAAK,SAAS;AACjC,SAAO,UAAU,cAAc,WAAW,GAAG,aAAa;;CAG5D,SAAS,wBAAwB,MAAM;EACrC,IAAI,EACF,YACE;EACJ,MAAM,CAAC,MAAM,WAAWA,QAAM,SAAS,KAAK;EAiB5C,MAAM,iBAAiB,kBAAkB,EACvC,UAjBmBA,QAAM,aAAY,YAAW;AAChD,QAAK,MAAM,EACT,YACG,QACH,KAAI,UAAU,cAAc,OAAO,EAAE;AACnC,aAAQ,SAAQ;KACd,MAAM,UAAU,QAAQ,OAAO;AAC/B,YAAO,OAAO;MAAE,GAAG;MACjB,OAAO,QAAQ;MACf,QAAQ,QAAQ;MACjB,GAAG;MACJ;AACF;;KAGH,CAAC,QAAQ,CAAC,EAGZ,CAAC;EACF,MAAM,mBAAmBA,QAAM,aAAY,YAAW;GACpD,MAAM,OAAO,kBAAkB,QAAQ;AACvC,mBAAiD,YAAY;AAE7D,OAAI,KACF,iBAAiD,QAAQ,KAAK;AAGhE,WAAQ,OAAO,QAAQ,KAAK,GAAG,KAAK;KACnC,CAAC,SAAS,eAAe,CAAC;EAC7B,MAAM,CAAC,SAAS,UAAU,UAAU,WAAW,iBAAiB;AAChE,SAAOA,QAAM,eAAe;GAC1B;GACA;GACA;GACD,GAAG;GAAC;GAAM;GAAS;GAAO,CAAC;;CAG9B,MAAM,iBAAiB,CAAC;EACtB,QAAQ;EACR,SAAS,EAAE;EACZ,EAAE;EACD,QAAQ;EACR,SAAS,EAAE;EACZ,CAAC;CACF,MAAM,cAAc,EAClB,SAAS,EAAE,EACZ;CACD,MAAM,gCAAgC;EACpC,WAAW,EACT,SAAS,gCACV;EACD,WAAW;GACT,SAAS;GACT,UAAU,QAAQ,kBAAkB;GACpC,WAAW,QAAQ,mBAAmB;GACvC;EACD,aAAa,EACX,SAAS,eACV;EACF;CAED,IAAM,yBAAN,cAAqC,IAAI;EACvC,IAAI,IAAI;GACN,IAAI;AAEJ,UAAO,MAAM,QAAQ,aAAa,MAAM,IAAI,GAAG,KAAK,OAAO,aAAa,KAAA,IAAY,KAAA;;EAGtF,UAAU;AACR,UAAO,MAAM,KAAK,KAAK,QAAQ,CAAC;;EAGlC,aAAa;AACX,UAAO,KAAK,SAAS,CAAC,QAAO,SAAQ;IACnC,IAAI,EACF,aACE;AACJ,WAAO,CAAC;KACR;;EAGJ,WAAW,IAAI;GACb,IAAI,uBAAuB;AAE3B,WAAQ,yBAAyB,YAAY,KAAK,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,UAAU,KAAK,YAAY,OAAO,wBAAwB,KAAA;;;CAK5I,MAAM,uBAAuB;EAC3B,gBAAgB;EAChB,QAAQ;EACR,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,gCAA6B,IAAI,KAAK;EACtC,gCAA6B,IAAI,KAAK;EACtC,qCAAkC,IAAI,wBAAwB;EAC9D,MAAM;EACN,aAAa;GACX,SAAS,EACP,SAAS,MACV;GACD,MAAM;GACN,QAAQ;GACT;EACD,qBAAqB,EAAE;EACvB,yBAAyB,EAAE;EAC3B,wBAAwB;EACxB,4BAA4B;EAC5B,YAAY;EACZ,oBAAoB;EACrB;CACD,MAAM,yBAAyB;EAC7B,gBAAgB;EAChB,YAAY,EAAE;EACd,QAAQ;EACR,gBAAgB;EAChB,mBAAmB,EACjB,WAAW,IACZ;EACD,UAAU;EACV,gCAA6B,IAAI,KAAK;EACtC,MAAM;EACN,4BAA4B;EAC7B;CACD,MAAM,kBAA+B,wBAAM,cAAc,uBAAuB;CAChF,MAAM,gBAA6B,wBAAM,cAAc,qBAAqB;CAE5E,SAAS,kBAAkB;AACzB,SAAO;GACL,WAAW;IACT,QAAQ;IACR,oBAAoB;KAClB,GAAG;KACH,GAAG;KACJ;IACD,uBAAO,IAAI,KAAK;IAChB,WAAW;KACT,GAAG;KACH,GAAG;KACJ;IACF;GACD,WAAW,EACT,YAAY,IAAI,wBAAwB,EACzC;GACF;;CAEH,SAAS,QAAQ,OAAO,QAAQ;AAC9B,UAAQ,OAAO,MAAf;GACE,KAAK,OAAO,UACV,QAAO;IAAE,GAAG;IACV,WAAW;KAAE,GAAG,MAAM;KACpB,oBAAoB,OAAO;KAC3B,QAAQ,OAAO;KAChB;IACF;GAEH,KAAK,OAAO;AACV,QAAI,MAAM,UAAU,UAAU,KAC5B,QAAO;AAGT,WAAO;KAAE,GAAG;KACV,WAAW;MAAE,GAAG,MAAM;MACpB,WAAW;OACT,GAAG,OAAO,YAAY,IAAI,MAAM,UAAU,mBAAmB;OAC7D,GAAG,OAAO,YAAY,IAAI,MAAM,UAAU,mBAAmB;OAC9D;MACF;KACF;GAEH,KAAK,OAAO;GACZ,KAAK,OAAO,WACV,QAAO;IAAE,GAAG;IACV,WAAW;KAAE,GAAG,MAAM;KACpB,QAAQ;KACR,oBAAoB;MAClB,GAAG;MACH,GAAG;MACJ;KACD,WAAW;MACT,GAAG;MACH,GAAG;MACJ;KACF;IACF;GAEH,KAAK,OAAO,mBACV;IACE,MAAM,EACJ,YACE;IACJ,MAAM,EACJ,OACE;IACJ,MAAM,aAAa,IAAI,uBAAuB,MAAM,UAAU,WAAW;AACzE,eAAW,IAAI,IAAI,QAAQ;AAC3B,WAAO;KAAE,GAAG;KACV,WAAW;MAAE,GAAG,MAAM;MACpB;MACD;KACF;;GAGL,KAAK,OAAO,sBACV;IACE,MAAM,EACJ,IACA,KACA,aACE;IACJ,MAAM,UAAU,MAAM,UAAU,WAAW,IAAI,GAAG;AAElD,QAAI,CAAC,WAAW,QAAQ,QAAQ,IAC9B,QAAO;IAGT,MAAM,aAAa,IAAI,uBAAuB,MAAM,UAAU,WAAW;AACzE,eAAW,IAAI,IAAI;KAAE,GAAG;KACtB;KACD,CAAC;AACF,WAAO;KAAE,GAAG;KACV,WAAW;MAAE,GAAG,MAAM;MACpB;MACD;KACF;;GAGL,KAAK,OAAO,qBACV;IACE,MAAM,EACJ,IACA,QACE;IACJ,MAAM,UAAU,MAAM,UAAU,WAAW,IAAI,GAAG;AAElD,QAAI,CAAC,WAAW,QAAQ,QAAQ,IAC9B,QAAO;IAGT,MAAM,aAAa,IAAI,uBAAuB,MAAM,UAAU,WAAW;AACzE,eAAW,OAAO,GAAG;AACrB,WAAO;KAAE,GAAG;KACV,WAAW;MAAE,GAAG,MAAM;MACpB;MACD;KACF;;GAGL,QAEI,QAAO;;;CAKf,SAAS,aAAa,MAAM;EAC1B,IAAI,EACF,aACE;EACJ,MAAM,EACJ,QACA,gBACA,mBACEA,QAAM,WAAW,gBAAgB;EACrC,MAAM,yBAAyB,UAAU,YAAY,eAAe;EACpE,MAAM,mBAAmB,UAAU,YAAY,UAAU,OAAO,KAAK,IAAI,OAAO,GAAG;AAEnF,UAAM,gBAAgB;AACpB,OAAI,SACF;AAGF,OAAI,CAAC,kBAAkB,0BAA0B,oBAAoB,MAAM;AACzE,QAAI,CAAC,UAAU,gBAAgB,uBAAuB,CACpD;AAGF,QAAI,SAAS,kBAAkB,uBAAuB,OAEpD;IAGF,MAAM,gBAAgB,eAAe,IAAI,iBAAiB;AAE1D,QAAI,CAAC,cACH;IAGF,MAAM,EACJ,eACA,SACE;AAEJ,QAAI,CAAC,cAAc,WAAW,CAAC,KAAK,QAClC;AAGF,gCAA4B;AAC1B,UAAK,MAAM,WAAW,CAAC,cAAc,SAAS,KAAK,QAAQ,EAAE;AAC3D,UAAI,CAAC,QACH;MAGF,MAAM,gBAAgB,UAAU,uBAAuB,QAAQ;AAE/D,UAAI,eAAe;AACjB,qBAAc,OAAO;AACrB;;;MAGJ;;KAEH;GAAC;GAAgB;GAAU;GAAgB;GAAkB;GAAuB,CAAC;AACxF,SAAO;;CAGT,SAAS,eAAe,WAAW,MAAM;EACvC,IAAI,EACF,WACA,GAAG,SACD;AACJ,SAAO,aAAa,QAAQ,UAAU,SAAS,UAAU,QAAQ,aAAa,aAAa;AACzF,UAAO,SAAS;IACd,WAAW;IACX,GAAG;IACJ,CAAC;KACD,UAAU,GAAG;;CAGlB,SAAS,0BAA0B,QAAQ;AACzC,SAAOA,QAAM,eAAe;GAC1B,WAAW;IAAE,GAAG,8BAA8B;IAC5C,GAAI,UAAU,OAAO,KAAK,IAAI,OAAO;IACtC;GACD,WAAW;IAAE,GAAG,8BAA8B;IAC5C,GAAI,UAAU,OAAO,KAAK,IAAI,OAAO;IACtC;GACD,aAAa;IAAE,GAAG,8BAA8B;IAC9C,GAAI,UAAU,OAAO,KAAK,IAAI,OAAO;IACtC;GACF,GACD;GAAC,UAAU,OAAO,KAAK,IAAI,OAAO;GAAW,UAAU,OAAO,KAAK,IAAI,OAAO;GAAW,UAAU,OAAO,KAAK,IAAI,OAAO;GAAY,CAAC;;CAGzI,SAAS,iCAAiC,MAAM;EAC9C,IAAI,EACF,YACA,SACA,aACA,SAAS,SACP;EACJ,MAAM,cAAcA,QAAM,OAAO,MAAM;EACvC,MAAM,EACJ,GACA,MACE,OAAO,WAAW,YAAY;GAChC,GAAG;GACH,GAAG;GACJ,GAAG;AACJ,YAAU,gCAAgC;AAGxC,OAFiB,CAAC,KAAK,CAAC,KAER,CAAC,YAAY;AAC3B,gBAAY,UAAU;AACtB;;AAGF,OAAI,YAAY,WAAW,CAAC,YAG1B;GAIF,MAAM,OAAO,cAAc,OAAO,KAAK,IAAI,WAAW,KAAK;AAE3D,OAAI,CAAC,QAAQ,KAAK,gBAAgB,MAGhC;GAIF,MAAM,YAAY,aADL,QAAQ,KAAK,EACW,YAAY;AAEjD,OAAI,CAAC,EACH,WAAU,IAAI;AAGhB,OAAI,CAAC,EACH,WAAU,IAAI;AAIhB,eAAY,UAAU;AAEtB,OAAI,KAAK,IAAI,UAAU,EAAE,GAAG,KAAK,KAAK,IAAI,UAAU,EAAE,GAAG,GAAG;IAC1D,MAAM,0BAA0B,2BAA2B,KAAK;AAEhE,QAAI,wBACF,yBAAwB,SAAS;KAC/B,KAAK,UAAU;KACf,MAAM,UAAU;KACjB,CAAC;;KAGL;GAAC;GAAY;GAAG;GAAG;GAAa;GAAQ,CAAC;;CAG9C,MAAM,yBAAsC,wBAAM,cAAc;EAAE,GAAG;EACnE,QAAQ;EACR,QAAQ;EACT,CAAC;CACF,IAAI;AAEJ,EAAC,SAAU,QAAQ;AACjB,SAAO,OAAO,mBAAmB,KAAK;AACtC,SAAO,OAAO,kBAAkB,KAAK;AACrC,SAAO,OAAO,iBAAiB,KAAK;IACnC,WAAW,SAAS,EAAE,EAAE;CAE3B,MAAM,aAA0B,wBAAM,KAAK,SAAS,WAAW,MAAM;EACnE,IAAI,uBAAuB,uBAAuB,mBAAmB;EAErE,IAAI,EACF,IACA,eACA,aAAa,MACb,UACA,UAAU,gBACV,qBAAqB,kBACrB,WACA,WACA,GAAG,UACD;EAEJ,MAAM,CAAC,OAAO,YADAA,QAAM,WAAW,SAAS,KAAA,GAAW,gBAAgB;EAEnE,MAAM,CAAC,sBAAsB,2BAA2B,uBAAuB;EAC/E,MAAM,CAAC,QAAQ,aAAaA,QAAM,SAAS,OAAO,cAAc;EAChE,MAAM,gBAAgB,WAAW,OAAO;EACxC,MAAM,EACJ,WAAW,EACT,QAAQ,UACR,OAAO,gBACP,aAEF,WAAW,EACT,YAAY,0BAEZ;EACJ,MAAM,OAAO,YAAY,OAAO,eAAe,IAAI,SAAS,GAAG;EAC/D,MAAM,cAAcA,QAAM,OAAO;GAC/B,SAAS;GACT,YAAY;GACb,CAAC;EACF,MAAM,SAASA,QAAM,cAAc;GACjC,IAAI;AAEJ,UAAO,YAAY,OAAO;IACxB,IAAI;IAEJ,OAAO,aAAa,QAAQ,OAAO,KAAK,IAAI,KAAK,SAAS,OAAO,aAAa;IAC9E,MAAM;IACP,GAAG;KACH,CAAC,UAAU,KAAK,CAAC;EACpB,MAAM,YAAYA,QAAM,OAAO,KAAK;EACpC,MAAM,CAAC,cAAc,mBAAmBA,QAAM,SAAS,KAAK;EAC5D,MAAM,CAAC,gBAAgB,qBAAqBA,QAAM,SAAS,KAAK;EAChE,MAAM,cAAc,UAAU,eAAe,OAAO,OAAO,OAAO,MAAM,CAAC;EACzE,MAAM,yBAAyB,UAAU,YAAY,kBAAkB,GAAG;EAC1E,MAAM,6BAA6BA,QAAM,cAAc,oBAAoB,YAAY,EAAE,CAAC,oBAAoB,CAAC;EAC/G,MAAM,yBAAyB,0BAA0B,UAAU;EACnE,MAAM,EACJ,gBACA,4BACA,uBACE,sBAAsB,4BAA4B;GACpD,UAAU;GACV,cAAc,CAAC,UAAU,GAAG,UAAU,EAAE;GACxC,QAAQ,uBAAuB;GAChC,CAAC;EACF,MAAM,aAAa,cAAc,gBAAgB,SAAS;EAC1D,MAAM,wBAAwBA,QAAM,cAAc,iBAAiB,UAAU,oBAAoB,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;EAC1I,MAAM,oBAAoB,wBAAwB;EAClD,MAAM,wBAAwB,eAAe,YAAY,uBAAuB,UAAU,QAAQ;AAClG,mCAAiC;GAC/B,YAAY,YAAY,OAAO,eAAe,IAAI,SAAS,GAAG;GAC9D,QAAQ,kBAAkB;GAC1B,aAAa;GACb,SAAS,uBAAuB,UAAU;GAC3C,CAAC;EACF,MAAM,iBAAiB,QAAQ,YAAY,uBAAuB,UAAU,SAAS,sBAAsB;EAC3G,MAAM,oBAAoB,QAAQ,aAAa,WAAW,gBAAgB,KAAK;EAC/E,MAAM,gBAAgBA,QAAM,OAAO;GACjC,gBAAgB;GAChB,QAAQ;GACR;GACA,eAAe;GACf,YAAY;GACZ;GACA;GACA,cAAc;GACd,kBAAkB;GAClB;GACA,MAAM;GACN,qBAAqB,EAAE;GACvB,yBAAyB;GAC1B,CAAC;EACF,MAAM,WAAW,oBAAoB,YAAY,wBAAwB,cAAc,QAAQ,SAAS,OAAO,KAAK,IAAI,sBAAsB,GAAG;EACjJ,MAAM,cAAc,wBAAwB,EAC1C,SAAS,uBAAuB,YAAY,SAC7C,CAAC;EAEF,MAAM,gBAAgB,wBAAwB,YAAY,QAAQ,YAAY,OAAO,wBAAwB;EAC7G,MAAM,mBAAmB,iBAAiB,oBAAoB,YAAY,SAAS,OAAO,oBAAoB,iBAAiB;EAC/H,MAAM,kBAAkB,QAAQ,YAAY,QAAQ,WAAW,YAAY,KAAK;EAGhF,MAAM,gBAAgB,aAAa,kBAAkB,OAAO,eAAe;EAE3E,MAAM,aAAa,cAAc,eAAe,UAAU,UAAU,aAAa,GAAG,KAAK;EAEzF,MAAM,sBAAsB,uBAAuB,gBAAgB,YAAY,OAAO,WAAW,aAAa,KAAK;EACnH,MAAM,0BAA0B,SAAS,oBAAoB;EAE7D,MAAM,oBAAoB,eAAe,WAAW;GAClD,WAAW;IACT,GAAG,UAAU,IAAI,cAAc;IAC/B,GAAG,UAAU,IAAI,cAAc;IAC/B,QAAQ;IACR,QAAQ;IACT;GACD;GACA;GACA;GACA;GACA;GACA,MAAM,cAAc,QAAQ;GAC5B,iBAAiB,YAAY;GAC7B;GACA;GACA;GACD,CAAC;EACF,MAAM,qBAAqB,wBAAwB,UAAU,IAAI,uBAAuB,UAAU,GAAG;EACrG,MAAM,gBAAgB,iBAAiB,oBAAoB;EAE3D,MAAM,mBAAmB,sBAAsB,cAAc;EAE7D,MAAM,wBAAwB,sBAAsB,eAAe,CAAC,eAAe,CAAC;EACpF,MAAM,0BAA0B,UAAU,IAAI,mBAAmB,iBAAiB;EAClF,MAAM,gBAAgB,mBAAmB,gBAAgB,kBAAkB,kBAAkB,GAAG;EAChG,MAAM,aAAa,UAAU,gBAAgB,mBAAmB;GAC9D;GACA;GACA;GACA,qBAAqB;GACrB;GACD,CAAC,GAAG;EACL,MAAM,SAAS,kBAAkB,YAAY,KAAK;EAClD,MAAM,CAAC,MAAM,WAAWA,QAAM,SAAS,KAAK;EAI5C,MAAM,YAAY,YADO,kBAAkB,oBAAoB,UAAU,IAAI,mBAAmB,sBAAsB,GACrE,aAAa,QAAQ,OAAO,KAAK,IAAI,KAAK,SAAS,OAAO,aAAa,MAAM,eAAe;EAC7I,MAAM,kBAAkBA,QAAM,OAAO,KAAK;EAC1C,MAAM,oBAAoBA,QAAM,aAAa,OAAO,UAAU;GAC5D,IAAI,EACF,QAAQ,QACR,YACE;AAEJ,OAAI,UAAU,WAAW,KACvB;GAGF,MAAM,aAAa,eAAe,IAAI,UAAU,QAAQ;AAExD,OAAI,CAAC,WACH;GAGF,MAAM,iBAAiB,MAAM;AAwG7B,mBAAgB,UAvGO,IAAI,OAAO;IAChC,QAAQ,UAAU;IAClB;IACA,OAAO;IACP;IAGA,SAAS;IAET,QAAQ,IAAI;AAGV,SAAI,CAFkB,eAAe,IAAI,GAAG,CAG1C;KAGF,MAAM,EACJ,gBACE,YAAY;KAChB,MAAM,QAAQ,EACZ,IACD;AACD,mBAA2C,MAAM;AACjD,0BAAqB;MACnB,MAAM;MACN;MACD,CAAC;;IAGJ,UAAU,IAAI,YAAY,oBAAoB,QAAQ;AAGpD,SAAI,CAFkB,eAAe,IAAI,GAAG,CAG1C;KAGF,MAAM,EACJ,kBACE,YAAY;KAChB,MAAM,QAAQ;MACZ;MACA;MACA;MACA;MACD;AACD,qBAA+C,MAAM;AACrD,0BAAqB;MACnB,MAAM;MACN;MACD,CAAC;;IAGJ,QAAQ,oBAAoB;KAC1B,MAAM,KAAK,UAAU;AAErB,SAAI,MAAM,KACR;KAGF,MAAM,gBAAgB,eAAe,IAAI,GAAG;AAE5C,SAAI,CAAC,cACH;KAGF,MAAM,EACJ,gBACE,YAAY;KAChB,MAAM,QAAQ;MACZ;MACA,QAAQ;OACN;OACA,MAAM,cAAc;OACpB,MAAM;OACP;MACF;AACD,cAAS,8BAA8B;AACrC,oBAA2C,MAAM;AACjD,gBAAU,OAAO,aAAa;AAC9B,eAAS;OACP,MAAM,OAAO;OACb;OACA,QAAQ;OACT,CAAC;AACF,2BAAqB;OACnB,MAAM;OACN;OACD,CAAC;AACF,sBAAgB,gBAAgB,QAAQ;AACxC,wBAAkB,eAAe;OACjC;;IAGJ,OAAO,aAAa;AAClB,cAAS;MACP,MAAM,OAAO;MACb;MACD,CAAC;;IAGJ,OAAO,cAAc,OAAO,QAAQ;IACpC,UAAU,cAAc,OAAO,WAAW;IAC3C,CAAC;GAGF,SAAS,cAAc,MAAM;AAC3B,WAAO,eAAe,UAAU;KAC9B,MAAM,EACJ,QACA,YACA,MACA,4BACE,cAAc;KAClB,IAAI,QAAQ;AAEZ,SAAI,UAAU,yBAAyB;MACrC,MAAM,EACJ,eACE,YAAY;AAChB,cAAQ;OACN;OACQ;OACR;OACA,OAAO;OACP;OACD;AAED,UAAI,SAAS,OAAO,WAAW,OAAO,eAAe;WAC9B,MAAM,QAAQ,QAAQ,WAAW,MAAM,CAAC,CAG3D,QAAO,OAAO;;;AAKpB,eAAU,UAAU;AACpB,cAAS,8BAA8B;AACrC,eAAS,EACP,MACD,CAAC;AACF,gBAAU,OAAO,cAAc;AAC/B,cAAQ,KAAK;AACb,sBAAgB,KAAK;AACrB,wBAAkB,KAAK;AACvB,sBAAgB,UAAU;MAC1B,MAAM,YAAY,SAAS,OAAO,UAAU,cAAc;AAE1D,UAAI,OAAO;OACT,MAAM,UAAU,YAAY,QAAQ;AACpC,iBAAmC,MAAM;AACzC,4BAAqB;QACnB,MAAM;QACN;QACD,CAAC;;OAEJ;;;KAIR,CAAC,eAAe,CAAC;EA2BjB,MAAM,aAAa,qBAAqB,SA1BEA,QAAM,aAAa,SAAS,WAAW;AAC/E,WAAQ,OAAO,WAAW;IACxB,MAAM,cAAc,MAAM;IAC1B,MAAM,sBAAsB,eAAe,IAAI,OAAO;AAEtD,QACA,UAAU,YAAY,QACtB,CAAC,uBACD,YAAY,UAAU,YAAY,iBAChC;IAGF,MAAM,oBAAoB,EACxB,QAAQ,qBACT;AAGD,QAFuB,QAAQ,OAAO,OAAO,SAAS,kBAAkB,KAEjD,MAAM;AAC3B,iBAAY,SAAS,EACnB,YAAY,OAAO,QACpB;AACD,eAAU,UAAU;AACpB,uBAAkB,OAAO,OAAO;;;KAGnC,CAAC,gBAAgB,kBAAkB,CAAC,CAC4C;AACnF,iBAAe,QAAQ;AACvB,YAAU,gCAAgC;AACxC,OAAI,kBAAkB,WAAW,OAAO,aACtC,WAAU,OAAO,YAAY;KAE9B,CAAC,gBAAgB,OAAO,CAAC;AAC5B,UAAM,gBAAgB;GACpB,MAAM,EACJ,eACE,YAAY;GAChB,MAAM,EACJ,QACA,gBACA,YACA,SACE,cAAc;AAElB,OAAI,CAAC,UAAU,CAAC,eACd;GAGF,MAAM,QAAQ;IACZ;IACA;IACA;IACA,OAAO;KACL,GAAG,wBAAwB;KAC3B,GAAG,wBAAwB;KAC5B;IACD;IACD;AACD,YAAS,8BAA8B;AACrC,iBAAyC,MAAM;AAC/C,yBAAqB;KACnB,MAAM;KACN;KACD,CAAC;KACF;KAEJ,CAAC,wBAAwB,GAAG,wBAAwB,EAAE,CAAC;AACvD,UAAM,gBAAgB;GACpB,MAAM,EACJ,QACA,gBACA,YACA,qBACA,4BACE,cAAc;AAElB,OAAI,CAAC,UAAU,UAAU,WAAW,QAAQ,CAAC,kBAAkB,CAAC,wBAC9D;GAGF,MAAM,EACJ,eACE,YAAY;GAChB,MAAM,gBAAgB,oBAAoB,IAAI,OAAO;GACrD,MAAM,OAAO,iBAAiB,cAAc,KAAK,UAAU;IACzD,IAAI,cAAc;IAClB,MAAM,cAAc,KAAK;IACzB,MAAM,cAAc;IACpB,UAAU,cAAc;IACzB,GAAG;GACJ,MAAM,QAAQ;IACZ;IACA;IACA;IACA,OAAO;KACL,GAAG,wBAAwB;KAC3B,GAAG,wBAAwB;KAC5B;IACD;IACD;AACD,YAAS,8BAA8B;AACrC,YAAQ,KAAK;AACb,iBAAyC,MAAM;AAC/C,yBAAqB;KACnB,MAAM;KACN;KACD,CAAC;KACF;KAEJ,CAAC,OAAO,CAAC;AACT,YAAU,gCAAgC;AACxC,iBAAc,UAAU;IACtB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD;AACD,eAAY,UAAU;IACpB,SAAS;IACT,YAAY;IACb;KACA;GAAC;GAAQ;GAAY;GAAY;GAAe;GAAgB;GAAc;GAAkB;GAAgB;GAAqB;GAAM;GAAqB;GAAwB,CAAC;AAC5L,kBAAgB;GAAE,GAAG;GACnB,OAAO;GACP,cAAc;GACd;GACA;GACA;GACD,CAAC;EACF,MAAM,gBAAgBA,QAAM,cAAc;AAoBxC,UAnBgB;IACd;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACD;KAEA;GAAC;GAAQ;GAAY;GAAgB;GAAgB;GAAY;GAAmB;GAAa;GAAgB;GAAqB;GAAgB;GAAM;GAA4B;GAAqB;GAAyB;GAAwB;GAAoB;GAAW,CAAC;EACjS,MAAM,kBAAkBA,QAAM,cAAc;AAc1C,UAbgB;IACd;IACA;IACA;IACA;IACA,mBAAmB,EACjB,WAAW,wBACZ;IACD;IACA;IACA;IACA;IACD;KAEA;GAAC;GAAgB;GAAY;GAAQ;GAAgB;GAAU;GAAwB;GAAgB;GAAM;GAA2B,CAAC;AAC5I,SAAO,eAAe,cAAc,kBAAkB,UAAU,EAC9D,OAAO,yBACR,EAAE,eAAe,cAAc,gBAAgB,UAAU,EACxD,OAAO,iBACR,EAAE,eAAe,cAAc,cAAc,UAAU,EACtD,OAAO,eACR,EAAE,eAAe,cAAc,uBAAuB,UAAU,EAC/D,OAAO,WACR,EAAE,SAAS,CAAC,EAAE,eAAe,cAAc,cAAc,EACxD,WAAW,iBAAiB,OAAO,KAAK,IAAI,cAAc,kBAAkB,OAC7E,CAAC,CAAC,EAAE,eAAe,cAAc,eAAe;GAAE,GAAG;GACpD,yBAAyB;GAC1B,CAAC,CAAC;EAEH,SAAS,yBAAyB;GAChC,MAAM,kCAAkC,gBAAgB,OAAO,KAAK,IAAI,aAAa,uBAAuB;GAC5G,MAAM,6BAA6B,OAAO,eAAe,WAAW,WAAW,YAAY,QAAQ,eAAe;GAClH,MAAM,UAAU,iBAAiB,CAAC,kCAAkC,CAAC;AAErE,OAAI,OAAO,eAAe,SACxB,QAAO;IAAE,GAAG;IACV;IACD;AAGH,UAAO,EACL,SACD;;GAEH;CAEF,MAAM,cAA2B,wBAAM,cAAc,KAAK;CAC1D,MAAM,cAAc;CACpB,MAAM,YAAY;CAClB,SAAS,aAAa,MAAM;EAC1B,IAAI,EACF,IACA,MACA,WAAW,OACX,eACE;EACJ,MAAM,MAAM,UAAU,YAAY,UAAU;EAC5C,MAAM,EACJ,YACA,gBACA,QACA,gBACA,mBACA,gBACA,SACEA,QAAM,WAAW,gBAAgB;EACrC,MAAM,EACJ,OAAO,aACP,kBAAkB,aAClB,WAAW,MACT,cAAc,OAAO,aAAa,EAAE;EACxC,MAAM,cAAc,UAAU,OAAO,KAAK,IAAI,OAAO,QAAQ;EAC7D,MAAM,YAAYA,QAAM,WAAW,aAAa,yBAAyB,YAAY;EACrF,MAAM,CAAC,MAAM,cAAc,UAAU,YAAY;EACjD,MAAM,CAAC,eAAe,uBAAuB,UAAU,YAAY;EACnE,MAAM,YAAY,sBAAsB,YAAY,GAAG;EACvD,MAAM,UAAU,UAAU,eAAe,KAAK;AAC9C,YAAU,gCAAgC;AACxC,kBAAe,IAAI,IAAI;IACrB;IACA;IACA;IACA;IACA,MAAM;IACP,CAAC;AACF,gBAAa;IACX,MAAM,OAAO,eAAe,IAAI,GAAG;AAEnC,QAAI,QAAQ,KAAK,QAAQ,IACvB,gBAAe,OAAO,GAAG;;KAI/B,CAAC,gBAAgB,GAAG,CAAC;AASrB,SAAO;GACL;GACA;GACA;GACA,YAZyBA,QAAM,eAAe;IAC9C;IACA;IACA,iBAAiB;IACjB,gBAAgB,cAAc,SAAS,cAAc,OAAO,KAAA;IAC5D,wBAAwB;IACxB,oBAAoB,kBAAkB;IACvC,GAAG;IAAC;IAAU;IAAM;IAAU;IAAY;IAAiB,kBAAkB;IAAU,CAAC;GAMvF;GACA,WAAW,WAAW,KAAA,IAAY;GAClC;GACA;GACA;GACA;GACA;GACD;;CAGH,SAAS,gBAAgB;AACvB,SAAOA,QAAM,WAAW,cAAc;;CAGxC,MAAM,cAAc;CACpB,MAAM,8BAA8B,EAClC,SAAS,IACV;CACD,SAAS,aAAa,MAAM;EAC1B,IAAI,EACF,MACA,WAAW,OACX,IACA,yBACE;EACJ,MAAM,MAAM,UAAU,YAAY,YAAY;EAC9C,MAAM,EACJ,QACA,UACA,MACA,+BACEA,QAAM,WAAW,gBAAgB;EACrC,MAAM,WAAWA,QAAM,OAAO,EAC5B,UACD,CAAC;EACF,MAAM,0BAA0BA,QAAM,OAAO,MAAM;EACnD,MAAM,OAAOA,QAAM,OAAO,KAAK;EAC/B,MAAM,aAAaA,QAAM,OAAO,KAAK;EACrC,MAAM,EACJ,UAAU,wBACV,uBACA,SAAS,0BACP;GAAE,GAAG;GACP,GAAG;GACJ;EACD,MAAM,MAAM,UAAU,eAAe,yBAAyB,OAAO,wBAAwB,GAAG;EAmBhG,MAAM,iBAAiB,kBAAkB;GACvC,UAnBmBA,QAAM,kBAAkB;AAC3C,QAAI,CAAC,wBAAwB,SAAS;AAGpC,6BAAwB,UAAU;AAClC;;AAGF,QAAI,WAAW,WAAW,KACxB,cAAa,WAAW,QAAQ;AAGlC,eAAW,UAAU,iBAAiB;AACpC,gCAA2B,MAAM,QAAQ,IAAI,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,QAAQ,CAAC;AACpF,gBAAW,UAAU;OACpB,sBAAsB;MAE3B,CAAC,sBAAsB,CAAC;GAGtB,UAAU,0BAA0B,CAAC;GACtC,CAAC;EACF,MAAM,mBAAmBA,QAAM,aAAa,YAAY,oBAAoB;AAC1E,OAAI,CAAC,eACH;AAGF,OAAI,iBAAiB;AACnB,mBAAe,UAAU,gBAAgB;AACzC,4BAAwB,UAAU;;AAGpC,OAAI,WACF,gBAAe,QAAQ,WAAW;KAEnC,CAAC,eAAe,CAAC;EACpB,MAAM,CAAC,SAAS,cAAc,UAAU,WAAW,iBAAiB;EACpE,MAAM,UAAU,UAAU,eAAe,KAAK;AAC9C,UAAM,gBAAgB;AACpB,OAAI,CAAC,kBAAkB,CAAC,QAAQ,QAC9B;AAGF,kBAAe,YAAY;AAC3B,2BAAwB,UAAU;AAClC,kBAAe,QAAQ,QAAQ,QAAQ;KACtC,CAAC,SAAS,eAAe,CAAC;AAC7B,UAAM,gBAAgB;AACpB,YAAS;IACP,MAAM,OAAO;IACb,SAAS;KACP;KACA;KACA;KACA,MAAM;KACN;KACA,MAAM;KACP;IACF,CAAC;AACF,gBAAa,SAAS;IACpB,MAAM,OAAO;IACb;IACA;IACD,CAAC;KAEJ,CAAC,GAAG,CAAC;AACL,UAAM,gBAAgB;AACpB,OAAI,aAAa,SAAS,QAAQ,UAAU;AAC1C,aAAS;KACP,MAAM,OAAO;KACb;KACA;KACA;KACD,CAAC;AACF,aAAS,QAAQ,WAAW;;KAE7B;GAAC;GAAI;GAAK;GAAU;GAAS,CAAC;AACjC,SAAO;GACL;GACA;GACA,SAAS,QAAQ,OAAO,KAAK,IAAI,KAAK,QAAQ;GAC9C,MAAM;GACN;GACA;GACD;;CAGH,SAAS,iBAAiB,MAAM;EAC9B,IAAI,EACF,WACA,aACE;EACJ,MAAM,CAAC,gBAAgB,qBAAqBA,QAAM,SAAS,KAAK;EAChE,MAAM,CAAC,SAAS,cAAcA,QAAM,SAAS,KAAK;EAClD,MAAM,mBAAmB,UAAU,YAAY,SAAS;AAExD,MAAI,CAAC,YAAY,CAAC,kBAAkB,iBAClC,mBAAkB,iBAAiB;AAGrC,YAAU,gCAAgC;AACxC,OAAI,CAAC,QACH;GAGF,MAAM,MAAM,kBAAkB,OAAO,KAAK,IAAI,eAAe;GAC7D,MAAM,KAAK,kBAAkB,OAAO,KAAK,IAAI,eAAe,MAAM;AAElE,OAAI,OAAO,QAAQ,MAAM,MAAM;AAC7B,sBAAkB,KAAK;AACvB;;AAGF,WAAQ,QAAQ,UAAU,IAAI,QAAQ,CAAC,CAAC,WAAW;AACjD,sBAAkB,KAAK;KACvB;KACD;GAAC;GAAW;GAAgB;GAAQ,CAAC;AACxC,SAAO,eAAe,cAAc,eAAe,UAAU,MAAM,UAAU,iBAAiBA,QAAM,aAAa,gBAAgB,EAC/H,KAAK,YACN,CAAC,GAAG,KAAK;;CAGZ,MAAM,mBAAmB;EACvB,GAAG;EACH,GAAG;EACH,QAAQ;EACR,QAAQ;EACT;CACD,SAAS,yBAAyB,MAAM;EACtC,IAAI,EACF,aACE;AACJ,SAAO,eAAe,cAAc,gBAAgB,UAAU,EAC5D,OAAO,wBACR,EAAE,eAAe,cAAc,uBAAuB,UAAU,EAC/D,OAAO,kBACR,EAAE,SAAS,CAAC;;CAGf,MAAM,aAAa;EACjB,UAAU;EACV,aAAa;EACd;CAED,MAAM,qBAAoB,mBAAkB;AAE1C,SAD4B,UAAU,gBAAgB,eAAe,GACxC,yBAAyB,KAAA;;CAGxD,MAAM,oBAAiC,wBAAM,YAAY,MAAM,QAAQ;EACrE,IAAI,EACF,IACA,gBACA,aACA,UACA,WACA,MACA,OACA,WACA,aAAa,sBACX;AAEJ,MAAI,CAAC,KACH,QAAO;EAGT,MAAM,yBAAyB,cAAc,YAAY;GAAE,GAAG;GAC5D,QAAQ;GACR,QAAQ;GACT;EACD,MAAM,SAAS;GAAE,GAAG;GAClB,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,KAAK,KAAK;GACV,MAAM,KAAK;GACX,WAAW,UAAU,IAAI,UAAU,SAAS,uBAAuB;GACnE,iBAAiB,eAAe,iBAAiB,2BAA2B,gBAAgB,KAAK,GAAG,KAAA;GACpG,YAAY,OAAO,eAAe,aAAa,WAAW,eAAe,GAAG;GAC5E,GAAG;GACJ;AACD,SAAO,eAAe,cAAc,IAAI;GACtC;GACA,OAAO;GACP;GACD,EAAE,SAAS;GACZ;CAEF,MAAM,mCAAkC,aAAW,SAAQ;EACzD,IAAI,EACF,QACA,gBACE;EACJ,MAAM,iBAAiB,EAAE;EACzB,MAAM,EACJ,QACA,cACE;AAEJ,MAAI,UAAU,QAAQ,OAAO,OAC3B,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,OAAO,EAAE;AACxD,OAAI,UAAU,KAAA,EACZ;AAGF,kBAAe,OAAO,OAAO,KAAK,MAAM,iBAAiB,IAAI;AAC7D,UAAO,KAAK,MAAM,YAAY,KAAK,MAAM;;AAI7C,MAAI,UAAU,QAAQ,OAAO,YAC3B,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,YAAY,EAAE;AAC7D,OAAI,UAAU,KAAA,EACZ;AAGF,eAAY,KAAK,MAAM,YAAY,KAAK,MAAM;;AAIlD,MAAI,aAAa,QAAQ,UAAU,OACjC,QAAO,KAAK,UAAU,IAAI,UAAU,OAAO;AAG7C,MAAI,aAAa,QAAQ,UAAU,YACjC,aAAY,KAAK,UAAU,IAAI,UAAU,YAAY;AAGvD,SAAO,SAAS,UAAU;AACxB,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,eAAe,CACvD,QAAO,KAAK,MAAM,YAAY,KAAK,MAAM;AAG3C,OAAI,aAAa,QAAQ,UAAU,OACjC,QAAO,KAAK,UAAU,OAAO,UAAU,OAAO;;;CAKpD,MAAM,2BAA0B,UAAS;EACvC,IAAI,EACF,WAAW,EACT,SACA,YAEA;AACJ,SAAO,CAAC,EACN,WAAW,UAAU,IAAI,UAAU,SAAS,QAAQ,EACrD,EAAE,EACD,WAAW,UAAU,IAAI,UAAU,SAAS,MAAM,EACnD,CAAC;;CAGJ,MAAM,oCAAoC;EACxC,UAAU;EACV,QAAQ;EACR,WAAW;EACX,aAA0B,gDAAgC,EACxD,QAAQ,EACN,QAAQ,EACN,SAAS,KACV,EACF,EACF,CAAC;EACH;CACD,SAAS,iBAAiB,OAAO;EAC/B,IAAI,EACF,QACA,gBACA,qBACA,2BACE;AACJ,SAAO,UAAU,UAAU,IAAI,SAAS;AACtC,OAAI,WAAW,KACb;GAGF,MAAM,kBAAkB,eAAe,IAAI,GAAG;AAE9C,OAAI,CAAC,gBACH;GAGF,MAAM,aAAa,gBAAgB,KAAK;AAExC,OAAI,CAAC,WACH;GAGF,MAAM,iBAAiB,kBAAkB,KAAK;AAE9C,OAAI,CAAC,eACH;GAGF,MAAM,EACJ,cACE,UAAU,UAAU,KAAK,CAAC,iBAAiB,KAAK;GACpD,MAAM,kBAAkB,eAAe,UAAU;AAEjD,OAAI,CAAC,gBACH;GAGF,MAAM,YAAY,OAAO,WAAW,aAAa,SAAS,2BAA2B,OAAO;AAC5F,0BAAuB,YAAY,uBAAuB,UAAU,QAAQ;AAC5E,UAAO,UAAU;IACf,QAAQ;KACN;KACA,MAAM,gBAAgB;KACtB,MAAM;KACN,MAAM,uBAAuB,UAAU,QAAQ,WAAW;KAC3D;IACD;IACA,aAAa;KACX;KACA,MAAM,uBAAuB,YAAY,QAAQ,eAAe;KACjE;IACD;IACA;IACA,WAAW;IACZ,CAAC;IACF;;CAGJ,SAAS,2BAA2B,SAAS;EAC3C,MAAM,EACJ,UACA,QACA,aACA,cACE;GAAE,GAAG;GACP,GAAG;GACJ;AACD,UAAO,UAAS;GACd,IAAI,EACF,QACA,aACA,WACA,GAAG,SACD;AAEJ,OAAI,CAAC,SAEH;GAGF,MAAM,QAAQ;IACZ,GAAG,YAAY,KAAK,OAAO,OAAO,KAAK;IACvC,GAAG,YAAY,KAAK,MAAM,OAAO,KAAK;IACvC;GACD,MAAM,QAAQ;IACZ,QAAQ,UAAU,WAAW,IAAI,OAAO,KAAK,QAAQ,UAAU,SAAS,YAAY,KAAK,QAAQ;IACjG,QAAQ,UAAU,WAAW,IAAI,OAAO,KAAK,SAAS,UAAU,SAAS,YAAY,KAAK,SAAS;IACpG;GACD,MAAM,iBAAiB;IACrB,GAAG,UAAU,IAAI,MAAM;IACvB,GAAG,UAAU,IAAI,MAAM;IACvB,GAAG;IACJ;GACD,MAAM,qBAAqB,UAAU;IAAE,GAAG;IACxC;IACA;IACA,WAAW;KACT,SAAS;KACT,OAAO;KACR;IACF,CAAC;GACF,MAAM,CAAC,iBAAiB;GACxB,MAAM,eAAe,mBAAmB,mBAAmB,SAAS;AAEpE,OAAI,KAAK,UAAU,cAAc,KAAK,KAAK,UAAU,aAAa,CAEhE;GAGF,MAAM,UAAU,eAAe,OAAO,KAAK,IAAI,YAAY;IACzD;IACA;IACA,GAAG;IACJ,CAAC;GACF,MAAM,YAAY,YAAY,KAAK,QAAQ,oBAAoB;IAC7D;IACA;IACA,MAAM;IACP,CAAC;AACF,UAAO,IAAI,SAAQ,YAAW;AAC5B,cAAU,iBAAiB;AACzB,gBAAoC;AACpC,cAAS;;KAEX;;;CAIN,IAAI,MAAM;CACV,SAAS,OAAO,IAAI;AAClB,SAAOA,QAAM,cAAc;AACzB,OAAI,MAAM,KACR;AAGF;AACA,UAAO;KACN,CAAC,GAAG,CAAC;;CAGV,MAAM,cAA2B,+BAAe,MAAK,SAAQ;EAC3D,IAAI,EACF,cAAc,OACd,UACA,eAAe,qBACf,OACA,YACA,WACA,iBAAiB,OACjB,WACA,SAAS,QACP;EACJ,MAAM,EACJ,gBACA,QACA,gBACA,mBACA,gBACA,qBACA,aACA,MACA,wBACA,qBACA,yBACA,eACE,eAAe;EACnB,MAAM,YAAYA,QAAM,WAAW,uBAAuB;EAC1D,MAAM,MAAM,OAAO,UAAU,OAAO,KAAK,IAAI,OAAO,GAAG;EACvD,MAAM,oBAAoB,eAAe,WAAW;GAClD;GACA;GACA;GACA;GACA,kBAAkB,YAAY;GAC9B;GACA,iBAAiB,YAAY;GAC7B;GACA;GACA;GACA;GACD,CAAC;EACF,MAAM,cAAc,gBAAgB,eAAe;EACnD,MAAM,gBAAgB,iBAAiB;GACrC,QAAQ;GACR;GACA;GACA;GACD,CAAC;EAGF,MAAM,MAAM,cAAc,YAAY,SAAS,KAAA;AAC/C,SAAO,eAAe,cAAc,0BAA0B,MAAM,eAAe,cAAc,kBAAkB,EACjH,WAAW,eACZ,EAAE,UAAU,MAAM,eAAe,cAAc,mBAAmB;GAC5D;GACL,IAAI,OAAO;GACN;GACL,IAAI;GACY;GACH;GACF;GACC;GACZ,MAAM;GACN,OAAO;IACL;IACA,GAAG;IACJ;GACD,WAAW;GACZ,EAAE,SAAS,GAAG,KAAK,CAAC;GACrB;AAEF,SAAQ,aAAa;AACrB,SAAQ,cAAc;AACtB,SAAQ,iBAAiB;AACzB,SAAQ,cAAc;AACtB,SAAQ,gBAAgB;AACxB,SAAQ,cAAc;AACtB,SAAQ,iBAAiB;AACzB,SAAQ,gBAAgB;AACxB,SAAQ,iBAAiB;AACzB,SAAQ,uBAAuB;AAC/B,SAAQ,qBAAqB;AAC7B,SAAQ,uBAAuB;AAC/B,SAAQ,kCAAkC;AAC1C,SAAQ,kCAAkC;AAC1C,SAAQ,kCAAkC;AAC1C,SAAQ,gBAAgB;AACxB,SAAQ,oBAAoB;AAC5B,SAAQ,yBAAyB;AACjC,SAAQ,gBAAgB;AACxB,SAAQ,mBAAmB;AAC3B,SAAQ,gBAAgB;AACxB,SAAQ,gBAAgB;AACxB,SAAQ,eAAe;AACvB,SAAQ,eAAe;AACvB,SAAQ,YAAY;AACpB,SAAQ,aAAa;;;;;ACl5HrB,KAAI,QAAQ,IAAI,aAAa,aAC3B,QAAO,UAAA,iCAAA;KAEP,QAAO,UAAA,8BAAA;;;;;ACNI,QAAO,eAAe,SAAQ,cAAa,EAAC,OAAM,CAAC,GAAE,CAAC;CAAC,IAAI,GAAE,IAAE,QAAQ,QAAQ,EAAC,KAAG,IAAE,MAAI,YAAU,OAAO,KAAG,aAAY,IAAE,EAAE,UAAQ,GAAE,IAAA,gBAAA,EAA2B,IAAA,gBAAA;CAAgC,SAAS,EAAE,GAAE,GAAE,GAAE;EAAC,MAAM,IAAE,EAAE,OAAO;AAAC,SAAO,EAAE,OAAO,IAAE,IAAE,EAAE,SAAO,IAAE,GAAE,GAAE,EAAE,OAAO,GAAE,EAAE,CAAC,GAAG,EAAC;;CAAE,SAAS,EAAE,GAAE,GAAE;AAAC,SAAO,EAAE,QAAQ,GAAE,GAAE,MAAI;GAAC,MAAM,IAAE,EAAE,IAAI,EAAE;AAAC,UAAO,MAAI,EAAE,KAAG,IAAG;KAAG,MAAM,EAAE,OAAO,CAAC;;CAAC,SAAS,EAAE,GAAE;AAAC,SAAO,SAAO,KAAG,KAAG;;CAAE,MAAM,IAAE;EAAC,QAAO;EAAE,QAAO;EAAE,EAAC,KAAE,MAAG;EAAC,IAAG,EAAC,OAAM,GAAE,aAAY,GAAE,WAAU,GAAE,OAAM,MAAG;EAAE,MAAM,IAAE,EAAE,GAAE,GAAE,EAAE,EAAC,IAAE,EAAE,IAAG,IAAE,EAAE;AAAG,SAAO,KAAG,IAAE;GAAC,GAAE,EAAE,OAAK,EAAE;GAAK,GAAE,EAAE,MAAI,EAAE;GAAI,QAAO,EAAE,QAAM,EAAE;GAAM,QAAO,EAAE,SAAO,EAAE;GAAO,GAAC;IAAM,IAAE;EAAC,QAAO;EAAE,QAAO;EAAE,EAAC,IAAE,EAAE,cAAc;EAAC,aAAY;EAAG,aAAY;EAAW,mBAAkB,CAAC;EAAE,OAAM,EAAE;EAAC,WAAU;EAAG,gBAAe,CAAC;EAAE,aAAY,EAAE;EAAC,UAAS;EAAE,UAAS;GAAC,WAAU,CAAC;GAAE,WAAU,CAAC;GAAE;EAAC,CAAC,EAAC,KAAE,MAAG;EAAC,IAAG,EAAC,IAAG,GAAE,OAAM,GAAE,aAAY,GAAE,WAAU,MAAG;AAAE,SAAO,EAAE,GAAE,GAAE,EAAE,CAAC,QAAQ,EAAE;IAAE,KAAE,MAAG;EAAC,IAAG,EAAC,aAAY,GAAE,WAAU,GAAE,aAAY,GAAE,OAAM,GAAE,OAAM,GAAE,UAAS,GAAE,eAAc,GAAE,qBAAoB,GAAE,YAAW,MAAG;AAAE,SAAM,EAAE,CAAC,KAAG,CAAC,KAAG,MAAI,KAAG,MAAI,KAAG,CAAC,MAAI,MAAI,KAAG,MAAI;IAAK,IAAE;EAAC,UAAS;EAAI,QAAO;EAAO,EAAC,IAAE,EAAE,IAAI,WAAW,SAAS;EAAC,UAAS;EAAY,UAAS;EAAE,QAAO;EAAS,CAAC,EAAC,IAAE,EAAC,iBAAgB,YAAW;CAAC,SAAS,EAAE,GAAE;AAAC,MAAG,CAAC,EAAE,QAAM,CAAC;EAAE,MAAM,IAAE,EAAE,KAAK;AAAQ,SAAM,CAAC,EAAE,KAAG,cAAa,KAAG,YAAU,OAAO,EAAE,YAAU,iBAAgB,EAAE,YAAU,WAAU,EAAE,YAAU,WAAU,EAAE;;CAAU,MAAM,IAAE;EAAC,EAAE,aAAa;EAAK,EAAE,aAAa;EAAM,EAAE,aAAa;EAAG,EAAE,aAAa;EAAK;CAAC,SAAS,EAAE,GAAE,GAAE;AAAC,SAAM,EAAE,CAAC,EAAE,EAAE,IAAE,CAAC,EAAE,EAAE,KAAG,EAAE,KAAK,QAAQ,SAAS,gBAAc,EAAE,KAAK,QAAQ,SAAS;;AAAY,SAAQ,kBAAgB,SAAS,GAAE;EAAC,IAAG,EAAC,UAAS,GAAE,IAAG,GAAE,OAAM,GAAE,UAAS,IAAE,GAAE,UAAS,IAAE,CAAC,MAAG;EAAE,MAAK,EAAC,QAAO,GAAE,aAAY,GAAE,gBAAe,GAAE,MAAK,GAAE,4BAA2B,MAAG,EAAE,eAAe,EAAC,IAAE,EAAE,YAAY,YAAW,EAAE,EAAC,IAAE,QAAQ,SAAO,EAAE,KAAK,EAAC,IAAE,EAAE,cAAY,EAAE,KAAI,MAAG,YAAU,OAAO,KAAG,QAAO,IAAE,EAAE,KAAG,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,IAAE,QAAM,GAAE,IAAE,IAAE,EAAE,QAAQ,EAAE,GAAG,GAAC,IAAG,IAAE,IAAE,EAAE,QAAQ,EAAE,GAAG,GAAC,IAAG,IAAE,EAAE,OAAO,EAAE,EAAC,IAAE,CAAC,SAAS,GAAE,GAAE;AAAC,OAAG,MAAI,EAAE,QAAM,CAAC;AAAE,OAAG,EAAE,WAAS,EAAE,OAAO,QAAM,CAAC;AAAE,QAAI,IAAI,IAAE,GAAE,IAAE,EAAE,QAAO,IAAI,KAAG,EAAE,OAAK,EAAE,GAAG,QAAM,CAAC;AAAE,UAAM,CAAC;IAAG,GAAE,EAAE,QAAQ,EAAC,IAAE,OAAK,KAAG,OAAK,KAAG,GAAE,IAAE,SAAS,GAAE;AAAC,UAAM,aAAW,OAAO,IAAE;IAAC,WAAU;IAAE,WAAU;IAAE,GAAC;IAAG,EAAE;AAAC,IAAE,gCAA8B;AAAC,QAAG,KAAG,EAAE,EAAE;KAAE;GAAC;GAAE;GAAE;GAAE;GAAE,CAAC,EAAC,EAAE,gBAAc;AAAC,KAAE,UAAQ;KAAG,CAAC,EAAE,CAAC;EAAC,MAAM,IAAE,EAAE,eAAa;GAAC,aAAY;GAAE,aAAY;GAAE,UAAS;GAAE,mBAAkB;GAAE,OAAM;GAAE,WAAU;GAAE,gBAAe;GAAE,aAAY,EAAE,GAAE,EAAE;GAAC,UAAS;GAAE,GAAE;GAAC;GAAE;GAAE,EAAE;GAAU,EAAE;GAAU;GAAE;GAAE;GAAE;GAAE;GAAE;GAAE,CAAC;AAAC,SAAO,EAAE,cAAc,EAAE,UAAS,EAAC,OAAM,GAAE,EAAC,EAAE;IAAE,QAAQ,YAAU,GAAE,QAAQ,YAAU,SAAS,GAAE,GAAE,GAAE;EAAC,MAAM,IAAE,EAAE,OAAO;AAAC,SAAO,EAAE,KAAG,EAAE,IAAG,EAAE,KAAG,EAAE,IAAG;IAAG,QAAQ,8BAA4B,GAAE,QAAQ,wBAAsB,GAAE,QAAQ,kBAAgB,GAAE,QAAQ,iCAA8B,MAAG;EAAC,IAAI;EAAE,IAAG,EAAC,OAAM,GAAE,gBAAe,GAAE,aAAY,GAAE,WAAU,GAAE,OAAM,MAAG;EAAE,MAAM,IAAE,SAAO,IAAE,EAAE,MAAI,IAAE;AAAE,MAAG,CAAC,EAAE,QAAO;EAAK,MAAM,IAAE,SAAS,GAAE,GAAE,GAAE;GAAC,MAAM,IAAE,EAAE,IAAG,IAAE,EAAE,IAAE,IAAG,IAAE,EAAE,IAAE;AAAG,UAAO,MAAI,KAAG,KAAG,IAAE,IAAE,IAAE,EAAE,QAAM,EAAE,OAAK,EAAE,SAAO,EAAE,QAAM,EAAE,OAAK,EAAE,SAAO,IAAE,EAAE,QAAM,EAAE,OAAK,EAAE,SAAO,EAAE,QAAM,EAAE,OAAK,EAAE,SAAO;IAAG,GAAE,GAAE,EAAE;AAAC,MAAG,MAAI,GAAE;GAAC,MAAM,IAAE,EAAE;AAAG,UAAO,IAAE;IAAC,GAAE,IAAE,IAAE,EAAE,OAAK,EAAE,SAAO,EAAE,OAAK,EAAE,SAAO,EAAE,OAAK,EAAE;IAAK,GAAE;IAAE,GAAG;IAAE,GAAC;;AAAK,SAAO,IAAE,KAAG,KAAG,IAAE;GAAC,GAAE,CAAC,EAAE,QAAM;GAAE,GAAE;GAAE,GAAG;GAAE,GAAC,IAAE,KAAG,KAAG,IAAE;GAAC,GAAE,EAAE,QAAM;GAAE,GAAE;GAAE,GAAG;GAAE,GAAC;GAAC,GAAE;GAAE,GAAE;GAAE,GAAG;GAAE;IAAE,QAAQ,sBAAoB,GAAE,QAAQ,wBAAqB,MAAG;EAAC,IAAI,GAAE,GAAE,EAAC,aAAY,GAAE,OAAM,GAAE,OAAM,GAAE,WAAU,MAAG;AAAE,SAAO,MAAI,MAAI,IAAE,EAAE,IAAG,IAAE,EAAE,KAAI,MAAI,MAAI,IAAE,EAAE,IAAG,IAAE,EAAE,KAAI,KAAG,IAAE;GAAC,GAAE,EAAE,OAAK,EAAE;GAAK,GAAE,EAAE,MAAI,EAAE;GAAI,QAAO,EAAE,QAAM,EAAE;GAAM,QAAO,EAAE,SAAO,EAAE;GAAO,GAAC;IAAM,QAAQ,+BAA6B,GAAE,MAAI;EAAC,IAAG,EAAC,SAAQ,EAAC,QAAO,GAAE,eAAc,GAAE,gBAAe,GAAE,qBAAoB,GAAE,MAAK,GAAE,qBAAoB,QAAI;AAAE,MAAG,EAAE,SAAS,EAAE,KAAK,EAAC;AAAC,OAAG,EAAE,gBAAgB,EAAC,CAAC,KAAG,CAAC,EAAE;GAAO,MAAM,IAAE,EAAE;AAAC,KAAE,YAAY,CAAC,SAAQ,MAAG;AAAC,QAAG,CAAC,KAAG,QAAM,KAAG,EAAE,SAAS;IAAO,MAAM,IAAE,EAAE,IAAI,EAAE,GAAG;AAAC,QAAG,EAAE,SAAO,EAAE,MAAT;KAAe,KAAK,EAAE,aAAa;AAAK,QAAE,MAAI,EAAE,OAAK,EAAE,KAAK,EAAE;AAAC;KAAM,KAAK,EAAE,aAAa;AAAG,QAAE,MAAI,EAAE,OAAK,EAAE,KAAK,EAAE;AAAC;KAAM,KAAK,EAAE,aAAa;AAAK,QAAE,OAAK,EAAE,QAAM,EAAE,KAAK,EAAE;AAAC;KAAM,KAAK,EAAE,aAAa,MAAM,GAAE,OAAK,EAAE,QAAM,EAAE,KAAK,EAAE;;KAAG;GAAC,MAAM,IAAE,EAAE,eAAe;IAAC,QAAO;IAAE,eAAc;IAAE,gBAAe;IAAE,qBAAoB;IAAE,oBAAmB;IAAK,CAAC;GAAC,IAAI,IAAE,EAAE,kBAAkB,GAAE,KAAK;AAAC,OAAG,OAAK,QAAM,IAAE,KAAK,IAAE,EAAE,OAAK,EAAE,SAAO,MAAI,IAAE,EAAE,GAAG,KAAI,QAAM,GAAE;IAAC,MAAM,IAAE,EAAE,IAAI,EAAE,GAAG,EAAC,IAAE,EAAE,IAAI,EAAE,EAAC,IAAE,IAAE,EAAE,IAAI,EAAE,GAAG,GAAC,MAAK,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE,KAAK;AAAQ,QAAG,KAAG,KAAG,KAAG,GAAE;KAAC,MAAM,IAAE,EAAE,uBAAuB,EAAE,CAAC,MAAM,GAAE,MAAI,EAAE,OAAK,EAAE,EAAC,IAAE,EAAE,GAAE,EAAE,EAAC,KAAG,IAAE,GAAE,EAAE,CAAC,EAAE,IAAE,EAAE,IAAE,CAAC,EAAE,EAAE,KAAG,CAAC,CAAC,EAAE,GAAE,EAAE,IAAE,EAAE,KAAK,QAAQ,SAAS,QAAM,EAAE,KAAK,QAAQ,SAAS,QAAO,IAAE,KAAG,CAAC,IAAE;MAAC,GAAE;MAAE,GAAE;MAAE,GAAC;MAAC,GAAE,IAAE,EAAE,QAAM,EAAE,QAAM;MAAE,GAAE,IAAE,EAAE,SAAO,EAAE,SAAO;MAAE,EAAC,IAAE;MAAC,GAAE,EAAE;MAAK,GAAE,EAAE;MAAI;AAAC,YAAO,EAAE,KAAG,EAAE,IAAE,IAAE,EAAE,SAAS,GAAE,EAAE;;;;EAAG,IAAI,GAAE;IAAG,QAAQ,cAAY,SAAS,GAAE;EAAC,IAAG,EAAC,sBAAqB,IAAE,GAAE,YAAW,GAAE,UAAS,GAAE,MAAK,GAAE,aAAY,IAAE,GAAE,IAAG,GAAE,UAAS,GAAE,sBAAqB,GAAE,YAAW,IAAE,MAAG;EAAE,MAAK,EAAC,OAAM,GAAE,aAAY,GAAE,aAAY,GAAE,UAAS,GAAE,mBAAkB,GAAE,aAAY,GAAE,WAAU,GAAE,gBAAe,GAAE,UAAS,MAAG,EAAE,WAAW,EAAE,EAAC,IAAE,SAAS,GAAE,GAAE;GAAC,IAAI,GAAE;AAAE,UAAM,aAAW,OAAO,IAAE;IAAC,WAAU;IAAE,WAAU,CAAC;IAAE,GAAC;IAAC,WAAU,SAAO,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE,aAAW,IAAE,EAAE;IAAU,WAAU,SAAO,IAAE,QAAM,IAAE,KAAK,IAAE,EAAE,aAAW,IAAE,EAAE;IAAU;IAAE,GAAE,EAAE,EAAC,IAAE,EAAE,QAAQ,EAAE,EAAC,IAAE,EAAE,eAAa;GAAC,UAAS;IAAC,aAAY;IAAE,OAAM;IAAE,OAAM;IAAE;GAAC,GAAG;GAAE,GAAE;GAAC;GAAE;GAAE;GAAE;GAAE,CAAC,EAAC,IAAE,EAAE,cAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,GAAE,EAAE,CAAC,EAAC,EAAC,MAAK,GAAE,MAAK,GAAE,QAAO,GAAE,YAAW,MAAG,EAAE,aAAa;GAAC,IAAG;GAAE,MAAK;GAAE,UAAS,EAAE;GAAU,sBAAqB;IAAC,uBAAsB;IAAE,GAAG;IAAE;GAAC,CAAC,EAAC,EAAC,QAAO,GAAE,gBAAe,GAAE,gBAAe,GAAE,YAAW,GAAE,YAAW,GAAE,WAAU,GAAE,YAAW,GAAE,MAAK,GAAE,qBAAoB,GAAE,WAAU,MAAG,EAAE,aAAa;GAAC,IAAG;GAAE,MAAK;GAAE,YAAW;IAAC,GAAG;IAAE,GAAG;IAAE;GAAC,UAAS,EAAE;GAAU,CAAC,EAAC,IAAE,EAAE,gBAAgB,GAAE,EAAE,EAAC,IAAE,QAAQ,EAAE,EAAC,IAAE,KAAG,CAAC,KAAG,EAAE,EAAE,IAAE,EAAE,EAAE,EAAC,IAAE,CAAC,KAAG,GAAE,IAAE,KAAG,IAAE,IAAE,MAAK,IAAE,IAAE,QAAM,IAAE,KAAG,QAAM,IAAE,IAAE,GAAG;GAAC,OAAM;GAAE,gBAAe;GAAE,aAAY;GAAE,WAAU;GAAE,OAAM;GAAE,CAAC,GAAC,MAAK,IAAE,EAAE,EAAE,IAAE,EAAE,EAAE,GAAC,EAAE;GAAC,IAAG;GAAE,OAAM;GAAE,aAAY;GAAE,WAAU;GAAE,CAAC,GAAC,GAAE,KAAG,QAAM,IAAE,KAAK,IAAE,EAAE,IAAG,KAAG,EAAE,OAAO;GAAC,UAAS;GAAG,OAAM;GAAE,UAAS;GAAE,aAAY;GAAE,CAAC,EAAC,KAAG,MAAI,GAAG,QAAQ,OAAM,KAAG,EAAE;GAAC,QAAO;GAAE,aAAY;GAAE,YAAW;GAAE,WAAU;GAAE,IAAG;GAAE,OAAM;GAAE,OAAM;GAAE,UAAS,GAAG,QAAQ;GAAS,eAAc,GAAG,QAAQ;GAAM,qBAAoB,GAAG,QAAQ;GAAY,YAAW;GAAE,aAAY,QAAM,GAAG,QAAQ;GAAS,CAAC,EAAC,KAAG,SAAS,GAAE;GAAC,IAAG,EAAC,UAAS,GAAE,OAAM,GAAE,MAAK,GAAE,MAAK,MAAG;GAAE,MAAK,CAAC,GAAE,KAAG,EAAE,SAAS,KAAK,EAAC,IAAE,EAAE,OAAO,EAAE;AAAC,UAAO,EAAE,gCAA8B;AAAC,QAAG,CAAC,KAAG,MAAI,EAAE,WAAS,EAAE,SAAQ;KAAC,MAAM,IAAE,EAAE;AAAQ,SAAG,GAAE;MAAC,MAAM,IAAE,EAAE,cAAc,EAAE,SAAQ,EAAC,iBAAgB,CAAC,GAAE,CAAC,EAAC,IAAE;OAAC,GAAE,EAAE,OAAK,EAAE;OAAK,GAAE,EAAE,MAAI,EAAE;OAAI,QAAO,EAAE,QAAM,EAAE;OAAM,QAAO,EAAE,SAAO,EAAE;OAAO;AAAC,OAAC,EAAE,KAAG,EAAE,MAAI,EAAE,EAAE;;;AAAE,UAAI,EAAE,YAAU,EAAE,UAAQ;MAAI;IAAC;IAAE;IAAE;IAAE;IAAE,CAAC,EAAC,EAAE,gBAAc;AAAC,SAAG,EAAE,KAAK;MAAE,CAAC,EAAE,CAAC,EAAC;IAAG;GAAC,UAAS,CAAC;GAAG,OAAM;GAAE,MAAK;GAAE,MAAK;GAAE,CAAC;AAAC,SAAO,EAAE,gBAAc;AAAC,QAAG,GAAG,QAAQ,aAAW,MAAI,GAAG,QAAQ,WAAS,IAAG,MAAI,GAAG,QAAQ,gBAAc,GAAG,QAAQ,cAAY,IAAG,MAAI,GAAG,QAAQ,UAAQ,GAAG,QAAQ,QAAM;KAAI;GAAC;GAAE;GAAE;GAAE;GAAE,CAAC,EAAC,EAAE,gBAAc;AAAC,OAAG,OAAK,GAAG,QAAQ,SAAS;AAAO,OAAG,QAAM,MAAI,QAAM,GAAG,QAAQ,SAAS,QAAO,MAAK,GAAG,QAAQ,WAAS;GAAI,MAAM,IAAE,iBAAe;AAAC,OAAG,QAAQ,WAAS;MAAI,GAAG;AAAC,gBAAU,aAAa,EAAE;KAAE,CAAC,GAAG,CAAC,EAAC;GAAC,QAAO;GAAE,aAAY;GAAE,YAAW;GAAE,MAAK;GAAE,MAAK;GAAE,OAAM;GAAE,UAAS;GAAE,OAAM;GAAE,QAAO;GAAE,WAAU;GAAE,YAAW;GAAE,WAAU;GAAE,MAAK;GAAE,WAAU;GAAE,MAAK;GAAE,YAAW;GAAE,qBAAoB;GAAE,qBAAoB;GAAE,qBAAoB;GAAE,WAAU,QAAM,KAAG,KAAG;GAAE,YAAW,MAAI,MAAI,GAAG,QAAQ,aAAW,IAAE,IAAE,KAAG,CAAC,EAAE,gBAAgB,EAAE,IAAE,CAAC,IAAE,KAAK,IAAE,KAAG,KAAG,EAAE,IAAI,WAAW,SAAS;IAAC,GAAG;IAAE,UAAS;IAAY,CAAC,GAAC,KAAK;GAAE;IAAE,QAAQ,+BAA4B,MAAG;EAAC,IAAI;EAAE,IAAG,EAAC,aAAY,GAAE,gBAAe,GAAE,OAAM,GAAE,OAAM,GAAE,WAAU,MAAG;EAAE,MAAM,IAAE,SAAO,IAAE,EAAE,MAAI,IAAE;AAAE,MAAG,CAAC,EAAE,QAAO;AAAK,MAAG,MAAI,GAAE;GAAC,MAAM,IAAE,EAAE;AAAG,UAAO,IAAE;IAAC,GAAE;IAAE,GAAE,IAAE,IAAE,EAAE,MAAI,EAAE,UAAQ,EAAE,MAAI,EAAE,UAAQ,EAAE,MAAI,EAAE;IAAI,GAAG;IAAE,GAAC;;EAAK,MAAM,IAAE,SAAS,GAAE,GAAE,GAAE;GAAC,MAAM,IAAE,EAAE,IAAG,IAAE,EAAE,IAAE,IAAG,IAAE,EAAE,IAAE;AAAG,UAAO,IAAE,IAAE,IAAE,IAAE,EAAE,OAAK,EAAE,MAAI,EAAE,UAAQ,IAAE,EAAE,OAAK,EAAE,MAAI,EAAE,UAAQ,IAAE,IAAE,EAAE,OAAK,EAAE,MAAI,EAAE,UAAQ,IAAE,EAAE,OAAK,EAAE,MAAI,EAAE,UAAQ,IAAE;IAAG,GAAE,GAAE,EAAE;AAAC,SAAO,IAAE,KAAG,KAAG,IAAE;GAAC,GAAE;GAAE,GAAE,CAAC,EAAE,SAAO;GAAE,GAAG;GAAE,GAAC,IAAE,KAAG,KAAG,IAAE;GAAC,GAAE;GAAE,GAAE,EAAE,SAAO;GAAE,GAAG;GAAE,GAAC;GAAC,GAAE;GAAE,GAAE;GAAE,GAAG;GAAE;;;;;;ACEx6P,QAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAE7D,SAAS,gBAAiB,IAAI;AAAE,SAAQ,MAAO,OAAO,OAAO,YAAa,aAAa,KAAM,GAAG,aAAa;;CAE7G,IAAI,QAAQ,QAAQ,QAAQ;CAC5B,IAAI,iBAAiB,gBAAgB,MAAM;CAC3C,IAAI,OAAA,gBAAA;CACJ,IAAI,YAAA,gBAAA;;;;CAKJ,SAAS,UAAU,OAAO,MAAM,IAAI;EAClC,MAAM,WAAW,MAAM,OAAO;AAC9B,WAAS,OAAO,KAAK,IAAI,SAAS,SAAS,KAAK,IAAI,GAAG,SAAS,OAAO,MAAM,EAAE,CAAC,GAAG;AACnF,SAAO;;;;;CAMT,SAAS,UAAU,OAAO,MAAM,IAAI;EAClC,MAAM,WAAW,MAAM,OAAO;AAC9B,WAAS,QAAQ,MAAM;AACvB,WAAS,MAAM,MAAM;AACrB,SAAO;;CAGT,SAAS,eAAe,OAAO,OAAO;AACpC,SAAO,MAAM,QAAQ,aAAa,IAAI,UAAU;GAC9C,MAAM,OAAO,MAAM,IAAI,GAAG;AAE1B,OAAI,KACF,aAAY,SAAS;AAGvB,UAAO;KACN,MAAM,MAAM,OAAO,CAAC;;CAGzB,SAAS,aAAa,OAAO;AAC3B,SAAO,UAAU,QAAQ,SAAS;;CAGpC,SAAS,WAAW,GAAG,GAAG;AACxB,MAAI,MAAM,EACR,QAAO;AAGT,MAAI,EAAE,WAAW,EAAE,OACjB,QAAO;AAGT,OAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC5B,KAAI,EAAE,OAAO,EAAE,GACb,QAAO;AAIX,SAAO;;CAGT,SAAS,kBAAkB,UAAU;AACnC,MAAI,OAAO,aAAa,UACtB,QAAO;GACL,WAAW;GACX,WAAW;GACZ;AAGH,SAAO;;CAIT,MAAM,eAAe;EACnB,QAAQ;EACR,QAAQ;EACT;CACD,MAAM,iCAAgC,SAAQ;EAC5C,IAAI;EAEJ,IAAI,EACF,OACA,gBAAgB,oBAChB,aACA,WACA,UACE;EACJ,MAAM,kBAAkB,qBAAqB,MAAM,iBAAiB,OAAO,qBAAqB;AAEhG,MAAI,CAAC,eACH,QAAO;EAGT,MAAM,UAAU,WAAW,OAAO,OAAO,YAAY;AAErD,MAAI,UAAU,aAAa;GACzB,MAAM,eAAe,MAAM;AAE3B,OAAI,CAAC,aACH,QAAO;AAGT,UAAO;IACL,GAAG,cAAc,YAAY,aAAa,OAAO,aAAa,SAAS,eAAe,OAAO,eAAe,SAAS,aAAa,OAAO,eAAe;IACxJ,GAAG;IACH,GAAG;IACJ;;AAGH,MAAI,QAAQ,eAAe,SAAS,UAClC,QAAO;GACL,GAAG,CAAC,eAAe,QAAQ;GAC3B,GAAG;GACH,GAAG;GACJ;AAGH,MAAI,QAAQ,eAAe,SAAS,UAClC,QAAO;GACL,GAAG,eAAe,QAAQ;GAC1B,GAAG;GACH,GAAG;GACJ;AAGH,SAAO;GACL,GAAG;GACH,GAAG;GACH,GAAG;GACJ;;CAGH,SAAS,WAAW,OAAO,OAAO,aAAa;EAC7C,MAAM,cAAc,MAAM;EAC1B,MAAM,eAAe,MAAM,QAAQ;EACnC,MAAM,WAAW,MAAM,QAAQ;AAE/B,MAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,SACpC,QAAO;AAGT,MAAI,cAAc,MAChB,QAAO,eAAe,YAAY,QAAQ,aAAa,OAAO,aAAa,SAAS,SAAS,QAAQ,YAAY,OAAO,YAAY;AAGtI,SAAO,WAAW,SAAS,QAAQ,YAAY,OAAO,YAAY,SAAS,YAAY,QAAQ,aAAa,OAAO,aAAa;;CAGlI,MAAM,uBAAsB,SAAQ;EAClC,IAAI,EACF,OACA,aACA,WACA,UACE;EACJ,MAAM,WAAW,UAAU,OAAO,WAAW,YAAY;EACzD,MAAM,UAAU,MAAM;EACtB,MAAM,UAAU,SAAS;AAEzB,MAAI,CAAC,WAAW,CAAC,QACf,QAAO;AAGT,SAAO;GACL,GAAG,QAAQ,OAAO,QAAQ;GAC1B,GAAG,QAAQ,MAAM,QAAQ;GACzB,QAAQ,QAAQ,QAAQ,QAAQ;GAChC,QAAQ,QAAQ,SAAS,QAAQ;GAClC;;CAGH,MAAM,wBAAuB,SAAQ;EACnC,IAAI,EACF,aACA,OACA,OACA,cACE;EACJ,IAAI;EACJ,IAAI;AAEJ,MAAI,UAAU,aAAa;AACzB,aAAU,MAAM;AAChB,aAAU,MAAM;;AAGlB,MAAI,UAAU,WAAW;AACvB,aAAU,MAAM;AAChB,aAAU,MAAM;;AAGlB,MAAI,CAAC,WAAW,CAAC,QACf,QAAO;AAGT,SAAO;GACL,GAAG,QAAQ,OAAO,QAAQ;GAC1B,GAAG,QAAQ,MAAM,QAAQ;GACzB,QAAQ,QAAQ,QAAQ,QAAQ;GAChC,QAAQ,QAAQ,SAAS,QAAQ;GAClC;;CAIH,MAAM,iBAAiB;EACrB,QAAQ;EACR,QAAQ;EACT;CACD,MAAM,+BAA8B,SAAQ;EAC1C,IAAI;EAEJ,IAAI,EACF,aACA,gBAAgB,oBAChB,OACA,OACA,cACE;EACJ,MAAM,kBAAkB,qBAAqB,MAAM,iBAAiB,OAAO,qBAAqB;AAEhG,MAAI,CAAC,eACH,QAAO;AAGT,MAAI,UAAU,aAAa;GACzB,MAAM,gBAAgB,MAAM;AAE5B,OAAI,CAAC,cACH,QAAO;AAGT,UAAO;IACL,GAAG;IACH,GAAG,cAAc,YAAY,cAAc,MAAM,cAAc,UAAU,eAAe,MAAM,eAAe,UAAU,cAAc,MAAM,eAAe;IAC1J,GAAG;IACJ;;EAGH,MAAM,UAAU,aAAa,OAAO,OAAO,YAAY;AAEvD,MAAI,QAAQ,eAAe,SAAS,UAClC,QAAO;GACL,GAAG;GACH,GAAG,CAAC,eAAe,SAAS;GAC5B,GAAG;GACJ;AAGH,MAAI,QAAQ,eAAe,SAAS,UAClC,QAAO;GACL,GAAG;GACH,GAAG,eAAe,SAAS;GAC3B,GAAG;GACJ;AAGH,SAAO;GACL,GAAG;GACH,GAAG;GACH,GAAG;GACJ;;CAGH,SAAS,aAAa,aAAa,OAAO,aAAa;EACrD,MAAM,cAAc,YAAY;EAChC,MAAM,eAAe,YAAY,QAAQ;EACzC,MAAM,WAAW,YAAY,QAAQ;AAErC,MAAI,CAAC,YACH,QAAO;AAGT,MAAI,cAAc,MAChB,QAAO,eAAe,YAAY,OAAO,aAAa,MAAM,aAAa,UAAU,WAAW,SAAS,OAAO,YAAY,MAAM,YAAY,UAAU;AAGxJ,SAAO,WAAW,SAAS,OAAO,YAAY,MAAM,YAAY,UAAU,eAAe,YAAY,OAAO,aAAa,MAAM,aAAa,UAAU;;CAGxJ,MAAM,YAAY;CAClB,MAAM,UAAuB,+BAAe,cAAc;EACxD,aAAa;EACb,aAAa;EACb,mBAAmB;EACnB,OAAO,EAAE;EACT,WAAW;EACX,gBAAgB;EAChB,aAAa,EAAE;EACf,UAAU;EACV,UAAU;GACR,WAAW;GACX,WAAW;GACZ;EACF,CAAC;CACF,SAAS,gBAAgB,MAAM;EAC7B,IAAI,EACF,UACA,IACA,OAAO,kBACP,WAAW,qBACX,UAAU,eAAe,UACvB;EACJ,MAAM,EACJ,QACA,aACA,gBACA,MACA,+BACE,KAAK,eAAe;EACxB,MAAM,cAAc,UAAU,YAAY,WAAW,GAAG;EACxD,MAAM,iBAAiB,QAAQ,YAAY,SAAS,KAAK;EACzD,MAAM,QAAQ,MAAM,cAAc,iBAAiB,KAAI,SAAQ,OAAO,SAAS,YAAY,QAAQ,OAAO,KAAK,KAAK,KAAK,EAAE,CAAC,iBAAiB,CAAC;EAC9I,MAAM,aAAa,UAAU;EAC7B,MAAM,cAAc,SAAS,MAAM,QAAQ,OAAO,GAAG,GAAG;EACxD,MAAM,YAAY,OAAO,MAAM,QAAQ,KAAK,GAAG,GAAG;EAClD,MAAM,mBAAmB,MAAM,OAAO,MAAM;EAC5C,MAAM,mBAAmB,CAAC,WAAW,OAAO,iBAAiB,QAAQ;EACrE,MAAM,oBAAoB,cAAc,MAAM,gBAAgB,MAAM;EACpE,MAAM,WAAW,kBAAkB,aAAa;AAChD,YAAU,gCAAgC;AACxC,OAAI,oBAAoB,WACtB,4BAA2B,MAAM;KAElC;GAAC;GAAkB;GAAO;GAAY;GAA2B,CAAC;AACrE,QAAM,gBAAgB;AACpB,oBAAiB,UAAU;KAC1B,CAAC,MAAM,CAAC;EACX,MAAM,eAAe,MAAM,eAAe;GACxC;GACA;GACA;GACA;GACA;GACA;GACA;GACA,aAAa,eAAe,OAAO,eAAe;GAClD;GACD,GACD;GAAC;GAAa;GAAa,SAAS;GAAW,SAAS;GAAW;GAAmB;GAAO;GAAW;GAAgB;GAAgB;GAAS,CAAC;AAClJ,SAAO,eAAe,cAAc,QAAQ,UAAU,EACpD,OAAO,cACR,EAAE,SAAS;;CAGd,MAAM,yBAAwB,SAAQ;EACpC,IAAI,EACF,IACA,OACA,aACA,cACE;AACJ,SAAO,UAAU,OAAO,aAAa,UAAU,CAAC,QAAQ,GAAG;;CAE7D,MAAM,+BAA8B,UAAS;EAC3C,IAAI,EACF,aACA,WACA,aACA,OACA,OACA,UACA,eACA,qBACA,eACE;AAEJ,MAAI,CAAC,cAAc,CAAC,YAClB,QAAO;AAGT,MAAI,kBAAkB,SAAS,UAAU,SACvC,QAAO;AAGT,MAAI,UACF,QAAO;AAGT,SAAO,aAAa,SAAS,gBAAgB;;CAE/C,MAAM,oBAAoB;EACxB,UAAU;EACV,QAAQ;EACT;CACD,MAAM,qBAAqB;CAC3B,MAAM,qBAAkC,0BAAU,IAAI,WAAW,SAAS;EACxE,UAAU;EACV,UAAU;EACV,QAAQ;EACT,CAAC;CACF,MAAM,oBAAoB,EACxB,iBAAiB,YAClB;CAOD,SAAS,oBAAoB,MAAM;EACjC,IAAI,EACF,UACA,OACA,MACA,SACE;EACJ,MAAM,CAAC,kBAAkB,uBAAuB,MAAM,SAAS,KAAK;EACpE,MAAM,gBAAgB,MAAM,OAAO,MAAM;AACzC,YAAU,gCAAgC;AACxC,OAAI,CAAC,YAAY,UAAU,cAAc,WAAW,KAAK,SAAS;IAChE,MAAM,UAAU,KAAK;AAErB,QAAI,SAAS;KACX,MAAM,UAAU,KAAK,cAAc,KAAK,SAAS,EAC/C,iBAAiB,MAClB,CAAC;KACF,MAAM,QAAQ;MACZ,GAAG,QAAQ,OAAO,QAAQ;MAC1B,GAAG,QAAQ,MAAM,QAAQ;MACzB,QAAQ,QAAQ,QAAQ,QAAQ;MAChC,QAAQ,QAAQ,SAAS,QAAQ;MAClC;AAED,SAAI,MAAM,KAAK,MAAM,EACnB,qBAAoB,MAAM;;;AAKhC,OAAI,UAAU,cAAc,QAC1B,eAAc,UAAU;KAEzB;GAAC;GAAU;GAAO;GAAM;GAAK,CAAC;AACjC,QAAM,gBAAgB;AACpB,OAAI,iBACF,qBAAoB,KAAK;KAE1B,CAAC,iBAAiB,CAAC;AACtB,SAAO;;CAGT,SAAS,YAAY,MAAM;EACzB,IAAI,EACF,uBAAuB,6BACvB,YAAY,uBACZ,UAAU,eACV,MAAM,YACN,cAAc,uBACd,IACA,UAAU,eACV,sBACA,aAAa,sBACX;EACJ,MAAM,EACJ,OACA,aACA,aACA,UAAU,gBACV,mBACA,aACA,WACA,gBACA,UAAU,mBACR,MAAM,WAAW,QAAQ;EAC7B,MAAM,WAAW,uBAAuB,eAAe,eAAe;EACtE,MAAM,QAAQ,MAAM,QAAQ,GAAG;EAC/B,MAAM,OAAO,MAAM,eAAe;GAChC,UAAU;IACR;IACA;IACA;IACD;GACD,GAAG;GACJ,GAAG;GAAC;GAAa;GAAY;GAAO;GAAM,CAAC;EAC5C,MAAM,4BAA4B,MAAM,cAAc,MAAM,MAAM,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC;EAClG,MAAM,EACJ,MACA,MACA,QACA,YAAY,wBACV,KAAK,aAAa;GACpB;GACA;GACA,UAAU,SAAS;GACnB,sBAAsB;IACpB,uBAAuB;IACvB,GAAG;IACJ;GACF,CAAC;EACF,MAAM,EACJ,QACA,gBACA,gBACA,YACA,YAAY,qBACZ,WACA,YACA,MACA,qBACA,cACE,KAAK,aAAa;GACpB;GACA;GACA,YAAY;IAAE,GAAG;IACf,GAAG;IACJ;GACD,UAAU,SAAS;GACpB,CAAC;EACF,MAAM,aAAa,UAAU,gBAAgB,qBAAqB,oBAAoB;EACtF,MAAM,YAAY,QAAQ,OAAO;EACjC,MAAM,eAAe,aAAa,CAAC,qBAAqB,aAAa,YAAY,IAAI,aAAa,UAAU;EAC5G,MAAM,2BAA2B,CAAC,kBAAkB;EACpD,MAAM,yBAAyB,4BAA4B,eAAe,YAAY;EAEtF,MAAM,iBAAiB,eAAe,0BAA0B,OAAO,0BADtD,iBAAiB,OAAO,gBAAgB,gBACgD;GACvG,OAAO;GACP;GACA;GACA;GACA;GACD,CAAC,GAAG;EACL,MAAM,WAAW,aAAa,YAAY,IAAI,aAAa,UAAU,GAAG,YAAY;GAClF;GACA;GACA;GACA;GACD,CAAC,GAAG;EACL,MAAM,WAAW,UAAU,OAAO,KAAK,IAAI,OAAO;EAClD,MAAM,WAAW,MAAM,OAAO;GAC5B;GACA;GACA;GACA;GACD,CAAC;EACF,MAAM,mBAAmB,UAAU,SAAS,QAAQ;EACpD,MAAM,6BAA6B,qBAAqB;GACtD;GACA;GACA;GACA;GACA;GACA;GACA;GACA,UAAU,SAAS,QAAQ;GAC3B,eAAe,SAAS,QAAQ;GAChC,qBAAqB,SAAS,QAAQ;GACtC;GACA,aAAa,SAAS,QAAQ,YAAY;GAC3C,CAAC;EACF,MAAM,mBAAmB,oBAAoB;GAC3C,UAAU,CAAC;GACX;GACA;GACA;GACD,CAAC;AACF,QAAM,gBAAgB;AACpB,OAAI,aAAa,SAAS,QAAQ,aAAa,SAC7C,UAAS,QAAQ,WAAW;AAG9B,OAAI,gBAAgB,SAAS,QAAQ,YACnC,UAAS,QAAQ,cAAc;AAGjC,OAAI,UAAU,SAAS,QAAQ,MAC7B,UAAS,QAAQ,QAAQ;KAE1B;GAAC;GAAW;GAAU;GAAa;GAAM,CAAC;AAC7C,QAAM,gBAAgB;AACpB,OAAI,aAAa,SAAS,QAAQ,SAChC;AAGF,OAAI,YAAY,QAAQ,SAAS,QAAQ,YAAY,MAAM;AACzD,aAAS,QAAQ,WAAW;AAC5B;;GAGF,MAAM,YAAY,iBAAiB;AACjC,aAAS,QAAQ,WAAW;MAC3B,GAAG;AACN,gBAAa,aAAa,UAAU;KACnC,CAAC,SAAS,CAAC;AACd,SAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,WAAW,oBAAoB,OAAO,mBAAmB;GACzD,YAAY,eAAe;GAC5B;EAED,SAAS,gBAAgB;AACvB,OACA,oBACA,oBAAoB,SAAS,QAAQ,aAAa,MAChD,QAAO;AAGT,OAAI,4BAA4B,CAAC,UAAU,gBAAgB,eAAe,IAAI,CAAC,WAC7E;AAGF,OAAI,aAAa,2BACf,QAAO,UAAU,IAAI,WAAW,SAAS;IAAE,GAAG;IAC5C,UAAU;IACX,CAAC;;;CAOR,SAAS,uBAAuB,eAAe,gBAAgB;EAC7D,IAAI,uBAAuB;AAE3B,MAAI,OAAO,kBAAkB,UAC3B,QAAO;GACL,WAAW;GAEX,WAAW;GACZ;AAGH,SAAO;GACL,YAAY,wBAAwB,iBAAiB,OAAO,KAAK,IAAI,cAAc,cAAc,OAAO,wBAAwB,eAAe;GAC/I,YAAY,wBAAwB,iBAAiB,OAAO,KAAK,IAAI,cAAc,cAAc,OAAO,wBAAwB,eAAe;GAChJ;;CAGH,SAAS,gBAAgB,OAAO;AAC9B,MAAI,CAAC,MACH,QAAO;EAGT,MAAM,OAAO,MAAM,KAAK;AAExB,MAAI,QAAQ,cAAc,QAAQ,OAAO,KAAK,aAAa,YAAY,iBAAiB,KAAK,YAAY,WAAW,KAAK,YAAY,WAAW,KAAK,SACnJ,QAAO;AAGT,SAAO;;CAGT,MAAM,aAAa;EAAC,KAAK,aAAa;EAAM,KAAK,aAAa;EAAO,KAAK,aAAa;EAAI,KAAK,aAAa;EAAK;CAClH,MAAM,+BAA+B,OAAO,SAAS;EACnD,IAAI,EACF,SAAS,EACP,QACA,eACA,gBACA,qBACA,MACA,0BAEA;AAEJ,MAAI,WAAW,SAAS,MAAM,KAAK,EAAE;AACnC,SAAM,gBAAgB;AAEtB,OAAI,CAAC,UAAU,CAAC,cACd;GAGF,MAAM,qBAAqB,EAAE;AAC7B,uBAAoB,YAAY,CAAC,SAAQ,UAAS;AAChD,QAAI,CAAC,SAAS,SAAS,QAAQ,MAAM,SACnC;IAGF,MAAM,OAAO,eAAe,IAAI,MAAM,GAAG;AAEzC,QAAI,CAAC,KACH;AAGF,YAAQ,MAAM,MAAd;KACE,KAAK,KAAK,aAAa;AACrB,UAAI,cAAc,MAAM,KAAK,IAC3B,oBAAmB,KAAK,MAAM;AAGhC;KAEF,KAAK,KAAK,aAAa;AACrB,UAAI,cAAc,MAAM,KAAK,IAC3B,oBAAmB,KAAK,MAAM;AAGhC;KAEF,KAAK,KAAK,aAAa;AACrB,UAAI,cAAc,OAAO,KAAK,KAC5B,oBAAmB,KAAK,MAAM;AAGhC;KAEF,KAAK,KAAK,aAAa;AACrB,UAAI,cAAc,OAAO,KAAK,KAC5B,oBAAmB,KAAK,MAAM;AAGhC;;KAEJ;GACF,MAAM,aAAa,KAAK,eAAe;IACrC;IACe;IACf;IACA,qBAAqB;IACrB,oBAAoB;IACrB,CAAC;GACF,IAAI,YAAY,KAAK,kBAAkB,YAAY,KAAK;AAExD,OAAI,eAAe,QAAQ,OAAO,KAAK,IAAI,KAAK,OAAO,WAAW,SAAS,EACzE,aAAY,WAAW,GAAG;AAG5B,OAAI,aAAa,MAAM;IACrB,MAAM,kBAAkB,oBAAoB,IAAI,OAAO,GAAG;IAC1D,MAAM,eAAe,oBAAoB,IAAI,UAAU;IACvD,MAAM,UAAU,eAAe,eAAe,IAAI,aAAa,GAAG,GAAG;IACrE,MAAM,UAAU,gBAAgB,OAAO,KAAK,IAAI,aAAa,KAAK;AAElE,QAAI,WAAW,WAAW,mBAAmB,cAAc;KAEzD,MAAM,8BADqB,KAAK,uBAAuB,QAAQ,CACR,MAAM,SAAS,UAAU,oBAAoB,WAAW,QAAQ;KACvH,MAAM,mBAAmB,gBAAgB,iBAAiB,aAAa;KACvE,MAAM,gBAAgB,QAAQ,iBAAiB,aAAa;KAC5D,MAAM,SAAS,+BAA+B,CAAC,mBAAmB;MAChE,GAAG;MACH,GAAG;MACJ,GAAG;MACF,GAAG,gBAAgB,cAAc,QAAQ,QAAQ,QAAQ;MACzD,GAAG,gBAAgB,cAAc,SAAS,QAAQ,SAAS;MAC5D;KACD,MAAM,kBAAkB;MACtB,GAAG,QAAQ;MACX,GAAG,QAAQ;MACZ;AAED,YADuB,OAAO,KAAK,OAAO,IAAI,kBAAkB,UAAU,SAAS,iBAAiB,OAAO;;;;;CASnH,SAAS,gBAAgB,GAAG,GAAG;AAC7B,MAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAC5C,QAAO;AAGT,SAAO,EAAE,KAAK,QAAQ,SAAS,gBAAgB,EAAE,KAAK,QAAQ,SAAS;;CAGzE,SAAS,QAAQ,GAAG,GAAG;AACrB,MAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAC5C,QAAO;AAGT,MAAI,CAAC,gBAAgB,GAAG,EAAE,CACxB,QAAO;AAGT,SAAO,EAAE,KAAK,QAAQ,SAAS,QAAQ,EAAE,KAAK,QAAQ,SAAS;;AAGjE,SAAQ,kBAAkB;AAC1B,SAAQ,YAAY;AACpB,SAAQ,YAAY;AACpB,SAAQ,8BAA8B;AACtC,SAAQ,wBAAwB;AAChC,SAAQ,kBAAkB;AAC1B,SAAQ,gCAAgC;AACxC,SAAQ,sBAAsB;AAC9B,SAAQ,uBAAuB;AAC/B,SAAQ,8BAA8B;AACtC,SAAQ,cAAc;AACtB,SAAQ,8BAA8B;;;;;AC5xBtC,KAAI,QAAQ,IAAI,aAAa,aAC3B,QAAO,UAAA,qCAAA;KAEP,QAAO,UAAA,kCAAA"}
|
|
1
|
+
{"version":3,"file":"dist-BQZkLGL6.cjs","names":["useMySiteApi","e","e","t","n","React","e","t","n","r","o","React"],"sources":["../../../mysite/ui/src/portal/hooks/use-mysite-portal.ts","../../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/index.js","../../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/index.js","../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/index.js","../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/sortable.cjs.production.min.js","../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/sortable.cjs.development.js","../../../../node_modules/.pnpm/@dnd-kit+sortable@10.0.0_@dnd-kit+core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/index.js"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useMySiteApi } from \"@fluid-app/mysite-core/mysite-api-context\";\nimport type {\n MySiteProfile,\n MySiteLink,\n MySiteFavorite,\n MySiteTheme,\n CreateLinkBody,\n UpdateLinkBody,\n UpdateProfileBody,\n UpdateSettingsBody,\n AddFavoriteBody,\n} from \"@fluid-app/mysite-core/mysite-api-types\";\n\n// ---------------------------------------------------------------------------\n// Query keys — session-scoped, no userId/affiliateId needed\n// ---------------------------------------------------------------------------\n\nexport const PORTAL_MYSITE_KEYS = {\n profile: () => [\"portal-mysite\", \"profile\"] as const,\n links: () => [\"portal-mysite\", \"links\"] as const,\n favorites: () => [\"portal-mysite\", \"favorites\"] as const,\n themes: () => [\"portal-mysite\", \"themes\"] as const,\n};\n\n// ---------------------------------------------------------------------------\n// Profile hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteProfile() {\n const api = useMySiteApi();\n return useQuery<MySiteProfile>({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n queryFn: () => api.fetchProfile(),\n });\n}\n\nexport function usePortalUpdateProfile(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateProfileBody) => api.updateProfile(body),\n onSuccess: (data) => {\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.profile(), data);\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\nexport function usePortalUpdateSettings(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateSettingsBody) => api.updateSettings(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Links hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalLinks() {\n const api = useMySiteApi();\n return useQuery<MySiteLink[]>({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n queryFn: () => api.listLinks(),\n });\n}\n\nexport function usePortalCreateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: CreateLinkBody) => api.createLink(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalUpdateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({ linkId, body }: { linkId: number; body: UpdateLinkBody }) =>\n api.updateLink(linkId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalDeleteLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (linkId: number) => api.deleteLink(linkId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalReorderLinks() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteLink[];\n }) => api.reorderLinks(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n const previousData = queryClient.getQueryData<MySiteLink[]>(\n PORTAL_MYSITE_KEYS.links(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.links(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.links(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Favorites hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalFavorites() {\n const api = useMySiteApi();\n return useQuery<MySiteFavorite[]>({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n queryFn: () => api.listFavorites(),\n });\n}\n\nexport function usePortalAddFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: AddFavoriteBody) => api.addFavorite(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalDeleteFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (favoriteId: number) => api.deleteFavorite(favoriteId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalReorderFavorites() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteFavorite[];\n }) => api.reorderFavorites(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n const previousData = queryClient.getQueryData<MySiteFavorite[]>(\n PORTAL_MYSITE_KEYS.favorites(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.favorites(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.favorites(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Themes hook\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteThemes() {\n const api = useMySiteApi();\n return useQuery<MySiteTheme[]>({\n queryKey: PORTAL_MYSITE_KEYS.themes(),\n queryFn: () => api.listThemes(),\n });\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"react\");const t=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function n(e){const t=Object.prototype.toString.call(e);return\"[object Window]\"===t||\"[object global]\"===t}function r(e){return\"nodeType\"in e}function o(e){var t,o;return e?n(e)?e:r(e)&&null!=(t=null==(o=e.ownerDocument)?void 0:o.defaultView)?t:window:window}function u(e){const{Document:t}=o(e);return e instanceof t}function c(e){return!n(e)&&e instanceof o(e).HTMLElement}function s(e){return e instanceof o(e).SVGElement}const i=t?e.useLayoutEffect:e.useEffect;function a(t){const n=e.useRef(t);return i(()=>{n.current=t}),e.useCallback((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return null==n.current?void 0:n.current(...t)}),[])}let l={};function f(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((t,n)=>{const r=Object.entries(n);for(const[n,o]of r){const r=t[n];null!=r&&(t[n]=r+e*o)}return t},{...t})}}const d=f(1),p=f(-1);function x(e){return\"clientX\"in e&&\"clientY\"in e}function m(e){if(!e)return!1;const{TouchEvent:t}=o(e.target);return t&&e instanceof t}const h=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return\"translate3d(\"+(t?Math.round(t):0)+\"px, \"+(n?Math.round(n):0)+\"px, 0)\"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return\"scaleX(\"+t+\") scaleY(\"+n+\")\"}},Transform:{toString(e){if(e)return[h.Translate.toString(e),h.Scale.toString(e)].join(\" \")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+\" \"+n+\"ms \"+r}}}),b=\"a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]\";exports.CSS=h,exports.add=d,exports.canUseDOM=t,exports.findFirstFocusableNode=function(e){return e.matches(b)?e:e.querySelector(b)},exports.getEventCoordinates=function(e){if(m(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return x(e)?{x:e.clientX,y:e.clientY}:null},exports.getOwnerDocument=function(e){return e?n(e)?e.document:r(e)?u(e)?e:c(e)||s(e)?e.ownerDocument:document:document:document},exports.getWindow=o,exports.hasViewportRelativeCoordinates=x,exports.isDocument=u,exports.isHTMLElement=c,exports.isKeyboardEvent=function(e){if(!e)return!1;const{KeyboardEvent:t}=o(e.target);return t&&e instanceof t},exports.isNode=r,exports.isSVGElement=s,exports.isTouchEvent=m,exports.isWindow=n,exports.subtract=p,exports.useCombinedRefs=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.useMemo(()=>e=>{n.forEach(t=>t(e))},n)},exports.useEvent=a,exports.useInterval=function(){const t=e.useRef(null);return[e.useCallback((e,n)=>{t.current=setInterval(e,n)},[]),e.useCallback(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]},exports.useIsomorphicLayoutEffect=i,exports.useLatestValue=function(t,n){void 0===n&&(n=[t]);const r=e.useRef(t);return i(()=>{r.current!==t&&(r.current=t)},n),r},exports.useLazyMemo=function(t,n){const r=e.useRef();return e.useMemo(()=>{const e=t(r.current);return r.current=e,e},[...n])},exports.useNodeRef=function(t){const n=a(t),r=e.useRef(null),o=e.useCallback(e=>{e!==r.current&&(null==n||n(e,r.current)),r.current=e},[]);return[r,o]},exports.usePrevious=function(t){const n=e.useRef();return e.useEffect(()=>{n.current=t},[t]),n.current},exports.useUniqueId=function(t,n){return e.useMemo(()=>{if(n)return n;const e=null==l[t]?0:l[t]+1;return l[t]=e,t+\"-\"+e},[t,n])};\n//# sourceMappingURL=utilities.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar react = require('react');\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return react.useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? react.useLayoutEffect : react.useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = react.useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return react.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = react.useRef(null);\n const set = react.useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = react.useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = react.useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = react.useRef();\n return react.useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = react.useRef(null);\n const setNodeRef = react.useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = react.useRef();\n react.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return react.useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexports.CSS = CSS;\nexports.add = add;\nexports.canUseDOM = canUseDOM;\nexports.findFirstFocusableNode = findFirstFocusableNode;\nexports.getEventCoordinates = getEventCoordinates;\nexports.getOwnerDocument = getOwnerDocument;\nexports.getWindow = getWindow;\nexports.hasViewportRelativeCoordinates = hasViewportRelativeCoordinates;\nexports.isDocument = isDocument;\nexports.isHTMLElement = isHTMLElement;\nexports.isKeyboardEvent = isKeyboardEvent;\nexports.isNode = isNode;\nexports.isSVGElement = isSVGElement;\nexports.isTouchEvent = isTouchEvent;\nexports.isWindow = isWindow;\nexports.subtract = subtract;\nexports.useCombinedRefs = useCombinedRefs;\nexports.useEvent = useEvent;\nexports.useInterval = useInterval;\nexports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;\nexports.useLatestValue = useLatestValue;\nexports.useLazyMemo = useLazyMemo;\nexports.useNodeRef = useNodeRef;\nexports.usePrevious = usePrevious;\nexports.useUniqueId = useUniqueId;\n//# sourceMappingURL=utilities.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./utilities.cjs.production.min.js')\n} else {\n module.exports = require('./utilities.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),n=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e;const i={display:\"none\"};exports.HiddenText=function(e){let{id:t,value:r}=e;return n.createElement(\"div\",{id:t,style:i},r)},exports.LiveRegion=function(e){let{id:t,announcement:i,ariaLiveType:r=\"assertive\"}=e;return n.createElement(\"div\",{id:t,style:{position:\"fixed\",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:\"hidden\",clip:\"rect(0 0 0 0)\",clipPath:\"inset(100%)\",whiteSpace:\"nowrap\"},role:\"status\",\"aria-live\":r,\"aria-atomic\":!0},i)},exports.useAnnouncement=function(){const[e,n]=t.useState(\"\");return{announce:t.useCallback(e=>{null!=e&&n(e)},[]),announcement:e}};\n//# sourceMappingURL=accessibility.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React__default.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React__default.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = React.useState('');\n const announce = React.useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexports.HiddenText = HiddenText;\nexports.LiveRegion = LiveRegion;\nexports.useAnnouncement = useAnnouncement;\n//# sourceMappingURL=accessibility.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./accessibility.cjs.production.min.js')\n} else {\n module.exports = require('./accessibility.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),n=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e,r=require(\"react-dom\"),o=require(\"@dnd-kit/utilities\"),i=require(\"@dnd-kit/accessibility\");const a=t.createContext(null);function s(e){const n=t.useContext(a);t.useEffect(()=>{if(!n)throw new Error(\"useDndMonitor must be used within a children of <DndContext>\");return n(e)},[e,n])}const l={draggable:\"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"},c={onDragStart(e){let{active:t}=e;return\"Picked up draggable item \"+t.id+\".\"},onDragOver(e){let{active:t,over:n}=e;return n?\"Draggable item \"+t.id+\" was moved over droppable area \"+n.id+\".\":\"Draggable item \"+t.id+\" is no longer over a droppable area.\"},onDragEnd(e){let{active:t,over:n}=e;return n?\"Draggable item \"+t.id+\" was dropped over droppable area \"+n.id:\"Draggable item \"+t.id+\" was dropped.\"},onDragCancel(e){let{active:t}=e;return\"Dragging was cancelled. Draggable item \"+t.id+\" was dropped.\"}};function d(e){let{announcements:a=c,container:d,hiddenTextDescribedById:u,screenReaderInstructions:f=l}=e;const{announce:v,announcement:g}=i.useAnnouncement(),p=o.useUniqueId(\"DndLiveRegion\"),[h,b]=t.useState(!1);if(t.useEffect(()=>{b(!0)},[]),s(t.useMemo(()=>({onDragStart(e){let{active:t}=e;v(a.onDragStart({active:t}))},onDragMove(e){let{active:t,over:n}=e;a.onDragMove&&v(a.onDragMove({active:t,over:n}))},onDragOver(e){let{active:t,over:n}=e;v(a.onDragOver({active:t,over:n}))},onDragEnd(e){let{active:t,over:n}=e;v(a.onDragEnd({active:t,over:n}))},onDragCancel(e){let{active:t,over:n}=e;v(a.onDragCancel({active:t,over:n}))}}),[v,a])),!h)return null;const m=n.createElement(n.Fragment,null,n.createElement(i.HiddenText,{id:u,value:f.draggable}),n.createElement(i.LiveRegion,{id:p,announcement:g}));return d?r.createPortal(m,d):m}var u;function f(){}!function(e){e.DragStart=\"dragStart\",e.DragMove=\"dragMove\",e.DragEnd=\"dragEnd\",e.DragCancel=\"dragCancel\",e.DragOver=\"dragOver\",e.RegisterDroppable=\"registerDroppable\",e.SetDroppableDisabled=\"setDroppableDisabled\",e.UnregisterDroppable=\"unregisterDroppable\"}(u||(u={}));const v=Object.freeze({x:0,y:0});function g(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function p(e,t){const n=o.getEventCoordinates(e);return n?(n.x-t.left)/t.width*100+\"% \"+(n.y-t.top)/t.height*100+\"%\":\"0 0\"}function h(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function b(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function m(e){let{left:t,top:n,height:r,width:o}=e;return[{x:t,y:n},{x:t+o,y:n},{x:t,y:n+r},{x:t+o,y:n+r}]}function y(e,t){if(!e||0===e.length)return null;const[n]=e;return t?n[t]:n}function x(e,t,n){return void 0===t&&(t=e.left),void 0===n&&(n=e.top),{x:t+.5*e.width,y:n+.5*e.height}}function w(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height);if(r<o&&n<i){const a=(o-r)*(i-n);return Number((a/(t.width*t.height+e.width*e.height-a)).toFixed(4))}return 0}const C=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const e of r){const{id:r}=e,i=n.get(r);if(i){const n=w(i,t);n>0&&o.push({id:r,data:{droppableContainer:e,value:n}})}}return o.sort(b)};function E(e,t){const{top:n,left:r,bottom:o,right:i}=t;return n<=e.y&&e.y<=o&&r<=e.x&&e.x<=i}function D(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:v}function R(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}const S=R(1);function M(e){if(e.startsWith(\"matrix3d(\")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(\"matrix(\")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}const N={ignoreTransform:!1};function O(e,t){void 0===t&&(t=N);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:r}=o.getWindow(e).getComputedStyle(e);t&&(n=function(e,t,n){const r=M(t);if(!r)return e;const{scaleX:o,scaleY:i,x:a,y:s}=r,l=e.left-a-(1-o)*parseFloat(n),c=e.top-s-(1-i)*parseFloat(n.slice(n.indexOf(\" \")+1)),d=o?e.width/o:e.width,u=i?e.height/i:e.height;return{width:d,height:u,top:c,right:l+d,bottom:c+u,left:l}}(n,t,r))}const{top:r,left:i,width:a,height:s,bottom:l,right:c}=n;return{top:r,left:i,width:a,height:s,bottom:l,right:c}}function A(e){return O(e,{ignoreTransform:!0})}function L(e,t){const n=[];return e?function r(i){if(null!=t&&n.length>=t)return n;if(!i)return n;if(o.isDocument(i)&&null!=i.scrollingElement&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!o.isHTMLElement(i)||o.isSVGElement(i))return n;if(n.includes(i))return n;const a=o.getWindow(e).getComputedStyle(i);return i!==e&&function(e,t){void 0===t&&(t=o.getWindow(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return[\"overflow\",\"overflowX\",\"overflowY\"].some(e=>{const r=t[e];return\"string\"==typeof r&&n.test(r)})}(i,a)&&n.push(i),function(e,t){return void 0===t&&(t=o.getWindow(e).getComputedStyle(e)),\"fixed\"===t.position}(i,a)?n:r(i.parentNode)}(e):n}function k(e){const[t]=L(e,1);return null!=t?t:null}function T(e){return o.canUseDOM&&e?o.isWindow(e)?e:o.isNode(e)?o.isDocument(e)||e===o.getOwnerDocument(e).scrollingElement?window:o.isHTMLElement(e)?e:null:null:null}function K(e){return o.isWindow(e)?e.scrollX:e.scrollLeft}function P(e){return o.isWindow(e)?e.scrollY:e.scrollTop}function I(e){return{x:K(e),y:P(e)}}var B;function z(e){return!(!o.canUseDOM||!e)&&e===document.scrollingElement}function F(e){const t={x:0,y:0},n=z(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}!function(e){e[e.Forward=1]=\"Forward\",e[e.Backward=-1]=\"Backward\"}(B||(B={}));const W={x:.2,y:.2};function U(e,t,n,r,o){let{top:i,left:a,right:s,bottom:l}=n;void 0===r&&(r=10),void 0===o&&(o=W);const{isTop:c,isBottom:d,isLeft:u,isRight:f}=F(e),v={x:0,y:0},g={x:0,y:0},p=t.height*o.y,h=t.width*o.x;return!c&&i<=t.top+p?(v.y=B.Backward,g.y=r*Math.abs((t.top+p-i)/p)):!d&&l>=t.bottom-p&&(v.y=B.Forward,g.y=r*Math.abs((t.bottom-p-l)/p)),!f&&s>=t.right-h?(v.x=B.Forward,g.x=r*Math.abs((t.right-h-s)/h)):!u&&a<=t.left+h&&(v.x=B.Backward,g.x=r*Math.abs((t.left+h-a)/h)),{direction:v,speed:g}}function j(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function q(e){return e.reduce((e,t)=>o.add(e,I(t)),v)}function H(e,t){if(void 0===t&&(t=O),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);k(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:\"center\",inline:\"center\"})}const X=[[\"x\",[\"left\",\"right\"],function(e){return e.reduce((e,t)=>e+K(t),0)}],[\"y\",[\"top\",\"bottom\"],function(e){return e.reduce((e,t)=>e+P(t),0)}]];class Y{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=L(t),r=q(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[e,t,o]of X)for(const i of t)Object.defineProperty(this,i,{get:()=>{const t=o(n);return this.rect[i]+(r[e]-t)},enumerable:!0});Object.defineProperty(this,\"rect\",{enumerable:!1})}}class V{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function J(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return\"number\"==typeof t?Math.sqrt(n**2+r**2)>t:\"x\"in t&&\"y\"in t?n>t.x&&r>t.y:\"x\"in t?n>t.x:\"y\"in t&&r>t.y}var _,G;function Q(e){e.preventDefault()}function Z(e){e.stopPropagation()}!function(e){e.Click=\"click\",e.DragStart=\"dragstart\",e.Keydown=\"keydown\",e.ContextMenu=\"contextmenu\",e.Resize=\"resize\",e.SelectionChange=\"selectionchange\",e.VisibilityChange=\"visibilitychange\"}(_||(_={})),(G=exports.KeyboardCode||(exports.KeyboardCode={})).Space=\"Space\",G.Down=\"ArrowDown\",G.Right=\"ArrowRight\",G.Left=\"ArrowLeft\",G.Up=\"ArrowUp\",G.Esc=\"Escape\",G.Enter=\"Enter\",G.Tab=\"Tab\";const $={start:[exports.KeyboardCode.Space,exports.KeyboardCode.Enter],cancel:[exports.KeyboardCode.Esc],end:[exports.KeyboardCode.Space,exports.KeyboardCode.Enter,exports.KeyboardCode.Tab]},ee=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case exports.KeyboardCode.Right:return{...n,x:n.x+25};case exports.KeyboardCode.Left:return{...n,x:n.x-25};case exports.KeyboardCode.Down:return{...n,y:n.y+25};case exports.KeyboardCode.Up:return{...n,y:n.y-25}}};class te{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new V(o.getOwnerDocument(t)),this.windowListeners=new V(o.getWindow(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(_.Resize,this.handleCancel),this.windowListeners.add(_.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(_.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&H(n),t(v)}handleKeyDown(e){if(o.isKeyboardEvent(e)){const{active:t,context:n,options:r}=this.props,{keyboardCodes:i=$,coordinateGetter:a=ee,scrollBehavior:s=\"smooth\"}=r,{code:l}=e;if(i.end.includes(l))return void this.handleEnd(e);if(i.cancel.includes(l))return void this.handleCancel(e);const{collisionRect:c}=n.current,d=c?{x:c.left,y:c.top}:v;this.referenceCoordinates||(this.referenceCoordinates=d);const u=a(e,{active:t,context:n.current,currentCoordinates:d});if(u){const t=o.subtract(u,d),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(const n of i){const o=e.code,{isTop:i,isRight:a,isLeft:l,isBottom:c,maxScroll:d,minScroll:f}=F(n),v=j(n),g={x:Math.min(o===exports.KeyboardCode.Right?v.right-v.width/2:v.right,Math.max(o===exports.KeyboardCode.Right?v.left:v.left+v.width/2,u.x)),y:Math.min(o===exports.KeyboardCode.Down?v.bottom-v.height/2:v.bottom,Math.max(o===exports.KeyboardCode.Down?v.top:v.top+v.height/2,u.y))},p=o===exports.KeyboardCode.Right&&!a||o===exports.KeyboardCode.Left&&!l,h=o===exports.KeyboardCode.Down&&!c||o===exports.KeyboardCode.Up&&!i;if(p&&g.x!==u.x){const e=n.scrollLeft+t.x,i=o===exports.KeyboardCode.Right&&e<=d.x||o===exports.KeyboardCode.Left&&e>=f.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:s});r.x=i?n.scrollLeft-e:o===exports.KeyboardCode.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:s});break}if(h&&g.y!==u.y){const e=n.scrollTop+t.y,i=o===exports.KeyboardCode.Down&&e<=d.y||o===exports.KeyboardCode.Up&&e>=f.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:s});r.y=i?n.scrollTop-e:o===exports.KeyboardCode.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:s});break}}this.handleMove(e,o.add(o.subtract(u,this.referenceCoordinates),r))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function ne(e){return Boolean(e&&\"distance\"in e)}function re(e){return Boolean(e&&\"delay\"in e)}te.activators=[{eventName:\"onKeyDown\",handler:(e,t,n)=>{let{keyboardCodes:r=$,onActivation:o}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const t=i.activatorNode.current;return!(t&&e.target!==t||(e.preventDefault(),null==o||o({event:e.nativeEvent}),0))}return!1}}];class oe{constructor(e,t,n){var r;void 0===n&&(n=function(e){const{EventTarget:t}=o.getWindow(e);return e instanceof t?e:o.getOwnerDocument(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:i}=e,{target:a}=i;this.props=e,this.events=t,this.document=o.getOwnerDocument(a),this.documentListeners=new V(this.document),this.listeners=new V(n),this.windowListeners=new V(o.getWindow(a)),this.initialCoordinates=null!=(r=o.getEventCoordinates(i))?r:v,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(_.Resize,this.handleCancel),this.windowListeners.add(_.DragStart,Q),this.windowListeners.add(_.VisibilityChange,this.handleCancel),this.windowListeners.add(_.ContextMenu,Q),this.documentListeners.add(_.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(re(t))return this.timeoutId=setTimeout(this.handleStart,t.delay),void this.handlePending(t);if(ne(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){const{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(_.Click,Z,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(_.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:r,props:i}=this,{onMove:a,options:{activationConstraint:s}}=i;if(!r)return;const l=null!=(t=o.getEventCoordinates(e))?t:v,c=o.subtract(r,l);if(!n&&s){if(ne(s)){if(null!=s.tolerance&&J(c,s.tolerance))return this.handleCancel();if(J(c,s.distance))return this.handleStart()}return re(s)&&J(c,s.tolerance)?this.handleCancel():void this.handlePending(s,c)}e.cancelable&&e.preventDefault(),a(l)}handleEnd(){const{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){const{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===exports.KeyboardCode.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}const ie={cancel:{name:\"pointercancel\"},move:{name:\"pointermove\"},end:{name:\"pointerup\"}};class ae extends oe{constructor(e){const{event:t}=e,n=o.getOwnerDocument(t.target);super(e,ie,n)}}ae.activators=[{eventName:\"onPointerDown\",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!(!n.isPrimary||0!==n.button||(null==r||r({event:n}),0))}}];const se={move:{name:\"mousemove\"},end:{name:\"mouseup\"}};var le;!function(e){e[e.RightClick=2]=\"RightClick\"}(le||(le={}));class ce extends oe{constructor(e){super(e,se,o.getOwnerDocument(e.event.target))}}ce.activators=[{eventName:\"onMouseDown\",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==le.RightClick&&(null==r||r({event:n}),!0)}}];const de={cancel:{name:\"touchcancel\"},move:{name:\"touchmove\"},end:{name:\"touchend\"}};class ue extends oe{constructor(e){super(e,de)}static setup(){return window.addEventListener(de.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(de.move.name,e)};function e(){}}}var fe,ve;ue.activators=[{eventName:\"onTouchStart\",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return!(o.length>1||(null==r||r({event:n}),0))}}],(fe=exports.AutoScrollActivator||(exports.AutoScrollActivator={}))[fe.Pointer=0]=\"Pointer\",fe[fe.DraggableRect=1]=\"DraggableRect\",(ve=exports.TraversalOrder||(exports.TraversalOrder={}))[ve.TreeOrder=0]=\"TreeOrder\",ve[ve.ReversedTreeOrder=1]=\"ReversedTreeOrder\";const ge={x:{[B.Backward]:!1,[B.Forward]:!1},y:{[B.Backward]:!1,[B.Forward]:!1}};var pe;(pe=exports.MeasuringStrategy||(exports.MeasuringStrategy={}))[pe.Always=0]=\"Always\",pe[pe.BeforeDragging=1]=\"BeforeDragging\",pe[pe.WhileDragging=2]=\"WhileDragging\",(exports.MeasuringFrequency||(exports.MeasuringFrequency={})).Optimized=\"optimized\";const he=new Map;function be(e,t){return o.useLazyMemo(n=>e?n||(\"function\"==typeof t?t(e):e):null,[t,e])}function me(e){let{callback:n,disabled:r}=e;const i=o.useEvent(n),a=t.useMemo(()=>{if(r||\"undefined\"==typeof window||void 0===window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(i)},[r]);return t.useEffect(()=>()=>null==a?void 0:a.disconnect(),[a]),a}function ye(e){return new Y(O(e),e)}function xe(e,n,r){void 0===n&&(n=ye);const[i,a]=t.useState(null);function s(){a(t=>{if(!e)return null;var o;if(!1===e.isConnected)return null!=(o=null!=t?t:r)?o:null;const i=n(e);return JSON.stringify(t)===JSON.stringify(i)?t:i})}const l=function(e){let{callback:n,disabled:r}=e;const i=o.useEvent(n),a=t.useMemo(()=>{if(r||\"undefined\"==typeof window||void 0===window.MutationObserver)return;const{MutationObserver:e}=window;return new e(i)},[i,r]);return t.useEffect(()=>()=>null==a?void 0:a.disconnect(),[a]),a}({callback(t){if(e)for(const n of t){const{type:t,target:r}=n;if(\"childList\"===t&&r instanceof HTMLElement&&r.contains(e)){s();break}}}}),c=me({callback:s});return o.useIsomorphicLayoutEffect(()=>{s(),e?(null==c||c.observe(e),null==l||l.observe(document.body,{childList:!0,subtree:!0})):(null==c||c.disconnect(),null==l||l.disconnect())},[e]),i}const we=[];function Ce(e,n){void 0===n&&(n=[]);const r=t.useRef(null);return t.useEffect(()=>{r.current=null},n),t.useEffect(()=>{const t=e!==v;t&&!r.current&&(r.current=e),!t&&r.current&&(r.current=null)},[e]),r.current?o.subtract(e,r.current):v}function Ee(e){return t.useMemo(()=>e?function(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null,[e])}const De=[];function Re(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return o.isHTMLElement(t)?t:e}const Se=[{sensor:ae,options:{}},{sensor:te,options:{}}],Me={current:{}},Ne={draggable:{measure:A},droppable:{measure:A,strategy:exports.MeasuringStrategy.WhileDragging,frequency:exports.MeasuringFrequency.Optimized},dragOverlay:{measure:O}};class Oe extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}const Ae={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Oe,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:f},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Ne,measureDroppableContainers:f,windowRect:null,measuringScheduled:!1},Le={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:\"\"},dispatch:f,draggableNodes:new Map,over:null,measureDroppableContainers:f},ke=t.createContext(Le),Te=t.createContext(Ae);function Ke(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Oe}}}function Pe(e,t){switch(t.type){case u.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case u.DragMove:return null==e.draggable.active?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case u.DragEnd:case u.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case u.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Oe(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case u.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Oe(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case u.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Oe(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Ie(e){let{disabled:n}=e;const{active:r,activatorEvent:i,draggableNodes:a}=t.useContext(ke),s=o.usePrevious(i),l=o.usePrevious(null==r?void 0:r.id);return t.useEffect(()=>{if(!n&&!i&&s&&null!=l){if(!o.isKeyboardEvent(s))return;if(document.activeElement===s.target)return;const e=a.get(l);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=o.findFirstFocusableNode(e);if(t){t.focus();break}}})}},[i,n,a,l,s]),null}function Be(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}const ze=t.createContext({...v,scaleX:1,scaleY:1});var Fe;!function(e){e[e.Uninitialized=0]=\"Uninitialized\",e[e.Initializing=1]=\"Initializing\",e[e.Initialized=2]=\"Initialized\"}(Fe||(Fe={}));const We=t.memo((function(e){var i,s,l,c;let{id:f,accessibility:g,autoScroll:p=!0,children:h,sensors:b=Se,collisionDetection:m=C,measuring:x,modifiers:w,...E}=e;const R=t.useReducer(Pe,void 0,Ke),[M,N]=R,[A,K]=function(){const[e]=t.useState(()=>new Set),n=t.useCallback(t=>(e.add(t),()=>e.delete(t)),[e]);return[t.useCallback(t=>{let{type:n,event:r}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)})},[e]),n]}(),[P,F]=t.useState(Fe.Uninitialized),W=P===Fe.Initialized,{draggable:{active:j,nodes:H,translate:X},droppable:{containers:V}}=M,J=null!=j?H.get(j):null,_=t.useRef({initial:null,translated:null}),G=t.useMemo(()=>{var e;return null!=j?{id:j,data:null!=(e=null==J?void 0:J.data)?e:Me,rect:_}:null},[j,J]),Q=t.useRef(null),[Z,$]=t.useState(null),[ee,te]=t.useState(null),ne=o.useLatestValue(E,Object.values(E)),re=o.useUniqueId(\"DndDescribedBy\",f),oe=t.useMemo(()=>V.getEnabled(),[V]),ie=t.useMemo(()=>({draggable:{...Ne.draggable,...null==ae?void 0:ae.draggable},droppable:{...Ne.droppable,...null==ae?void 0:ae.droppable},dragOverlay:{...Ne.dragOverlay,...null==ae?void 0:ae.dragOverlay}}),[null==(ae=x)?void 0:ae.draggable,null==ae?void 0:ae.droppable,null==ae?void 0:ae.dragOverlay]);var ae;const{droppableRects:se,measureDroppableContainers:le,measuringScheduled:ce}=function(e,n){let{dragging:r,dependencies:i,config:a}=n;const[s,l]=t.useState(null),{frequency:c,measure:d,strategy:u}=a,f=t.useRef(e),v=function(){switch(u){case exports.MeasuringStrategy.Always:return!1;case exports.MeasuringStrategy.BeforeDragging:return r;default:return!r}}(),g=o.useLatestValue(v),p=t.useCallback((function(e){void 0===e&&(e=[]),g.current||l(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))}),[g]),h=t.useRef(null),b=o.useLazyMemo(t=>{if(v&&!r)return he;if(!t||t===he||f.current!==e||null!=s){const t=new Map;for(let n of e){if(!n)continue;if(s&&s.length>0&&!s.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}const e=n.node.current,r=e?new Y(d(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,s,r,v,d]);return t.useEffect(()=>{f.current=e},[e]),t.useEffect(()=>{v||p()},[r,v]),t.useEffect(()=>{s&&s.length>0&&l(null)},[JSON.stringify(s)]),t.useEffect(()=>{v||\"number\"!=typeof c||null!==h.current||(h.current=setTimeout(()=>{p(),h.current=null},c))},[c,v,p,...i]),{droppableRects:b,measureDroppableContainers:p,measuringScheduled:null!=s}}(oe,{dragging:W,dependencies:[X.x,X.y],config:ie.droppable}),de=function(e,t){const n=null!=t?e.get(t):void 0,r=n?n.node.current:null;return o.useLazyMemo(e=>{var n;return null==t?null:null!=(n=null!=r?r:e)?n:null},[r,t])}(H,j),ue=t.useMemo(()=>ee?o.getEventCoordinates(ee):null,[ee]),fe=function(){const e=W&&!(!1===(null==Z?void 0:Z.autoScrollEnabled))&&!(\"object\"==typeof p?!1===p.enabled:!1===p);return\"object\"==typeof p?{...p,enabled:e}:{enabled:e}}(),ve=function(e,t){return be(e,t)}(de,ie.draggable.measure);!function(e){let{activeNode:n,measure:r,initialRect:i,config:a=!0}=e;const s=t.useRef(!1),{x:l,y:c}=\"boolean\"==typeof a?{x:a,y:a}:a;o.useIsomorphicLayoutEffect(()=>{if(!l&&!c||!n)return void(s.current=!1);if(s.current||!i)return;const e=null==n?void 0:n.node.current;if(!e||!1===e.isConnected)return;const t=D(r(e),i);if(l||(t.x=0),c||(t.y=0),s.current=!0,Math.abs(t.x)>0||Math.abs(t.y)>0){const n=k(e);n&&n.scrollBy({top:t.y,left:t.x})}},[n,l,c,i,r])}({activeNode:null!=j?H.get(j):null,config:fe.layoutShiftCompensation,initialRect:ve,measure:ie.draggable.measure});const pe=xe(de,ie.draggable.measure,ve),ye=xe(de?de.parentElement:null),Oe=t.useRef({activatorEvent:null,active:null,activeNode:de,collisionRect:null,collisions:null,droppableRects:se,draggableNodes:H,draggingNode:null,draggingNodeRect:null,droppableContainers:V,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Ae=V.getNodeFor(null==(i=Oe.current.over)?void 0:i.id),Le=function(e){let{measure:n}=e;const[r,i]=t.useState(null),a=me({callback:t.useCallback(e=>{for(const{target:t}of e)if(o.isHTMLElement(t)){i(e=>{const r=n(t);return e?{...e,width:r.width,height:r.height}:r});break}},[n])}),s=t.useCallback(e=>{const t=Re(e);null==a||a.disconnect(),t&&(null==a||a.observe(t)),i(t?n(t):null)},[n,a]),[l,c]=o.useNodeRef(s);return t.useMemo(()=>({nodeRef:l,rect:r,setRef:c}),[r,l,c])}({measure:ie.dragOverlay.measure}),We=null!=(s=Le.nodeRef.current)?s:de,Ue=W?null!=(l=Le.rect)?l:pe:null,je=Boolean(Le.nodeRef.current&&Le.rect),qe=D(He=je?null:pe,be(He));var He;const Xe=Ee(We?o.getWindow(We):null),Ye=function(e){const n=t.useRef(e),r=o.useLazyMemo(t=>e?t&&t!==we&&e&&n.current&&e.parentNode===n.current.parentNode?t:L(e):we,[e]);return t.useEffect(()=>{n.current=e},[e]),r}(W?null!=Ae?Ae:de:null),Ve=function(e,n){void 0===n&&(n=O);const[r]=e,i=Ee(r?o.getWindow(r):null),[a,s]=t.useState(De);function l(){s(()=>e.length?e.map(e=>z(e)?i:new Y(n(e),e)):De)}const c=me({callback:l});return o.useIsomorphicLayoutEffect(()=>{null==c||c.disconnect(),l(),e.forEach(e=>null==c?void 0:c.observe(e))},[e]),a}(Ye),Je=Be(w,{transform:{x:X.x-qe.x,y:X.y-qe.y,scaleX:1,scaleY:1},activatorEvent:ee,active:G,activeNodeRect:pe,containerNodeRect:ye,draggingNodeRect:Ue,over:Oe.current.over,overlayNodeRect:Le.rect,scrollableAncestors:Ye,scrollableAncestorRects:Ve,windowRect:Xe}),_e=ue?o.add(ue,X):null,Ge=function(e){const[n,r]=t.useState(null),i=t.useRef(e),a=t.useCallback(e=>{const t=T(e.target);t&&r(e=>e?(e.set(t,I(t)),new Map(e)):null)},[]);return t.useEffect(()=>{const t=i.current;if(e!==t){n(t);const o=e.map(e=>{const t=T(e);return t?(t.addEventListener(\"scroll\",a,{passive:!0}),[t,I(t)]):null}).filter(e=>null!=e);r(o.length?new Map(o):null),i.current=e}return()=>{n(e),n(t)};function n(e){e.forEach(e=>{const t=T(e);null==t||t.removeEventListener(\"scroll\",a)})}},[a,e]),t.useMemo(()=>e.length?n?Array.from(n.values()).reduce((e,t)=>o.add(e,t),v):q(e):v,[e,n])}(Ye),Qe=Ce(Ge),Ze=Ce(Ge,[pe]),$e=o.add(Je,Qe),et=Ue?S(Ue,Je):null,tt=G&&et?m({active:G,collisionRect:et,droppableRects:se,droppableContainers:oe,pointerCoordinates:_e}):null,nt=y(tt,\"id\"),[rt,ot]=t.useState(null),it=function(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}(je?Je:o.add(Je,Ze),null!=(c=null==rt?void 0:rt.rect)?c:null,pe),at=t.useRef(null),st=t.useCallback((e,t)=>{let{sensor:n,options:o}=t;if(null==Q.current)return;const i=H.get(Q.current);if(!i)return;const a=e.nativeEvent,s=new n({active:Q.current,activeNode:i,event:a,options:o,context:Oe,onAbort(e){if(!H.get(e))return;const{onDragAbort:t}=ne.current,n={id:e};null==t||t(n),A({type:\"onDragAbort\",event:n})},onPending(e,t,n,r){if(!H.get(e))return;const{onDragPending:o}=ne.current,i={id:e,constraint:t,initialCoordinates:n,offset:r};null==o||o(i),A({type:\"onDragPending\",event:i})},onStart(e){const t=Q.current;if(null==t)return;const n=H.get(t);if(!n)return;const{onDragStart:o}=ne.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:_}};r.unstable_batchedUpdates(()=>{null==o||o(i),F(Fe.Initializing),N({type:u.DragStart,initialCoordinates:e,active:t}),A({type:\"onDragStart\",event:i}),$(at.current),te(a)})},onMove(e){N({type:u.DragMove,coordinates:e})},onEnd:l(u.DragEnd),onCancel:l(u.DragCancel)});function l(e){return async function(){const{active:t,collisions:n,over:o,scrollAdjustedTranslate:i}=Oe.current;let s=null;if(t&&i){const{cancelDrop:r}=ne.current;s={activatorEvent:a,active:t,collisions:n,delta:i,over:o},e===u.DragEnd&&\"function\"==typeof r&&await Promise.resolve(r(s))&&(e=u.DragCancel)}Q.current=null,r.unstable_batchedUpdates(()=>{N({type:e}),F(Fe.Uninitialized),ot(null),$(null),te(null),at.current=null;const t=e===u.DragEnd?\"onDragEnd\":\"onDragCancel\";if(s){const e=ne.current[t];null==e||e(s),A({type:t,event:s})}})}}at.current=s},[H]),lt=function(e,n){return t.useMemo(()=>e.reduce((e,t)=>{const{sensor:r}=t;return[...e,...r.activators.map(e=>({eventName:e.eventName,handler:n(e.handler,t)}))]},[]),[e,n])}(b,t.useCallback((e,t)=>(n,r)=>{const o=n.nativeEvent,i=H.get(r);null!==Q.current||!i||o.dndKit||o.defaultPrevented||!0===e(n,t.options,{active:i})&&(o.dndKit={capturedBy:t.sensor},Q.current=r,st(n,t))},[H,st]));!function(e){t.useEffect(()=>{if(!o.canUseDOM)return;const t=e.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(const e of t)null==e||e()}},e.map(e=>{let{sensor:t}=e;return t}))}(b),o.useIsomorphicLayoutEffect(()=>{pe&&P===Fe.Initializing&&F(Fe.Initialized)},[pe,P]),t.useEffect(()=>{const{onDragMove:e}=ne.current,{active:t,activatorEvent:n,collisions:o,over:i}=Oe.current;if(!t||!n)return;const a={active:t,activatorEvent:n,collisions:o,delta:{x:$e.x,y:$e.y},over:i};r.unstable_batchedUpdates(()=>{null==e||e(a),A({type:\"onDragMove\",event:a})})},[$e.x,$e.y]),t.useEffect(()=>{const{active:e,activatorEvent:t,collisions:n,droppableContainers:o,scrollAdjustedTranslate:i}=Oe.current;if(!e||null==Q.current||!t||!i)return;const{onDragOver:a}=ne.current,s=o.get(nt),l=s&&s.rect.current?{id:s.id,rect:s.rect.current,data:s.data,disabled:s.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:l};r.unstable_batchedUpdates(()=>{ot(l),null==a||a(c),A({type:\"onDragOver\",event:c})})},[nt]),o.useIsomorphicLayoutEffect(()=>{Oe.current={activatorEvent:ee,active:G,activeNode:de,collisionRect:et,collisions:tt,droppableRects:se,draggableNodes:H,draggingNode:We,draggingNodeRect:Ue,droppableContainers:V,over:rt,scrollableAncestors:Ye,scrollAdjustedTranslate:$e},_.current={initial:Ue,translated:et}},[G,de,tt,et,H,We,Ue,se,V,rt,Ye,$e]),function(e){let{acceleration:n,activator:r=exports.AutoScrollActivator.Pointer,canScroll:i,draggingRect:a,enabled:s,interval:l=5,order:c=exports.TraversalOrder.TreeOrder,pointerCoordinates:d,scrollableAncestors:u,scrollableAncestorRects:f,delta:v,threshold:g}=e;const p=function(e){let{delta:t,disabled:n}=e;const r=o.usePrevious(t);return o.useLazyMemo(e=>{if(n||!r||!e)return ge;const o=Math.sign(t.x-r.x),i=Math.sign(t.y-r.y);return{x:{[B.Backward]:e.x[B.Backward]||-1===o,[B.Forward]:e.x[B.Forward]||1===o},y:{[B.Backward]:e.y[B.Backward]||-1===i,[B.Forward]:e.y[B.Forward]||1===i}}},[n,t,r])}({delta:v,disabled:!s}),[h,b]=o.useInterval(),m=t.useRef({x:0,y:0}),y=t.useRef({x:0,y:0}),x=t.useMemo(()=>{switch(r){case exports.AutoScrollActivator.Pointer:return d?{top:d.y,bottom:d.y,left:d.x,right:d.x}:null;case exports.AutoScrollActivator.DraggableRect:return a}},[r,a,d]),w=t.useRef(null),C=t.useCallback(()=>{const e=w.current;e&&e.scrollBy(m.current.x*y.current.x,m.current.y*y.current.y)},[]),E=t.useMemo(()=>c===exports.TraversalOrder.TreeOrder?[...u].reverse():u,[c,u]);t.useEffect(()=>{if(s&&u.length&&x){for(const e of E){if(!1===(null==i?void 0:i(e)))continue;const t=u.indexOf(e),r=f[t];if(!r)continue;const{direction:o,speed:a}=U(e,r,x,n,g);for(const e of[\"x\",\"y\"])p[e][o[e]]||(a[e]=0,o[e]=0);if(a.x>0||a.y>0)return b(),w.current=e,h(C,l),m.current=a,void(y.current=o)}m.current={x:0,y:0},y.current={x:0,y:0},b()}else b()},[n,C,i,b,s,l,JSON.stringify(x),JSON.stringify(p),h,u,E,f,JSON.stringify(g)])}({...fe,delta:X,draggingRect:et,pointerCoordinates:_e,scrollableAncestors:Ye,scrollableAncestorRects:Ve});const ct=t.useMemo(()=>({active:G,activeNode:de,activeNodeRect:pe,activatorEvent:ee,collisions:tt,containerNodeRect:ye,dragOverlay:Le,draggableNodes:H,droppableContainers:V,droppableRects:se,over:rt,measureDroppableContainers:le,scrollableAncestors:Ye,scrollableAncestorRects:Ve,measuringConfiguration:ie,measuringScheduled:ce,windowRect:Xe}),[G,de,pe,ee,tt,ye,Le,H,V,se,rt,le,Ye,Ve,ie,ce,Xe]),dt=t.useMemo(()=>({activatorEvent:ee,activators:lt,active:G,activeNodeRect:pe,ariaDescribedById:{draggable:re},dispatch:N,draggableNodes:H,over:rt,measureDroppableContainers:le}),[ee,lt,G,pe,N,re,H,rt,le]);return n.createElement(a.Provider,{value:K},n.createElement(ke.Provider,{value:dt},n.createElement(Te.Provider,{value:ct},n.createElement(ze.Provider,{value:it},h)),n.createElement(Ie,{disabled:!1===(null==g?void 0:g.restoreFocus)})),n.createElement(d,{...g,hiddenTextDescribedById:re}))})),Ue=t.createContext(null),je=\"button\";function qe(){return t.useContext(Te)}const He={timeout:25};function Xe(e){let{animation:r,children:i}=e;const[a,s]=t.useState(null),[l,c]=t.useState(null),d=o.usePrevious(i);return i||a||!d||s(d),o.useIsomorphicLayoutEffect(()=>{if(!l)return;const e=null==a?void 0:a.props.id;null!=(null==a?void 0:a.key)&&null!=e?Promise.resolve(r(e,l)).then(()=>{s(null)}):s(null)},[r,a,l]),n.createElement(n.Fragment,null,i,a?t.cloneElement(a,{ref:c}):null)}const Ye={x:0,y:0,scaleX:1,scaleY:1};function Ve(e){let{children:t}=e;return n.createElement(ke.Provider,{value:Le},n.createElement(ze.Provider,{value:Ye},t))}const Je={position:\"fixed\",touchAction:\"none\"},_e=e=>o.isKeyboardEvent(e)?\"transform 250ms ease\":void 0,Ge=t.forwardRef((e,t)=>{let{as:r,activatorEvent:i,adjustScale:a,children:s,className:l,rect:c,style:d,transform:u,transition:f=_e}=e;if(!c)return null;const v=a?u:{...u,scaleX:1,scaleY:1},g={...Je,width:c.width,height:c.height,top:c.top,left:c.left,transform:o.CSS.Transform.toString(v),transformOrigin:a&&i?p(i,c):void 0,transition:\"function\"==typeof f?f(i):f,...d};return n.createElement(r,{className:l,style:g,ref:t},s)}),Qe=e=>t=>{let{active:n,dragOverlay:r}=t;const o={},{styles:i,className:a}=e;if(null!=i&&i.active)for(const[e,t]of Object.entries(i.active))void 0!==t&&(o[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(null!=i&&i.dragOverlay)for(const[e,t]of Object.entries(i.dragOverlay))void 0!==t&&r.node.style.setProperty(e,t);return null!=a&&a.active&&n.node.classList.add(a.active),null!=a&&a.dragOverlay&&r.node.classList.add(a.dragOverlay),function(){for(const[e,t]of Object.entries(o))n.node.style.setProperty(e,t);null!=a&&a.active&&n.node.classList.remove(a.active)}},Ze={duration:250,easing:\"ease\",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:o.CSS.Transform.toString(t)},{transform:o.CSS.Transform.toString(n)}]},sideEffects:Qe({styles:{active:{opacity:\"0\"}}})};let $e=0;function et(e){return t.useMemo(()=>{if(null!=e)return $e++,$e},[e])}const tt=n.memo(e=>{let{adjustScale:r=!1,children:i,dropAnimation:a,style:s,transition:l,modifiers:c,wrapperElement:d=\"div\",className:u,zIndex:f=999}=e;const{activatorEvent:v,active:g,activeNodeRect:p,containerNodeRect:h,draggableNodes:b,droppableContainers:m,dragOverlay:y,over:x,measuringConfiguration:w,scrollableAncestors:C,scrollableAncestorRects:E,windowRect:D}=qe(),R=t.useContext(ze),S=et(null==g?void 0:g.id),N=Be(c,{activatorEvent:v,active:g,activeNodeRect:p,containerNodeRect:h,draggingNodeRect:y.rect,over:x,overlayNodeRect:y.rect,scrollableAncestors:C,scrollableAncestorRects:E,transform:R,windowRect:D}),O=be(p),A=function(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return o.useEvent((e,a)=>{if(null===t)return;const s=n.get(e);if(!s)return;const l=s.node.current;if(!l)return;const c=Re(a);if(!c)return;const{transform:d}=o.getWindow(a).getComputedStyle(a),u=M(d);if(!u)return;const f=\"function\"==typeof t?t:function(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...Ze,...e};return e=>{let{active:i,dragOverlay:a,transform:s,...l}=e;if(!t)return;const c={x:s.x-(a.rect.left-i.rect.left),y:s.y-(a.rect.top-i.rect.top),scaleX:1!==s.scaleX?i.rect.width*s.scaleX/a.rect.width:1,scaleY:1!==s.scaleY?i.rect.height*s.scaleY/a.rect.height:1},d=o({...l,active:i,dragOverlay:a,transform:{initial:s,final:c}}),[u]=d,f=d[d.length-1];if(JSON.stringify(u)===JSON.stringify(f))return;const v=null==r?void 0:r({active:i,dragOverlay:a,...l}),g=a.node.animate(d,{duration:t,easing:n,fill:\"forwards\"});return new Promise(e=>{g.onfinish=()=>{null==v||v(),e()}})}}(t);return H(l,i.draggable.measure),f({active:{id:e,data:s.data,node:l,rect:i.draggable.measure(l)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}({config:a,draggableNodes:b,droppableContainers:m,measuringConfiguration:w});return n.createElement(Ve,null,n.createElement(Xe,{animation:A},g&&S?n.createElement(Ge,{key:S,id:g.id,ref:O?y.setRef:void 0,as:d,activatorEvent:v,adjustScale:r,className:u,transition:l,rect:O,style:{zIndex:f,...s},transform:N},i):null))});exports.DndContext=We,exports.DragOverlay=tt,exports.KeyboardSensor=te,exports.MouseSensor=ce,exports.PointerSensor=ae,exports.TouchSensor=ue,exports.applyModifiers=Be,exports.closestCenter=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=x(t,t.left,t.top),i=[];for(const e of r){const{id:t}=e,r=n.get(t);if(r){const n=g(x(r),o);i.push({id:t,data:{droppableContainer:e,value:n}})}}return i.sort(h)},exports.closestCorners=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=m(t),i=[];for(const e of r){const{id:t}=e,r=n.get(t);if(r){const n=m(r),a=o.reduce((e,t,r)=>e+g(n[r],t),0),s=Number((a/4).toFixed(4));i.push({id:t,data:{droppableContainer:e,value:s}})}}return i.sort(h)},exports.defaultAnnouncements=c,exports.defaultCoordinates=v,exports.defaultDropAnimation=Ze,exports.defaultDropAnimationSideEffects=Qe,exports.defaultKeyboardCoordinateGetter=ee,exports.defaultScreenReaderInstructions=l,exports.getClientRect=O,exports.getFirstCollision=y,exports.getScrollableAncestors=L,exports.pointerWithin=e=>{let{droppableContainers:t,droppableRects:n,pointerCoordinates:r}=e;if(!r)return[];const o=[];for(const e of t){const{id:t}=e,i=n.get(t);if(i&&E(r,i)){const n=m(i).reduce((e,t)=>e+g(r,t),0),a=Number((n/4).toFixed(4));o.push({id:t,data:{droppableContainer:e,value:a}})}}return o.sort(h)},exports.rectIntersection=C,exports.useDndContext=qe,exports.useDndMonitor=s,exports.useDraggable=function(e){let{id:n,data:r,disabled:i=!1,attributes:a}=e;const s=o.useUniqueId(\"Draggable\"),{activators:l,activatorEvent:c,active:d,activeNodeRect:u,ariaDescribedById:f,draggableNodes:v,over:g}=t.useContext(ke),{role:p=je,roleDescription:h=\"draggable\",tabIndex:b=0}=null!=a?a:{},m=(null==d?void 0:d.id)===n,y=t.useContext(m?ze:Ue),[x,w]=o.useNodeRef(),[C,E]=o.useNodeRef(),D=function(e,n){return t.useMemo(()=>e.reduce((e,t)=>{let{eventName:r,handler:o}=t;return e[r]=e=>{o(e,n)},e},{}),[e,n])}(l,n),R=o.useLatestValue(r);return o.useIsomorphicLayoutEffect(()=>(v.set(n,{id:n,key:s,node:x,activatorNode:C,data:R}),()=>{const e=v.get(n);e&&e.key===s&&v.delete(n)}),[v,n]),{active:d,activatorEvent:c,activeNodeRect:u,attributes:t.useMemo(()=>({role:p,tabIndex:b,\"aria-disabled\":i,\"aria-pressed\":!(!m||p!==je)||void 0,\"aria-roledescription\":h,\"aria-describedby\":f.draggable}),[i,p,b,m,h,f.draggable]),isDragging:m,listeners:i?void 0:D,node:x,over:g,setNodeRef:w,setActivatorNodeRef:E,transform:y}},exports.useDroppable=function(e){let{data:n,disabled:r=!1,id:i,resizeObserverConfig:a}=e;const s=o.useUniqueId(\"Droppable\"),{active:l,dispatch:c,over:d,measureDroppableContainers:f}=t.useContext(ke),v=t.useRef({disabled:r}),g=t.useRef(!1),p=t.useRef(null),h=t.useRef(null),{disabled:b,updateMeasurementsFor:m,timeout:y}={...He,...a},x=o.useLatestValue(null!=m?m:i),w=me({callback:t.useCallback(()=>{g.current?(null!=h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{f(Array.isArray(x.current)?x.current:[x.current]),h.current=null},y)):g.current=!0},[y]),disabled:b||!l}),C=t.useCallback((e,t)=>{w&&(t&&(w.unobserve(t),g.current=!1),e&&w.observe(e))},[w]),[E,D]=o.useNodeRef(C),R=o.useLatestValue(n);return t.useEffect(()=>{w&&E.current&&(w.disconnect(),g.current=!1,w.observe(E.current))},[E,w]),t.useEffect(()=>(c({type:u.RegisterDroppable,element:{id:i,key:s,disabled:r,node:E,rect:p,data:R}}),()=>c({type:u.UnregisterDroppable,key:s,id:i})),[i]),t.useEffect(()=>{r!==v.current.disabled&&(c({type:u.SetDroppableDisabled,id:i,key:s,disabled:r}),v.current.disabled=r)},[i,s,r,c]),{active:l,rect:p,isOver:(null==d?void 0:d.id)===i,node:E,over:d,setNodeRef:D}},exports.useSensor=function(e,n){return t.useMemo(()=>({sensor:e,options:null!=n?n:{}}),[e,n])},exports.useSensors=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.useMemo(()=>[...n].filter(e=>null!=e),[...n])};\n//# sourceMappingURL=core.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar reactDom = require('react-dom');\nvar utilities = require('@dnd-kit/utilities');\nvar accessibility = require('@dnd-kit/accessibility');\n\nconst DndMonitorContext = /*#__PURE__*/React.createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = React.useContext(DndMonitorContext);\n React.useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of <DndContext>');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = React.useState(() => new Set());\n const registerListener = React.useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = React.useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = accessibility.useAnnouncement();\n const liveRegionId = utilities.useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(React.useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React__default.createElement(React__default.Fragment, null, React__default.createElement(accessibility.HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React__default.createElement(accessibility.LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? reactDom.createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return React.useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return React.useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = utilities.getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = utilities.getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = utilities.getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = utilities.getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (utilities.isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!utilities.isHTMLElement(node) || utilities.isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = utilities.getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!utilities.canUseDOM || !element) {\n return null;\n }\n\n if (utilities.isWindow(element)) {\n return element;\n }\n\n if (!utilities.isNode(element)) {\n return null;\n }\n\n if (utilities.isDocument(element) || element === utilities.getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (utilities.isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (utilities.isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (utilities.isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!utilities.canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return utilities.add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = utilities.getWindow(target);\n return target instanceof EventTarget ? target : utilities.getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n KeyboardCode[\"Tab\"] = \"Tab\";\n})(exports.KeyboardCode || (exports.KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [exports.KeyboardCode.Space, exports.KeyboardCode.Enter],\n cancel: [exports.KeyboardCode.Esc],\n end: [exports.KeyboardCode.Space, exports.KeyboardCode.Enter, exports.KeyboardCode.Tab]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case exports.KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case exports.KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case exports.KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case exports.KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(utilities.getOwnerDocument(target));\n this.windowListeners = new Listeners(utilities.getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (utilities.isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = utilities.subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === exports.KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === exports.KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === exports.KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === exports.KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === exports.KeyboardCode.Right && !isRight || direction === exports.KeyboardCode.Left && !isLeft;\n const canScrollY = direction === exports.KeyboardCode.Down && !isBottom || direction === exports.KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === exports.KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === exports.KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === exports.KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === exports.KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === exports.KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === exports.KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, utilities.add(utilities.subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = utilities.getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(utilities.getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = utilities.getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handlePending(constraint, offset) {\n const {\n active,\n onPending\n } = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = utilities.getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = utilities.subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onAbort,\n onEnd\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onEnd();\n }\n\n handleCancel() {\n const {\n onAbort,\n onCancel\n } = this.props;\n this.detach();\n\n if (!this.activated) {\n onAbort(this.props.active);\n }\n\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === exports.KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n cancel: {\n name: 'pointercancel'\n },\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = utilities.getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, utilities.getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n cancel: {\n name: 'touchcancel'\n },\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(exports.AutoScrollActivator || (exports.AutoScrollActivator = {}));\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(exports.TraversalOrder || (exports.TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = exports.AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = exports.TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = utilities.useInterval();\n const scrollSpeed = React.useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = React.useRef({\n x: 0,\n y: 0\n });\n const rect = React.useMemo(() => {\n switch (activator) {\n case exports.AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case exports.AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = React.useRef(null);\n const autoScroll = React.useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = React.useMemo(() => order === exports.TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n React.useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = utilities.usePrevious(delta);\n return utilities.useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return utilities.useLazyMemo(cachedNode => {\n var _ref;\n\n if (id == null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return React.useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(exports.MeasuringStrategy || (exports.MeasuringStrategy = {}));\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(exports.MeasuringFrequency || (exports.MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = React.useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = React.useRef(containers);\n const disabled = isDisabled();\n const disabledRef = utilities.useLatestValue(disabled);\n const measureDroppableContainers = React.useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = React.useRef(null);\n const droppableRects = utilities.useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n React.useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n React.useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n React.useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n React.useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case exports.MeasuringStrategy.Always:\n return false;\n\n case exports.MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return utilities.useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = utilities.useEvent(callback);\n const mutationObserver = React.useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n React.useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = utilities.useEvent(callback);\n const resizeObserver = React.useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n React.useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, setRect] = React.useState(null);\n\n function measureRect() {\n setRect(currentRect => {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n });\n }\n\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n utilities.useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = React.useRef(node);\n const ancestors = utilities.useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n React.useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = React.useState(null);\n const prevElements = React.useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = React.useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n React.useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return React.useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => utilities.add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = React.useRef(null);\n React.useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n React.useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? utilities.subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n React.useEffect(() => {\n if (!utilities.canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return React.useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return React.useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? utilities.getWindow(firstElement) : null);\n const [rects, setRects] = React.useState(defaultValue$2);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n });\n }\n\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n utilities.useIsomorphicLayoutEffect(() => {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n }, [elements]);\n return rects;\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return utilities.isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = React.useState(null);\n const handleResize = React.useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (utilities.isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = React.useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = utilities.useNodeRef(handleNodeChange);\n return React.useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: exports.MeasuringStrategy.WhileDragging,\n frequency: exports.MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/React.createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/React.createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = React.useContext(InternalContext);\n const previousActivatorEvent = utilities.usePrevious(activatorEvent);\n const previousActiveId = utilities.usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n React.useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!utilities.isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = utilities.findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return React.useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = React.useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n utilities.useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/React.createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/React.memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = React.useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = React.useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = React.useRef({\n initial: null,\n translated: null\n });\n const active = React.useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = React.useRef(null);\n const [activeSensor, setActiveSensor] = React.useState(null);\n const [activatorEvent, setActivatorEvent] = React.useState(null);\n const latestProps = utilities.useLatestValue(props, Object.values(props));\n const draggableDescribedById = utilities.useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = React.useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = React.useMemo(() => activatorEvent ? utilities.getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = React.useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? utilities.getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? utilities.add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = utilities.add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = React.useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : utilities.add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const activeSensorRef = React.useRef(null);\n const instantiateSensor = React.useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragAbort\n } = latestProps.current;\n const event = {\n id\n };\n onDragAbort == null ? void 0 : onDragAbort(event);\n dispatchMonitorEvent({\n type: 'onDragAbort',\n event\n });\n },\n\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragPending\n } = latestProps.current;\n const event = {\n id,\n constraint,\n initialCoordinates,\n offset\n };\n onDragPending == null ? void 0 : onDragPending(event);\n dispatchMonitorEvent({\n type: 'onDragPending',\n event\n });\n },\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n activatorEvent,\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n reactDom.unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n reactDom.unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = React.useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n utilities.useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n React.useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n reactDom.unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n React.useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n reactDom.unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n utilities.useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = React.useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = React.useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React__default.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React__default.createElement(InternalContext.Provider, {\n value: internalContext\n }, React__default.createElement(PublicContext.Provider, {\n value: publicContext\n }, React__default.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React__default.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React__default.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/React.createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Draggable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = utilities.useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = React.useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = React.useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = utilities.useNodeRef();\n const [activatorNode, setActivatorNodeRef] = utilities.useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = utilities.useLatestValue(data);\n utilities.useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = React.useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return React.useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = utilities.useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = React.useContext(InternalContext);\n const previous = React.useRef({\n disabled\n });\n const resizeObserverConnected = React.useRef(false);\n const rect = React.useRef(null);\n const callbackId = React.useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = utilities.useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = React.useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = React.useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = utilities.useNodeRef(handleNodeChange);\n const dataRef = utilities.useLatestValue(data);\n React.useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n React.useEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n React.useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = React.useState(null);\n const [element, setElement] = React.useState(null);\n const previousChildren = utilities.usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n utilities.useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React__default.createElement(React__default.Fragment, null, children, clonedChildren ? React.cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React__default.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React__default.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = utilities.isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: utilities.CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React__default.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: utilities.CSS.Transform.toString(initial)\n }, {\n transform: utilities.CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return utilities.useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = utilities.getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return React.useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React__default.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = React.useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React__default.createElement(NullifiedContextProvider, null, React__default.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React__default.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexports.DndContext = DndContext;\nexports.DragOverlay = DragOverlay;\nexports.KeyboardSensor = KeyboardSensor;\nexports.MouseSensor = MouseSensor;\nexports.PointerSensor = PointerSensor;\nexports.TouchSensor = TouchSensor;\nexports.applyModifiers = applyModifiers;\nexports.closestCenter = closestCenter;\nexports.closestCorners = closestCorners;\nexports.defaultAnnouncements = defaultAnnouncements;\nexports.defaultCoordinates = defaultCoordinates;\nexports.defaultDropAnimation = defaultDropAnimationConfiguration;\nexports.defaultDropAnimationSideEffects = defaultDropAnimationSideEffects;\nexports.defaultKeyboardCoordinateGetter = defaultKeyboardCoordinateGetter;\nexports.defaultScreenReaderInstructions = defaultScreenReaderInstructions;\nexports.getClientRect = getClientRect;\nexports.getFirstCollision = getFirstCollision;\nexports.getScrollableAncestors = getScrollableAncestors;\nexports.pointerWithin = pointerWithin;\nexports.rectIntersection = rectIntersection;\nexports.useDndContext = useDndContext;\nexports.useDndMonitor = useDndMonitor;\nexports.useDraggable = useDraggable;\nexports.useDroppable = useDroppable;\nexports.useSensor = useSensor;\nexports.useSensors = useSensors;\n//# sourceMappingURL=core.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./core.cjs.production.min.js')\n} else {\n module.exports = require('./core.cjs.development.js')\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e,t=require(\"react\"),r=(e=t)&&\"object\"==typeof e&&\"default\"in e?e.default:e,n=require(\"@dnd-kit/core\"),o=require(\"@dnd-kit/utilities\");function i(e,t,r){const n=e.slice();return n.splice(r<0?n.length+r:r,0,n.splice(t,1)[0]),n}function a(e,t){return e.reduce((e,r,n)=>{const o=t.get(r);return o&&(e[n]=o),e},Array(e.length))}function s(e){return null!==e&&e>=0}const d={scaleX:1,scaleY:1},l=e=>{let{rects:t,activeIndex:r,overIndex:n,index:o}=e;const a=i(t,n,r),s=t[o],d=a[o];return d&&s?{x:d.left-s.left,y:d.top-s.top,scaleX:d.width/s.width,scaleY:d.height/s.height}:null},c={scaleX:1,scaleY:1},u=r.createContext({activeIndex:-1,containerId:\"Sortable\",disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:l,disabled:{draggable:!1,droppable:!1}}),f=e=>{let{id:t,items:r,activeIndex:n,overIndex:o}=e;return i(r,n,o).indexOf(t)},p=e=>{let{containerId:t,isSorting:r,wasDragging:n,index:o,items:i,newIndex:a,previousItems:s,previousContainerId:d,transition:l}=e;return!(!l||!n||s!==i&&o===a||!r&&(a===o||t!==d))},g={duration:200,easing:\"ease\"},b=o.CSS.Transition.toString({property:\"transform\",duration:0,easing:\"linear\"}),x={roleDescription:\"sortable\"};function v(e){if(!e)return!1;const t=e.data.current;return!!(t&&\"sortable\"in t&&\"object\"==typeof t.sortable&&\"containerId\"in t.sortable&&\"items\"in t.sortable&&\"index\"in t.sortable)}const h=[n.KeyboardCode.Down,n.KeyboardCode.Right,n.KeyboardCode.Up,n.KeyboardCode.Left];function I(e,t){return!(!v(e)||!v(t))&&e.data.current.sortable.containerId===t.data.current.sortable.containerId}exports.SortableContext=function(e){let{children:i,id:s,items:d,strategy:c=l,disabled:f=!1}=e;const{active:p,dragOverlay:g,droppableRects:b,over:x,measureDroppableContainers:v}=n.useDndContext(),h=o.useUniqueId(\"Sortable\",s),I=Boolean(null!==g.rect),y=t.useMemo(()=>d.map(e=>\"object\"==typeof e&&\"id\"in e?e.id:e),[d]),m=null!=p,w=p?y.indexOf(p.id):-1,C=x?y.indexOf(x.id):-1,R=t.useRef(y),S=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}(y,R.current),D=-1!==C&&-1===w||S,O=function(e){return\"boolean\"==typeof e?{draggable:e,droppable:e}:e}(f);o.useIsomorphicLayoutEffect(()=>{S&&m&&v(y)},[S,y,m,v]),t.useEffect(()=>{R.current=y},[y]);const N=t.useMemo(()=>({activeIndex:w,containerId:h,disabled:O,disableTransforms:D,items:y,overIndex:C,useDragOverlay:I,sortedRects:a(y,b),strategy:c}),[w,h,O.draggable,O.droppable,D,y,C,b,I,c]);return r.createElement(u.Provider,{value:N},i)},exports.arrayMove=i,exports.arraySwap=function(e,t,r){const n=e.slice();return n[t]=e[r],n[r]=e[t],n},exports.defaultAnimateLayoutChanges=p,exports.defaultNewIndexGetter=f,exports.hasSortableData=v,exports.horizontalListSortingStrategy=e=>{var t;let{rects:r,activeNodeRect:n,activeIndex:o,overIndex:i,index:a}=e;const s=null!=(t=r[o])?t:n;if(!s)return null;const l=function(e,t,r){const n=e[t],o=e[t-1],i=e[t+1];return n&&(o||i)?r<t?o?n.left-(o.left+o.width):i.left-(n.left+n.width):i?i.left-(n.left+n.width):n.left-(o.left+o.width):0}(r,a,o);if(a===o){const e=r[i];return e?{x:o<i?e.left+e.width-(s.left+s.width):e.left-s.left,y:0,...d}:null}return a>o&&a<=i?{x:-s.width-l,y:0,...d}:a<o&&a>=i?{x:s.width+l,y:0,...d}:{x:0,y:0,...d}},exports.rectSortingStrategy=l,exports.rectSwappingStrategy=e=>{let t,r,{activeIndex:n,index:o,rects:i,overIndex:a}=e;return o===n&&(t=i[o],r=i[a]),o===a&&(t=i[o],r=i[n]),r&&t?{x:r.left-t.left,y:r.top-t.top,scaleX:r.width/t.width,scaleY:r.height/t.height}:null},exports.sortableKeyboardCoordinates=(e,t)=>{let{context:{active:r,collisionRect:i,droppableRects:a,droppableContainers:s,over:d,scrollableAncestors:l}}=t;if(h.includes(e.code)){if(e.preventDefault(),!r||!i)return;const t=[];s.getEnabled().forEach(r=>{if(!r||null!=r&&r.disabled)return;const o=a.get(r.id);if(o)switch(e.code){case n.KeyboardCode.Down:i.top<o.top&&t.push(r);break;case n.KeyboardCode.Up:i.top>o.top&&t.push(r);break;case n.KeyboardCode.Left:i.left>o.left&&t.push(r);break;case n.KeyboardCode.Right:i.left<o.left&&t.push(r)}});const f=n.closestCorners({active:r,collisionRect:i,droppableRects:a,droppableContainers:t,pointerCoordinates:null});let p=n.getFirstCollision(f,\"id\");if(p===(null==d?void 0:d.id)&&f.length>1&&(p=f[1].id),null!=p){const e=s.get(r.id),t=s.get(p),d=t?a.get(t.id):null,f=null==t?void 0:t.node.current;if(f&&d&&e&&t){const r=n.getScrollableAncestors(f).some((e,t)=>l[t]!==e),a=I(e,t),s=(u=t,!(!v(c=e)||!v(u))&&!!I(c,u)&&c.data.current.sortable.index<u.data.current.sortable.index),p=r||!a?{x:0,y:0}:{x:s?i.width-d.width:0,y:s?i.height-d.height:0},g={x:d.left,y:d.top};return p.x&&p.y?g:o.subtract(g,p)}}}var c,u},exports.useSortable=function(e){let{animateLayoutChanges:r=p,attributes:i,disabled:a,data:d,getNewIndex:l=f,id:c,strategy:v,resizeObserverConfig:h,transition:I=g}=e;const{items:y,containerId:m,activeIndex:w,disabled:C,disableTransforms:R,sortedRects:S,overIndex:D,useDragOverlay:O,strategy:N}=t.useContext(u),E=function(e,t){var r,n;return\"boolean\"==typeof e?{draggable:e,droppable:!1}:{draggable:null!=(r=null==e?void 0:e.draggable)?r:t.draggable,droppable:null!=(n=null==e?void 0:e.droppable)?n:t.droppable}}(a,C),K=y.indexOf(c),L=t.useMemo(()=>({sortable:{containerId:m,index:K,items:y},...d}),[m,d,K,y]),T=t.useMemo(()=>y.slice(y.indexOf(c)),[y,c]),{rect:M,node:A,isOver:k,setNodeRef:X}=n.useDroppable({id:c,data:L,disabled:E.droppable,resizeObserverConfig:{updateMeasurementsFor:T,...h}}),{active:Y,activatorEvent:j,activeNodeRect:q,attributes:z,setNodeRef:U,listeners:B,isDragging:F,over:P,setActivatorNodeRef:_,transform:G}=n.useDraggable({id:c,data:L,attributes:{...x,...i},disabled:E.draggable}),H=o.useCombinedRefs(X,U),J=Boolean(Y),Q=J&&!R&&s(w)&&s(D),V=!O&&F,W=V&&Q?G:null,Z=Q?null!=W?W:(null!=v?v:N)({rects:S,activeNodeRect:q,activeIndex:w,overIndex:D,index:K}):null,$=s(w)&&s(D)?l({id:c,items:y,activeIndex:w,overIndex:D}):K,ee=null==Y?void 0:Y.id,te=t.useRef({activeId:ee,items:y,newIndex:$,containerId:m}),re=y!==te.current.items,ne=r({active:Y,containerId:m,isDragging:F,isSorting:J,id:c,index:K,items:y,newIndex:te.current.newIndex,previousItems:te.current.items,previousContainerId:te.current.containerId,transition:I,wasDragging:null!=te.current.activeId}),oe=function(e){let{disabled:r,index:i,node:a,rect:s}=e;const[d,l]=t.useState(null),c=t.useRef(i);return o.useIsomorphicLayoutEffect(()=>{if(!r&&i!==c.current&&a.current){const e=s.current;if(e){const t=n.getClientRect(a.current,{ignoreTransform:!0}),r={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(r.x||r.y)&&l(r)}}i!==c.current&&(c.current=i)},[r,i,a,s]),t.useEffect(()=>{d&&l(null)},[d]),d}({disabled:!ne,index:K,node:A,rect:M});return t.useEffect(()=>{J&&te.current.newIndex!==$&&(te.current.newIndex=$),m!==te.current.containerId&&(te.current.containerId=m),y!==te.current.items&&(te.current.items=y)},[J,$,m,y]),t.useEffect(()=>{if(ee===te.current.activeId)return;if(null!=ee&&null==te.current.activeId)return void(te.current.activeId=ee);const e=setTimeout(()=>{te.current.activeId=ee},50);return()=>clearTimeout(e)},[ee]),{active:Y,activeIndex:w,attributes:z,data:L,rect:M,index:K,newIndex:$,items:y,isOver:k,isSorting:J,isDragging:F,listeners:B,node:A,overIndex:D,over:P,setNodeRef:H,setActivatorNodeRef:_,setDroppableNodeRef:X,setDraggableNodeRef:U,transform:null!=oe?oe:Z,transition:oe||re&&te.current.newIndex===K?b:V&&!o.isKeyboardEvent(j)||!I?void 0:J||ne?o.CSS.Transition.toString({...I,property:\"transform\"}):void 0}},exports.verticalListSortingStrategy=e=>{var t;let{activeIndex:r,activeNodeRect:n,index:o,rects:i,overIndex:a}=e;const s=null!=(t=i[r])?t:n;if(!s)return null;if(o===r){const e=i[a];return e?{x:0,y:r<a?e.top+e.height-(s.top+s.height):e.top-s.top,...c}:null}const d=function(e,t,r){const n=e[t],o=e[t-1],i=e[t+1];return n?r<t?o?n.top-(o.top+o.height):i?i.top-(n.top+n.height):0:i?i.top-(n.top+n.height):o?n.top-(o.top+o.height):0:0}(i,o,r);return o>r&&o<=a?{x:0,y:-s.height-d,...c}:o<r&&o>=a?{x:0,y:s.height+d,...c}:{x:0,y:0,...c}};\n//# sourceMappingURL=sortable.cjs.production.min.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar core = require('@dnd-kit/core');\nvar utilities = require('@dnd-kit/utilities');\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React__default.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = core.useDndContext();\n const containerId = utilities.useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = React.useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = React.useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n utilities.useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n React.useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = React.useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React__default.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/utilities.CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = React.useState(null);\n const previousIndex = React.useRef(index);\n utilities.useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = core.getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n React.useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = React.useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = React.useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = React.useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = core.useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = core.useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = utilities.useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = React.useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n React.useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n React.useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId != null && previous.current.activeId == null) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !utilities.isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return utilities.CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [core.KeyboardCode.Down, core.KeyboardCode.Right, core.KeyboardCode.Up, core.KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case core.KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case core.KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case core.KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case core.KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = core.closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = core.getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = core.getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : utilities.subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexports.SortableContext = SortableContext;\nexports.arrayMove = arrayMove;\nexports.arraySwap = arraySwap;\nexports.defaultAnimateLayoutChanges = defaultAnimateLayoutChanges;\nexports.defaultNewIndexGetter = defaultNewIndexGetter;\nexports.hasSortableData = hasSortableData;\nexports.horizontalListSortingStrategy = horizontalListSortingStrategy;\nexports.rectSortingStrategy = rectSortingStrategy;\nexports.rectSwappingStrategy = rectSwappingStrategy;\nexports.sortableKeyboardCoordinates = sortableKeyboardCoordinates;\nexports.useSortable = useSortable;\nexports.verticalListSortingStrategy = verticalListSortingStrategy;\n//# sourceMappingURL=sortable.cjs.development.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./sortable.cjs.production.min.js')\n} else {\n module.exports = require('./sortable.cjs.development.js')\n}\n"],"x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12],"mappings":"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"}
|