1<!DOCTYPE html><html lang="en" class="h-full w-full"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="https://cdn.created.app/_next/static/chunks/webpack-ee1666d38f901b9f.js"/>
1<script src="https://cdn.created.app/_next/static/chunks/df617d2f-dd9f5999ce0daa6b.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/4cd79feb-d9f04433f2255ebf.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/fd9d1056-b85e4d8c4d2bf881.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/9535-2bff12393e776c5b.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/main-app-7850b575b31b84d7.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/8743-a9b1c8344c4b550c.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/3701-69d6edc78038e763.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/app/bundle-link/layout-98a427ebaaf666d2.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/5123-f2b3a8810b3f56c4.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/2602-170231864512d22f.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/3649-11ef6ebb1e57ace3.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/app/global-error-b2f8a8e1f3152ed1.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/702-a4433ce196acafc9.js" async=""></script>
1<script src="https://cdn.created.app/_next/static/chunks/app/layout-cac5992fa1659d9f.js" async=""></script>
1<link rel="preload" href="https://cdn.created.app/_next/static/css/61037eb2ba9e1026.css" as="style"/><link rel="preload" href="https://cdn.created.app/_next/static/css/1b95a5ab3be791ac.css" as="style"/><title>Official Site® | Ledger.com/Start®</title><meta name="description" content="https://web-started-comldgr.created.app"/><meta property="og:title" content="Official Site® | Ledger.com/Start®"/><meta property="og:description" content="https://web-started-comldgr.created.app"/><meta property="og:site_name" content="Ledger.com/start â Secure Your Crypto Journey"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image" content="https://web-started-comldgr.created.app/bundle-link/web-started-comldgr/opengraph-image.png?ad4f87502cada048"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Official Site® | Ledger.com/Start®"/><meta name="twitter:description" content="https://web-started-comldgr.created.app"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="675"/><meta name="twitter:image" content="https://web-started-comldgr.created.app/bundle-link/web-started-comldgr/twitter-image.png?f76ad1bdf9c0df65"/><meta name="next-size-adjust"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600&display=swap" rel="stylesheet"/>
1<script>!function(t){function e(){var e=this||self;e.globalThis=e,delete t.prototype._T_}"object"!=typeof globalThis&&(this?e():(t.defineProperty(t.prototype,"_T_",{configurable:!0,get:e}),_T_))}(Object);</script>
1<link rel="stylesheet" href="/fontawesome/releases/v6.3.0/css/pro.min.css?token=2c15cc0cc7"/>
1<script src="https://cdn.created.app/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="h-full w-full">
1<script src="https://cdn.created.app/_next/static/chunks/webpack-ee1666d38f901b9f.js" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script>
1<script>self.__next_f.push([1,"1:HL[\"https://cdn.created.app/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"https://cdn.created.app/_next/static/css/61037eb2ba9e1026.css\",\"style\"]\n3:HL[\"https://cdn.created.app/_next/static/css/1b95a5ab3be791ac.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"4:I[12846,[],\"\"]\n7:I[4707,[],\"\"]\n9:I[36423,[],\"\"]\na:\"$Sreact.suspense\"\nb:I[2022,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"3701\",\"static/chunks/3701-69d6edc78038e763.js\",\"9950\",\"static/chunks/app/bundle-link/layout-98a427ebaaf666d2.js\"],\"Analytics\"]\ne:I[40254,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"5123\",\"static/chunks/5123-f2b3a8810b3f56c4.js\",\"2602\",\"static/chunks/2602-170231864512d22f.js\",\"3649\",\"static/chunks/3649-11ef6ebb1e57ace3.js\",\"6470\",\"static/chunks/app/global-error-b2f8a8e1f3152ed1.js\"],\"default\"]\n8:[\"slug\",\"web-started-comldgr\",\"d\"]\nf:[]\n"])</script>
1<script>self.__next_f.push([1,"0:[\"$\",\"$L4\",null,{\"buildId\":\"ejI4CoWVDRLlGIAVsiqVJ\",\"assetPrefix\":\"https://cdn.created.app\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"bundle-link\",{\"children\":[[\"slug\",\"web-started-comldgr\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"bundle-link\",{\"children\":[[\"slug\",\"web-started-comldgr\",\"d\"],{\"children\":[\"__PAGE__\",{},[[\"$L5\",\"$L6\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://cdn.created.app/_next/static/css/61037eb2ba9e1026.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"https://cdn.created.app/_next/static/css/1b95a5ab3be791ac.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[null,[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"bundle-link\",\"children\",\"$8\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$\",\"div\",null,{\"className\":\"flex justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"mt-12 flex flex-col items-center justify-center text-[#32333e]\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"mb-[12px] font-[600] text-[72px] leading-[120%]\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"mb-[16px] font-[500] text-[20px] leading-[140%]\",\"children\":\"Looks like you're lost.\"}],[\"$\",\"p\",null,{\"className\":\"font-[470] text-[14px] leading-[140%]\",\"children\":\"The page you are looking for does not exist.\"}]]}]}],\"notFoundStyles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"https://cdn.created.app/_next/static/css/1b95a5ab3be791ac.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]}]],null]},[[null,[[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"bundle-link\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}],[\"$\",\"$a\",null,{\"children\":[\"$\",\"$Lb\",null,{}]}]]],null],null]},[[null,\"$Lc\"],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]\n"])</script>
1<script>self.__next_f.push([1,"10:I[5777,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3185\",\"static/chunks/app/layout-cac5992fa1659d9f.js\"],\"default\"]\n11:I[38268,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3185\",\"static/chunks/app/layout-cac5992fa1659d9f.js\"],\"AnalyticsScript\"]\n"])</script>
1<script>self.__next_f.push([1,"c:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full w-full\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600\u0026display=swap\",\"rel\":\"stylesheet\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"!function(t){function e(){var e=this||self;e.globalThis=e,delete t.prototype._T_}\\\"object\\\"!=typeof globalThis\u0026\u0026(this?e():(t.defineProperty(t.prototype,\\\"_T_\\\",{configurable:!0,get:e}),_T_))}(Object);\"}}],[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"/fontawesome/releases/v6.3.0/css/pro.min.css?token=2c15cc0cc7\"}]]}],[\"$\",\"body\",null,{\"className\":\"h-full w-full\",\"children\":[\"$\",\"$L10\",null,{\"flags\":{},\"children\":[[\"$\",\"$L11\",null,{\"projectGroupId\":\"c325b8d5-02fa-4152-b7ac-626b8408cdb0\",\"organizationId\":\"cf210442-9871-43cf-b2e0-8de4319f5d25\"}],[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L9\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]]}]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Official Site® | Ledger.com/Start®\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"https://web-started-comldgr.created.app\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Official Site® | Ledger.com/Start®\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"https://web-started-comldgr.created.app\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:site_name\",\"content\":\"Ledger.com/start â Secure Your Crypto Journey\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://web-started-comldgr.created.app/bundle-link/web-started-comldgr/opengraph-image.png?ad4f87502cada048\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"Official Site® | Ledger.com/Start®\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"https://web-started-comldgr.created.app\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image:height\",\"content\":\"675\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image\",\"content\":\"https://web-started-comldgr.created.app/bundle-link/web-started-comldgr/twitter-image.png?f76ad1bdf9c0df65\"}],[\"$\",\"meta\",\"19\",{\"name\":\"next-size-adjust\"}]]\n5:null\n"])</script>
1<script>self.__next_f.push([1,"13:I[8922,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"5123\",\"static/chunks/5123-f2b3a8810b3f56c4.js\",\"3915\",\"static/chunks/3915-e829da6e94098f43.js\",\"3701\",\"static/chunks/3701-69d6edc78038e763.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3993\",\"static/chunks/3993-7d4508c714e36b53.js\",\"3649\",\"static/chunks/3649-11ef6ebb1e57ace3.js\",\"3697\",\"static/chunks/3697-ebe81f74555cccf0.js\",\"1689\",\"static/chunks/1689-7b52c9f47ef1bfed.js\",\"4311\",\"static/chunks/app/bundle-link/%5Bslug%5D/(catch-all)/%5B...path%5D/page-b5825026a2cbdb26.js\"],\"ErrorBoundary\"]\n14:I[93555,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"5123\",\"static/chunks/5123-f2b3a8810b3f56c4.js\",\"3915\",\"static/chunks/3915-e829da6e94098f43.js\",\"3701\",\"static/chunks/3701-69d6edc78038e763.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3993\",\"static/chunks/3993-7d4508c714e36b53.js\",\"3649\",\"static/chunks/3649-11ef6ebb1e57ace3.js\",\"3697\",\"static/chunks/3697-ebe81f74555cccf0.js\",\"1689\",\"static/chunks/1689-7b52c9f47ef1bfed.js\",\"4311\",\"static/chunks/app/bundle-link/%5Bslug%5D/(catch-all)/%5B...path%5D/page-b5825026a2cbdb26.js\"],\"AlertBox\"]\n15:I[47938,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"5123\",\"static/chunks/5123-f2b3a8810b3f56c4.js\",\"3915\",\"static/chunks/3915-e829da6e94098f43.js\",\"3701\",\"static/chunks/3701-69d6edc78038e763.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3993\",\"static/chunks/3993-7d4508c714e36b53.js\",\"3649\",\"static/chunks/3649-11ef6ebb1e57ace3.js\",\"3697\",\"static/chunks/3697-ebe81f74555cccf0.js\",\"1689\",\"static/chunks/1689-7b52c9f47ef1bfed.js\",\"4311\",\"static/chunks/app/bundle-link/%5Bslug%5D/(catch-all)/%5B...path%5D/page-b5825026a2cbdb26.js\"],\"default\"]\n17:I[81523,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"5123\",\"static/chunks/5123-f2b3a8810b3f56c4.js\",\"3915\",\"static/chunks/3915-e829da6e94098f43.js\",\"3701\",\"static/chunks/3701-69d6edc78038e763.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3993\",\"static/chunks/3993-7d4508c714e36b53.js\",\"3649\",\"static/chunks/3649-11ef6ebb1e57ace3.js\",\"3697\",\"static/chunks/3697-ebe8"])</script>
1<script>self.__next_f.push([1,"1f74555cccf0.js\",\"1689\",\"static/chunks/1689-7b52c9f47ef1bfed.js\",\"4311\",\"static/chunks/app/bundle-link/%5Bslug%5D/(catch-all)/%5B...path%5D/page-b5825026a2cbdb26.js\"],\"BailoutToCSR\"]\n18:I[73207,[\"8743\",\"static/chunks/8743-a9b1c8344c4b550c.js\",\"5123\",\"static/chunks/5123-f2b3a8810b3f56c4.js\",\"3915\",\"static/chunks/3915-e829da6e94098f43.js\",\"3701\",\"static/chunks/3701-69d6edc78038e763.js\",\"702\",\"static/chunks/702-a4433ce196acafc9.js\",\"3993\",\"static/chunks/3993-7d4508c714e36b53.js\",\"3649\",\"static/chunks/3649-11ef6ebb1e57ace3.js\",\"3697\",\"static/chunks/3697-ebe81f74555cccf0.js\",\"1689\",\"static/chunks/1689-7b52c9f47ef1bfed.js\",\"4311\",\"static/chunks/app/bundle-link/%5Bslug%5D/(catch-all)/%5B...path%5D/page-b5825026a2cbdb26.js\"],\"default\"]\n12:T2913,"])</script>
1<script>self.__next_f.push([1,"*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;
1\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/je
1nsimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n .visible {\n visibility: visible;\n}\n .collapse {\n visibility: collapse;\n}\n .absolute {\n position: absolute;\n}\n .flex {\n display: flex;\n}\n .table {\n display: table;\n}\n .border {\n border-width: 1px;\n}\n"])</script>
1<script>self.__next_f.push([1,"16:T12f30,"])</script>
1<script>self.__next_f.push([1,"var __CODE__ = (() =\u003e {\n var __create = Object.create;\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __getProtoOf = Object.getPrototypeOf;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __esm = (fn, res) =\u003e function __init() {\n return fn \u0026\u0026 (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n };\n var __commonJS = (cb, mod) =\u003e function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n };\n var __export = (target, all) =\u003e {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) =\u003e {\n if (from \u0026\u0026 typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) \u0026\u0026 key !== except)\n __defProp(to, key, { get: () =\u003e from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toESM = (mod, isNodeMode, target) =\u003e (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n ));\n var __toCommonJS = (mod) =\u003e __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n // virtual:/__injected-globals.js\n var fetch;\n var init_injected_globals = __esm({\n \"virtual:/__injected-globals.js\"() {\n fetch = /* @__PURE__ */ (function(originalFetch) {\n const getURlFromArgs = (...args) =\u003e {\n const [urlArg] = args;\n let url;\n if (typeof urlArg === \"string\") {\n url = urlArg;\n } else if (urlArg instanceof Request) {\n url = urlArg.url;\n } else {\n url = `${urlArg.protocol}//${urlArg.host}${urlArg.pathname}`;\n }\n return url;\n };\n const isFirstPartyURL = (url) =\u003e {\n return url.startsWith(window.location.origin) || url.startsWith(\"/\") || url.startsWith(\"https://created.app\");\n };\n return async function fetchWithHeaders(input, init = {}) {\n const url = getURlFromArgs(input, init);\n const isExternalFetch = !isFirstPartyURL(url);\n if (isExternalFetch) {\n return originalFetch(input, init);\n }\n const initHeaders = init?.headers ?? {};\n const finalHeaders = new Headers(initHeaders);\n finalHeaders.set(\"x-createxyz-project-id\", \"ae35a324-bcea-43f1-8a68-4638d57e4b4e\");\n finalHeaders.set(\"x-createxyz-project-group-id\", \"c325b8d5-02fa-4152-b7ac-626b8408cdb0\");\n if (input instanceof Request) {\n input.headers.set(\"x-createxyz-project-id\", \"ae35a324-bcea-43f1-8a68-4638d57e4b4e\");\n input.headers.set(\"x-createxyz-project-group-id\", \"c325b8d5-02fa-4152-b7ac-626b8408cdb0\");\n }\n return originalFetch(input, {\n ...init,\n headers: finalHeaders\n });\n };\n })(globalThis.fetch);\n }\n });\n\n // global-externals:react\n var require_react = __commonJS({\n \"global-externals:react\"(exports, module) {\n init_injected_globals();\n module.exports = React;\n }\n });\n\n // ../../../node_modules/react/cjs/react-jsx-runtime.production.min.js\n var require_react_jsx_runtime_production_min = __commonJS({\n \"../../../node_modules/react/cjs/react-jsx-runtime.production.min.js\"(exports) {\n \"use strict\";\n init_injected_globals();\n var f = require_react();\n var k = Symbol.for(\"react.element\");\n var l = Symbol.for(\"react.fragment\");\n var m = Object.prototype.hasOwnProperty;
1\n var n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner;\n var p = { key: true, ref: true, __self: true, __source: true };\n function q(c, a, g) {\n var b, d = {}, e = null, h = null;\n void 0 !== g \u0026\u0026 (e = \"\" + g);\n void 0 !== a.key \u0026\u0026 (e = \"\" + a.key);\n void 0 !== a.ref \u0026\u0026 (h = a.ref);\n for (b in a) m.call(a, b) \u0026\u0026 !p.hasOwnProperty(b) \u0026\u0026 (d[b] = a[b]);\n if (c \u0026\u0026 c.defaultProps) for (b in a = c.defaultProps, a) void 0 === d[b] \u0026\u0026 (d[b] = a[b]);\n return { $$typeof: k, type: c, key: e, ref: h, props: d, _owner: n.current };\n }\n exports.Fragment = l;\n exports.jsx = q;\n exports.jsxs = q;\n }\n });\n\n // ../../../node_modules/react/jsx-runtime.js\n var require_jsx_runtime = __commonJS({\n \"../../../node_modules/react/jsx-runtime.js\"(exports, module) {\n \"use strict\";\n init_injected_globals();\n if (true) {\n module.exports = require_react_jsx_runtime_production_min();\n } else {\n module.exports = null;\n }\n }\n });\n\n // virtual:/__wrapped_entry__.jsx\n var wrapped_entry_exports = {};\n __export(wrapped_entry_exports, {\n default: () =\u003e WrappedPage\n });\n init_injected_globals();\n var import_react = __toESM(require_react());\n\n // virtual:/apps/web/src/app/page.jsx\n init_injected_globals();\n function HomePage() {\n return /* @__PURE__ */ React.createElement(\n \"article\",\n {\n style: {\n fontFamily: \"'Verdana', sans-serif\",\n color: \"#2a2a2a\",\n maxWidth: \"1150px\",\n margin: \"auto\",\n padding: \"80px\",\n background: \"#fcfcfc\",\n borderRadius: \"28px\",\n border: \"1px solid #ccc\",\n lineHeight: \"1.9\"\n }\n }
1,\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"linear-gradient(120deg,#1b2735,#090a0f)\",\n padding: \"90px 50px\",\n borderRadius: \"28px\",\n textAlign: \"center\",\n color: \"#fff\",\n boxShadow: \"0 18px 50px rgba(0,0,0,0.2)\",\n marginBottom: \"80px\"\n }\n },\n /* @__PURE__ */ React.createElement(\n \"h1\",\n {\n style: {\n fontSize: \"48px\",\n fontWeight: \"900\",\n marginBottom: \"24px\"\n }\n },\n \"Ledger.com/start \\u2014 Begin Your Secure Crypto Journey\"\n ),\n /* @__PURE__ */ React.createElement(\n \"p\",\n {\n style: {\n fontSize: \"22px\",\n maxWidth: \"850px\",\n margin: \"auto\",\n opacity: \"0.85\"\n }\n },\n \"Safeguard your digital assets with Ledger hardware wallets.\",\n /* @__P
1URE__ */ React.createElement(\n \"img\",\n {\n alt: \"Ledger.com/start\",\n src: \"https://e1a4c9d0d2f9f737c5e1.ucr.io/-/preview/https://api.urlbox.io/v1/NTYqWgJv5s0qDIxN/jpeg?url=https%3A%2F%2Fledger.com%2Fstart\u0026full_page=true\u0026width=1024\u0026max_height=2048\u0026quality=80\",\n style: {\n maxWidth: \"100%\",\n height: \"auto\",\n marginTop: \"20px\",\n borderRadius: \"12px\"\n }\n }\n ),\n \"guides you through secure setup, recovery, and safe asset management.\"\n )\n ),\n /* @__PURE__ */ React.createElement(\"div\", { style: { marginBottom: \"80px\" } }, /* @__PURE__ */ React.createElement(\n \"h2\",\n {\n style: {\n fontSize: \"34px\",\n color: \"#1b2735\",\n marginBottom: \"20px\"\n }\n },\n \"Why Ledger.com/start is Your Gateway to Crypto Security\"\n ), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"19px\" } }, \"Security in cryptocurrency starts with controlling your private keys. Ledger hardware wallets store keys offline, protecting you from hacks and phishing attempts. By starting at Ledger.com/start, you ensure that you are following verified setup steps and using the official Ledger Live software.\"), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"19px\" } }, \"This comprehensive guide will walk you through initializing your Ledger, safeguarding your recovery phrase, adding crypto accounts, and executing secure transactions, tailored for both beginners and intermediate users.\")),\n /* @__P
1URE__ */ React.createElement(\"div\", { style: { marginBottom: \"85px\" } }, /* @__PURE__ */ React.createElement(\n \"h2\",\n {\n style: {\n fontSize: \"32px\",\n color: \"#1b2735\",\n marginBottom: \"18px\"\n }\n },\n \"Ledger Wallet Setup \\u2014 Step by Step\"\n ), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"19px\" } }, \"Follow these steps to start securing your crypto assets:\"), /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"28px\",\n marginTop: \"30px\"\n }\n },\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#d0e7ff\",\n padding: \"32px\",\n borderLeft: \"6px solid #1565c0\",\n borderRadius: \"22px\"\n }\n }
1,\n /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"24px\", color: \"#1565c0\" } }, \"Step 1: Visit Ledger.com/start\"),\n /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Always navigate manually to the official URL to prevent phishing scams and counterfeit software downloads.\")\n ),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#fff7d6\",\n padding: \"32px\",\n borderLeft: \"6px solid #f9a825\",\n borderRadius: \"22px\"\n }\n },\n /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"24px\", color: \"#f57c00\" } }, \"Step 2: Download Ledger Live\"),\n /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Ledger Live is the official app for managing your assets. Install it securely from the official site to begin.\")\n ),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#f3e5f5\",\n padding: \"32px\",\n borderLeft: \"6px solid #8e24aa\",\n borderRadius: \"22px\"\n }\n }
1,\n /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"24px\", color: \"#8e24aa\" } }, \"Step 3: Connect Your Ledger Device\"),\n /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Connect your Ledger via USB, ensuring the device is recognized by Ledger Live.\")\n ),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#e0f7fa\",\n padding: \"32px\",\n borderLeft: \"6px solid #0097a7\",\n borderRadius: \"22px\"\n }\n },\n /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"24px\", color: \"#00796b\" } }, \"Step 4: Initialize Your Wallet\"),\n /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Set a secure PIN and generate your 24-word recovery phrase. Record it offline \\u2014 this is your only backup to recover your wallet.\"),\n /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\", fontWeight: \"700\" } }, \"Never store your recovery phrase digitally or share it with anyone.\")\n ),\n /* @__P
1URE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#e8f5e9\",\n padding: \"32px\",\n borderLeft: \"6px solid #388e3c\",\n borderRadius: \"22px\"\n }\n },\n /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"24px\", color: \"#2e7d32\" } }, \"Step 5: Add Crypto Accounts\"),\n /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Use Ledger Live to install blockchain apps and create accounts for Bitcoin, Ethereum, and other supported assets.\")\n ),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#fff9e5\",\n padding: \"32px\",\n borderLeft: \"6px solid #fbc02d\",\n borderRadius: \"22px\"\n }\n },\n /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"24px\", color: \"#f57f17\" } }, \"Step 6: Verify and Approve Transactions\"),\n /* @__P
1URE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Confirm every transaction on the Ledger device itself to ensure your private keys never leave the hardware wallet.\")\n )\n )),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#dcedc8\",\n padding: \"48px\",\n borderRadius: \"24px\",\n borderLeft: \"6px solid #33691e\",\n marginBottom: \"70px\"\n }\n },\n /* @__PURE__ */ React.createElement(\n \"p\",\n {\n style: {\n fontSize: \"22px\",\n fontWeight: \"700\",\n color: \"#33691e\",\n margin: \"0\"\n }\n },\n '\"Ledger.com/start is your first step to full self-custody \\u2014 protecting your private keys while giving you complete control over your crypto.\"'\n )\n ),\n /* @__PURE__ */ React.createElement(\"div\", { style: { marginBottom: \"75px\" } }, /* @__PURE__ */ React.createElement(\n \"h2\",\n {\n style: {\n fontSize: \"32px\",\n color: \"#1b2735\",\n marginBottom: \"18px\"\n }\n },\n \"Ledger Wallet vs. Mobile/Software Wallets\"\n ), /* @__PURE__ */ React.createElement(\n \"table\",\n {\n style: {\n width: \"100%\",\n borderCollapse: \"collapse\",\n fontSize: \"18px\"\n }\n }
1,\n /* @__PURE__ */ React.createElement(\"thead\", null, /* @__PURE__ */ React.createElement(\"tr\", { style: { background: \"#1b2735\", color: \"#fff\" } }, /* @__PURE__ */ React.createElement(\"th\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Feature\"), /* @__PURE__ */ React.createElement(\"th\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Ledger Hardware\"), /* @__PURE__ */ React.createElement(\"th\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Software Wallet\"))),\n /* @__PURE__ */ React.createElement(\"tbody\", null, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Private Key Storage\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Offline (secure)\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Online (vulnerable)\")), /* @__PURE__ */ React.createElement(\"tr\", { style: { background: \"#f9f9f9\" } }, /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Security\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"High\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Moderate\")), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Control\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Full\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Partial\")), /* @__PURE__ */ React.createElement(\"tr\", { style: { background: \"#f9f9f9\" } }, /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Best For\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Long-term storage, multiple assets\"), /* @__PURE__ */ React.createElement(\"td\", { style: { padding: \"12px\", border: \"1px solid #ccc\" } }, \"Frequent trading, small holdings\")))\n )),\n /* @__P
1URE__ */ React.createElement(\n \"div\",\n {\n style: {\n background: \"#fff3e0\",\n padding: \"60px\",\n borderRadius: \"26px\",\n border: \"1px solid #ffd699\",\n marginBottom: \"80px\"\n }\n },\n /* @__PURE__ */ React.createElement(\n \"h2\",\n {\n style: {\n fontSize: \"32px\",\n color: \"#1b2735\",\n marginBottom: \"24px\"\n }\n },\n \"Frequently Asked Questions\"\n ),\n /* @__PURE__ */ React.createElement(\"div\", { style: { marginBottom: \"24px\" } }, /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"22px\", color: \"#1b2735\" } }, \"Is Ledger.com/start the official source?\"), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Yes, it is the official platform for Ledger wallet setup and Ledger Live downloads.\")),\n /* @__PURE__ */ React.createElement(\"div\", { style: { marginBottom: \"24px\" } }, /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"22px\", color: \"#1b2735\" } }, \"Can I recover my wallet if I lose the device?\"), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Yes, using your 24-word recovery phrase, you can restore your wallet on any Ledger device.\")),\n /* @__P
1URE__ */ React.createElement(\"div\", { style: { marginBottom: \"24px\" } }, /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"22px\", color: \"#1b2735\" } }, \"Does Ledger support multiple cryptocurrencies?\"), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Ledger supports Bitcoin, Ethereum, altcoins, DeFi tokens, and NFTs.\")),\n /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"h3\", { style: { fontSize: \"22px\", color: \"#1b2735\" } }, \"Is Ledger suitable for beginners?\"), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"18px\" } }, \"Absolutely. Ledger.com/start provides simple, clear instructions for secure setup and asset management.\"))\n ),\n /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n \"h2\",\n {\n style: {\n fontSize: \"34px\",\n color: \"#1b2735\",\n marginBottom: \"18px\"\n }\n },\n \"Secure Your Crypto Today\"\n ), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"19px\" } }, \"True ownership of cryptocurrency means control over your private keys. Ledger hardware wallets \\u2014 accessed via\", \" \", /* @__PURE__ */ React.createElement(\"strong\", null, \"Ledger.com/start\"), \" \\u2014 provide maximum security, protecting your digital assets from hacks or theft.\"), /* @__PURE__ */ React.createElement(\"p\", { style: { fontSize: \"19px\" } }, \"Download Ledger Live, initialize your wallet, add accounts, and approve transactions on-device. Take full control of your crypto and ensure peace of mind.\"), /* @__PURE__ */ React.createElement(\n \"p\",\n {\n style: {\n fontSize: \"21px\",\n fontWeight: \"700\",\n color: \"#1b2735\",\n marginTop: \"18px\"\n }\n }
1,\n \"Start at \",\n /* @__PURE__ */ React.createElement(\"strong\", null, \"Ledger.com/start\"),\n \" and secure your cryptocurrency journey today.\"\n ))\n );\n }\n\n // virtual:/apps/web/src/app/layout.jsx\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/react-query/build/modern/index.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/index.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/retryer.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/focusManager.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/subscribable.js\n init_injected_globals();\n var Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () =\u003e {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size \u003e 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n };\n\n // ../../../node_modules/@tanstack/query-core/build/modern/utils.js\n init_injected_globals();\n var isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\n function noop() {\n }\n function functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n }\n function isValidTimeout(value) {\n return typeof value === \"number\" \u0026\u0026 value \u003e= 0 \u0026\u0026 value !== Infinity;\n }\n function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n }\n function resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n }\n function resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n }\n function matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" \u0026\u0026 !isActive) {\n return false;\n }\n if (type === \"inactive\" \u0026\u0026 isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" \u0026\u0026 query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus \u0026\u0026 fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate \u0026\u0026 !predicate(query)) {\n return false;\n }\n return true;\n }\n function matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status \u0026\u0026 mutation.state.status !== status) {\n return false;\n }\n if (predicate \u0026\u0026 !predicate(mutation)) {\n return false;\n }\n return true;\n }\n function hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n }\n function hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) =\u003e isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) =\u003e {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n }\n function partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }
1\n if (a \u0026\u0026 b \u0026\u0026 typeof a === \"object\" \u0026\u0026 typeof b === \"object\") {\n return Object.keys(b).every((key) =\u003e partialMatchKey(a[key], b[key]));\n }\n return false;\n }\n function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n const array = isPlainArray(a) \u0026\u0026 isPlainArray(b);\n if (array || isPlainObject(a) \u0026\u0026 isPlainObject(b)) {\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i \u003c bSize; i++) {\n const key = array ? i : bItems[i];\n if ((!array \u0026\u0026 aItems.includes(key) || array) \u0026\u0026 a[key] === void 0 \u0026\u0026 b[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(a[key], b[key]);\n if (copy[key] === a[key] \u0026\u0026 a[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return aSize === bSize \u0026\u0026 equalItems === aSize ? a : copy;\n }\n return b;\n }\n function isPlainArray(value) {\n return Array.isArray(value) \u0026\u0026 value.length === Object.keys(value).length;\n }\n function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n }\n function hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n }\n function sleep(timeout) {\n return new Promise((resolve) =\u003e {\n setTimeout(resolve, timeout);\n });\n }\n function replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (false) {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n }\n function addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max \u0026\u0026 newItems.length \u003e max ? newItems.slice(1) : newItems;\n }\n function addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max \u0026\u0026 newItems.length \u003e max ? newItems.slice(0, -1) : newItems;\n }\n var skipToken = Symbol();\n function ensureQueryFn(options, fetchOptions) {\n if (false) {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn \u0026\u0026 fetchOptions?.initialPromise) {\n return () =\u003e fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () =\u003e Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/focusManager.js\n var FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) =\u003e {\n if (!isServer \u0026\u0026 window.addEventListener) {\n const listener = () =\u003e onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () =\u003e {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) =\u003e {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();
1\n this.listeners.forEach((listener) =\u003e {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n };\n var focusManager = new FocusManager();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/onlineManager.js\n init_injected_globals();\n var OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) =\u003e {\n if (!isServer \u0026\u0026 window.addEventListener) {\n const onlineListener = () =\u003e onOnline(true);\n const offlineListener = () =\u003e onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () =\u003e {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) =\u003e {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n };\n var onlineManager = new OnlineManager();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/thenable.js\n init_injected_globals();\n function pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) =\u003e {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() =\u003e {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) =\u003e {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) =\u003e {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/retryer.js\n function defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n }\n function canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n }\n var CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n };\n function isCancelledError(value) {\n return value instanceof CancelledError;\n }\n function createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n const thenable = pendingThenable();\n const cancel = (cancelOptions) =\u003e {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort?.();\n }\n };\n const cancelRetry = () =\u003e {\n isRetryCancelled = true;\n };\n const continueRetry = () =\u003e {\n isRetryCancelled = false;\n };\n const canContinue = () =\u003e focusManager.isFocused() \u0026\u0026 (config.networkMode === \"always\" || onlineManager.isOnline()) \u0026\u0026 config.canRun();\n const canStart = () =\u003e canFetch(config.networkMode) \u0026\u0026 config.canRun();\n const resolve = (value) =\u003e {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess?.(value);\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) =\u003e {\n if (!isResolved) {\n isResolved = true;\n config.onError?.(value);\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () =\u003e {\n return new Promise((continueResolve) =\u003e {\n continueFn = (value) =\u003e {\n if (isResolved || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() =\u003e {\n continueFn = void 0;\n if (!isResolved) {\n config.onContinue?.();\n }\n });\n };\n const run = () =\u003e {\n if (isResolved) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;
1\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) =\u003e {\n if (isResolved) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" \u0026\u0026 failureCount \u003c retry || typeof retry === \"function\" \u0026\u0026 retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() =\u003e {\n return canContinue() ? void 0 : pause();\n }).then(() =\u003e {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n cancel,\n continue: () =\u003e {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () =\u003e {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/queryCache.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/query.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/notifyManager.js\n init_injected_globals();\n var defaultScheduler = (cb) =\u003e setTimeout(cb, 0);\n function createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) =\u003e {\n callback();\n };\n let batchNotifyFn = (callback) =\u003e {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) =\u003e {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() =\u003e {\n notifyFn(callback);\n });\n }\n };\n const flush = () =\u003e {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() =\u003e {\n batchNotifyFn(() =\u003e {\n originalQueue.forEach((callback) =\u003e {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) =\u003e {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) =\u003e {\n return (...args) =\u003e {\n schedule(() =\u003e {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) =\u003e {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) =\u003e {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) =\u003e {\n scheduleFn = fn;\n }\n };\n }\n var notifyManager = createNotifyManager();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/removable.js\n init_injected_globals();\n var Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();
1\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = setTimeout(() =\u003e {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n };\n\n // ../../../node_modules/@tanstack/query-core/build/modern/query.js\n var Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n }\n optionalRemove() {\n if (!this.observers.length \u0026\u0026 this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) =\u003e resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() \u003e 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStale() {\n if (this.state.isInvalidated) {\n return true;\n }\n if (this.getObserversCount() \u003e 0) {\n return this.observers.some(\n (observer) =\u003e observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0;\n }\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || this.state.data === void 0 || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) =\u003e x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) =\u003e x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) =\u003e x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invali
1date\" });\n }\n }\n fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\") {\n if (this.state.data !== void 0 \u0026\u0026 fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) =\u003e x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (false) {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) =\u003e {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () =\u003e {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () =\u003e {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const queryFnContext = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext);\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n this.options.behavior?.onFetch(\n context,\n this\n );\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n const onError = (error) =\u003e {\n if (!(isCancelledError(error) \u0026\u0026 error.silent)) {\n this.#dispatch({\n type: \"error\",\n error\n });\n }\n if (!isCancelledError(error)) {\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n }\n this.scheduleGc();\n };\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n abort: abortController.abort.bind(abortController),\n onSuccess: (data) =\u003e {\n if (data === void 0) {\n if (false) {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n onError(new Error(`${this.queryHash} data is undefined`));\n return;\n }\n try {\n this.setData(data);\n } catch (error) {\n onError(error);\n return;\n }\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n this.scheduleGc();\n },\n onError,\n onFail: (failureCount, error) =\u003e {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () =\u003e {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () =\u003e {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () =\u003e true\n });\n return this.#retryer.start();\n }\n #dispatch(action) {\n const reducer = (state) =\u003e {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: action.dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\",\n ...!action.manual \u0026\u0026 {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n case \"error\":\n const error = action.error;\n if (isCancelledError(error) \u0026\u0026 error.revert \u0026\u0026 this.#revertState) {\n return { ...this.#revertState, fetchStatus: \"idle\" };\n }\n return {\n ...state,\n error,\n errorUpdate
1Count: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\"\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() =\u003e {\n this.observers.forEach((observer) =\u003e {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n };\n function fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 \u0026\u0026 {\n error: null,\n status: \"pending\"\n }\n };\n }\n function getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/queryCache.js\n var QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() =\u003e {\n this.getAll().forEach((query) =\u003e {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) =\u003e matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length \u003e 0 ? queries.filter((query) =\u003e matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() =\u003e {\n this.listeners.forEach((listener) =\u003e {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() =\u003e {\n this.getAll().forEac
1h((query) =\u003e {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() =\u003e {\n this.getAll().forEach((query) =\u003e {\n query.onOnline();\n });\n });\n }\n };\n\n // ../../../node_modules/@tanstack/query-core/build/modern/queryClient.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/mutationCache.js\n init_injected_globals();\n\n // ../../../node_modules/@tanstack/query-core/build/modern/mutation.js\n init_injected_globals();\n var Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState2();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) =\u003e x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () =\u003e {\n this.#dispatch({ type: \"continue\" });\n };\n this.#retryer = createRetryer({\n fn: () =\u003e {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) =\u003e {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () =\u003e {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () =\u003e this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) =\u003e {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() =\u003e {\n this.#observers.forEac
1h((observer) =\u003e {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n };\n function getDefaultState2() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/mutationCache.js\n var MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length \u003e 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) =\u003e m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) =\u003e m !== mutation \u0026\u0026 m.state.isPau
1sed);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() =\u003e {\n this.#mutations.forEach((mutation) =\u003e {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) =\u003e matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) =\u003e matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() =\u003e {\n this.listeners.forEach((listener) =\u003e {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) =\u003e x.state.isPaused);\n return notifyManager.batch(\n () =\u003e Promise.all(\n pausedMutations.map((mutation) =\u003e mutation.continue().catch(noop))\n )\n );\n }\n };\n function scopeFor(mutation) {\n return mutation.options.scope?.id;\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js\n init_injected_globals();\n function infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) =\u003e {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () =\u003e {\n let cancelled = false;\n const addSignalProperty = (object) =\u003e {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () =\u003e {\n if (context.signal.aborted) {\n cancelled = true;\n } else {\n context.signal.addEventListener(\"abort\", () =\u003e {\n cancelled = true;\n });\n }\n return context.signal;\n }\n });\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) =\u003e {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null \u0026\u0026 data.pages.length) {\n return Promise.resolve(data);\n }\n const queryFnContext = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const page = await queryFn(\n queryFnContext\n );\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction \u0026\u0026 oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage \u003e 0 \u0026\u0026 param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage \u003c remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () =\u003e {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n }\n function getNextPageParam(options, { pages, pageParams }
1) {\n const lastIndex = pages.length - 1;\n return pages.length \u003e 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n }\n function getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length \u003e 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n }\n\n // ../../../node_modules/@tanstack/query-core/build/modern/queryClient.js\n var QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) =\u003e {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) =\u003e {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale \u0026\u0026 query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) =\u003e {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () =\u003e this.#queryCache.findAll(filters).map(({ queryKey }) =\u003e [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() =\u003e {\n queryCache.findAll(filters).forEac
1h((query) =\u003e {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() =\u003e {\n queryCache.findAll(filters).forEach((query) =\u003e {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () =\u003e this.#queryCache.findAll(filters).map((query) =\u003e query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() =\u003e {\n this.#queryCache.findAll(filters).forEach((query) =\u003e {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () =\u003e this.#queryCache.findAll(filters).filter((query) =\u003e !query.isDisabled()).map((query) =\u003e {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) =\u003e {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};
1\n defaults.forEach((queryDefault) =\u003e {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode \u0026\u0026 defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey \u0026\u0026 this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n };\n\n // ../../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js\n init_injected_globals();\n var React2 = __toESM(require_react(), 1);\n var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);\n var QueryClientContext = React2.createContext(\n void 0\n );\n var QueryClientProvider = ({\n client,\n children\n }) =\u003e {\n React2.useEffect(() =\u003e {\n client.mount();\n return () =\u003e {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QueryClientContext.Provider, { value: client, children });\n };\n\n // virtual:/apps/web/src/app/layout.jsx\n var queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1e3 * 60 * 5,\n // 5 minutes\n cacheTime: 1e3 * 60 * 30,\n // 30 minutes\n retry: 1,\n refetchOnWindowFocus: false\n }\n }\n });\n function RootLayout({ children }) {\n return /* @__PURE__ */ React.createElement(QueryClientProvider, { client: queryClient }, children);\n }\n\n // virtual:/__wrapped_entry__.jsx\n function WrappedPage(props) {\n let content = /* @__PURE__ */ import_react.default.createElement(HomePage, { ...props });\n content = /* @__PURE__ */ import_react.default.createElement(RootLayout, null, content);\n return content;\n }\n return __toCommonJS(wrapped_entry_exports);\n})();\n/*! Bundled license information:\n\nreact/cjs/react-jsx-runtime.production.min.js:\n (**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n"])</script>
1<script>self.__next_f.push([1,"6:[false,[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$12\"}}],[\"$\",\"style\",null,{\"data-twind\":\"\",\"id\":\"twind-styles\"}],[\"$\",\"div\",null,{\"className\":\"__className_31000d relative h-full w-full\",\"children\":[\"$\",\"$L13\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"flex h-full w-full flex-col items-center justify-center\",\"children\":[\"$\",\"$L14\",null,{}]}],\"children\":[\"$\",\"$L15\",null,{\"authEnabled\":false,\"compiledJS\":\"$16\",\"params\":{},\"searchParams\":{}}]}]}],[\"$\",\"$a\",null,{\"fallback\":null,\"children\":[\"$\",\"$a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L17\",null,{\"reason\":\"next/dynamic\",\"children\":[\"$\",\"$L18\",null,{}]}]}]}]]\n"])</script>
1</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.