1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8471],{79965:(e,a,s)=>{s.d(a,{oP:()=>m,Fo:()=>u});let r=!1,t=null;function n(){console.log("[ApiClient] Dispatching session-expired event"),window.dispatchEvent(new CustomEvent("session-expired"))}function l(){localStorage.removeItem("access_token"),localStorage.removeItem("auth_token"),localStorage.removeItem("refresh_token"),localStorage.removeItem("game_user"),localStorage.removeItem("game_uid"),localStorage.removeItem("game_csrf_token"),localStorage.removeItem("game_logout_token")}async function i(){if(r&&t)return console.log("[ApiClient] Refresh already in progress, waiting..."),t;let e=localStorage.getItem("refresh_token");return e?(console.log("[ApiClient] Attempting token refresh..."),r=!0,t=(async()=>{try{let a=await fetch("/api/auth/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refresh_token:e})}),s=await a.json();if(s.success&&s.accessToken)return localStorage.setItem("access_token",s.accessToken),localStorage.setItem("auth_token",s.accessToken),console.log("[ApiClient] Token refreshed successfully"),!0;return console.log("[ApiClient] Refresh failed - clearing tokens"),l(),n(),!1}catch(e){return console.error("[ApiClient] Token refresh failed:",e),l(),n(),!1}finally{r=!1,t=null}})()):(console.log("[ApiClient] No refresh token available"),l(),n(),!1)}async function o(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{method:s="GET",body:r,headers:t={},siteId:n,authenticated:l=!1,_isRetry:d=!1,cache:c,revalidate:m}=a,u={"Content-Type":"application/json",...t};if(l&&1){let e=localStorage.getItem("access_token")||localStorage.getItem("auth_token");e&&(u.Authorization="Bearer ".concat(e))}let g={method:s,headers:u};c&&(g.cache=c),void 0!==m&&(g.next={revalidate:m}),r&&"GET"!==s&&(g.body=JSON.stringify(r));try{let s=await fetch("/api/proxy".concat(e),g);if(401===s.status&&l&&!d){if(console.log("[ApiClient] Got 401, attempting token refresh..."),await i())return o(e,{...a,_isRetry:!0});throw Error("Session expired. Please login again.")}if(!s.ok)throw Error("API request failed: ".concat(s.status," ").concat(s.statusText));return await s.json()}catch(e){throw console.error("API request error:",e),e}}async function d(e,a,s){return o(e,{method:"POST",body:a,siteId:s})}function c(){return window.innerWidth<=768?"mobile":"desktop"}async function m(e,a){try{let a=localStorage.getItem("access_token")||localStorage.getItem("auth_token");if(!a)return{success:!1,gameUrl:"",error:"Authentication required. Please login first.",authRequired:!0};let s=c(),r=await fetch("/api/game/launch",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(a)},body:JSON.stringify({gameId:e,screen_mode:s})}),t=await r.json();return{success:t.success,gameUrl:t.gameUrl||"",gameName:t.gameName,provider:t.provider,error:t.error,isMaintenance:t.isMaintenance,authRequired:t.authRequired}}catch(e){return{success:!1,gameUrl:"",error:e instanceof Error?e.message:"Failed to launch game",isMaintenance:!0}}}async function u(e,a){try{let s=c();return await d("/api/game-provider/".concat(e,"/launch"),{screen_mode:s},a)}catch(e){return console.error("[launchProviderGame] Error:",e),{url:"",error:"Failed to launch game"}}}},88895:(e,a,s)=>{s.d(a,{HomeSkeleton:()=>t});var r=s(18720);function t(){return(0,r.jsxs)("div",{className:"min-h-screen bg-background text-white",children:[(0,r.jsxs)("header",{className:"sticky top-0 z-40 flex h-[50px] items-center justify-between bg-background px-4 md:hidden",children:[(0,r.jsx)("div",{className:"h-6 w-6 animate-pulse rounded bg-gray-800"}),(0,r.jsx)("div",{className:"h-8 w-24 animate-pulse rounded bg-gray-800"}),(0,r.jsx)("div",{className:"h-6 w-20 animate-pulse rounded bg-gray-800"})]}),(0,r.jsxs)("div",{className:"fixed left-0 right-0 top-0 z-40 hidden md:block",children:[(0,r.jsxs)("div",{className:"flex h-10 items-center justify-between bg-background px-4",children:[(0,r.jsx)("div",{className:"h-4 w-32 animate-pulse rounded bg-gray-800"}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("div",{className:"h-4 w-20 animate-pulse rounded bg-gray-800"}),(0,r.jsx)("div",{className:"h-4 w-20 animate-pulse rounded bg-gray-800"})]})]}),(0,r.jsxs)("div",{className:"flex h-[120px] items-center justify-between bg-gradient-to-b from-background-secondary to-background px-8",children:[(0,r.jsx)("div",{className:"h-16 w-40 animate-pulse rounded bg-gray-800"}),(0,r.jsx)("div",{className:"flex gap-6",children:Array.from({length:6}).map((e,a)=>(0,r.jsx)("div",{className:"h-4 w-16 animate-pulse rounded bg-gray-800"},a))}),(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)("div",{className:"h-10 w-24 animate-pulse rounded-full bg-gray-800"}),(0,r.jsx)("div",{className:"h-10 w-24 animate-pulse rounded-full bg-gray-700"})]})]})]}),(0,r.jsxs)("div",{className:"md:mt-[170px]",children:[(0,r.jsxs)("div",{className:"relative w-full",children:[(0,r.jsx)("div",{className:"aspect-square w-full animate-pulse bg-gray-800 md:hidden",children:(0,r.jsx)("div",{className:"absolute inset-0 -translate-x-full animate-[shimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-gray-700/30 to-transparent"})}),(0,r.jsx)("div",{className:"hidden aspect-[1920/600] w-full animate-pulse bg-gray-800 md:block",children:(0,r.jsx)("div",{className:"absolute inset-0 -translate-x-full animate-[shimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-gray-700/30 to-transparent"})})]}),(0,r.jsxs)("div",{className:"flex h-8 items-center bg-background px-4",children:[(0,r.jsx)("div",{className:"h-4 w-4 animate-pulse rounded bg-gray-700"}),(0,r.jsx)("div",{className:"ml-2 h-3 w-3/4 animate-pulse rounded bg-gray-800"})]}),(0,r.jsxs)("div",{className:"flex justify-center gap-4 bg-background px-4 py-3 md:hidden",children:[(0,r.jsx)("div",{className:"h-10 w-32 animate-pulse rounded-full bg-gray-700"}),(0,r.jsx)("div",{className:"h-10 w-32 animate-pulse rounded-full bg-gray-800"})]}),(0,r.jsx)("div",{className:"sticky top-[50px] z-30 w-full bg-background py-2 md:hidden",children:(0,r.jsx)("div",{className:"flex gap-3 overflow-x-auto px-4",children:Array.from({length:7}).map((e,a)=>(0,r.jsxs)("div",{className:"flex flex-shrink-0 flex-col items-center gap-1",children:[(0,r.jsx)("div",{className:"h-10 w-10 animate-pulse rounded-full bg-gray-700"}),(0,r.jsx)("div",{className:"h-2 w-12 animate-pulse rounded bg-gray-700"})]},a))})}),(0,r.jsx)("div",{className:"bg-background-secondary",children:(0,r.jsxs)("div",{className:"mx-auto w-full max-w-[1280px] bg-background-secondary md:w-[95%] md:px-[30px] md:pt-[30px]",children:[(0,r.jsxs)("div",{className:"hidden md:mb-5 md:block",children:[(0,r.jsx)("div",{className:"mb-2 flex justify-center",children:(0,r.jsx)("div",{className:"h-6 w-48 animate-pulse rounded bg-gray-700"})}),(0,r.jsx)("div",{className:"flex h-[70px] items-center justify-center rounded bg-gray-800",children:(0,r.jsx)("div",{className:"h-10 w-64 animate-pulse rounded bg-gray-700"})})]}),(0,r.jsx)("div",{className:"container mx-auto w-full max-w-7xl p-0",children:Array.from({length:4}).map((e,a)=>(0,r.jsxs)("div",{className:"py-4",children:[(0,r.jsxs)("div",{className:"section-header-gradient mb-4 flex items-center justify-between border-l-2 border-theme-primary px-3 py-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"h-5 w-5 animate-pulse rounded bg-gray-700"}),(0,r.jsx)("div",{className:"h-5 w-24 animate-pulse rounded bg-gray-700"})]}),(0,r.jsx)("div",{className:"h-8 w-32 animate-pulse rounded-full bg-gray-700"})]}),(0,r.jsx)("div",{className:"flex gap-2 overflow-x-auto pb-4 md:grid md:grid-cols-4 md:gap-2 md:overflow-visible lg:grid-cols-8",children:Array.from({length:8}).map((e,a)=>(0,r.jsxs)("div",{className:"relative min-w-[100px] flex-shrink-0 md:min-w-0",children:[(0,r.jsx)("div",{className:"aspect-square w-full animate-pulse overflow-hidden rounded-lg bg-gray-800",children:(0,r.jsx)("div",{className:"absolute inset-0 -translate-x-full animate-[shimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-gray-700/30 to-transparent"})}),(0,r.jsx)("div",{className:"mt-2 flex justify-center",children:(0,r.jsx)("div",{className:"h-3 w-16 animate-pulse rounded bg-gray-700"})})]},a))})]},a))})]})})]}),(0,r.jsx)("div",{className:"bg-background py-6",children:(0,r.jsxs)("div",{className:"mx-auto max-w-7xl px-4",children:[(0,r.jsx)("div",{className:"mb-4 flex justify-center",children:(0,r.jsx)("div",{className:"h-5 w-32 animate-pulse rounded bg-gray-800"})}),(0,r.jsx)("div",{className:"flex justify-center gap-4",children:Array.from({length:6}).map((e,a)=>(0,r.jsx)("div",{className:"h-8 w-16 animate-pulse rounded bg-gray-800"},a))})]})}),(0,r.jsx)("nav",{className:"fixed bottom-0 left-0 right-0 z-30 border-t border-gray-800 bg-[#0a0a0a] md:hidden",children:(0,r.jsx)("div",{className:"flex w-full items-center justify-around py-2",children:Array.from({length:5}).map((e,a)=>(0,r.jsxs)("div",{className:"flex flex-col items-center gap-1 px-3 py-1",children:[(0,r.jsx)("div",{className:"h-6 w-6 animate-pulse rounded bg-gray-700"}),(0,r.jsx)("div",{className:"h-2 w-8 animate-pulse rounded bg-gray-700"})]},a))})})]})}}}]);
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.