@erhan/utopyatv 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,15 @@
1
+ (function(){var e=document.createElement(`style`);e.textContent=`:root{--bg:#070c18;--bg-top:#0d1830;--surface:#111c33;--surface-variant:#1a2947;--on-bg:#e8edf5;--on-surface-variant:#a3b1c9;--accent:#4fc3f7;--accent-rgb:79, 195, 247;--live:#e53935;--error:#ff6b6b;--glass:rgba(17,28,51,.72)}html{font-size:1.04167vw;font-size:min(1.04167vw,1.85185vh)}html,body{height:100%;color:var(--on-bg);-webkit-font-smoothing:antialiased;background:0 0;margin:0;font-family:SamsungOne,Tizen Sans,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}*{box-sizing:border-box}::-webkit-scrollbar{display:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}[data-focus]:focus{outline:none}h1,h2,p{margin:0}.muted{color:var(--on-surface-variant)}.row{align-items:center;display:flex}.row>*+*{margin-left:1.2rem}.app{z-index:1;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#video{position:absolute;top:0;bottom:0;left:0;right:0}.backdrop{z-index:-1;background:radial-gradient(circle at 10% 0, rgba(var(--accent-rgb), .13), transparent 55vw), radial-gradient(circle at 100% 100%, rgba(124,77,255,.1), transparent 50vw), linear-gradient(var(--bg-top), var(--bg));background-size:100vw 100vh;position:absolute;transform:translateZ(0)}.glass{background:var(--glass);border:.1rem solid rgba(255,255,255,.06);border-radius:2rem}.icon{width:2.2rem;height:2.2rem;display:block}.topbar{flex:none;align-items:center;margin:1.8rem 4.8rem 0;padding:.8rem 1.6rem;display:flex}.brand{background:linear-gradient(90deg, #fff, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;flex:1;font-size:2.2rem;font-weight:900}.pills{align-items:center;display:flex}.pill{color:var(--on-surface-variant);white-space:nowrap;border:.1rem solid transparent;border-radius:10rem;margin-left:.2rem;padding:.7rem 1.2rem;font-size:1.6rem;font-weight:500}.pill.icon-only{padding:.6rem 1rem}.pill.selected{background:rgba(var(--accent-rgb), .18);border-color:rgba(var(--accent-rgb), .5);color:var(--accent)}.pill:focus{background:var(--on-bg);color:var(--surface)}.content{flex:1;min-height:0;padding:2.4rem 4.8rem 2.7rem;overflow:auto}.placeholder h1{margin-bottom:1rem;font-size:3.4rem;font-weight:700}.placeholder p{font-size:1.8rem}.scrim{background:rgba(0,0,0,.6);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog{background:var(--surface);width:48rem;padding:2.8rem 3.2rem}.dialog h2{margin-bottom:1rem;font-size:2.4rem}.dialog p{color:var(--on-surface-variant);margin-bottom:2.4rem;font-size:1.8rem}.btn{background:var(--surface-variant);border-radius:10rem;padding:.9rem 2.2rem;font-size:1.6rem;font-weight:500}.btn:focus{background:var(--on-bg);color:var(--surface)}.btn{align-items:center;display:inline-flex}.btn .icon{width:2rem;height:2rem;margin-right:.8rem}.btn.primary{background:var(--accent);color:#00121c}.btn.outline{background:0 0;border:.1rem solid rgba(255,255,255,.25)}.btn:focus,.btn.primary:focus,.btn.outline:focus{background:var(--on-bg);color:var(--surface);border-color:var(--on-bg)}.chip{border:.1rem solid rgba(255,255,255,.2);border-radius:10rem;padding:.6rem 1.6rem;font-size:1.5rem}.chip.selected{background:rgba(var(--accent-rgb), .18);border-color:var(--accent);color:var(--accent)}.chip:focus{background:var(--on-bg);color:var(--surface)}.field{margin-bottom:1.4rem;display:block}.field-label{color:var(--on-surface-variant);margin-bottom:.6rem;font-size:1.4rem;display:block}.field-box{background:var(--surface-variant);border:.2rem solid transparent;border-radius:1.2rem}.field-box:focus{border-color:var(--accent)}.field-box input:focus{background:rgba(var(--accent-rgb), .12)}.field-box input{width:100%;color:var(--on-bg);font:inherit;background:0 0;border:0;border-radius:1rem;outline:none;padding:1rem 1.4rem;font-size:1.7rem;display:block}.field-box input::-webkit-input-placeholder{color:rgba(163,177,201,.6)}.field-pair{display:flex}.field-pair>.field{flex:1}.field-pair>.field+.field{margin-left:1.6rem}.error-box{background:rgba(255,82,82,.2);border-radius:1.2rem;margin-bottom:1.4rem;padding:1.6rem;font-size:1.7rem}.error-text{color:var(--error);font-size:2.2rem}.onboarding{flex-direction:column;flex:1;min-height:0;padding:2.7rem 4.8rem;display:flex}.center-msg{margin:auto;font-size:2.2rem}.onb-choose{flex:1;align-items:center;display:flex}.onb-brand{flex:.9;margin-right:5.6rem}.brand-mark{background:linear-gradient(135deg, var(--accent), #0288d1);color:#fff;border-radius:1.8rem;justify-content:center;align-items:center;width:7.2rem;height:7.2rem;display:flex}.brand-mark .icon{width:4.3rem;height:4.3rem}.onb-brand h1{margin-top:2.4rem;font-size:4.8rem;font-weight:900}.tagline{margin-top:.8rem;font-size:2.2rem}.features{margin:3.6rem 0 0;padding:0;list-style:none}.features li{align-items:center;margin-bottom:1.6rem;font-size:1.8rem;display:flex}.feature-icon{background:rgba(var(--accent-rgb), .14);width:4rem;height:4rem;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:1.6rem;display:flex}.note{margin-top:2rem;font-size:1.4rem}.onb-options{flex:1.1;max-height:100%;margin:-1.2rem -1.6rem;padding:1.2rem 1.6rem;overflow:auto}.onb-options h2{margin:0 0 .6rem .4rem;font-size:2.2rem;font-weight:600}.option{text-align:left;background:rgba(17,28,51,.75);border:.2rem solid transparent;border-radius:1.6rem;align-items:center;width:100%;margin-top:.8rem;padding:.9rem 1.8rem;transition:transform .12s ease-out;display:flex}.option:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.option-icon{border-radius:1.2rem;flex:none;justify-content:center;align-items:center;width:4.4rem;height:4.4rem;display:flex}.option-icon .icon{width:2.6rem;height:2.6rem}.option-text{flex:1;min-width:0;margin-left:1.6rem;font-size:1.4rem}.option-text>span{display:block}.option-title{margin-bottom:.2rem;font-size:1.8rem;font-weight:500}.badge{border-radius:10rem;margin-left:1rem;padding:.2rem 1rem;font-size:1.2rem}.step-header{flex:none;align-items:center;display:flex}.step-header>div{margin-left:2.4rem}.step-header h1{font-size:2.8rem;font-weight:600}.step-header p{font-size:1.6rem}.form-step{flex-direction:column;flex:1;min-height:0;display:flex}.form-row{flex:1;min-height:0;margin-top:2rem;display:flex}.form-panel{flex:1;padding:2.2rem 2.8rem;overflow:auto}.form-panel h3{margin:0 0 1rem;font-size:1.6rem;font-weight:500}.connect{margin:.4rem 0 1.8rem}.file-chosen{margin-bottom:1.4rem;font-size:1.7rem}.form-side{flex:none;width:34rem;margin-left:2.8rem}.usb-list{flex:1;margin-top:2rem;padding:1.6rem 2.2rem;font-size:1.7rem;overflow:auto}.sync-step{text-align:center;margin:auto}.sync-step h1{margin-bottom:2.4rem;font-size:2.8rem;font-weight:600}.sync-step .stage{font-size:2.2rem}.sync-step .row{justify-content:center;margin-top:2.4rem}.sync-step>.btn{margin-top:3.2rem}.indeterminate{background:var(--surface-variant);border-radius:.3rem;width:48rem;height:.6rem;margin:2rem auto 0;overflow:hidden}.indeterminate span{background:var(--accent);width:40%;height:100%;animation:1.2s ease-in-out infinite indeterminate;display:block}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}.focus-row{text-align:left;border:.3rem solid transparent;border-radius:1rem;align-items:center;width:100%;padding:.8rem 1.2rem;transition:transform .1s ease-out;display:flex}.focus-row>*+*{margin-left:1rem}.focus-row.idle{background:rgba(26,41,71,.45)}.focus-row.selected{background:var(--surface-variant)}.focus-row:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.channel-logo{background:rgba(255,255,255,.13);border-radius:.6rem;flex:none;justify-content:center;align-items:center;padding:.3rem;display:inline-flex;overflow:hidden}.channel-logo img{max-width:100%;max-height:100%}.marquee{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.marquee>span.run{animation:linear infinite alternate marquee;display:inline-block}@keyframes marquee{0%,15%{transform:translate(0)}85%,to{transform:translateX(var(--marquee))}}.fav-star{color:#ffb74d;flex:none;width:1.4rem;height:1.4rem;margin-left:.6rem}.fav-star.big{width:2.2rem;height:2.2rem}.content.live-content{padding-top:2.4rem}.live-screen{height:100%;display:flex}.live-screen>*+*{margin-left:1.2rem}.live-cats{flex-direction:column;flex:none;width:19rem;padding:1rem;display:flex}.live-cats.wide{width:27rem}.group-mode{text-align:left;border:.2rem solid transparent;border-radius:1rem;flex:none;justify-content:space-between;align-items:center;margin-bottom:.8rem;padding:.6rem .8rem;display:flex}.group-mode:focus{background:var(--surface-variant);border-color:var(--accent)}.group-mode>span>span{display:block}.gm-title{font-size:1.8rem;font-weight:500}.gm-value{color:var(--accent);white-space:nowrap;font-size:1.4rem}.cat-list{flex:1;min-height:0;margin:-.6rem -1rem;padding:.6rem 1rem;overflow:auto}.cat-row{margin-bottom:.4rem;font-size:1.6rem;font-weight:500}.cat-row.selected .cat-name{color:var(--accent)}.cat-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.cat-icon{flex:none;width:1.6rem;height:1.6rem}.platform-badge{flex:none;align-items:center;width:5.4rem;height:1.8rem;display:inline-flex}.platform-badge img{max-width:100%;max-height:100%}.platform-badge b{white-space:nowrap;font-size:1.2rem}.tint-white{filter:brightness(0)invert()}.live-channels{flex-direction:column;flex:1;min-width:0;padding:1rem;display:flex}.panel-title{padding:.4rem .8rem 1rem}.panel-title h2{font-size:1.8rem;font-weight:500}.panel-title span{font-size:1.4rem}.empty{margin:auto;font-size:1.8rem}.channel-list{flex:1;min-height:0;margin:0 -1.2rem;padding:0 1.2rem;position:relative;overflow:hidden}.channel-list-inner{position:relative}.channel-row{height:6.8rem;position:absolute;left:0;right:0}.channel-row.compact{height:5.6rem}.ch-number{width:4.4rem;color:var(--on-surface-variant);flex:none;font-size:1.6rem;font-weight:500}.channel-row.compact .ch-number{width:4rem}.channel-row.selected .ch-number{color:var(--accent)}.ch-logo-box{background:rgba(255,255,255,.07);border-radius:1rem;flex:none;justify-content:center;align-items:center;width:6.4rem;height:4.8rem;display:flex}.ch-text{flex:1;min-width:0}.ch-name{align-items:center;font-size:1.6rem;font-weight:500;display:flex}.live-preview{background:0 0;flex:none;width:30rem;padding:1.4rem;position:relative;overflow:hidden}.preview-label{color:var(--accent);margin-bottom:1rem;font-size:1.6rem;font-weight:500;display:block}.preview-box{height:15.19rem;box-shadow:0 0 0 100rem var(--glass);background:#000;border-radius:1.2rem;justify-content:center;align-items:center;display:flex}.preview-box.hole{background:0 0}.preview-name{margin-top:1.4rem;margin-bottom:1rem;font-size:2.2rem;font-weight:600}.live-preview p{font-size:1.4rem}.toast{z-index:50;background:rgba(8,11,16,.9);border-radius:2.4rem;padding:1rem 2.2rem;font-size:1.6rem;font-weight:500;position:fixed;top:4rem;left:50%;transform:translate(-50%)}.menu-dialog{background:var(--surface);border-radius:1.6rem;width:52rem;padding:2.4rem}.menu-dialog h2{margin-bottom:1.4rem;font-size:2.4rem;font-weight:600}.menu-list{max-height:48rem;margin:-.4rem -1.2rem;padding:.4rem 1.2rem;overflow:auto}.menu-item{text-align:left;border:.3rem solid transparent;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;margin-bottom:.4rem;padding:1rem 1.2rem;font-size:1.8rem;font-weight:500;transition:transform .1s ease-out;display:flex}.menu-item:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.menu-item .icon{color:var(--accent)}.number-box{color:var(--accent);z-index:40;background:rgba(0,0,0,.8);border-radius:1.2rem;padding:1.4rem 2.8rem;font-size:3.4rem;font-weight:700;position:fixed;top:4rem;right:4.8rem}.player{position:absolute;top:0;bottom:0;left:0;right:0}.player-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.spinner{border:.5rem solid transparent;border-top-color:var(--accent);border-right-color:var(--accent);border-bottom-color:var(--accent);border-radius:50%;width:5.6rem;height:5.6rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.retry-label{background:rgba(8,11,16,.9);border-radius:.8rem;margin-top:1.2rem;padding:.4rem 1rem;font-size:1.6rem}.paused-icon{width:7.2rem;height:7.2rem}.error-card{text-align:center;background:rgba(8,11,16,.9);border-radius:1.6rem;width:56rem;padding:2.8rem}.error-card .error-icon{width:4.8rem;height:4.8rem;color:var(--error);margin:0 auto 1.2rem}.error-card p{margin-bottom:2rem;font-size:1.8rem;font-weight:500}.error-card .row{justify-content:center}.error-card .error-detail{color:var(--on-surface-variant);margin-top:-1.2rem;font-size:1.2rem;font-weight:400}.info-band{background:linear-gradient(transparent,rgba(5,8,12,.8) 40%,rgba(5,8,12,.95));padding:5.6rem 4.8rem 2.7rem;animation:.2s ease-out band-in;position:absolute;bottom:0;left:0;right:0}@keyframes band-in{0%{opacity:0;transform:translateY(33%)}to{opacity:1;transform:none}}.band-row{align-items:flex-start;display:flex}.band-left{flex-direction:column;flex:none;align-items:flex-start;display:flex}.band-number{color:var(--accent);margin-bottom:.6rem;font-size:3.4rem;font-weight:700}.band-mid{flex:1;min-width:0;margin-left:2.4rem}.band-title{align-items:center;display:flex}.band-title>*+*{margin-left:1rem}.band-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:2.8rem;font-weight:600;overflow:hidden}.badge-sm{background:rgba(255,255,255,.2);border-radius:.6rem;flex:none;padding:.2rem .8rem;font-size:1.4rem}.badge-sm.live{background:var(--live)}.band-program{margin-top:.8rem;font-size:1.8rem}.band-hint{color:rgba(255,255,255,.6);margin-top:1rem;font-size:1.2rem}.band-clock{flex:none;margin-left:2.4rem;font-size:2.2rem;font-weight:600}.control-bar{justify-content:center;margin-top:2rem;display:flex}.cb-item{flex-direction:column;align-items:center;width:7.6rem;margin:0 .7rem;display:flex}.cb-btn{background:rgba(255,255,255,.14);border-radius:50%;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;transition:transform .1s ease-out;display:flex}.cb-btn .icon{width:2.6rem;height:2.6rem}.cb-btn.active{background:rgba(var(--accent-rgb), .35)}.cb-btn:focus{color:#000;background:#fff;transform:scale(1.12)}.cb-label{color:rgba(255,255,255,.87);text-align:center;white-space:nowrap;margin-top:.6rem;font-size:1.4rem}.list-overlay{background:linear-gradient(90deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);flex-direction:column;width:48rem;padding:2.7rem 6.4rem 2.7rem 4.8rem;animation:.2s ease-out slide-left;display:flex;position:absolute;top:0;bottom:0;left:0}.list-overlay h2{margin-bottom:1rem;font-size:1.8rem;font-weight:500}@keyframes slide-left{0%{opacity:0;transform:translate(-25%)}to{opacity:1;transform:none}}.options-panel{background:linear-gradient(270deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);width:42rem;padding:4rem 4.8rem 4rem 5.6rem;animation:.2s ease-out slide-right;position:absolute;top:0;bottom:0;right:0;overflow:auto}@keyframes slide-right{0%{opacity:0;transform:translate(25%)}to{opacity:1;transform:none}}.options-panel h2{margin-bottom:1.6rem;font-size:2.4rem;font-weight:600}.opt-row{justify-content:space-between;margin-bottom:.4rem}.opt-text{flex:1;min-width:0}.opt-text>span{display:block}.opt-label{font-size:1.6rem;font-weight:500}.opt-value{color:var(--accent);font-size:1.4rem}.progress-line{background:rgba(255,255,255,.27);border-radius:.2rem;height:.4rem;display:block;overflow:hidden}.progress-line>span{background:var(--accent);height:100%;display:block}.ch-program{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;display:block;overflow:hidden}.ch-progress{width:60%;margin-top:.3rem}.program-block{margin-bottom:1.2rem}.program-block>span{display:block}.pb-label{color:var(--accent);font-size:1.4rem}.pb-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.pb-progress{margin:.4rem 0}.pb-desc{color:var(--on-surface-variant);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.band-time{color:var(--accent);margin-right:1.2rem;font-size:1.6rem;font-weight:500}.band-progress{align-items:center;margin-top:.6rem;display:flex}.band-progress .progress-line{flex:1}.band-progress>span:last-child{margin-left:1.2rem;font-size:1.4rem}.band-next{margin-top:.6rem;font-size:1.6rem}.guide{flex-direction:column;height:100%;display:flex}.guide-head{flex:none;justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.guide-head h1{font-size:2.2rem;font-weight:600}.guide-head .row>*+*{margin-left:1rem}.guide-hint{color:var(--on-surface-variant);flex:none;margin-top:.6rem;font-size:1.2rem}.epg-grid{--epg-ch:19.4rem;flex-direction:column;flex:1;min-height:0;display:flex}.epg-header{height:3.2rem;margin-left:var(--epg-ch);flex:none;position:relative}.epg-header span{color:var(--on-surface-variant);padding-left:.6rem;font-size:1.6rem;font-weight:500;position:absolute;top:.6rem}.epg-body{flex:1;min-height:0;position:relative;overflow:hidden}.epg-row{margin-top:.2rem;display:flex;position:absolute;left:0;right:0}.epg-channel{background:var(--surface);text-align:left;border:.2rem solid transparent;border-radius:.8rem;flex:none;align-items:center;width:19rem;margin-right:.4rem;padding:0 .8rem;display:flex}.epg-channel:focus{background:var(--surface-variant);border-color:var(--accent)}.epg-num{width:3.6rem;color:var(--on-surface-variant);flex:none;font-size:1.4rem}.epg-chname{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;padding-left:.8rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.epg-programs{flex:1;position:relative}.epg-cell{background:var(--surface);text-align:left;background-clip:padding-box;border:.2rem solid transparent;border-right-width:.5rem;border-radius:.8rem;padding:.4rem .8rem;position:absolute;top:0;bottom:0;overflow:hidden}.epg-cell.live{background-color:#1e3446}.epg-cell:focus{background-color:var(--accent);color:#00121c;border-color:var(--accent)}.epg-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.6rem;display:block;overflow:hidden}.epg-time{opacity:.8;font-size:1.2rem;display:block}.epg-now{background:var(--live);pointer-events:none;width:.2rem;position:absolute;top:0;bottom:0}.guide-overlay{background:linear-gradient(transparent,rgba(5,8,12,.85) 8%,rgba(5,8,12,.95));flex-direction:column;height:62%;padding:3.6rem 4.8rem 2rem;animation:.2s ease-out band-in;display:flex;position:absolute;bottom:0;left:0;right:0}.epg-grid.translucent .epg-channel,.epg-grid.translucent .epg-cell{background-color:rgba(21,27,35,.6)}.epg-grid.translucent .epg-cell.live{background-color:rgba(30,52,70,.75)}.epg-grid.translucent .epg-cell:focus{background-color:var(--accent)}.program-dialog{background:var(--surface);border-radius:1.6rem;width:64rem;padding:2.4rem}.program-dialog h2{font-size:2.4rem;font-weight:600}.pd-meta{color:var(--accent);margin-top:.6rem;font-size:1.6rem;font-weight:500}.pd-cat{color:var(--on-surface-variant);font-size:1.4rem}.pd-desc{max-height:22rem;margin-top:1.2rem;font-size:1.8rem;overflow:auto}.pd-buttons{flex-wrap:wrap;margin-top:2rem}.page{position:absolute;top:0;bottom:0;left:0;right:0}.vod-home>.shelf+.shelf{margin-top:2rem}.shelf-title{align-items:center;padding:0 0 .2rem 1.6rem;font-size:2.2rem;font-weight:600;display:flex}.shelf-all{color:var(--on-surface-variant);white-space:pre;background:0 0;border-radius:99rem;margin-left:1rem;padding:.4rem 1.2rem;font-size:1.3rem;font-weight:500}.shelf-all:focus{background:var(--on-bg);color:var(--surface)}.shelf-logo{align-items:center;width:7.8rem;height:2.6rem;margin-right:1rem;display:inline-flex}.shelf-logo img,.shelf-logo b{max-width:100%;max-height:100%}.shelf-row{padding:1.2rem 1.6rem;display:flex;position:relative;overflow:hidden}.shelf-row>*{flex:none}.shelf-row>*+*{margin-left:1.6rem}.poster-card{background:var(--surface-variant);text-align:left;border:.1rem solid rgba(255,255,255,.08);border-radius:1.4rem;width:13rem;height:19.5rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.poster-card:focus{border:.3rem solid var(--accent);transform:scale(1.08)}.poster-card img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.poster-progress{background:rgba(255,255,255,.27);height:.4rem;position:absolute;bottom:0;left:0;right:0}.poster-progress>span{background:var(--accent);height:100%;display:block}.genre-chip{align-self:center}.platform-tile{background:#000;border:.3rem solid transparent;border-radius:1.2rem;width:26rem;height:14.6rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.shelf-row>.platform-tile+.platform-tile{margin-left:1.8rem}.platform-tile:focus{border-color:#fff;transform:scale(1.08)}.pt-collage{display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.pt-collage img{object-fit:cover;flex:1;min-width:0;height:100%}.pt-shade,.pt-logo{position:absolute;top:0;bottom:0;left:0;right:0}.pt-logo{justify-content:center;align-items:center;display:flex}.pt-logo img{max-width:18rem;max-height:5.6rem}.pt-logo img.own-color{border-radius:.6rem}.pt-logo b{color:#fff;font-size:2.6rem;font-weight:900}.browse{flex-direction:column;height:100%;padding:2.4rem 4.8rem 2.7rem;display:flex}.browse-logo{align-items:center;width:8.8rem;height:2.4rem;display:inline-flex}.browse-logo img{max-width:100%;max-height:100%}.spacer{flex:1}.browse-grid{flex-wrap:wrap;flex:1;align-content:flex-start;min-height:0;margin:0 -1.2rem;padding:1.2rem;display:flex;overflow:auto}.grid-cell{flex:none;margin:0 1.8rem 1.8rem 0}.browse-grid{margin:0 -1.6rem 0 .2rem}.browse-grid .poster-card.plain{width:var(--cw);height:calc(var(--cw) * 1.5)}.browse-grid .wide-card{width:var(--cw);height:calc(var(--cw) * .5625)}.browse-info{flex:none;padding-left:1.4rem}.detail{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.detail-backdrop{background:var(--bg);position:absolute;top:0;bottom:0;left:0;right:0}.detail-backdrop img{object-fit:cover;width:100%;height:100%}.detail-backdrop span{position:absolute;top:0;bottom:0;left:0;right:0}.db-h{background:linear-gradient(90deg,rgba(7,12,24,.95),rgba(7,12,24,.75) 40%,rgba(7,12,24,.1))}.db-v{background:linear-gradient(transparent 55%, var(--bg))}.detail-scroll{padding:3.5rem 4.8rem 2.7rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto}.detail-scroll.series{padding:6rem 4.8rem 4rem}.back-btn{margin-bottom:1.6rem}.detail-row{display:flex}.detail-poster{background:var(--surface-variant);border:.1rem solid rgba(255,255,255,.12);border-radius:1.6rem;flex:none;width:22rem;height:33rem;margin-right:3.2rem;overflow:hidden}.detail-poster img{object-fit:cover;width:100%;height:100%}.detail-info{flex:1;min-width:0}.detail-info h1{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:3.4rem;font-weight:700;display:-webkit-box;overflow:hidden}.meta-chips{flex-wrap:wrap;margin-top:1.2rem;display:flex}.meta-chip{background:rgba(255,255,255,.1);border-radius:.8rem;margin:0 .8rem .8rem 0;padding:.4rem 1rem;font-size:1.6rem;font-weight:500}.meta-chip.gold{color:#ffc94d;background:rgba(255,201,77,.2)}.detail-plot{-webkit-line-clamp:5;-webkit-box-orient:vertical;margin-top:1.4rem;font-size:1.8rem;display:-webkit-box;overflow:hidden}.detail-credit{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.6rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.detail-actions{flex-wrap:wrap;margin-top:2.2rem;display:flex}.detail-actions>*{margin:0 1.2rem 1.2rem 0}.detail .shelf{margin-top:2.4rem;margin-left:-1.6rem}.season-chips{margin:2.8rem 0 .8rem;display:flex}.season-chips>*+*{margin-left:1rem}.season-gap{height:2.4rem}.episode-list{margin:0 -1rem;padding:0 1rem}.episode-row{margin:.3rem 0}.ep-thumb{background:var(--surface-variant);border-radius:.8rem;flex:none;width:12.8rem;height:7.2rem;position:relative;overflow:hidden}.ep-thumb img{object-fit:cover;width:100%;height:100%}.ep-text{flex:1;min-width:0}.ep-text>span{display:block}.ep-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.6rem;font-weight:500;overflow:hidden}.ep-plot{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.ep-min{flex:none;font-size:1.4rem}.ep-watched{color:var(--accent);flex:none}.vod-top{background:linear-gradient(rgba(5,8,12,.8),transparent);justify-content:space-between;align-items:flex-start;padding:2.7rem 4.8rem 4rem;display:flex;position:absolute;top:0;left:0;right:0}.vod-top h1{font-size:2.8rem;font-weight:600}.vod-top p{color:var(--on-surface-variant);font-size:1.6rem}.vod-bottom{background:linear-gradient(transparent,rgba(5,8,12,.9));padding:4.8rem 4.8rem 2.7rem;position:absolute;bottom:0;left:0;right:0}.vod-bar-row{align-items:center;display:flex}.vod-bar-row>*+*{margin-left:1.4rem}.vod-state{width:3.6rem;height:3.6rem}.vod-time{font-size:1.6rem;font-weight:500}.vod-bar{background:rgba(255,255,255,.27);border-radius:.3rem;flex:1;height:.6rem;position:relative;overflow:hidden}.vod-bar span{position:absolute;top:0;bottom:0;left:0}.vod-buffer{background:rgba(255,255,255,.4)}.vod-played{background:var(--accent)}.vod-bottom .control-bar{margin-top:1.8rem}.episodes-panel{background:linear-gradient(90deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);width:50rem;padding:2.7rem 6.4rem 2.7rem 4.8rem;animation:.2s ease-out slide-left;position:absolute;top:0;bottom:0;left:0;overflow:auto}.episodes-panel h2{margin-bottom:1.4rem;font-size:2.4rem;font-weight:600}.ep-code{color:var(--accent);flex:none;font-size:1.6rem;font-weight:500}.next-card{background:rgba(8,11,16,.9);border-radius:1.4rem;width:38rem;padding:2rem;position:absolute;bottom:4.8rem;right:4.8rem}.next-when{color:var(--accent);font-size:1.8rem;font-weight:500}.next-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.6rem 0 1.4rem;font-size:1.8rem;display:-webkit-box;overflow:hidden}.home{flex-direction:column;height:100%;display:flex}.home-head{flex:none;align-items:flex-end;padding:0 1.6rem .4rem;display:flex}.home-head h1{font-size:2.4rem;font-weight:600}.home-head .muted{white-space:pre;padding-bottom:.2rem;font-size:1.6rem;font-weight:500}.home-shelves{flex:1;min-height:0;padding-bottom:4.8rem;overflow:auto}.home-block+.home-block,.home-block>.shelf+.shelf{margin-top:2.2rem}.home-empty{padding:4rem 1.6rem;font-size:1.8rem;font-weight:500}.hero{background:var(--surface-variant);border-radius:2rem;height:30rem;margin:.4rem 1.6rem 0;position:relative;overflow:hidden}.hero>img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.45) 55%,transparent);position:absolute;top:0;bottom:0;left:0;right:0}.hero-content{flex-direction:column;justify-content:center;width:55%;padding:3.2rem;display:flex;position:absolute;top:0;bottom:0;left:0}.hero-label{color:var(--accent);font-size:1.6rem;font-weight:500}.hero h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:2.8rem;font-weight:600;display:-webkit-box;overflow:hidden}.hero-meta{color:var(--on-surface-variant);white-space:pre;margin-top:.6rem;font-size:1.6rem;font-weight:500}.hero-plot{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.8rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.hero-actions{margin-top:1.6rem}.channel-tile{flex-direction:column;width:18rem;display:flex}.ct-card{background:var(--surface-variant);border:.3rem solid transparent;border-radius:1.4rem;justify-content:center;align-items:center;width:18rem;height:10.1rem;padding:1.4rem;transition:transform .12s ease-out;display:flex}.ct-card:focus{border-color:var(--accent);transform:scale(1.08)}.ct-card .channel-logo{background:0 0}.ct-name-big{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.ct-name,.ct-program{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ct-name{color:var(--on-surface-variant);margin-top:.6rem;font-size:1.4rem}.ct-program{font-size:1.6rem;font-weight:500}.ct-progress{margin-top:.4rem}.program-tile{background:var(--surface-variant);text-align:left;border:.3rem solid transparent;border-radius:1.4rem;align-items:flex-start;width:28rem;height:12.8rem;padding:1.4rem;transition:transform .12s ease-out;display:flex}.program-tile:focus{border-color:var(--accent);transform:scale(1.06)}.pt-logo-box{flex:none;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;margin-right:1.2rem;display:flex}.pt-text{flex:1;min-width:0}.pt-text>span{display:block}.pt-time{color:var(--accent);font-size:1.6rem;font-weight:500}.pt-badge{background:var(--live);color:#fff;border-radius:.4rem;margin-left:.8rem;padding:.1rem .6rem;font-size:1.2rem}.pt-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.pt-channel{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;overflow:hidden}.pin-dialog{background:var(--surface);text-align:center;border-radius:1.6rem;width:42rem;padding:2.4rem}.pin-dialog h2{font-size:2.2rem;font-weight:600}.pin-dots{letter-spacing:.6rem;margin-top:1.2rem;font-size:3.4rem}.pin-error{color:var(--error);padding:.8rem 0;font-size:1.6rem}.pin-pad{flex-wrap:wrap;justify-content:center;width:24.8rem;margin:0 auto;display:flex}.pin-key{justify-content:center;width:7.2rem;height:5.6rem;margin:.4rem;font-size:2.2rem}.pin-pad .pin-key:last-child{margin-right:8.4rem}.preview-lock{width:4rem;height:4rem}.epg-mapping{height:100%;padding:2.7rem 4.8rem;display:flex}.em-left{flex:none;width:32rem;margin-right:3.2rem}.em-left h1{margin-top:1.2rem;font-size:2.8rem;font-weight:600}.em-channel{color:var(--accent);margin-top:.8rem;font-size:2.2rem;font-weight:600}.em-filter{margin-top:2.4rem}.em-list{flex:1;margin:-.4rem -1.2rem;padding:.4rem 1.2rem;overflow:auto}.em-auto{color:var(--accent);font-size:1.6rem;font-weight:500}.em-id{font-size:1.4rem}.search>*+*{margin-top:1.8rem}.search-row{padding:0 1.6rem}.history-row{align-items:center}.search-empty{padding:0 1.6rem;font-size:1.8rem;font-weight:500}.search-programs{padding:0 1.6rem}.search-programs .shelf-title{margin-bottom:.6rem;padding-left:0}.search-prog{margin-bottom:.4rem}.sp-time{text-align:right;width:18rem;color:var(--on-surface-variant);flex:none;font-size:1.4rem}.sp-time.live{color:var(--accent)}.settings{height:100%;display:flex}.set-sections{flex:none;width:24rem;margin-left:-1rem;margin-right:2.4rem;padding:.4rem 1rem;overflow:auto}.set-section{margin-bottom:.4rem;font-size:1.6rem;font-weight:500}.set-section .icon{flex:none}.set-section.selected .icon{color:var(--accent)}.set-panel{flex:1;min-width:0;padding:2rem 2.8rem;overflow:auto}.set-panel h2{margin-bottom:.8rem;font-size:2.4rem;font-weight:600}.set-row{margin-bottom:.4rem}.set-sub{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.set-value{max-width:40%;color:var(--accent);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:none;font-size:1.6rem;font-weight:500;overflow:hidden}.set-header{color:var(--on-surface-variant);padding:1.8rem 1.2rem .6rem;font-size:1.6rem;font-weight:500}.set-hint{color:var(--on-surface-variant);padding:1.6rem 1.2rem;font-size:1.6rem}.set-about h3{font-size:2.8rem;font-weight:600}.set-about p{margin-top:.6rem;font-size:1.6rem}.set-version{color:var(--accent)}.set-ua{word-break:break-all;font-size:1.2rem}.dialog p{white-space:pre-line}.pt-badge.reminder{background:var(--accent);color:#000}.subtitle-layer{z-index:5;text-align:center;pointer-events:none;line-height:1.25;position:absolute;bottom:7%;left:8%;right:8%}.subtitle-line{white-space:pre-wrap;text-shadow:-.15rem -.15rem #000,.15rem -.15rem #000,-.15rem .15rem #000,.15rem .15rem #000;margin:0 auto;padding:0 .6rem;display:table}.subtitle-layer.boxed .subtitle-line{text-shadow:none;background:rgba(0,0,0,.7)}.poster-card.plain{border:.2rem solid transparent;border-radius:.6rem;width:11.6rem;height:17.4rem;transition:transform .12s ease-out}.poster-card.plain:focus,.wide-card:focus{border-color:#fff;transform:scale(1.1)}.shelf-info{white-space:nowrap;text-overflow:ellipsis;height:2.8rem;margin:0;padding:.2rem 1.6rem 0;font-size:1.5rem;overflow:hidden}.shelf-info span{white-space:pre;color:rgba(255,255,255,.75)}.wide-card{background:var(--surface-variant);text-align:left;border:.2rem solid transparent;border-radius:.6rem;width:20rem;height:11.25rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.wide-card img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.wc-shade{background:linear-gradient(transparent,rgba(0,0,0,.85));height:50%;position:absolute;bottom:0;left:0;right:0}.wc-text{position:absolute;bottom:.9rem;left:1rem;right:1rem}.wc-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;font-weight:700;display:block;overflow:hidden}.wc-sub{color:rgba(255,255,255,.75);font-size:1.1rem;display:block}.wc-badge{color:#fff;background:#e50914;border-radius:.3rem;padding:.15rem .6rem;font-size:1.1rem;font-weight:700;position:absolute;top:.6rem;right:.6rem}.wc-progress{height:.3rem}.badge-sm.archive{color:#fff;background:#7e57c2}.archive-band .vod-bar-row{margin-top:.8rem}.home-edit{height:100%;padding:2.4rem 4.8rem 4rem;overflow-y:auto}.he-head{justify-content:space-between;align-items:center;display:flex}.he-head h1{font-size:2.8rem;font-weight:600}.he-hint{color:var(--on-surface-variant);margin:.6rem 0 1.4rem;font-size:1.5rem}.he-list{max-width:80rem}.he-row{align-items:center;padding:.3rem .6rem;display:flex}.he-row>.he-main{background:var(--surface);flex:1;font-size:1.8rem}.he-row.moving>.he-main{background:rgba(var(--accent-rgb), .25);border-color:var(--accent)}.he-num{width:3.2rem;color:var(--on-surface-variant)}.he-label{flex:1}.he-moving{background:var(--accent);color:#000;border-radius:.4rem;padding:.2rem .8rem;font-size:1.3rem;font-weight:700}.he-switch{background:var(--surface);min-width:9rem;color:var(--on-surface-variant);border:.3rem solid transparent;border-radius:1rem;flex:none;margin-left:1rem;padding:.9rem 1.2rem;font-size:1.6rem;transition:transform .1s ease-out}.he-switch.on{color:var(--accent);font-weight:600}.he-switch:focus{border-color:#fff;transform:scale(1.05)}.icon-btn{align-items:center;display:inline-flex}.icon-btn>svg{width:2rem;height:2rem;margin-right:.6rem}.home-head>.btn+.btn{margin-left:1rem}.he-row>.he-main:focus{background:var(--surface-variant)}.topbar{z-index:2;position:relative}.home.with-hero{z-index:1;position:relative}.hero2{flex:none;height:17.6rem;position:relative}.hero2-bg{z-index:-1;pointer-events:none;width:68%;height:62%;position:fixed;top:0;right:0}.hero2-bg>img{object-fit:cover;width:100%;height:100%}.hero2-bg{-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 45%),linear-gradient(#000 50%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 45%),linear-gradient(#000 50%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero2-actions{position:absolute;top:0;right:1.6rem}.home-actions{align-items:center;display:flex}.home-actions>*+*{margin-left:1rem}.hero2-info{flex-direction:column;justify-content:flex-end;width:55%;height:100%;padding-bottom:1rem;padding-left:1.6rem;display:flex}.hero2-kind{letter-spacing:.3rem;color:#e50914;font-size:1.2rem;font-weight:700}.hero2-title{white-space:nowrap;text-overflow:ellipsis;margin-top:.4rem;font-size:2.8rem;font-weight:900;line-height:1.2;overflow:hidden}.hero2-meta{align-items:baseline;margin-top:.4rem;font-size:1.4rem;display:flex}.hero2-meta>*+*{margin-left:1rem}.hero2-meta>b{color:#46d369}.hero2-plot{color:rgba(255,255,255,.65);white-space:nowrap;text-overflow:ellipsis;min-height:1.6rem;margin-top:.4rem;font-size:1.2rem;overflow:hidden}.hero2-buttons{margin-top:1rem}.hero2-buttons>*+*{margin-left:1rem}.home.with-hero .home-shelves{overflow:hidden}.home-list{transition:transform .3s ease-out}.wc-progress>span{background:#e50914}.home-list{position:relative}.grid-spacer{flex:none;width:100%}.round-btn{color:#fff;background:rgba(0,0,0,.45);border:.2rem solid transparent;border-radius:50%;flex:none;justify-content:center;align-items:center;width:4rem;height:4rem;transition:transform .12s ease-out;display:inline-flex}.round-btn>svg{width:2rem;height:2rem}.round-btn:focus{border-color:#fff;transform:scale(1.1)}.browse-logo b{font-size:1.5rem}.extensions .ext-row{align-items:center}.ext-add,.ext-chip{align-items:center;display:inline-flex}.ext-add>svg{width:1.8rem;height:1.8rem;margin-right:.6rem}.ext-chip>img{object-fit:contain;width:2rem;height:2rem;margin-right:.8rem}.ext-note{padding:0 1.6rem 1.6rem;font-size:1.5rem}.recordings{max-width:100rem}.rec-note{margin:1rem 0 1.4rem;font-size:1.5rem}.rec-row{background:var(--surface);margin-bottom:.6rem}.rec-repeat{background:rgba(var(--accent-rgb), .25);color:var(--accent);border-radius:.4rem;flex:none;padding:.2rem .8rem;font-size:1.3rem}.page-flow{flex:1;min-height:0;position:relative}.browse-bar{border:.1rem solid rgba(255,255,255,.08);border-radius:1.4rem;flex:none;align-items:center;height:8.4rem;margin-bottom:1rem;padding:0 2rem;display:flex}.browse-bar>*+*{margin-left:1.6rem}.browse-bar>.spacer+*{margin-left:0}.bb-id{flex-direction:column;min-width:0;display:flex}.bb-title{white-space:nowrap;text-overflow:ellipsis;max-width:50rem;font-size:2.8rem;font-weight:700;overflow:hidden}.bb-count{color:rgba(255,255,255,.8);margin-top:.4rem;font-size:1.3rem}.bb-tabs{background:rgba(0,0,0,.35);border-radius:2rem;padding:.3rem;display:flex}.bb-tab{color:#fff;white-space:nowrap;border-radius:1.7rem;padding:.6rem 1.5rem;font-size:1.4rem}.bb-tab-count{opacity:.7;white-space:pre;font-size:1.2rem}.bb-tab.selected{color:#0d1117;background:#fff;font-weight:700}.bb-tab:focus{background:var(--accent);color:#0d1117}.bb-sorts>*+*{margin-left:.8rem}.bb-genre{white-space:nowrap}.field-row{align-items:stretch;display:flex}.field-row>.field-box{flex:1;align-items:center;min-width:0;min-height:5.2rem;display:flex}.eye-btn{background:var(--surface-variant);width:5.2rem;min-height:5.2rem;color:var(--on-surface-variant);border:.3rem solid transparent;border-radius:1rem;flex:none;justify-content:center;align-items:center;margin-left:.8rem;transition:transform .12s ease-out;display:flex}.eye-btn>svg{width:2.6rem;height:2.6rem}.eye-btn:focus{border-color:var(--accent);transform:scale(1.05)}.onb-help{border-radius:2rem;margin-top:1.2rem;padding:1.8rem 2.2rem}.form-side>.onb-help:first-child{margin-top:0}.onb-help h3{margin-bottom:1rem;font-size:1.8rem;font-weight:600}.onb-help ul{margin:0;padding-left:2rem}.onb-help li{color:var(--on-surface-variant);font-size:1.4rem;line-height:1.4}.onb-help li+li{margin-top:.6rem}
2
+ /*$vite$:1*/`,document.head.appendChild(e),`queueMicrotask`in self||(self.queueMicrotask=e=>{Promise.resolve().then(e)}),Promise.prototype.finally||(Promise.prototype.finally=function(e){let t=typeof e==`function`?e:()=>{};return this.then(e=>Promise.resolve(t()).then(()=>e),e=>Promise.resolve(t()).then(()=>{throw e}))});function t(e,t){return t}var n,r,i,a,o,s,c,l,u,d,f,p={},m=[],h=/^m(i|n|o|s|text|space)$/,g=Array.isArray,_=m.slice,v=Object.assign;function y(e){e&&e.parentNode&&e.remove()}function b(e,t,i,a,o){var s={type:e,props:t,key:i,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o||++r,__i:-1,__u:0};return!o&&n.vnode&&n.vnode(s),s}function x(e){return e.children}function S(e,t){this.props=e,this.context=t,this.__g=0}function ee(e,t){if(t==null)return e.__&&ee(e.__,e.__i+1);for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:ee(e)}function C(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),C(e)}function w(e){(8&e.__g||(e.__g|=8,a.push(e),s++))&&o==n.debounceRendering||((o=n.debounceRendering)||queueMicrotask)(T)}function T(){var e,t,r,i,l,u,d,f,p;try{for(t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,8&e.__g&&(i=void 0,l=void 0,u=(l=(r=e).__v).__e,d=[],f=[],(p=r.__P)&&((i=v({constructor:void 0},l)).__v=l.__v+1,n.vnode&&n.vnode(i),ne(p,i,l,r.__n,p.namespaceURI,32&l.__u?[u]:null,d,u||ee(l),32&l.__u,f),i.__v=l.__v,i.__.__k[i.__i]=i,ae(d,i,f),l.__=l.__e=null,i.__e!=u&&C(i)))}finally{(s=a.length)&&(o||queueMicrotask)(T)}}function E(e,t,n,r,i,a,o,s,c,l,u){var d,f,h,g,_,v,y=r.__k||m,b=t.length;for(c=D(n,t,y,c,b),d=0;d<b;d++)(h=n.__k[d])!=null&&(f=~h.__i&&y[h.__i]||p,h.__i=d,v=ne(e,h,f,i,a,o,s,c,l,u),g=h.__e,(f.ref!=h.ref||8&f.__u)&&(f.ref&&se(f.ref,null,h,f),h.ref&&u.push(h.ref,h.__c||g,h)),_=_||g,4&h.__u?(c=O(h,c,e,!f.__v),f.__e&&(f.__e=null)):typeof h.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),h.__u&=-21);return n.__e=_,c}function D(e,t,n,r,i){var a,o,s,c,l,u,d,f,p,m=n.length,h=m,_=0,v=0,y=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor==String?o=y[a]=b(null,o):g(o)?o=y[a]=b(x,{children:o}):o.constructor===void 0&&o.__b?o=y[a]=b(o.type,o.props,o.key,o.ref,o.__v):y[a]=o,c=a+_,o.__=e,o.__b=e.__b+1,s=null,~(l=o.__i=k(o,n,c,h))&&(h--,(s=n[l])&&(s.__u|=2)),s&&s.__v?(o.__u|=16,l==c-1?_--:l==c+1?_++:l!=c&&(l>c?_--:_++,v=1)):(~l||(i>m?_--:i<m&&_++),typeof o.type!=`function`&&(o.__u|=4))):y[a]=null;if(v){for(u=[],d=[],a=0;a<i;a++)if((o=y[a])&&16&o.__u){for(_=0,f=u.length;_<f;)u[p=_+f>>1]<o.__i?_=p+1:f=p;u[_]=o.__i,d[a]=_+1}for(_=u.length;a--;)d[a]&&(d[a]==_?_--:y[a].__u|=4)}if(h)for(a=0;a<m;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=ee(s)),ce(s,s));return r}function O(e,t,n,r){var i,a,o,s;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=O(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=ee(e))&&!t.parentNode&&(t=null),o=e.__e,s=t;s&&s.nodeType==8;)s=s.nextSibling;for(o!=s&&(!r&&n.moveBefore&&o.parentNode?n.moveBefore(o,t):n.insertBefore(o,t||null)),t=o;(t=t&&t.nextSibling)&&t.nodeType==8&&!t.data.startsWith(`$s`););return t}function k(e,t,n,r){var i,a=e.key,o=e.type,s=t[n],c=s&&!(2&s.__u);if(s===null&&a==null||c&&a==s.key&&o==s.type)return n;if(r>+!!c){for(i=n-1;i>=0;i--)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i;for(i=n+1;i<t.length;i++)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i}return-1}function te(e,t,n){n==null&&(n=``),t[0]==`-`?e.setProperty(t,n):e[t]=n}function A(e,t,n,r,i){var a,o;if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||te(e.style,t);if(n)for(t in n)r&&n[t]==r[t]||te(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)(e.__e||(e.__e={}))[t]=n,n&&r||(o=f[t]||(f[t]=j(t)),(e.__a||(e.__a={}))[t]=d,a=t!=(t=t.replace(u,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),n?e.addEventListener(t,o,a):e.removeEventListener(t,o,a));else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n==null?``:n;return}catch(e){}if(typeof n==`function`)return;n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n)}}function j(e){return function(t){var r=this.__e;if(r){if(r=r[e],t[l]==null)t[l]=d++;else if(t[l]<this.__a[e])return;return r(n.event?n.event(t):t)}}}function ne(e,t,r,i,a,o,s,c,l,u){var d,f,p,h,_,b,C,w,T,D,O,k,te,A,j,ne,ae,se,ue=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(l=32&r.__u,d=r.__c.__z)&&(t.__u|=l,f=o=[],d.nodeType==8?c=re(d,o):o.push(d),c=o[0]||c),(d=n.__b)&&d(t);n:if(typeof ue==`function`){p=s.length;try{if(w=t.props,T=(d=ue.prototype)&&d.render,D=(d=ue.contextType)&&i[d.__c],O=d?D?D.props.value:d.__:i,(h=r.__c)?(t.__c=h,2&h.__g&&(h.__g|=1)):(T?t.__c=h=new ue(w,O):(t.__c=h=new S(w,O),h.constructor=ue,h.render=le),D&&D.sub(h),h.state||(h.state={}),h.__n=i,h.__g|=8,h.__h=[],h.__k=[]),T&&(h.__s||(h.__s=h.state),ue.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=v({},h.__s)),v(h.__s,ue.getDerivedStateFromProps(w,h.__s)))),_=h.props,b=h.state,h.__v=t,r.__c){if(w!==_&&T&&!ue.getDerivedStateFromProps&&h.componentWillReceiveProps&&h.componentWillReceiveProps(w,O),t.__v==r.__v&&!(8&h.__g)||!(4&h.__g)&&h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(w,h.__s,O)){t.__v!=r.__v&&(h.props=w,h.state=h.__s,h.__g&=-9),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(e){e&&(e.__=t)}),m.push.apply(h.__h,h.__k),h.__k=[],h.__h.length&&s.push(h),c=ee(r);break n}h.componentWillUpdate&&h.componentWillUpdate(w,h.__s,O),T&&h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(_,b,C)})}else T&&!ue.getDerivedStateFromProps&&h.componentWillMount&&h.componentWillMount(),T&&h.componentDidMount&&h.__h.push(h.componentDidMount);if(h.context=O,h.props=w,h.__P=e,h.__g&=-5,k=n.__r,te=0,T)h.state=h.__s,h.__g&=-9,k&&k(t),d=h.render(h.props,h.state,h.context),m.push.apply(h.__h,h.__k),h.__k=[];else do h.__g&=-9,k&&k(t),d=h.render(h.props,h.state,h.context),h.state=h.__s;while(8&h.__g&&++te<25);h.state=h.__s,h.getChildContext&&(i=v({},i,h.getChildContext())),T&&r.__c&&h.getSnapshotBeforeUpdate&&(C=h.getSnapshotBeforeUpdate(_,b)),A=d&&d.type===x&&d.key==null?d.props.children:d,w.__P&&(d=c,a=(e=w.__P).namespaceURI,l=o=null,r.props&&r.props.__P!=e&&(r.__k.some(function(e){e&&ce(e,e)}),r.__k=null),c=r.__k?ee(r,0):null),c=E(e,g(A)?A:[A],t,r,i,a,o,s,c,l,u),w.__P&&(t.__e=null,c=d),t.__u&=-161,f&&f.some(y),h.__h.length&&s.push(h),1&h.__g&&(h.__g&=-4)}catch(e){if(s.length=p,t.__v=null,l||o){if(e.then){if(j=0,t.__u|=128|l,o){for(~(ae=o.indexOf(c||void 0))||(ae=o.length);(se=o[ae-1])&&se.nodeType==8;)ae--;for(;ae<o.length;ae++)if(se=o[ae]){if(o[ae]=null,se.nodeType==8){if(se.data.startsWith(`$s`))j++||(ne=se);else if(j&&se.data.startsWith(`/$s`)&&!--j)break}else if(!j)break}}if(!ne){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;ne=c}(d=re(ne=t.__c.__z||(t.__c.__z=ne)))?(t.__e=ne,c=d):t.__e=c,c=c&&c.nextSibling}else o&&o.some(y)}else t.__e=r.__e;t.__k||(t.__k=r.__k||[]),e.then||ie(t),n.__e(e,t,r)}}else c=t.__e=oe(r.__e,t,r,i,a,o,s,l,u,e);return(d=n.diffed)&&d(t),c}function re(e,t){if(e&&e.nodeType==8&&e.data.startsWith(`$s`))for(var n=1;e=e.nextSibling;){if(e.nodeType==8){if(e.data.startsWith(`$s`))n++;else if(e.data.startsWith(`/$s`)&&!--n)return e}t&&t.push(e)}}function ie(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(ie))}function ae(e,t,r){for(var i=0;i<r.length;)se(r[i++],r[i++],r[i++]);n.__c&&n.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){n.__e(e,t.__v)}})}function oe(e,t,r,i,a,o,s,c,l,u){var d,f,m,v,b,x,S,C,w,T=r.props||p,D=t.props,O=t.type;if(O==`svg`?a=`http://www.w3.org/2000/svg`:O==`math`?a=`http://www.w3.org/1998/Math/MathML`:a||(a=`http://www.w3.org/1999/xhtml`),o){for(d=0;d<o.length;d++)if((b=o[d])&&(O?b.localName==O:b.nodeType==3)){e=b,o[d]=null;break}}if(!e){if(C=u.ownerDocument||document,!O)return C.createTextNode(D);e=C.createElementNS(a,O,D.is&&D),c&&(n.__m&&n.__m(t,o),c=!1),o=null}if(O){if(u=O==`template`?e.content:e,o=O==`textarea`&&D.defaultValue!=null?null:o&&_.call(u.childNodes),!c&&o)for(T={},d=0;d<e.attributes.length;d++)T[(b=e.attributes[d]).name]=b.value;for(d in T)b=T[d],d==`dangerouslySetInnerHTML`?m=b:d==`children`||d in D||d==`value`&&`defaultValue`in D||d==`checked`&&`defaultChecked`in D||A(e,d,null,b,a);for(d in w=1&r.__u,D)b=D[d],d==`children`?v=b:d==`dangerouslySetInnerHTML`?f=b:d==`value`?x=b:d==`checked`?S=b:c&&typeof b!=`function`||!(T[d]!==b||w&&b!=null)||A(e,d,b,T[d],a);f?(c||m&&(f.__html==m.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[]):(m&&(e.textContent=``),(O==`foreignObject`||a==`http://www.w3.org/1998/Math/MathML`&&h.test(O))&&(a=`http://www.w3.org/1999/xhtml`),E(u,g(v)?v:[v],t,r,i,a,o,s,o?o[0]:r.__k&&ee(r,0),c,l),o&&o.some(y)),c&&O!=`textarea`||(d=`value`,O==`progress`&&x==null?e.removeAttribute(d):x==null||x===e[d]&&(O!=`progress`||x)||A(e,d,x,T[d],a),d=`checked`,S!=null&&S!=e[d]&&A(e,d,S,T[d],a))}else T===D||c&&e.data==D||(e.data=D);return e}function se(e,t,r,i){try{typeof e==`function`?t?t.__x=e(t)||1:i&&(i=i.__c||i.__e)&&(t=i.__x)&&(i.__x=null,typeof t==`function`?t():e(null)):e.current=t}catch(e){n.__e(e,r)}}function ce(e,t,r){var i,a,o,s;if(n.unmount&&n.unmount(e),!(i=e.ref)||i.current&&i.current!=e.__e||se(i,null,t,e),i=e.__c){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){n.__e(e,t)}i.__P=i.__n=null}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&ce(i[s],t,typeof e.type!=`function`||r&&!e.props.__P);!r&&(i=e.__c)&&(i=i.__z)&&(a=re(i,o=[]))&&(i==e.__e&&o.some(y),y(a),y(i)),(i=e.__e)&&(r||y(i),i.__e&&(i.__e=null)),e.__e=e.__c=e.__=null}function le(e,t,n){return this.constructor(e,n)}function ue(e,t){var r,i,a,o;n.__&&n.__(e,t),t.nodeType==9&&(t=t.documentElement),i=(r=e&&32&e.__u)?null:t.__k,t.__k=b(x,{children:[e]}),a=[],o=[],ne(t,t.__k,i||p,p,t.namespaceURI,i?null:t.firstChild?_.call(t.childNodes):null,a,i?i.__e:t.firstChild,r,o),ae(a,t.__k,o),t.__k.props.children=null}n={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((o=(a=i.constructor)&&a.getDerivedStateFromError)&&i.setState(a.getDerivedStateFromError(e)),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=1),o&&8&i.__g)return void(i.__g|=2)}catch(t){e=t}}throw s=0,e}},r=0,i=function(e){return e!=null&&e.constructor===void 0},S.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=v({},this.state)),typeof e==`function`&&(e=e(v({},n),this.props)),e&&(v(n,e),this.__v&&(t&&this.__k.push(t),w(this)))},S.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),w(this))},S.prototype.render=x,a=[],s=0,c=function(e,t){return e.__v.__b-t.__v.__b},l=Symbol(),u=/(PointerCapture)$|Capture$/i,d=0,f={};var de=0;Array.isArray;function M(e,t,r,i,a,o){t||(t={});var s,c,l=t;if(`ref`in l&&typeof e!=`function`)for(c in l={},t)c==`ref`?s=t[c]:l[c]=t[c];var u={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--de,__i:-1,__u:0};return(a||o)&&(u.__source=a,u.__self=o),n.vnode&&n.vnode(u),u}var fe,pe,me,he,ge=Object.is,_e=0,ve=[],ye=[],be=n,xe=be.__b,Se=be.__r,Ce=be.diffed,we=be.__c,Te=be.unmount,Ee=be.__;function De(e,t){be.__h&&be.__h(pe,e,_e||t),_e=0;var n=pe.__H||(pe.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function N(e){return _e=1,Oe(Le,e)}function Oe(e,t,n){var r=De(fe++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Le(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);ge(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=pe,!pe.__f)){pe.__f=!0;var i=pe.shouldComponentUpdate;pe.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,ge(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function P(e,t){var n=De(fe++,3);!be.__s&&Ie(n.__H,t)&&(n.__P=!0,n.__=e,n.u=t,pe.__H.__h.push(n))}function F(e){return _e=5,ke(function(){return{current:e}},[])}function ke(e,t){var n=De(fe++,7);return Ie(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function Ae(){var e;do{for(;e=ye.shift();)try{Pe(e)}catch(t){be.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=ve.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Pe),t.__h.some(Fe),t.__h=[]}catch(n){t.__h=[],be.__e(n,e.__v)}}}while(ye.length)}be.__b=function(e){pe=null,xe&&xe(e)},be.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ee&&Ee(e,t)},be.__r=function(e){Se&&Se(e),fe=0;var t=(pe=e.__c).__H;t&&(me==pe?pe.__h=[]:(t.__h.some(Pe),t.__h.some(Fe),fe=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),me=pe},be.diffed=function(e){Ce&&Ce(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&Ne(ve.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),me=pe=null},be.__c=function(e,t){t.some(function(e){try{e.__h.some(Pe),e.__h=e.__h.filter(function(e){return!e.__||Fe(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],be.__e(n,e.__v)}}),we&&we(e,t)},be.unmount=function(e){Te&&Te(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n=n&&n.__c}r.__P=n,Ne(ye.push(r))}else Pe(r)}catch(e){t=e}}),r.__H=void 0,t&&be.__e(t,r.__v))};var je=typeof requestAnimationFrame==`function`;function Me(e){var t,n=function(){clearTimeout(r),je&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);je&&(t=requestAnimationFrame(n))}function Ne(e){e!=1&&he==be.requestAnimationFrame||((he=be.requestAnimationFrame)||Me)(Ae)}function Pe(e){var t=pe,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),pe=t}function Fe(e){var t=pe;e.__c=e.__(),pe=t}function Ie(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!ge(t,e[n])})}function Le(e,t){return typeof t==`function`?t(e):t}var Re=Symbol.for(`preact-signals`);function ze(){if(Ge>1)Ge--;else{var e,t=!1;for((function(){var e=Ye;for(Ye=void 0;e!==void 0;){var t=e.S;if(t.v===e.v)for(var n=t.t;n!==void 0;n=n.x)n.i===e.i&&(n.i=t.i);e=e.o}})();We!==void 0;){var n=We;for(We=void 0,Ke++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&$e(n))try{n.c()}catch(n){t||(e=n,t=!0)}n=r}}if(Ke=0,Ge--,t)throw e}}function Be(e){if(Ge>0)return e();Je=++qe,Ge++;try{return e()}finally{ze()}}var Ve,He=void 0;function Ue(e){var t=He,n=Ve;He=void 0,Ve=void 0;try{return e()}finally{He=t,Ve=n}}var We=void 0,Ge=0,Ke=0,qe=0,Je=0,Ye=void 0,Xe=0;function Ze(e){if(He!==void 0){var t=e.n;if(t===void 0||t.t!==He)return t={i:0,S:e,p:He.s,n:void 0,t:He,e:void 0,x:void 0,r:t},He.s!==void 0&&(He.s.n=t),He.s=t,e.n=t,32&He.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=He.s,t.n=void 0,He.s.n=t,He.s=t),t}}function Qe(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=t==null?void 0:t.watched,this.Z=t==null?void 0:t.unwatched,this.name=t==null?void 0:t.name}Qe.prototype.brand=Re,Qe.prototype.h=function(){return!0},Qe.prototype.S=function(e){var t=this,n=this.t;n!==e&&e.e===void 0&&(e.x=n,this.t=e,n===void 0?Ue(function(){var e;(e=t.W)==null||e.call(t)}):n.e=e)},Qe.prototype.U=function(e){var t=this;if(this.t!==void 0){var n=e.e,r=e.x;n!==void 0&&(n.x=r,e.e=void 0),r!==void 0&&(r.e=n,e.x=void 0),e===this.t&&(this.t=r,r===void 0&&Ue(function(){var e;(e=t.Z)==null||e.call(t)}))}},Qe.prototype.subscribe=function(e){var t=this;return ct(function(){var n=t.value;Ue(function(){return e(n)})},{name:`sub`})},Qe.prototype.valueOf=function(){return this.value},Qe.prototype.toString=function(){return this.value+``},Qe.prototype.toJSON=function(){return this.value},Qe.prototype.peek=function(){var e=this;return Ue(function(){return e.value})},Object.defineProperty(Qe.prototype,"value",{get:function(){var e=Ze(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(Ke>100)throw Error(`Cycle detected`);(function(e){Ge!==0&&Ke===0&&e.l!==Je&&(e.l=Je,Ye={S:e,v:e.v,i:e.i,o:Ye})})(this),this.v=e,this.i++,Xe++,Ge++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{ze()}}}});function I(e,t){return new Qe(e,t)}function $e(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function et(e){for(var t=e.s;t!==void 0;t=t.n){var n=t.S.n;if(n!==void 0&&(t.r=n),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function tt(e){for(var t=e.s,n=void 0;t!==void 0;){var r=t.p;t.i===-1?(t.S.U(t),r!==void 0&&(r.n=t.n),t.n!==void 0&&(t.n.p=r)):n=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=r}e.s=n}function nt(e,t){Qe.call(this,void 0,t),this.x=e,this.s=void 0,this.g=Xe-1,this.f=4}nt.prototype=new Qe,nt.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Xe))return!0;if(this.g=Xe,this.f|=1,this.i>0&&!$e(this))return this.f&=-2,!0;var e=He;try{et(this),He=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return He=e,tt(this),this.f&=-2,!0},nt.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}Qe.prototype.S.call(this,e)},nt.prototype.U=function(e){if(this.t!==void 0&&(Qe.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}},nt.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}},Object.defineProperty(nt.prototype,"value",{get:function(){if(1&this.f)throw Error(`Cycle detected`);var e=Ze(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function rt(e,t){return new nt(e,t)}function it(e){var t=e.m;if(e.m=void 0,typeof t==`function`){Ge++;var n=He;He=void 0;try{t()}catch(t){throw e.f&=-2,e.f|=8,at(e),t}finally{He=n,ze()}}}function at(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,it(e)}function ot(e){if(He!==this)throw Error(`Out-of-order effect`);tt(this),He=e,this.f&=-2,8&this.f&&at(this),ze()}function st(e,t){this.x=e,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=t==null?void 0:t.name,Ve&&Ve.push(this)}st.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t==`function`&&(this.m=t)}finally{e()}},st.prototype.S=function(){if(1&this.f)throw Error(`Cycle detected`);this.f|=1,this.f&=-9,it(this),et(this),Ge++;var e=He;return He=this,ot.bind(this,e)},st.prototype.N=function(){2&this.f||(this.f|=2,this.u=We,We=this)},st.prototype.d=function(){this.f|=8,1&this.f||at(this)},st.prototype.dispose=function(){this.d()};function ct(e,t){var n=new st(e,t);try{n.c()}catch(e){throw n.d(),e}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var lt,ut,dt,ft=typeof window<`u`&&!!window.__PREACT_SIGNALS_DEVTOOLS__,pt=[];ct(function(){lt=this.N})();function mt(e,t){n[e]=t.bind(null,n[e]||function(){})}function ht(e){if(dt){var t=dt;dt=void 0,t()}dt=e&&e.S()}function gt(e){var t=this,n=e.data,r=vt(n);r.name=`ReactiveDom`,r.value=n;var a=ke(function(){for(var e=t,n=t.__v;n=n.__;)if(n.__c){n.__c.__$f|=4;break}var a=rt(function(){var e=r.value.value;return e===0?0:!0===e?``:e||``}),o=rt(function(){return!Array.isArray(a.value)&&!i(a.value)}),s=ct(function(){if(this.N=St,o.value){var t=a.value;e.__v&&e.__v.__e&&e.__v.__e.nodeType===3&&(e.__v.__e.data=t)}}),c=t.__$u.d;return t.__$u.d=function(){s(),c.call(this)},[o,a]},[]),o=a[0],s=a[1];return o.value?s.peek():s.value}gt.displayName=`ReactiveTextNode`,Object.defineProperties(Qe.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:gt},props:{configurable:!0,get:function(){var e=this;return{data:{get value(){return e.value}}}}},__b:{configurable:!0,value:1}}),mt(`__b`,function(e,t){if(ht(),ut=void 0,typeof t.type==`string`){var n,r=t.props;for(var i in r)if(i!==`children`){var a=r[i];a instanceof Qe&&(n||(t.__np=n={}),n[i]=a,r[i]=a.peek())}}e(t)}),mt(`__r`,function(e,t){if(e(t),t.type!==x){ht();var n,r=t.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=function(e,t){var n;return ct(function(){n=this},{name:t}),n.c=e,n}(function(e){return function(){var t;ft&&((t=this.y)==null||t.call(this)),e.__$f|=1,e.setState({})}}(r),typeof t.type==`function`?t.type.displayName||t.type.name:``))),ut=r,ht(n)}}),mt(`__e`,function(e,t,n,r){ht(),ut=void 0,e(t,n,r)}),mt(`diffed`,function(e,t){ht(),ut=void 0;var n;if(typeof t.type==`string`&&(n=t.__e)){var r=t.__np,i=t.props,a=n.U;if(a)for(var o in a){var s=a[o];s===void 0||r&&o in r||(s.d(),a[o]=void 0)}if(r)for(var c in a||(a={},n.U=a),r){var l=a[c],u=r[c];l===void 0?(l=_t(n,c,u,i),a[c]=l):l.o(u,i)}}e(t)});function _t(e,t,n,r){var i=t in e&&e.ownerSVGElement===void 0,a=I(n);return{o:function(e,t){a.value=e,r=t},d:ct(function(){this.N=St;var n=a.value.value;r[t]!==n&&(r[t]=n,i?e[t]=n:n!=null&&(!1!==n||t[4]===`-`)?e.setAttribute(t,n):e.removeAttribute(t))})}}mt(`unmount`,function(e,t){if(typeof t.type==`string`){var n=t.__e;if(n){var r=n.U;if(r)for(var i in n.U=void 0,r){var a=r[i];a&&a.d()}}var o=t.__np;if(o){var s=t.props;for(var c in o)s[c]=o[c]}t.__np=void 0}else{var l=t.__c;if(l){l.__$f|=8;var u=l.__$u;u&&(l.__$u=void 0,u.d())}}e(t)}),mt(`__h`,function(e,t,n,r){r<3&&(t.__$f|=2),e(t,n,r)}),S.prototype.shouldComponentUpdate=function(e,t){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in t)return!0;if(this.__f||typeof this.u==`boolean`&&!0===this.u){var a=2&this.__$f;if(!(r||a||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var o in e)if(o!==`__source`&&e[o]!==this.props[o])return!0;for(var s in this.props)if(!(s in e))return!0;return!1};function vt(e,t){return ke(function(){return I(e,t)},[])}function yt(e,t){var n=F(e);return n.current=e,ut.__$f|=4,ke(function(){return rt(function(){return n.current()},t)},[])}var bt=function(e){queueMicrotask(function(){queueMicrotask(e)})};function xt(){Be(function(){for(var e;e=pt.shift();)lt.call(e)})}function St(){pt.push(this)===1&&(n.requestAnimationFrame||bt)(xt)}var Ct={37:`left`,38:`up`,39:`right`,40:`down`,13:`ok`,10009:`back`,27:`back`,8:`back`,403:`red`,404:`green`,405:`yellow`,406:`blue`,112:`red`,113:`green`,114:`yellow`,115:`blue`,427:`chUp`,428:`chDown`,33:`chUp`,34:`chDown`,10252:`playPause`,415:`play`,19:`pause`,413:`stop`,412:`rew`,417:`ff`,457:`info`,458:`guide`,10190:`last`,10073:`channelList`,10135:`menu`,93:`menu`,77:`menu`};function wt(e){return e.keyCode>=48&&e.keyCode<=57?`digit${e.keyCode-48}`:e.keyCode>=96&&e.keyCode<=105?`digit${e.keyCode-96}`:Ct[e.keyCode]}var Tt=`ColorF0Red.ColorF1Green.ColorF2Yellow.ColorF3Blue.ChannelUp.ChannelDown.PreviousChannel.ChannelList.Info.Guide.Tools.MediaPlayPause.MediaPlay.MediaPause.MediaStop.MediaRewind.MediaFastForward.0.1.2.3.4.5.6.7.8.9`.split(`.`),Et=typeof tizen<`u`;function Dt(){if(!Et)return;let e=new Set(tizen.tvinputdevice.getSupportedKeys().map(e=>e.name)),t=Tt.filter(t=>e.has(t));try{tizen.tvinputdevice.registerKeyBatch(t)}catch(e){t.forEach(e=>{try{tizen.tvinputdevice.registerKey(e)}catch(e){}})}}function Ot(){Et?tizen.application.getCurrentApplication().exit():window.close()}var kt=new Map,At=new Map,jt=`.content, .page, .page-flow`,Mt=e=>e.getAttribute(`data-focus-group`)||e,Nt=!1;function Pt(e){return e.getClientRects().length>0}function Ft(){let e=document.querySelectorAll(`[data-focus-scope]`);return e.length?e[e.length-1]:document}function It(e=Ft()){return Array.prototype.filter.call(e.querySelectorAll(`[data-focus]`),Pt)}function Lt(e){return e?e.closest(`[data-focus-group]`):null}function Rt(e){if(!e)return!1;e.tabIndex<0&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=-1),e.focus();let t=e.closest(jt);t&&At.set(Mt(t),e);let n=Lt(e);if(n&&(kt.set(n.dataset.focusGroup,e),kt.size>200&&kt.forEach((e,t)=>{e.isConnected||kt.delete(t)})),e.closest(`[data-focus-noscroll]`))return!0;let r=e;return r.scrollIntoViewIfNeeded?r.scrollIntoViewIfNeeded(!1):e.scrollIntoView({block:`nearest`,inline:`nearest`}),zt(e),!0}function zt(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){if(t.scrollHeight<=t.clientHeight+1||getComputedStyle(t).overflowY===`visible`)continue;let n=parseFloat(getComputedStyle(document.documentElement).fontSize)*1.6,r=e.getBoundingClientRect(),i=t.getBoundingClientRect();r.top-n<i.top?t.scrollTop-=i.top-(r.top-n):r.bottom+n>i.bottom&&(t.scrollTop+=r.bottom+n-i.bottom);return}}function Bt(e){let t=e.querySelector(`[data-focus-default]`);if(t&&Pt(t))return t;let n=e instanceof HTMLElement&&e.dataset.focusGroup,r=n?kt.get(n):void 0;if(r&&r.isConnected&&Pt(r))return r;let i=e.querySelector(`[data-focus-initial]`);return i&&Pt(i)?i:It(e)[0]}function L(e){return e?Rt(Bt(e)):!1}function Vt(){let e=Array.prototype.filter.call(document.querySelectorAll(jt),Pt)[0];if(!e)return!1;let t=At.get(Mt(e));return Rt(t&&t.isConnected&&Pt(t)&&e.contains(t)?t:Bt(e))}function Ht(e,t,n){let r=n===`left`||n===`right`,i=r?e.left+e.width/2:e.top+e.height/2,a=r?t.left+t.width/2:t.top+t.height/2;if(n===`right`||n===`down`?a<=i+1:a>=i-1)return null;let o=Math.max(0,n===`right`?t.left-e.right:n===`left`?e.left-t.right:n===`down`?t.top-e.bottom:e.top-t.bottom),[s,c,l,u]=r?[e.top,e.bottom,t.top,t.bottom]:[e.left,e.right,t.left,t.right],d=Math.max(0,l-c,s-u);return o===0&&d>0?null:[o,d+Math.abs((s+c)/2-(l+u)/2)*.05,d]}function Ut(e){var t,n;let r=document.activeElement,i=It();if(!r||!r.hasAttribute(`data-focus`)||i.indexOf(r)<0)return Rt(Bt(Ft())||i[0]);let a=Wt(r,e);if(a)return Rt(a);if(e===`down`&&r.closest(`.topbar`)&&Vt())return!0;let o=r.getBoundingClientRect(),s=[];for(let t of i){if(t===r)continue;let n=Ht(o,t.getBoundingClientRect(),e);n&&s.push([t,n[0],n[1],n[2]])}if(e===`left`||e===`right`){let e=s.filter(e=>e[3]===0);e.length&&(s=e)}else{let t=r.closest(jt);if(t){let e=s.filter(e=>e[3]===0&&t.contains(e[0]));e.length&&(s=e)}else if(e===`up`&&r.closest(`.topbar`))return!1}let c=1/0;for(let e of s)e[1]<c&&(c=e[1]);let l=parseFloat(getComputedStyle(document.documentElement).fontSize),u=Math.min((e===`up`||e===`down`?o.height:o.width)/2,3*l),d,f=1/0;for(let[e,t,n]of s)t<=c+u&&n<f&&(f=n,d=e);if(!d)return!1;let p=d.classList.contains(`shelf-all`)?d.closest(`.shelf`):null,m=p&&!p.contains(r)?p.querySelector(`.shelf-row`):null;m&&(d=(t=Bt(m))==null?d:t);let h=Lt(d);return h&&h!==Lt(r)&&!h.contains(r)&&(d=(n=Bt(h))==null?d:n),Rt(d)}function Wt(e,t){let n=e.closest(`.shelf`),r=n&&n.querySelector(`.shelf-all`);if(n&&r&&Pt(r)){if(t===`up`&&e!==r&&e.closest(`.shelf-row`))return r;if(t===`down`&&e===r)return Bt(n.querySelector(`.shelf-row`))}}var Gt=[];function Kt(e){let t=F(e);t.current=e,P(()=>{let e=(e,n)=>t.current(e,n);return Gt.push(e),()=>{let t=Gt.indexOf(e);t>=0&&Gt.splice(t,1)}},[])}var qt=600,Jt,Yt=!1;function Xt(e){return!!e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`)}var Zt=65376,Qt=65385;function $t(e,t){let n=wt(e),r=()=>{e.preventDefault();let n=t.closest(`[data-focus]`);t.blur(),Rt(n)};if(e.keyCode===Zt||e.keyCode===Qt||n===`ok`||n===`back`&&e.keyCode!==8)return r(),!0;let i=t.selectionStart===0&&t.selectionEnd===0,a=t.selectionStart===t.value.length;return(n===`up`||n===`down`||n===`left`&&i||n===`right`&&a)&&(r(),Ut(n)),!0}function en(e){document.addEventListener(`keydown`,t=>{let n=document.activeElement;if(Xt(n)&&$t(t,n))return;let r=wt(t);if(!r)return;if(r===`ok`){if(t.preventDefault(),t.repeat||Jt!==void 0||Yt)return;Jt=window.setTimeout(()=>{var e;Jt=void 0,Yt=!0,(e=document.activeElement)==null||e.dispatchEvent(new CustomEvent(`longpress`,{bubbles:!0}))},qt);return}if(t.preventDefault(),t.repeat){if(Nt)return;Nt=!0,requestAnimationFrame(()=>{Nt=!1})}let i=!1;for(let e=Gt.length-1;e>=0;e--){let n=Gt[e](r,t);if(n==="default"){i=!0;break}if(n)return}r===`left`||r===`right`||r===`up`||r===`down`?Ut(r):i||e(r,t)}),document.addEventListener(`keyup`,e=>{var t;if(!(wt(e)!==`ok`||Xt(document.activeElement))){if(e.preventDefault(),Yt)Yt=!1;else if(Jt!==void 0){clearTimeout(Jt),Jt=void 0;for(let t=Gt.length-1;t>=0;t--){let n=Gt[t](`ok`,e);if(n==="default")break;if(n)return}(t=document.activeElement)==null||t.click()}}})}var tn={app_name:`UtopyaTV`,loading:`Yükleniyor…`,ok:`Tamam`,cancel:`İptal`,retry:`Tekrar dene`,save:`Kaydet`,delete:`Sil`,back:`Geri`,pin_wrong:`PIN hatalı`,pin_enter:`PIN girin`,pin_new:`Yeni PIN belirleyin`,nav_home:`Ana Sayfa`,nav_live:`Canlı TV`,nav_guide:`Rehber`,nav_movies:`Filmler`,nav_series:`Diziler`,nav_search:`Ara`,nav_recordings:`Kayıtlar`,nav_settings:`Ayarlar`,empty_no_provider:`Henüz bir kaynak eklenmedi.`,add_provider:`Kaynak ekle`,empty_list:`Burada gösterilecek bir şey yok.`,error_network:`Sunucuya bağlanılamadı. İnternet bağlantınızı ve adresi kontrol edin.`,error_timeout:`Sunucu zamanında yanıt vermedi. Lütfen tekrar deneyin.`,error_auth:`Kullanıcı adı veya parola hatalı.`,error_expired:`Aboneliğinizin süresi dolmuş.`,error_not_found:`Adres bulunamadı (404). Adresi kontrol edin.`,error_server:`Sunucu hatası. Daha sonra tekrar deneyin.`,error_parse:`Kaynak okunamadı; geçerli bir M3U/Xtream kaynağı olmayabilir.`,error_empty:`Kaynakta hiç kanal veya içerik bulunamadı.`,error_storage:`Yetersiz depolama alanı.`,error_unknown:`Beklenmeyen bir hata oluştu.`,onb_welcome:`UtopyaTV'ye hoş geldiniz`,onb_choose:`Başlamak için bir kaynak türü seçin. Uygulama içerik sağlamaz; kendi aboneliğinizin bilgilerini girin.`,onb_m3u_url:`M3U adresi`,onb_m3u_url_desc:`İnternetteki bir M3U/M3U8 listesi`,onb_m3u_file:`Yerel M3U dosyası`,onb_m3u_file_desc:`Cihazdaki bir dosyayı seçin`,onb_xtream:`Xtream Codes`,onb_xtream_desc:`Sunucu, kullanıcı adı ve parola`,onb_phone:`Telefondan gir`,onb_phone_desc:`QR kodu okutun, bilgileri telefonda yazın`,onb_name:`Kaynak adı`,onb_name_ph:`Örn. Evdeki liste`,onb_url:`Liste adresi`,onb_server:`Sunucu adresi`,onb_username:`Kullanıcı adı`,onb_password:`Parola`,onb_epg:`EPG (XMLTV) adresi — isteğe bağlı`,onb_user_agent:`User-Agent — isteğe bağlı`,onb_live_format:`Canlı yayın biçimi`,onb_connect:`Bağlan`,onb_validating:`Bilgiler doğrulanıyor…`,onb_file_none:`Bu cihazda dosya seçici yok. Dosyayı "Telefondan gir" seçeneğiyle yükleyebilirsiniz.`,onb_file_chosen:`Seçilen dosya: %1$s`,onb_pick_file:`Dosya seç`,onb_phone_title:`Telefonunuzla QR kodu okutun`,onb_phone_hint:`Telefon ve TV aynı Wi-Fi ağında olmalı. Adres: %1$s`,onb_phone_no_network:`Ağ bağlantısı bulunamadı. TV'nin Wi-Fi veya kabloyla bağlı olduğundan emin olun.`,onb_required:`Lütfen gerekli alanları doldurun.`,sync_title:`Kaynak hazırlanıyor`,sync_connecting:`Bağlanılıyor…`,sync_categories:`Kategoriler alınıyor…`,sync_live:`Canlı kanallar: %1$d`,sync_movies:`Filmler: %1$d`,sync_series:`Diziler: %1$d`,sync_epg:`Yayın akışı: %1$d program`,sync_done:`Hazır!`,sync_failed:`Senkronizasyon başarısız`,sync_continue:`Devam et`,sync_background:`Arka planda devam et`,cat_all:`Tüm Kanallar`,cat_favorites:`Favoriler`,cat_recent:`Son İzlenenler`,cat_locked_hint:`Kilitli`,no_program:`Program bilgisi yok`,now_label:`Şimdi`,next_label:`Sonra`,menu_add_favorite:`Favorilere ekle`,menu_remove_favorite:`Favorilerden çıkar`,menu_hide:`Gizle`,menu_unhide:`Göster`,menu_lock:`PIN ile kilitle`,menu_unlock:`Kilidi kaldır`,menu_pin_top:`En üste sabitle`,menu_unpin:`Sabitlemeyi kaldır`,menu_add_to_group:`Gruba ekle`,menu_remove_from_group:`Gruptan çıkar`,menu_new_group:`Yeni grup oluştur`,menu_delete_group:`Grubu sil`,menu_epg_mapping:`EPG eşleştirmesini düzelt`,menu_play_external:`Harici oynatıcıda aç`,group_name:`Grup adı`,group_default_name:`Grubum %1$d`,pin_needed_first:`Önce Ayarlar → Ebeveyn kontrolü bölümünden bir PIN belirleyin.`,locked_content:`Bu içerik kilitli`,channel_number:`Kanal %1$s`,channel_not_found:`Kanal bulunamadı`,player_error_network:`Yayına bağlanılamadı. Bağlantınızı kontrol edin.`,player_error_auth:`Yayına erişim reddedildi (abonelik veya bağlantı sınırı).`,player_error_not_found:`Yayın bulunamadı; kaynak kapalı olabilir.`,player_error_format:`Yayın biçimi desteklenmiyor.`,player_error_decoder:`Bu cihaz yayını çözemedi. Ayarlardan yazılım çözücüyü deneyin.`,player_error_unknown:`Yayın oynatılamadı.`,player_error_timeout:`Sunucu zamanında yanıt vermedi.`,player_error_server:`Yayın sunucusunda bir sorun var; biraz sonra tekrar deneyin.`,player_error_limit:`Hesabınızın aynı anda izleme sınırı doldu. Başka cihazdaki yayını kapatıp tekrar deneyin.`,player_error_detail:`Ayrıntı: %1$s`,player_fallback_reason:`Kanal açılamadı (%1$s); önceki kanala dönüldü.`,player_retrying:`Yeniden deneniyor… (%1$d)`,player_audio:`Ses dili`,player_subtitles:`Altyazı`,player_aspect:`Görüntü oranı`,player_quality:`Video kalitesi`,player_auto:`Otomatik`,player_off:`Kapalı`,aspect_fit:`Sığdır`,aspect_fill:`Doldur`,aspect_zoom:`Yakınlaştır`,player_options:`Seçenekler`,player_no_tracks:`Seçenek yok`,player_live:`CANLI`,player_paused:`Duraklatıldı`,player_go_live:`Canlıya dön`,player_favorite_added:`Favorilere eklendi`,player_favorite_removed:`Favorilerden çıkarıldı`,player_hint_live:`OK: kontroller · ◀ kanallar · ▶ yayın akışı · ▲▼ kanal · MENU seçenekler`,live_empty_category:`Bu kategoride kanal yok.`,live_syncing:`Kanallar yükleniyor, lütfen bekleyin…`,minutes_left:`+%1$d dk`,track_n:`Parça %1$d`,epg_mapping_title:`EPG eşleştirmesi`,epg_mapping_auto:`Otomatik eşleştirme`,epg_mapping_filter:`EPG kanalı ara`,epg_mapping_none:`Bu kaynak için EPG kanalı yok. Önce yayın akışını güncelleyin.`,epg_mapping_current:`Şu anki eşleşme: %1$s`,guide_now:`Şimdi`,guide_prev_day:`Önceki gün`,guide_next_day:`Sonraki gün`,guide_category:`Kategori: %1$s`,guide_watch:`İzle`,guide_watch_archive:`Arşivden izle`,guide_remind:`Hatırlat`,guide_remind_off:`Hatırlatmayı kaldır`,guide_record:`Kaydet`,guide_close:`Kapat`,guide_reminder_set:`Hatırlatıcı kuruldu`,guide_no_data:`Bu kanal için yayın akışı yok`,guide_search:`Ara`,guide_hint:`◀ ▶ zaman · OK ayrıntı · CH± sayfa`,guide_empty:`Yayın akışı henüz yok. Kaynağın EPG adresini kontrol edin veya Ayarlar'dan güncelleyin.`,nav_menu_title:`UtopyaTV`,guide_reminder_removed:`Hatırlatıcı kaldırıldı`,player_guide:`Yayın akışı`,shelf_continue:`İzlemeye devam et`,shelf_recent:`Son eklenenler`,shelf_favorites:`Favorilerim`,shelf_see_all:`Tümünü gör`,vod_play:`Oynat`,vod_resume:`Devam et (%1$s)`,vod_restart:`Baştan başla`,vod_mark_watched:`İzlendi olarak işaretle`,vod_mark_unwatched:`İzlenmedi olarak işaretle`,vod_add_favorite:`Favorilere ekle`,vod_remove_favorite:`Favorilerden çıkar`,vod_cast:`Oyuncular: %1$s`,vod_director:`Yönetmen: %1$s`,vod_minutes:`%1$d dk`,vod_season:`%1$d. Sezon`,vod_episodes_loading:`Bölümler yükleniyor…`,vod_no_episodes:`Bölüm bulunamadı.`,vod_episode_title:`%1$d. Bölüm · %2$s`,vod_empty:`Bu kaynakta film/dizi yok.`,vod_next_episode:`Sonraki bölüm %1$d sn içinde`,vod_play_now:`Şimdi oynat`,vod_episodes:`Bölümler`,vod_hint:`OK oynat/duraklat · ▲ kontroller · ◀▶ sar · ▼ bölümler · MENU seçenekler`,vod_watched:`İzlendi`,locked_unlock:`Kilitli · açmak için OK`,shelf_platforms:`Platformlar`,shelf_genres:`Türler`,browse_all:`Tümü`,sort_label:`Sırala: %1$s`,genre_label:`Tür: %1$s`,sort_added:`Yeni eklenen`,sort_name:`A–Z`,sort_rating:`Puan`,sort_year:`Yıl`,browse_count:`%1$d içerik`,search_hint:`Kanal, film, dizi veya program ara`,search_voice:`Sesli ara`,search_recent:`Son aramalar`,search_clear:`Geçmişi temizle`,search_no_results:`"%1$s" için sonuç bulunamadı.`,search_channels:`Kanallar`,search_movies:`Filmler`,search_series:`Diziler`,search_programs:`Programlar`,search_searching:`Aranıyor…`,home_favorite_channels:`Favori kanallar`,home_recent_channels:`Son izlenen kanallar`,home_new_movies:`Yeni filmler`,home_new_series:`Yeni diziler`,home_source:`Kaynak: %1$s`,home_switch_source:`Kaynak değiştir`,home_empty:`Başlamak için Canlı TV, Filmler veya Diziler bölümüne gidin. Favoriler ve izlemeye devam et burada görünecek.`,home_greeting_morning:`Günaydın`,home_greeting_day:`İyi günler`,home_greeting_evening:`İyi akşamlar`,player_archive:`ARŞİV`,player_archive_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK duraklat · MENU → Canlıya dön`,archive_unavailable:`Bu program için arşiv adresi oluşturulamadı.`,guide_restart:`Baştan başlat`,player_timeshift:`ZAMAN KAYDIRMA`,timeshift_starting:`Zaman kaydırma başlatılıyor…`,timeshift_failed:`Zaman kaydırma başlatılamadı; canlı yayına dönüldü.`,timeshift_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK oynat/duraklat · MENU → Canlıya dön`,timeshift_behind:`Canlının %1$s gerisinde`,rec_tab_recordings:`Kayıtlar`,rec_tab_scheduled:`Zamanlanmış`,rec_tab_downloads:`İndirmeler`,rec_storage:`Depolama: %1$s · %2$s boş`,rec_storage_internal:`Dahili`,rec_storage_usb:`USB/SD %1$d`,rec_storage_pick:`Depolama konumu`,rec_empty:`Henüz kayıt yok. Rehberde bir programı seçip "Kaydet"e basın ya da izlerken MENU → Şimdi kaydet.`,rec_scheduled_empty:`Zamanlanmış kayıt yok.`,dl_empty:`İndirme yok. Film veya bölüm sayfasından "İndir"e basın.`,rec_status_scheduled:`Zamanlandı`,rec_status_recording:`Kaydediliyor`,rec_status_completed:`Tamamlandı`,rec_status_failed:`Başarısız`,rec_status_cancelled:`İptal edildi`,rec_cancel:`Kaydı durdur / iptal et`,rec_delete:`Kaydı sil`,rec_play:`Oynat`,rec_scheduled_ok:`Kayıt zamanlandı: %1$s`,rec_conflict:`Bu saatte başka bir kayıt var: %1$s. Yine de kaydedilsin mi? (Hesabınız tek bağlantıya izin veriyorsa biri başarısız olabilir.)`,rec_no_space:`Yetersiz depolama alanı (en az 500 MB gerekli).`,rec_invalid:`Bu program kaydedilemez (bitmiş).`,rec_now:`Şimdi kaydet`,rec_now_live:`Canlı kayıt`,rec_badge:`KAYIT`,dl_download:`İndir`,dl_downloading:`İndiriliyor %1$d%%`,dl_paused:`Duraklatıldı %1$d%%`,dl_done:`İndirildi · çevrimdışı oynatılabilir`,dl_failed:`İndirme başarısız · tekrar dene`,dl_pause:`Duraklat`,dl_resume:`Devam et`,dl_delete:`İndirmeyi sil`,dl_queued:`Sırada`,dl_started:`İndirme sıraya eklendi`,set_sources:`Kaynaklar`,set_player:`Oynatıcı`,set_appearance:`Görünüm ve dil`,set_epg:`Yayın akışı (EPG)`,set_parental:`Ebeveyn kontrolü`,set_hidden:`Gizlenenler`,set_storage:`Depolama`,set_backup:`Yedekle / Geri yükle`,set_update:`Güncelleme`,set_about:`Hakkında`,set_on:`Açık`,set_off:`Kapalı`,set_active:`Etkin kaynak`,set_make_active:`Etkin yap`,set_edit:`Düzenle`,set_resync:`Şimdi yenile`,set_delete_source:`Kaynağı sil`,set_delete_confirm:`"%1$s" ve tüm verileri silinsin mi?`,set_add_source:`Yeni kaynak ekle`,set_last_sync:`Son yenileme: %1$s`,set_never:`hiç`,set_account:`Hesap bilgisi`,set_account_status:`Durum: %1$s`,set_account_expiry:`Bitiş: %1$s`,set_account_unlimited:`süresiz`,set_account_connections:`Bağlantı: %1$s / %2$s`,set_account_trial:`Deneme hesabı`,set_account_loading:`Hesap bilgisi alınıyor…`,set_account_none:`Hesap bilgisi yalnızca Xtream kaynaklarında gösterilir.`,set_buffer:`Tampon süresi`,set_buffer_value:`%1$d sn`,set_decoder:`Çözücü modu`,set_decoder_hw:`Donanım (önerilen)`,set_decoder_sw:`Yazılım öncelikli (FFmpeg)`,set_preview:`Canlı TV'de önizleme oynat`,set_auto_next:`Sonraki bölümü otomatik oynat`,set_timeshift:`Duraklatınca zaman kaydırma`,set_fallback:`Kanal açılmazsa önceki kanala dön`,set_audio_lang:`Tercih edilen ses dili`,set_sub_lang:`Tercih edilen altyazı`,set_sub_size:`Altyazı boyutu`,set_lang_default:`Yayının varsayılanı`,set_aspect:`Varsayılan görüntü oranı`,set_start:`Açılış ekranı`,start_home:`Ana sayfa`,start_live:`Canlı TV`,start_guide:`Rehber`,start_movies:`Filmler`,start_series:`Diziler`,start_last:`Son izlenen kanal`,set_numbering:`Kanal numaralandırma`,numbering_global:`Tüm liste`,numbering_category:`Kategori içi`,set_language:`Uygulama dili`,lang_tr:`Türkçe`,lang_en:`English`,lang_system:`Cihaz dili`,set_epg_interval:`Otomatik yenileme aralığı`,set_epg_hours:`%1$d saat`,set_epg_offset:`EPG saat kaydırması`,set_epg_offset_value:`%1$+d dk`,set_epg_refresh:`Yayın akışını şimdi güncelle`,set_epg_urls:`Harici XMLTV adresleri kaynak düzenleme ekranından eklenir.`,set_pin_set:`PIN belirle`,set_pin_change:`PIN değiştir`,set_pin_remove:`PIN kaldır`,set_pin_saved:`PIN kaydedildi`,set_pin_removed:`PIN kaldırıldı`,set_pin_confirm:`PIN'i tekrar girin`,set_pin_mismatch:`PIN'ler eşleşmedi`,set_hide_locked:`Kilitli kategorileri tamamen gizle`,set_adult_lock:`Yetişkin kategorilerini otomatik kilitle`,set_parental_hint:`Kategori kilitlemek için Canlı TV'de kategoriye uzun basın.`,set_hidden_categories:`Gizli kategoriler`,set_hidden_channels:`Gizli kanallar`,set_hidden_none:`Gizlenmiş öğe yok.`,set_unhide:`Göster (gizlemeyi kaldır)`,set_backup_now:`Şimdi yedekle`,set_backup_done:`Yedek kaydedildi: %1$s`,set_backup_warning:`Yedek dosyası kaynak parolalarını içerir; güvenli saklayın.`,set_restore:`Geri yükle`,set_restore_none:`Kayıtlı yedek bulunamadı.`,set_restore_confirm:`Bu yedek geri yüklensin mi? Mevcut kaynaklar ve tercihler değiştirilecek.`,set_restore_done:`Yedek geri yüklendi; kaynaklar yenileniyor.`,set_restore_file:`Dosyadan seç`,set_update_check:`Güncellemeleri denetle`,set_update_none:`Uygulama güncel (%1$s).`,set_update_available:`Yeni sürüm: %1$s`,set_update_install:`İndir ve kur`,set_update_downloading:`İndiriliyor… %1$d%%`,set_update_failed:`Güncelleme denetlenemedi. Bağlantınızı kontrol edin.`,set_update_permission:`Kurulum için "Bilinmeyen uygulamaları yükle" izni gerekiyor.`,set_version:`Sürüm %1$s`,set_about_text:`UtopyaTV yalnızca bir oynatıcıdır; içerik sağlamaz. Kendi aboneliğinizin bilgilerini girerek kullanın.`,set_keys:`Kumanda kısayolları`,set_keys_text:`OK/◀: kanal listesi · ▶: yayın akışı · ▲▼/CH±: kanal · 0-9: kanal no · Kırmızı: favori · Yeşil: ses · Sarı: altyazı · Mavi: görüntü oranı · ⏯: duraklat (zaman kaydırma) · MENU/uzun OK: seçenekler`,player_fallback:`Kanal açılamadı; önceki kanala dönüldü.`,mv_title:`Çoklu ekran`,mv_add:`Ekle`,mv_add_channel:`Kanal ekle`,mv_add_movie:`Film ekle`,mv_layout:`Düzen`,mv_layout_2:`İkili (yan yana)`,mv_layout_4:`Dörtlü (ızgara)`,mv_replace:`Değiştir`,mv_remove:`Kaldır`,mv_fullscreen:`Tam ekranda izle`,mv_empty_slot:`+ OK ile içerik ekle`,mv_hint:`◀▲▼▶ pencere seç (ses odaktakinden gelir) · OK seçenekler · MENU düzen`,mv_warn_decoder:`Bu cihaz aynı anda en fazla %1$d video çözebilir; bazı pencereler oynatılamayabilir.`,mv_warn_connections:`Hesabınız aynı anda %1$d bağlantıya izin veriyor; fazla pencere açılamayabilir.`,mv_open:`Çoklu ekranda aç`,mv_pick_channel:`Kanal seç`,mv_pick_movie:`Film seç`,ext_none:`Harici oynatıcı bulunamadı. VLC veya MX Player'ı Play Store'dan kurabilirsiniz.`,ext_choose:`Oynatıcı seçin`,player_speed:`Oynatma hızı`,player_sleep:`Uyku zamanlayıcısı`,sleep_off:`Kapalı`,sleep_minutes:`%1$d dakika sonra`,sleep_triggered:`Uyku zamanlayıcısı oynatmayı durdurdu.`,sleep_set:`Uyku zamanlayıcısı: %1$d dk`,exit_title:`Çıkış`,exit_message:`UtopyaTV'den çıkmak istiyor musunuz?`,player_info:`Yayın bilgisi`,info_video:`Görüntü: %1$s`,info_audio:`Ses: %1$s`,info_none:`Bilgi yok`,info_buffer:`Tampon: %1$s`,vod_prev_ep:`Önceki bölüm`,vod_next_ep:`Sonraki bölüm`,shelf_similar:`Benzer içerikler`,start_first_fav:`İlk favori kanal`,numbering_hidden:`Gizli`,set_accent:`Tema rengi`,accent_blue:`Mavi`,accent_orange:`Turuncu`,accent_green:`Yeşil`,accent_purple:`Mor`,accent_red:`Kırmızı`,set_color_keys:`Renkli tuşlar`,key_red:`Kırmızı tuş`,key_green:`Yeşil tuş`,key_yellow:`Sarı tuş`,key_blue:`Mavi tuş`,act_favorite:`Favori ekle/çıkar`,act_audio:`Ses dili`,act_subtitles:`Altyazı`,act_aspect:`Görüntü oranı`,act_guide:`Yayın akışı`,act_channels:`Kanal listesi`,act_record:`Şimdi kaydet`,act_multiview:`Çoklu ekran`,act_info:`Bilgi bandı`,act_none:`Hiçbiri`,set_remember_tracks:`Seçtiğim ses/altyazı dilini hatırla`,menu_move_up:`Yukarı taşı`,menu_move_down:`Aşağı taşı`,set_test_connection:`Bağlantıyı test et`,set_connection_ok:`Bağlantı başarılı: kaynak çevrimiçi.`,rec_once:`Bir kez kaydet`,rec_daily:`Her gün kaydet`,rec_weekly:`Her hafta kaydet`,rec_repeat_daily:`Her gün`,rec_repeat_weekly:`Her hafta`,onb_stalker:`Stalker Portal`,onb_stalker_desc:`MAG portal adresi ve MAC`,onb_portal:`Portal adresi`,onb_mac:`MAC adresi`,tips_title:`Kumanda kısayolları`,tips_ok:`Anladım`,tip_ok:`OK: kanalı aç · Kanaldayken OK: kanal listesi`,tip_long:`OK'ye uzun bas: favori, gizle, kilitle, gruba ekle, çoklu ekran`,tip_numbers:`Rakam tuşları: kanal numarasına atla`,tip_updown:`Yayında ▲▼ veya CH+/CH−: kanal değiştir`,tip_right:`Yayında ►: yayın akışı · MENU: ses, altyazı, görüntü`,tip_colors:`Renkli tuşlar: favori / ses / altyazı / oran (Ayarlar'dan değişir)`,tip_back:`GERİ: menüye dön · Menüde GERİ: çıkış onayı`,onb_tagline:`Kendi IPTV aboneliğiniz için hızlı ve modern oynatıcı`,onb_feat_live:`Canlı TV ve yayın akışı (EPG), arşiv ve zaman kaydırma`,onb_feat_vod:`Film ve diziler; Netflix, HBO Max, Disney+ gibi platform grupları`,onb_feat_tools:`Kayıt, indirme ve aynı anda iki yayın (çoklu ekran)`,onb_no_content:`Uygulama içerik sağlamaz; kendi aboneliğinizin bilgilerini girersiniz.`,onb_how:`Nasıl bağlanmak istersiniz?`,onb_badge_common:`En yaygın`,onb_badge_easy:`Klavyesiz`,onb_form_qr_title:`Telefonla doldurun`,onb_form_qr_hint:`Uzun adresleri kumandayla yazmak yerine QR kodu okutun. Telefon ve TV aynı Wi-Fi ağında olmalı.`,onb_phone_step1:`Telefon kamerasıyla QR kodu okutun`,onb_phone_step2:`Açılan sayfada bilgilerinizi yazın`,onb_phone_step3:`Gönder'e basın, TV kendiliğinden bağlanır`,onb_hint_m3u:`Sağlayıcınızın verdiği M3U/M3U8 bağlantısını yazın. Birden çok listeyi birleştirmek için adresleri boşlukla ayırın.`,onb_hint_xtream:`Sağlayıcınızın verdiği sunucu adresi, kullanıcı adı ve parolayı yazın.`,onb_hint_stalker:`Portal adresini ve cihazınıza tanımlı MAC adresini yazın.`,onb_hint_file:`Cihazdaki bir .m3u dosyasını seçin.`,onb_optional:`İsteğe bağlı ayarlar`,live_categories:`Kategoriler`,live_channel_count:`%1$d kanal`,live_preview:`Kanal önizleme`,pc_channels:`Kanallar`,pc_picture:`Görüntü`,pc_favorite:`Favori`,pc_record:`Kaydet`,pc_more:`Diğer`,pc_info:`Bilgi`,pc_play:`Oynat`,pc_pause:`Duraklat`,pc_prev:`Önceki`,pc_next:`Sonraki`,pc_speed:`Hız`,mv_add_series:`Dizi ekle`,group_by:`Grupla: %1$s`,group_category:`Kategori`,group_country:`Ülke`,group_genre:`Tür`,group_platform:`Platform`,genre_adult:`Yetişkin`,genre_kids:`Çocuk`,genre_sports:`Spor`,genre_news:`Haber`,genre_docs:`Belgesel`,genre_music:`Müzik ve radyo`,genre_movies:`Film ve dizi`,genre_religion:`Dini`,genre_local:`Yerel`,genre_national:`Ulusal`,genre_uhd:`4K / UHD`,genre_other:`Diğer`,onb_jellyfin:`Jellyfin`,onb_jellyfin_desc:`Kendi medya sunucunuz`,onb_hint_jellyfin:`Jellyfin sunucu adresini (ör. http://192.168.1.10:8096), kullanıcı adınızı ve parolanızı yazın.`,sub_load:`Altyazı dosyası yükle (SRT)`,sub_offset:`Altyazı zamanlaması`,sub_loaded:`Altyazı yüklendi`,sub_failed:`Altyazı dosyası okunamadı`,sub_no_picker:`Bu cihazda dosya seçici yok`,set_sub_color:`Altyazı rengi`,set_sub_bg:`Altyazı arka planı`,color_white:`Beyaz`,color_yellow:`Sarı`,color_cyan:`Camgöbeği`,set_max_quality:`En yüksek video kalitesi`,quality_auto:`Otomatik`,vod_versions:`Sürümler (%1$d)`,vod_version_standard:`Standart`,set_theme:`Tema`,theme_navy:`Lacivert`,theme_amoled:`AMOLED siyah`,theme_graphite:`Grafit`,theme_forest:`Orman`,theme_wine:`Bordo`,set_home_shelves:`Ana sayfa rafları`,set_move_hint:`OK: aç/kapat · Uzun bas: yukarı taşı`,set_filter_words:`Kategori filtre kelimeleri`,set_filter_words_hint:`Kategori adlarından atılır, virgülle ayırın (ör. [RAW], FHD, VIP)`,set_none:`Yok`,set_rec_folder:`Kayıt klasörü`,set_rec_folder_default:`Uygulama deposu (yukarıdaki seçim)`,set_rec_folder_hint:`Biten kayıtlar seçilen klasöre (USB, ağ klasörü…) taşınır. Uzun bas: varsayılana dön.`,nav_extensions:`Eklentiler`,ext_add:`Eklenti ekle`,ext_url:`Eklenti adresi (manifest.json)`,ext_empty:`Henüz eklenti yok. Stremio uyumlu bir eklentinin manifest adresini ekleyin.`,ext_note:`Uygulama içerik sağlamaz; yalnızca kullanma hakkınız olan eklentileri ekleyin.`,ext_remove:`Eklentiyi kaldır`,ext_failed:`Eklenti eklenemedi: adres geçersiz ya da erişilemiyor.`,ext_find_sources:`Kaynakları bul`,ext_sources:`Kaynaklar`,ext_no_sources:`Oynatılabilir kaynak bulunamadı (torrent kaynakları desteklenmez).`,ext_installed:`Kurulu eklentiler`,ext_specials:`Özel bölümler`,sub_url_title:`Altyazı adresi (SRT)`,sub_url_hint:`Bu cihazda dosya seçici yok. Altyazının internet adresini girin.`,brand_short:`UtopyaTV`,os_account:`OpenSubtitles hesabı`,os_account_none:`Ayarlanmadı`,os_account_set:`Ayarlandı`,os_account_hint:`opensubtitles.com'dan ücretsiz API anahtarı alın. Kullanıcı adı/parola isteğe bağlıdır; girilirse günlük indirme hakkı artar.`,os_api_key:`API anahtarı`,os_username:`Kullanıcı adı (isteğe bağlı)`,os_password:`Parola (isteğe bağlı)`,set_auto_subs:`Altyazıyı otomatik bul (OpenSubtitles)`,set_auto_subs_hint:`Yayında seçili dilde altyazı yoksa doğru eşleşen altyazı getirilir`,sub_find:`Altyazı bul (OpenSubtitles)`,sub_searching:`Altyazı aranıyor…`,sub_found:`Altyazı yüklendi: %1$s`,sub_not_found:`Bu içerik için doğru eşleşen altyazı bulunamadı`,sub_no_key:`Ayarlar → Oynatıcı'dan OpenSubtitles API anahtarını girin`,sub_limit:`OpenSubtitles günlük indirme hakkı doldu`,home_hero:`Öne çıkan`,home_up_next:`Sıradaki bölüm`,home_tonight:`Bu akşam maçlar`,home_schedule:`Hatırlatıcılar ve kayıtlar`,home_top_movies:`En yüksek puanlı filmler`,home_top_series:`En yüksek puanlı diziler`,home_top_rated:`En yüksek puanlılar`,home_new_episodes:`Favori dizilerde yeni bölüm`,home_new_episode_badge:`YENİ BÖLÜM`,home_dismiss_new:`Yeni bölüm bildirimini kapat`,home_for_you:`Bugün ne izlesem?`,home_for_you_genres:`Bugün ne izlesem? · %1$s`,home_starting_soon:`Birazdan başlıyor`,home_reminder_badge:`HATIRLATICI`,home_open_channel:`Kanalı aç`,home_genres:`Türlere göz at`,home_edit:`Ana sayfayı düzenle`,home_edit_hint:`OK: taşı · ▲▼: sırayı değiştir · OK: bırak · ▶: aç/kapat`,home_edit_moving:`Taşınıyor`,home_edit_reset:`Varsayılana dön`,home_edit_hidden:`Kapalı raflar`,home_kind_movie:`FİLM`,home_kind_series:`DİZİ`,browse_movie_count:`%1$d film`,browse_series_count:`%1$d dizi`,password_show:`Parolayı göster`,password_hide:`Parolayı gizle`,home_details:`Detaylar`,home_live_now:`ŞİMDİ`,home_rec:`KAYIT`,menu_remove_continue:`İzlemeye devam et'ten kaldır`,menu_remove_up_next:`Sıradaki bölümden kaldır (izleme geçmişi silinir)`,menu_remove_recent:`Son izlenenlerden kaldır`,menu_open:`Aç`,os_phone_title:`Telefondan girin`,os_phone_hint:`QR kodu okutun, anahtarı telefonda yapıştırıp Gönder'e basın. Telefon ve TV aynı Wi-Fi ağında olmalı.`,tz_coming_soon:`Bu bölüm sonraki fazda gelecek.`,tz_feat_tools:`Altyazı arama, arşivden izleme ve ebeveyn kontrolü`,tz_m3u_file_desc:`TV'ye takılı USB bellekteki bir dosya`,tz_hint_file:`TV'ye takılı USB bellekteki bir .m3u dosyasını seçin.`,tz_usb_title:`USB bellekteki listeler`,tz_usb_empty:`Takılı USB bellekte .m3u dosyası bulunamadı. Belleği takıp yeniden deneyin.`,tz_reminder_title:`%1$s başlıyor`,tz_reminder_text:`%1$s kanalında`,tz_update_hint:`TizenBrew ile kurulduysa uygulamayı kapatıp yeniden açın. Paketle (.wgt) kurulduysa yeni paketi bilgisayardan yeniden kurun.`,tz_keys_text:`OK/◀: kanal listesi · ▶: yayın akışı · ▲▼/CH±: kanal · 0-9: kanal no · Kırmızı: favori · Yeşil: ses · Sarı: altyazı · Mavi: görüntü oranı · ⏯: duraklat · TOOLS/uzun OK: seçenekler`,tz_sub_offset_value:`%1$s sn`,tz_archive_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK duraklat · ■ ya da uzun OK → Canlıya dön`,tz_remind_daily:`Her gün hatırlat`,tz_remind_weekly:`Her hafta hatırlat`,tz_rec_note:`Tizen'de yayın kaydı yapılamaz. Zamanlanan programlar başlamadan önce hatırlatılır, oradan kanala geçebilirsiniz.`,tz_onb_help_title:`İpuçları`,tz_onb_help_keyboard:`Uzun adresleri telefondaki SmartThings uygulamasının klavyesiyle yazabilirsiniz (TV ile aynı Wi-Fi'da).`,tz_onb_help_server:`Sunucu adresini sağlayıcınız verir; genellikle http://alanadi:8080 biçimindedir. Sondaki / gerekmez.`,tz_onb_help_creds:`Kullanıcı adı ve parola büyük/küçük harfe duyarlıdır. Parolayı kontrol etmek için yanındaki göz düğmesini kullanın.`,tz_onb_help_m3u:`Birden çok listeyi birleştirmek için adresleri boşlukla ayırın.`,tz_onb_help_file:`Listeyi (.m3u) USB belleğe kopyalayıp TV'ye takın, sonra "Dosya seç"e basın.`,tz_onb_help_epg:`Yayın akışı adresi isteğe bağlıdır; boş bırakırsanız sağlayıcının kendi akışı kullanılır.`,tz_onb_help_privacy:`Bilgileriniz yalnızca bu cihazda saklanır.`},nn={app_name:`UtopyaTV`,loading:`Loading…`,ok:`OK`,cancel:`Cancel`,retry:`Retry`,save:`Save`,delete:`Delete`,back:`Back`,pin_wrong:`Wrong PIN`,pin_enter:`Enter PIN`,pin_new:`Set a new PIN`,nav_home:`Home`,nav_live:`Live TV`,nav_guide:`Guide`,nav_movies:`Movies`,nav_series:`Series`,nav_search:`Search`,nav_recordings:`Recordings`,nav_settings:`Settings`,empty_no_provider:`No source has been added yet.`,add_provider:`Add source`,empty_list:`Nothing to show here.`,error_network:`Could not reach the server. Check your internet connection and the address.`,error_timeout:`The server did not respond in time. Please try again.`,error_auth:`Wrong username or password.`,error_expired:`Your subscription has expired.`,error_not_found:`Address not found (404). Check the URL.`,error_server:`Server error. Try again later.`,error_parse:`Could not read the source; it may not be a valid M3U/Xtream source.`,error_empty:`No channels or content were found in the source.`,error_storage:`Not enough storage space.`,error_unknown:`An unexpected error occurred.`,onb_welcome:`Welcome to UtopyaTV`,onb_choose:`Choose a source type to get started. The app provides no content; enter your own subscription details.`,onb_m3u_url:`M3U URL`,onb_m3u_url_desc:`An M3U/M3U8 playlist on the internet`,onb_m3u_file:`Local M3U file`,onb_m3u_file_desc:`Pick a file on this device`,onb_xtream:`Xtream Codes`,onb_xtream_desc:`Server, username and password`,onb_phone:`Enter from phone`,onb_phone_desc:`Scan the QR code and type on your phone`,onb_name:`Source name`,onb_name_ph:`e.g. Home list`,onb_url:`Playlist URL`,onb_server:`Server URL`,onb_username:`Username`,onb_password:`Password`,onb_epg:`EPG (XMLTV) URL — optional`,onb_user_agent:`User-Agent — optional`,onb_live_format:`Live stream format`,onb_connect:`Connect`,onb_validating:`Validating details…`,onb_file_none:`No file picker on this device. You can upload the file with "Enter from phone".`,onb_file_chosen:`Selected file: %1$s`,onb_pick_file:`Choose file`,onb_phone_title:`Scan the QR code with your phone`,onb_phone_hint:`Phone and TV must be on the same Wi-Fi. Address: %1$s`,onb_phone_no_network:`No network found. Make sure the TV is connected via Wi-Fi or cable.`,onb_required:`Please fill in the required fields.`,sync_title:`Preparing source`,sync_connecting:`Connecting…`,sync_categories:`Fetching categories…`,sync_live:`Live channels: %1$d`,sync_movies:`Movies: %1$d`,sync_series:`Series: %1$d`,sync_epg:`Program guide: %1$d programs`,sync_done:`Ready!`,sync_failed:`Sync failed`,sync_continue:`Continue`,sync_background:`Continue in background`,cat_all:`All Channels`,cat_favorites:`Favorites`,cat_recent:`Recently Watched`,cat_locked_hint:`Locked`,no_program:`No program info`,now_label:`Now`,next_label:`Next`,menu_add_favorite:`Add to favorites`,menu_remove_favorite:`Remove from favorites`,menu_hide:`Hide`,menu_unhide:`Show`,menu_lock:`Lock with PIN`,menu_unlock:`Remove lock`,menu_pin_top:`Pin to top`,menu_unpin:`Unpin`,menu_add_to_group:`Add to group`,menu_remove_from_group:`Remove from group`,menu_new_group:`Create new group`,menu_delete_group:`Delete group`,menu_epg_mapping:`Fix EPG mapping`,menu_play_external:`Open in external player`,group_name:`Group name`,group_default_name:`My group %1$d`,pin_needed_first:`First set a PIN in Settings → Parental control.`,locked_content:`This content is locked`,channel_number:`Channel %1$s`,channel_not_found:`Channel not found`,player_error_network:`Could not connect to the stream. Check your connection.`,player_error_auth:`Access to the stream was denied (subscription or connection limit).`,player_error_not_found:`Stream not found; the source may be offline.`,player_error_format:`The stream format is not supported.`,player_error_decoder:`This device could not decode the stream. Try the software decoder in Settings.`,player_error_unknown:`The stream could not be played.`,player_error_timeout:`The server did not respond in time.`,player_error_server:`The stream server has a problem; try again shortly.`,player_error_limit:`Your account's simultaneous stream limit is reached. Stop playback on another device and retry.`,player_error_detail:`Detail: %1$s`,player_fallback_reason:`Channel failed to open (%1$s); switched back to the previous channel.`,player_retrying:`Retrying… (%1$d)`,player_audio:`Audio language`,player_subtitles:`Subtitles`,player_aspect:`Aspect ratio`,player_quality:`Video quality`,player_auto:`Auto`,player_off:`Off`,aspect_fit:`Fit`,aspect_fill:`Fill`,aspect_zoom:`Zoom`,player_options:`Options`,player_no_tracks:`No options`,player_live:`LIVE`,player_paused:`Paused`,player_go_live:`Back to live`,player_favorite_added:`Added to favorites`,player_favorite_removed:`Removed from favorites`,player_hint_live:`OK: controls · ◀ channels · ▶ guide · ▲▼ channel · MENU options`,live_empty_category:`No channels in this category.`,live_syncing:`Loading channels, please wait…`,minutes_left:`+%1$d min`,track_n:`Track %1$d`,epg_mapping_title:`EPG mapping`,epg_mapping_auto:`Automatic mapping`,epg_mapping_filter:`Search EPG channels`,epg_mapping_none:`No EPG channels for this source. Update the program guide first.`,epg_mapping_current:`Current mapping: %1$s`,guide_now:`Now`,guide_prev_day:`Previous day`,guide_next_day:`Next day`,guide_category:`Category: %1$s`,guide_watch:`Watch`,guide_watch_archive:`Watch from archive`,guide_remind:`Remind me`,guide_remind_off:`Cancel reminder`,guide_record:`Record`,guide_close:`Close`,guide_reminder_set:`Reminder set`,guide_no_data:`No guide data for this channel`,guide_search:`Search`,guide_hint:`◀ ▶ time · OK details · CH± page`,guide_empty:`No program guide yet. Check the source EPG URL or refresh it in Settings.`,nav_menu_title:`UtopyaTV`,guide_reminder_removed:`Reminder removed`,player_guide:`Program guide`,shelf_continue:`Continue watching`,shelf_recent:`Recently added`,shelf_favorites:`My favorites`,shelf_see_all:`See all`,vod_play:`Play`,vod_resume:`Resume (%1$s)`,vod_restart:`Start over`,vod_mark_watched:`Mark as watched`,vod_mark_unwatched:`Mark as unwatched`,vod_add_favorite:`Add to favorites`,vod_remove_favorite:`Remove from favorites`,vod_cast:`Cast: %1$s`,vod_director:`Director: %1$s`,vod_minutes:`%1$d min`,vod_season:`Season %1$d`,vod_episodes_loading:`Loading episodes…`,vod_no_episodes:`No episodes found.`,vod_episode_title:`Episode %1$d · %2$s`,vod_empty:`No movies/series in this source.`,vod_next_episode:`Next episode in %1$d s`,vod_play_now:`Play now`,vod_episodes:`Episodes`,vod_hint:`OK play/pause · ▲ controls · ◀▶ seek · ▼ episodes · MENU options`,vod_watched:`Watched`,locked_unlock:`Locked · press OK to unlock`,shelf_platforms:`Platforms`,shelf_genres:`Genres`,browse_all:`All`,sort_label:`Sort: %1$s`,genre_label:`Genre: %1$s`,sort_added:`Recently added`,sort_name:`A–Z`,sort_rating:`Rating`,sort_year:`Year`,browse_count:`%1$d titles`,search_hint:`Search channels, movies, series or programs`,search_voice:`Voice search`,search_recent:`Recent searches`,search_clear:`Clear history`,search_no_results:`No results for "%1$s".`,search_channels:`Channels`,search_movies:`Movies`,search_series:`Series`,search_programs:`Programs`,search_searching:`Searching…`,home_favorite_channels:`Favorite channels`,home_recent_channels:`Recently watched channels`,home_new_movies:`New movies`,home_new_series:`New series`,home_source:`Source: %1$s`,home_switch_source:`Switch source`,home_empty:`Go to Live TV, Movies or Series to get started. Favorites and continue watching will appear here.`,home_greeting_morning:`Good morning`,home_greeting_day:`Good afternoon`,home_greeting_evening:`Good evening`,player_archive:`ARCHIVE`,player_archive_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK pause · MENU → Back to live`,archive_unavailable:`Could not build an archive URL for this program.`,guide_restart:`Start over`,player_timeshift:`TIMESHIFT`,timeshift_starting:`Starting timeshift…`,timeshift_failed:`Timeshift could not start; back to live.`,timeshift_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK play/pause · MENU → Back to live`,timeshift_behind:`%1$s behind live`,rec_tab_recordings:`Recordings`,rec_tab_scheduled:`Scheduled`,rec_tab_downloads:`Downloads`,rec_storage:`Storage: %1$s · %2$s free`,rec_storage_internal:`Internal`,rec_storage_usb:`USB/SD %1$d`,rec_storage_pick:`Storage location`,rec_empty:`No recordings yet. Pick a program in the guide and press "Record", or use MENU → Record now while watching.`,rec_scheduled_empty:`No scheduled recordings.`,dl_empty:`No downloads. Press "Download" on a movie or episode page.`,rec_status_scheduled:`Scheduled`,rec_status_recording:`Recording`,rec_status_completed:`Completed`,rec_status_failed:`Failed`,rec_status_cancelled:`Cancelled`,rec_cancel:`Stop / cancel recording`,rec_delete:`Delete recording`,rec_play:`Play`,rec_scheduled_ok:`Recording scheduled: %1$s`,rec_conflict:`Another recording overlaps: %1$s. Record anyway? (If your account allows one connection, one may fail.)`,rec_no_space:`Not enough storage (at least 500 MB required).`,rec_invalid:`This program cannot be recorded (already ended).`,rec_now:`Record now`,rec_now_live:`Live recording`,rec_badge:`REC`,dl_download:`Download`,dl_downloading:`Downloading %1$d%%`,dl_paused:`Paused %1$d%%`,dl_done:`Downloaded · plays offline`,dl_failed:`Download failed · retry`,dl_pause:`Pause`,dl_resume:`Resume`,dl_delete:`Delete download`,dl_queued:`Queued`,dl_started:`Download queued`,set_sources:`Sources`,set_player:`Player`,set_appearance:`Appearance & language`,set_epg:`Program guide (EPG)`,set_parental:`Parental control`,set_hidden:`Hidden items`,set_storage:`Storage`,set_backup:`Backup / Restore`,set_update:`Update`,set_about:`About`,set_on:`On`,set_off:`Off`,set_active:`Active source`,set_make_active:`Make active`,set_edit:`Edit`,set_resync:`Refresh now`,set_delete_source:`Delete source`,set_delete_confirm:`Delete "%1$s" and all its data?`,set_add_source:`Add new source`,set_last_sync:`Last refresh: %1$s`,set_never:`never`,set_account:`Account info`,set_account_status:`Status: %1$s`,set_account_expiry:`Expires: %1$s`,set_account_unlimited:`unlimited`,set_account_connections:`Connections: %1$s / %2$s`,set_account_trial:`Trial account`,set_account_loading:`Fetching account info…`,set_account_none:`Account info is only available for Xtream sources.`,set_buffer:`Buffer length`,set_buffer_value:`%1$d s`,set_decoder:`Decoder mode`,set_decoder_hw:`Hardware (recommended)`,set_decoder_sw:`Prefer software (FFmpeg)`,set_preview:`Play preview in Live TV`,set_auto_next:`Autoplay next episode`,set_timeshift:`Timeshift on pause`,set_fallback:`Return to previous channel on failure`,set_audio_lang:`Preferred audio language`,set_sub_lang:`Preferred subtitles`,set_sub_size:`Subtitle size`,set_lang_default:`Stream default`,set_aspect:`Default aspect ratio`,set_start:`Startup screen`,start_home:`Home`,start_live:`Live TV`,start_guide:`Guide`,start_movies:`Movies`,start_series:`Series`,start_last:`Last watched channel`,set_numbering:`Channel numbering`,numbering_global:`Whole list`,numbering_category:`Within category`,set_language:`App language`,lang_tr:`Turkish`,lang_en:`English`,lang_system:`Device language`,set_epg_interval:`Auto refresh interval`,set_epg_hours:`%1$d hours`,set_epg_offset:`EPG time offset`,set_epg_offset_value:`%1$+d min`,set_epg_refresh:`Update program guide now`,set_epg_urls:`External XMLTV URLs are added in the source edit screen.`,set_pin_set:`Set PIN`,set_pin_change:`Change PIN`,set_pin_remove:`Remove PIN`,set_pin_saved:`PIN saved`,set_pin_removed:`PIN removed`,set_pin_confirm:`Re-enter PIN`,set_pin_mismatch:`PINs did not match`,set_hide_locked:`Hide locked categories entirely`,set_adult_lock:`Auto-lock adult categories`,set_parental_hint:`Long-press a category in Live TV to lock it.`,set_hidden_categories:`Hidden categories`,set_hidden_channels:`Hidden channels`,set_hidden_none:`No hidden items.`,set_unhide:`Show (unhide)`,set_backup_now:`Back up now`,set_backup_done:`Backup saved: %1$s`,set_backup_warning:`The backup file contains source passwords; keep it safe.`,set_restore:`Restore`,set_restore_none:`No saved backup found.`,set_restore_confirm:`Restore this backup? Current sources and preferences will be replaced.`,set_restore_done:`Backup restored; sources are refreshing.`,set_restore_file:`Choose file`,set_update_check:`Check for updates`,set_update_none:`App is up to date (%1$s).`,set_update_available:`New version: %1$s`,set_update_install:`Download & install`,set_update_downloading:`Downloading… %1$d%%`,set_update_failed:`Could not check for updates. Check your connection.`,set_update_permission:`Installing requires the "Install unknown apps" permission.`,set_version:`Version %1$s`,set_about_text:`UtopyaTV is a player only; it provides no content. Use it with your own subscription details.`,set_keys:`Remote shortcuts`,set_keys_text:`OK/◀: channel list · ▶: guide · ▲▼/CH±: channel · 0-9: channel no · Red: favorite · Green: audio · Yellow: subtitles · Blue: aspect · ⏯: pause (timeshift) · MENU/long OK: options`,player_fallback:`Channel failed; returned to the previous channel.`,mv_title:`Multi-view`,mv_add:`Add`,mv_add_channel:`Add channel`,mv_add_movie:`Add movie`,mv_layout:`Layout`,mv_layout_2:`Two (side by side)`,mv_layout_4:`Four (grid)`,mv_replace:`Replace`,mv_remove:`Remove`,mv_fullscreen:`Watch full screen`,mv_empty_slot:`+ Press OK to add content`,mv_hint:`◀▲▼▶ select window (audio follows focus) · OK options · MENU layout`,mv_warn_decoder:`This device can decode at most %1$d videos at once; some windows may not play.`,mv_warn_connections:`Your account allows %1$d simultaneous connections; extra windows may fail.`,mv_open:`Open in multi-view`,mv_pick_channel:`Pick a channel`,mv_pick_movie:`Pick a movie`,ext_none:`No external player found. You can install VLC or MX Player from the Play Store.`,ext_choose:`Choose a player`,player_speed:`Playback speed`,player_sleep:`Sleep timer`,sleep_off:`Off`,sleep_minutes:`After %1$d minutes`,sleep_triggered:`The sleep timer stopped playback.`,sleep_set:`Sleep timer: %1$d min`,exit_title:`Exit`,exit_message:`Do you want to exit UtopyaTV?`,player_info:`Stream info`,info_video:`Video: %1$s`,info_audio:`Audio: %1$s`,info_none:`No info`,info_buffer:`Buffer: %1$s`,vod_prev_ep:`Previous episode`,vod_next_ep:`Next episode`,shelf_similar:`More like this`,start_first_fav:`First favorite channel`,numbering_hidden:`Hidden`,set_accent:`Theme color`,accent_blue:`Blue`,accent_orange:`Orange`,accent_green:`Green`,accent_purple:`Purple`,accent_red:`Red`,set_color_keys:`Color keys`,key_red:`Red key`,key_green:`Green key`,key_yellow:`Yellow key`,key_blue:`Blue key`,act_favorite:`Toggle favorite`,act_audio:`Audio language`,act_subtitles:`Subtitles`,act_aspect:`Aspect ratio`,act_guide:`Program guide`,act_channels:`Channel list`,act_record:`Record now`,act_multiview:`Multi-view`,act_info:`Info banner`,act_none:`None`,set_remember_tracks:`Remember my audio/subtitle choice`,menu_move_up:`Move up`,menu_move_down:`Move down`,set_test_connection:`Test connection`,set_connection_ok:`Connection OK: the source is online.`,rec_once:`Record once`,rec_daily:`Record daily`,rec_weekly:`Record weekly`,rec_repeat_daily:`Daily`,rec_repeat_weekly:`Weekly`,onb_stalker:`Stalker Portal`,onb_stalker_desc:`MAG portal URL and MAC`,onb_portal:`Portal URL`,onb_mac:`MAC address`,tips_title:`Remote shortcuts`,tips_ok:`Got it`,tip_ok:`OK: open channel · OK while watching: channel list`,tip_long:`Long-press OK: favorite, hide, lock, add to group, multi-view`,tip_numbers:`Number keys: jump to channel number`,tip_updown:`While watching ▲▼ or CH+/CH−: change channel`,tip_right:`While watching ►: guide · MENU: audio, subtitles, picture`,tip_colors:`Color keys: favorite / audio / subtitles / aspect (change in Settings)`,tip_back:`BACK: return to menu · BACK in menu: confirm exit`,onb_tagline:`A fast, modern player for your own IPTV subscription`,onb_feat_live:`Live TV with program guide, catch-up and timeshift`,onb_feat_vod:`Movies and series grouped by Netflix, HBO Max, Disney+ and more`,onb_feat_tools:`Recording, downloads and two streams at once (multi-view)`,onb_no_content:`The app provides no content; you enter your own subscription details.`,onb_how:`How would you like to connect?`,onb_badge_common:`Most common`,onb_badge_easy:`No typing`,onb_form_qr_title:`Fill in from your phone`,onb_form_qr_hint:`Scan the QR code instead of typing long addresses with the remote. Phone and TV must be on the same Wi-Fi.`,onb_phone_step1:`Scan the QR code with your phone camera`,onb_phone_step2:`Enter your details on the page that opens`,onb_phone_step3:`Tap Send and the TV connects automatically`,onb_hint_m3u:`Enter the M3U/M3U8 link from your provider. To merge several lists, separate the addresses with spaces.`,onb_hint_xtream:`Enter the server address, username and password from your provider.`,onb_hint_stalker:`Enter the portal address and the MAC address registered for your device.`,onb_hint_file:`Choose an .m3u file on this device.`,onb_optional:`Optional settings`,live_categories:`Categories`,live_channel_count:`%1$d channels`,live_preview:`Channel preview`,pc_channels:`Channels`,pc_picture:`Picture`,pc_favorite:`Favorite`,pc_record:`Record`,pc_more:`More`,pc_info:`Info`,pc_play:`Play`,pc_pause:`Pause`,pc_prev:`Previous`,pc_next:`Next`,pc_speed:`Speed`,mv_add_series:`Add series`,group_by:`Group: %1$s`,group_category:`Category`,group_country:`Country`,group_genre:`Genre`,group_platform:`Platform`,genre_adult:`Adult`,genre_kids:`Kids`,genre_sports:`Sports`,genre_news:`News`,genre_docs:`Documentary`,genre_music:`Music and radio`,genre_movies:`Movies and series`,genre_religion:`Religious`,genre_local:`Local`,genre_national:`National`,genre_uhd:`4K / UHD`,genre_other:`Other`,onb_jellyfin:`Jellyfin`,onb_jellyfin_desc:`Your own media server`,onb_hint_jellyfin:`Enter your Jellyfin server address (e.g. http://192.168.1.10:8096), username and password.`,sub_load:`Load subtitle file (SRT)`,sub_offset:`Subtitle timing`,sub_loaded:`Subtitle loaded`,sub_failed:`Could not read subtitle file`,sub_no_picker:`No file picker on this device`,set_sub_color:`Subtitle color`,set_sub_bg:`Subtitle background`,color_white:`White`,color_yellow:`Yellow`,color_cyan:`Cyan`,set_max_quality:`Maximum video quality`,quality_auto:`Automatic`,vod_versions:`Versions (%1$d)`,vod_version_standard:`Standard`,set_theme:`Theme`,theme_navy:`Navy`,theme_amoled:`AMOLED black`,theme_graphite:`Graphite`,theme_forest:`Forest`,theme_wine:`Wine`,set_home_shelves:`Home shelves`,set_move_hint:`OK: show/hide · Long-press: move up`,set_filter_words:`Category filter words`,set_filter_words_hint:`Removed from category names, comma separated (e.g. [RAW], FHD, VIP)`,set_none:`None`,set_rec_folder:`Recording folder`,set_rec_folder_default:`App storage (selection above)`,set_rec_folder_hint:`Finished recordings are moved to the chosen folder (USB, network share…). Long-press: reset to default.`,nav_extensions:`Add-ons`,ext_add:`Add add-on`,ext_url:`Add-on address (manifest.json)`,ext_empty:`No add-ons yet. Add the manifest address of a Stremio-compatible add-on.`,ext_note:`The app provides no content; only add add-ons you are entitled to use.`,ext_remove:`Remove add-on`,ext_failed:`Could not add the add-on: invalid or unreachable address.`,ext_find_sources:`Find sources`,ext_sources:`Sources`,ext_no_sources:`No playable source found (torrent sources are not supported).`,ext_installed:`Installed add-ons`,ext_specials:`Specials`,sub_url_title:`Subtitle address (SRT)`,sub_url_hint:`This device has no file picker. Enter the subtitle's web address.`,brand_short:`UtopyaTV`,os_account:`OpenSubtitles account`,os_account_none:`Not set`,os_account_set:`Set`,os_account_hint:`Get a free API key from opensubtitles.com. Username/password are optional and raise the daily download limit.`,os_api_key:`API key`,os_username:`Username (optional)`,os_password:`Password (optional)`,set_auto_subs:`Find subtitles automatically (OpenSubtitles)`,set_auto_subs_hint:`If the stream has no subtitle in your language, a correctly matched one is fetched`,sub_find:`Find subtitles (OpenSubtitles)`,sub_searching:`Searching subtitles…`,sub_found:`Subtitle loaded: %1$s`,sub_not_found:`No correctly matching subtitle found for this title`,sub_no_key:`Enter your OpenSubtitles API key in Settings → Player`,sub_limit:`OpenSubtitles daily download limit reached`,home_hero:`Featured`,home_up_next:`Up next`,home_tonight:`Tonight's matches`,home_schedule:`Reminders and recordings`,home_top_movies:`Top rated movies`,home_top_series:`Top rated series`,home_top_rated:`Top rated`,home_new_episodes:`New episodes in your favorites`,home_new_episode_badge:`NEW EPISODE`,home_dismiss_new:`Dismiss new episode alert`,home_for_you:`What to watch today?`,home_for_you_genres:`What to watch today? · %1$s`,home_starting_soon:`Starting soon`,home_reminder_badge:`REMINDER`,home_open_channel:`Open channel`,home_genres:`Browse by genre`,home_edit:`Edit home`,home_edit_hint:`OK: move · ▲▼: reorder · OK: drop · ▶: show/hide`,home_edit_moving:`Moving`,home_edit_reset:`Reset to default`,home_edit_hidden:`Hidden shelves`,home_kind_movie:`MOVIE`,home_kind_series:`SERIES`,browse_movie_count:`%1$d movies`,browse_series_count:`%1$d series`,password_show:`Show password`,password_hide:`Hide password`,home_details:`Details`,home_live_now:`NOW`,home_rec:`REC`,menu_remove_continue:`Remove from Continue watching`,menu_remove_up_next:`Remove from Up next (clears watch history)`,menu_remove_recent:`Remove from recently watched`,menu_open:`Open`,os_phone_title:`Enter from your phone`,os_phone_hint:`Scan the QR code, paste the key on your phone and tap Send. Phone and TV must be on the same Wi-Fi.`,tz_coming_soon:`This section is coming in a later phase.`,tz_feat_tools:`Subtitle search, catch-up and parental control`,tz_m3u_file_desc:`A file on a USB drive plugged into the TV`,tz_hint_file:`Choose an .m3u file on the USB drive plugged into the TV.`,tz_usb_title:`Playlists on USB drive`,tz_usb_empty:`No .m3u file found on the USB drive. Plug in the drive and try again.`,tz_reminder_title:`%1$s is starting`,tz_reminder_text:`on %1$s`,tz_update_hint:`If installed with TizenBrew, close and reopen the app. If installed as a package (.wgt), reinstall the new package from your computer.`,tz_keys_text:`OK/◀: channel list · ▶: guide · ▲▼/CH±: channel · 0-9: channel no · Red: favourite · Green: audio · Yellow: subtitles · Blue: aspect ratio · ⏯: pause · TOOLS/long OK: options`,tz_sub_offset_value:`%1$s s`,tz_archive_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK pause · ■ or long OK → Back to live`,tz_remind_daily:`Remind every day`,tz_remind_weekly:`Remind every week`,tz_rec_note:`Recording is not possible on Tizen. Scheduled programs are reminded before they start, from where you can switch to the channel.`,tz_onb_help_title:`Tips`,tz_onb_help_keyboard:`You can type long addresses with the SmartThings app's keyboard on your phone (same Wi-Fi as the TV).`,tz_onb_help_server:`Your provider gives you the server address; it usually looks like http://domain:8080. No trailing / needed.`,tz_onb_help_creds:`Username and password are case-sensitive. Use the eye button next to the password to check it.`,tz_onb_help_m3u:`To merge several lists, separate the addresses with spaces.`,tz_onb_help_file:`Copy the list (.m3u) to a USB stick, plug it into the TV, then press "Choose file".`,tz_onb_help_epg:`The guide address is optional; if left empty, the provider's own guide is used.`,tz_onb_help_privacy:`Your details are stored only on this device.`},rn=`utopya.lang`,an={tr:tn,en:nn};function on(){try{return localStorage.getItem(rn)===`en`?`en`:`tr`}catch(e){return`tr`}}var sn=I(on());function cn(e){sn.value=e;try{localStorage.setItem(rn,e)}catch(e){}}function R(e,...t){var n,r;let i=(n=(r=an[sn.value][e])==null?tn[e]:r)==null?e:n,a=0;return t.length?i.replace(/%(?:(\d)\$)?(\+)?[sd]/g,(e,n,r)=>{let i=t[n?n-1:a++];return r&&typeof i==`number`&&i>=0?`+${i}`:String(i)}):i}var ln=(e,t)=>e.replace(/(image\.tmdb\.org\/t\/p\/)(original|w\d+)\//,(e,n,r)=>r!==`original`&&+r.slice(1)<=t?e:`${n}w${t}/`),un=null,dn=e=>{let t=e.getAttribute(`data-src`);t&&e.getAttribute(`src`)!==t&&(e.src=t)};function fn(){return un||(un=new IntersectionObserver(e=>{for(let t of e){let e=t.target;if(t.intersectionRatio>0){dn(e);let t=e.closest(`.shelf-row > *`),n=t&&t.nextElementSibling;n&&Array.prototype.forEach.call(n.querySelectorAll(`img[data-src]`),dn)}else e.getAttribute(`src`)&&!e.complete&&e.removeAttribute(`src`)}},{rootMargin:`20% 0px`}),un)}function pn(e){let t=F(null);return P(()=>{let e=t.current;e.getAttribute(`src`)&&e.removeAttribute(`src`);let n=fn();return n.observe(e),()=>n.unobserve(e)},[e.src]),M(`img`,{ref:t,"data-src":e.src,decoding:`async`,alt:e.alt||``,class:e.class,onLoad:e=>fn().unobserve(e.currentTarget),onError:e.onError})}var mn={search:`M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z`,play:`M8 5v14l11-7z`,pause:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`,check:`M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z`,star:`M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z`,starOutline:`M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z`,lock:`M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z`,pin:`M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z`,tune:`M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z`,list:`M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z`,guide:`M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z`,audio:`M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z`,subtitles:`M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z`,aspect:`M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z`,edit:`M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z`,more:`M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z`,error:`M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`,dns:`M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z`,link:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`,qr:`M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM17 17h2v2h-2zM19 19h2v2h-2zM15 19h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2z`,file:`M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z`,live:`M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3c-1.1 0-2 .89-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.11-.9-2-2-2zm0 14H3V8h18v12zM9 10v8l7-4z`,movie:`M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z`,grid:`M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z`,chevron:`M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`,add:`M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z`,visibility:`M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z`,visibilityOff:`M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z`,back:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`,folder:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`,settings:`M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.49.49 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.48.48 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96a.49.49 0 0 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6A3.6 3.6 0 1 1 12 8.4a3.6 3.6 0 0 1 0 7.2z`};function hn(e){let t=F(null),[n,r]=N(!1),i=M(`div`,{class:`field-box`,"data-focus":!0,"data-focus-default":e.initial||void 0,onClick:()=>t.current.focus(),children:M(`input`,{ref:t,tabIndex:-1,type:e.password&&!n?`password`:`text`,value:e.value,placeholder:e.placeholder,autocomplete:`off`,autocapitalize:`off`,spellcheck:!1,onInput:t=>e.onInput(t.currentTarget.value)})});return M(`div`,{class:`field ${e.class||``}`,children:[M(`span`,{class:`field-label`,children:e.label}),e.password?M(`div`,{class:`field-row`,children:[i,M(`button`,{class:`eye-btn`,"data-focus":!0,"aria-label":R(n?`password_hide`:`password_show`),onClick:()=>r(e=>!e),children:M(z,{name:n?`visibilityOff`:`visibility`})})]}):i]})}function z({name:e,class:t}){return M(`svg`,{class:t?`icon ${t}`:`icon`,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:M(`path`,{d:mn[e],fill:`currentColor`})})}function gn(e){let t=F(null),n=F(document.activeElement);return P(()=>(L(t.current),()=>{var e;return(e=n.current)==null?void 0:e.focus()}),[]),Kt(t=>t===`back`?(e.onDismiss(),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`dialog glass`,ref:t,role:`dialog`,children:[M(`h2`,{children:e.title}),M(`p`,{children:e.message}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn`,"data-focus":!0,"data-focus-default":!0,onClick:e.onConfirm,children:e.confirmLabel||R(`ok`)}),M(`button`,{class:`btn`,"data-focus":!0,onClick:e.onDismiss,children:R(`cancel`)})]})]})})}var _n=I(null),vn;function B(e){_n.value=e,clearTimeout(vn),vn=window.setTimeout(()=>_n.value=null,2e3)}function yn(){return _n.value?M(`div`,{class:`toast`,children:_n.value}):null}function bn(e){let t=F(null),n=F(document.activeElement);P(()=>(L(t.current),()=>n.current&&n.current.isConnected&&n.current.focus()),[]),Kt(t=>t===`back`?(e.onClose(),!0):`default`);let r=e.items.some(e=>e.checked);return M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`menu-dialog`,ref:t,role:`dialog`,children:[M(`h2`,{children:e.title}),M(`div`,{class:`menu-list`,children:e.items.map((t,n)=>M(`button`,{class:`menu-item${t.checked?` checked`:``}`,"data-focus":!0,"data-focus-default":(r?t.checked:n===0)||void 0,onClick:()=>{e.onClose(),t.onSelect()},children:[t.label,t.checked&&M(z,{name:`check`})]},n))})]})})}function xn(e){let[t,n]=N(``),r=F(void 0),i=F(e);return i.current=e,P(()=>()=>clearTimeout(r.current),[]),{digits:t,push:e=>{let a=(t+e).slice(0,4);clearTimeout(r.current);let o=()=>{n(``);let e=parseInt(a,10);e>0&&i.current(e)};a.length===4?o():(n(a),r.current=window.setTimeout(o,1500))}}}function Sn({digits:e}){return e?M(`div`,{class:`number-box`,children:e}):null}function Cn(e){let[t,n]=N(``),[r,i]=N(!1),a=F(null),o=F(document.activeElement);P(()=>(L(a.current),()=>o.current&&o.current.isConnected&&o.current.focus()),[]);let s=r=>{let a=(t+r).slice(0,4);a.length<4?(n(a),i(!1)):(n(``),e.check(a)?e.onDone(a):i(!0))};return Kt((r,i)=>r===`back`&&i.keyCode!==8?(e.onClose(),!0):r.startsWith(`digit`)?(s(r.slice(5)),!0):i.keyCode===8||i.keyCode===46?(n(t.slice(0,-1)),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`pin-dialog`,ref:a,role:`dialog`,children:[M(`h2`,{children:e.title}),M(`p`,{class:`pin-dots`,children:[0,1,2,3].map(e=>e<t.length?`●`:`○`).join(` `)}),M(`p`,{class:`pin-error`,children:r?R(`pin_wrong`):`\xA0`}),M(`div`,{class:`pin-pad`,children:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`⌫`,`0`].map(e=>M(`button`,{class:`btn outline pin-key`,"data-focus":!0,"data-focus-default":e===`1`||void 0,onClick:()=>e===`⌫`?n(t.slice(0,-1)):s(e),children:e},e))})]})})}function wn(e){let[t,n]=N(e.initial),r=F(null);return P(()=>{L(r.current)},[]),Kt(t=>t===`back`?(e.onClose(),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`menu-dialog`,ref:r,role:`dialog`,children:[M(`h2`,{children:e.title}),M(hn,{label:e.label,value:t,onInput:n,placeholder:e.placeholder,password:e.password,initial:!0}),M(`button`,{class:`btn primary`,"data-focus":!0,onClick:()=>{e.onClose(),e.onSave(t)},children:R(`save`)})]})})}function Tn({text:e,onClose:t}){let n=F(null);return P(()=>{L(n.current)},[]),Kt(e=>e===`back`?(t(),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`dialog glass`,ref:n,role:`dialog`,children:[M(`p`,{children:e}),M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:t,children:R(`ok`)})]})})}function En({title:e}){return M(`section`,{class:`placeholder`,children:[M(`h1`,{children:e}),M(`p`,{class:`muted`,children:R(`tz_coming_soon`)})]})}var Dn=Uint8Array,On=Uint16Array,kn=Int32Array,An=new Dn([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),jn=new Dn([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Mn=new Dn([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Nn=function(e,t){for(var n=new On(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new kn(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},Pn=Nn(An,2),Fn=Pn.b,In=Pn.r;Fn[28]=258,In[258]=28;var Ln=Nn(jn,0),Rn=Ln.b;Ln.r;for(var zn=new On(32768),Bn=0;Bn<32768;++Bn){var Vn=(Bn&43690)>>1|(Bn&21845)<<1;Vn=(Vn&52428)>>2|(Vn&13107)<<2,Vn=(Vn&61680)>>4|(Vn&3855)<<4,zn[Bn]=((Vn&65280)>>8|(Vn&255)<<8)>>1}for(var Hn=(function(e,t,n){for(var r=e.length,i=0,a=new On(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new On(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new On(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[zn[d]>>c]=l}else for(s=new On(r),i=0;i<r;++i)e[i]&&(s[i]=zn[o[e[i]-1]++]>>15-e[i]);return s}),Un=new Dn(288),Bn=0;Bn<144;++Bn)Un[Bn]=8;for(var Bn=144;Bn<256;++Bn)Un[Bn]=9;for(var Bn=256;Bn<280;++Bn)Un[Bn]=7;for(var Bn=280;Bn<288;++Bn)Un[Bn]=8;for(var Wn=new Dn(32),Bn=0;Bn<32;++Bn)Wn[Bn]=5;var Gn=Hn(Un,9,1),Kn=Hn(Wn,5,1),qn=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Jn=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},Yn=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Xn=function(e){return(e+7)/8|0},Zn=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Dn(e.subarray(t,n))},Qn=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],$n=function(e,t,n){var r=Error(t||Qn[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,$n),!n)throw r;return r},er=function(e,t,n,r){var i=e.length,a=r?r.length:0;if(!i||t.f&&!t.l)return n||new Dn(0);var o=!n,s=o||t.i!=2,c=t.i;o&&(n=new Dn(i*3));var l=function(e){var t=n.length;if(e>t){var r=new Dn(Math.max(t*2,e));r.set(n),n=r}},u=t.f||0,d=t.p||0,f=t.b||0,p=t.l,m=t.d,h=t.m,g=t.n,_=i*8;do{if(!p){u=Jn(e,d,1);var v=Jn(e,d+1,3);if(d+=3,!v){var y=Xn(d)+4,b=e[y-4]|e[y-3]<<8,x=y+b;if(x>i){c&&$n(0);break}s&&l(f+b),n.set(e.subarray(y,x),f),t.b=f+=b,t.p=d=x*8,t.f=u;continue}if(v==1)p=Gn,m=Kn,h=9,g=5;else if(v==2){var S=Jn(e,d,31)+257,ee=Jn(e,d+10,15)+4,C=S+Jn(e,d+5,31)+1;d+=14;for(var w=new Dn(C),T=new Dn(19),E=0;E<ee;++E)T[Mn[E]]=Jn(e,d+E*3,7);d+=ee*3;for(var D=qn(T),O=(1<<D)-1,k=Hn(T,D,1),E=0;E<C;){var te=k[Jn(e,d,O)];d+=te&15;var y=te>>4;if(y<16)w[E++]=y;else{var A=0,j=0;for(y==16?(j=3+Jn(e,d,3),d+=2,A=w[E-1]):y==17?(j=3+Jn(e,d,7),d+=3):y==18&&(j=11+Jn(e,d,127),d+=7);j--;)w[E++]=A}}var ne=w.subarray(0,S),re=w.subarray(S);h=qn(ne),g=qn(re),p=Hn(ne,h,1),m=Hn(re,g,1)}else $n(1);if(d>_){c&&$n(0);break}}s&&l(f+131072);for(var ie=(1<<h)-1,ae=(1<<g)-1,oe=d;;oe=d){var A=p[Yn(e,d)&ie],se=A>>4;if(d+=A&15,d>_){c&&$n(0);break}if(A||$n(2),se<256)n[f++]=se;else if(se==256){oe=d,p=null;break}else{var ce=se-254;if(se>264){var E=se-257,le=An[E];ce=Jn(e,d,(1<<le)-1)+Fn[E],d+=le}var ue=m[Yn(e,d)&ae],de=ue>>4;ue||$n(3),d+=ue&15;var re=Rn[de];if(de>3){var le=jn[de];re+=Yn(e,d)&(1<<le)-1,d+=le}if(d>_){c&&$n(0);break}s&&l(f+131072);var M=f+ce;if(f<re){var fe=a-re,pe=Math.min(re,M);for(fe+f<0&&$n(3);f<pe;++f)n[f]=r[fe+f]}for(;f<M;++f)n[f]=n[f-re]}}t.l=p,t.p=oe,t.b=f,t.f=u,p&&(u=1,t.m=h,t.d=m,t.n=g)}while(!u);return f!=n.length&&o?Zn(n,0,f):n.subarray(0,f)},tr=new Dn(0),nr=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&$n(6,`invalid gzip data`);var t=e[3],n=10;t&4&&(n+=(e[10]|e[11]<<8)+2);for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(t&2)},rr=function(){function e(e,t){typeof e==`function`&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new Dn(32768),this.p=new Dn(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||$n(5),this.d&&$n(4),!this.p.length)this.p=e;else if(e.length){var t=new Dn(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=er(this.p,this.s,this.o);this.ondata(Zn(n,t,this.s.b),this.d),this.o=Zn(n,this.s.b-32768),this.s.b=this.o.length,this.p=Zn(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),ir=function(){function e(e,t){this.v=1,this.r=0,rr.call(this,e,t)}return e.prototype.push=function(e,t){if(rr.prototype.e.call(this,e),this.r+=e.length,this.v){var n=this.p.subarray(this.v-1),r=n.length>3?nr(n):4;if(r>n.length){if(!t)return}else this.v>1&&this.onmember&&this.onmember(this.r-n.length);this.p=n.subarray(r),this.v=0}rr.prototype.c.call(this,0),this.s.f&&!this.s.l?(this.v=Xn(this.s.p)+9,this.s={i:0},this.o=new Dn(0),this.push(new Dn(0),t)):t&&rr.prototype.c.call(this,t)},e}(),ar=typeof TextDecoder<`u`&&new TextDecoder;try{ar.decode(tr,{stream:!0})}catch(e){}function or(e){"@babel/helpers - typeof";return or=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},or(e)}function sr(e,t){if(or(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(or(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function cr(e){var t=sr(e,`string`);return or(t)==`symbol`?t:t+``}function lr(e,t,n){return(t=cr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ur=class extends Error{constructor(e,t){super(t||e),lr(this,`error`,void 0),this.error=e}},dr=e=>`error_${e.toLowerCase()}`;function fr(e){return e instanceof ur?e.error:e&&e.name===`QuotaExceededError`?`STORAGE`:`UNKNOWN`}var pr=e=>e,mr=e=>e.trim().replace(/[.,]+$/,``);function hr(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(new ur(`TIMEOUT`)),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}async function gr(e,t=3e4){let n;try{n=await hr(fetch(pr(e),{credentials:`omit`}),t)}catch(e){throw e instanceof ur?e:new ur(`NETWORK`,String(e))}if(n.ok)return n;throw n.status===401||n.status===403?new ur(`AUTH`):n.status===404?new ur(`NOT_FOUND`):n.status>=500?new ur(`SERVER`,String(n.status)):new ur(`NETWORK`,String(n.status))}async function _r(e,t,n=6e4){let r=new TextDecoder(`utf-8`),i=e.body.getReader(),a,o=[],s=(e,t)=>{let n=r.decode(e,{stream:!t});n&&o.push(n)};try{for(;;){let{done:e,value:r}=await hr(i.read(),n);a===void 0&&r&&r.length&&(a=r[0]===31&&r[1]===139?new ir((e,t)=>s(e,t)):null),e?a?a.push(new Uint8Array,!0):s(new Uint8Array,!0):a?a.push(r):s(r,!1);let c=o;o=[];for(let e of c)if(await t(e)===!1){i.cancel();return}if(e)return}}catch(e){throw i.cancel(),e instanceof ur?e:new ur(`NETWORK`,String(e))}}function vr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?vr(Object(n),!0).forEach(function(t){lr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var yr=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,br=Object.keys,xr=Array.isArray;function Sr(e,t){return typeof t!=`object`||br(t).forEach((function(n){e[n]=t[n]})),e}typeof Promise>`u`||yr.Promise||(yr.Promise=Promise);var Cr=Object.getPrototypeOf,wr={}.hasOwnProperty;function Tr(e,t){return wr.call(e,t)}function Er(e,t){typeof t==`function`&&(t=t(Cr(e))),(typeof Reflect>`u`?br:Reflect.ownKeys)(t).forEach((n=>{Or(e,n,t[n])}))}var Dr=Object.defineProperty;function Or(e,t,n,r){Dr(e,t,Sr(n&&Tr(n,`get`)&&typeof n.get==`function`?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function kr(e){return{from:function(t){return e.prototype=Object.create(t.prototype),Or(e.prototype,`constructor`,e),{extend:Er.bind(null,e.prototype)}}}}var Ar=Object.getOwnPropertyDescriptor;function jr(e,t){let n;return Ar(e,t)||(n=Cr(e))&&jr(n,t)}var Mr=[].slice;function Nr(e,t,n){return Mr.call(e,t,n)}function Pr(e,t){return t(e)}function Fr(e){if(!e)throw Error(`Assertion Failed`)}function Ir(e){yr.setImmediate?setImmediate(e):setTimeout(e,0)}function Lr(e,t){return e.reduce(((e,n,r)=>{var i=t(n,r);return i&&(e[i[0]]=i[1]),e}),{})}function Rr(e,t){if(typeof t==`string`&&Tr(e,t))return e[t];if(!t)return e;if(typeof t!=`string`){for(var n=[],r=0,i=t.length;r<i;++r){var a=Rr(e,t[r]);n.push(a)}return n}var o=t.indexOf(`.`);if(o!==-1){var s=e[t.substr(0,o)];return s==null?void 0:Rr(s,t.substr(o+1))}}function zr(e,t,n){if(e&&t!==void 0&&(!(`isFrozen`in Object)||!Object.isFrozen(e))){if(typeof t!=`string`&&`length`in t){Fr(typeof n!=`string`&&`length`in n);for(var r=0,i=t.length;r<i;++r)zr(e,t[r],n[r])}else{var a=t.indexOf(`.`);if(a!==-1){var o=t.substr(0,a),s=t.substr(a+1);if(s===``)n===void 0?xr(e)&&!isNaN(parseInt(o))?e.splice(o,1):delete e[o]:e[o]=n;else{var c=e[o];c&&Tr(e,o)||(c=e[o]={}),zr(c,s,n)}}else n===void 0?xr(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}}function Br(e){var t={};for(var n in e)Tr(e,n)&&(t[n]=e[n]);return t}var Vr=[].concat;function Hr(e){return Vr.apply([],e)}var Ur=`BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey`.split(`,`).concat(Hr([8,16,32,64].map((e=>[`Int`,`Uint`,`Float`].map((t=>t+e+`Array`)))))).filter((e=>yr[e])),Wr=Ur.map((e=>yr[e]));Lr(Ur,(e=>[e,!0]));var Gr=null;function Kr(e){Gr=typeof WeakMap<`u`&&new WeakMap;let t=qr(e);return Gr=null,t}function qr(e){if(!e||typeof e!=`object`)return e;let t=Gr&&Gr.get(e);if(t)return t;if(xr(e)){t=[],Gr&&Gr.set(e,t);for(var n=0,r=e.length;n<r;++n)t.push(qr(e[n]))}else if(Wr.indexOf(e.constructor)>=0)t=e;else{let n=Cr(e);for(var i in t=n===Object.prototype?{}:Object.create(n),Gr&&Gr.set(e,t),e)Tr(e,i)&&(t[i]=qr(e[i]))}return t}var{toString:Jr}={};function Yr(e){return Jr.call(e).slice(8,-1)}var Xr=typeof Symbol<`u`?Symbol.iterator:`@@iterator`,Zr=typeof Xr==`symbol`?function(e){var t;return e!=null&&(t=e[Xr])&&t.apply(e)}:function(){return null},Qr={};function $r(e){var t,n,r,i;if(arguments.length===1){if(xr(e))return e.slice();if(this===Qr&&typeof e==`string`)return[e];if(i=Zr(e)){for(n=[];!(r=i.next()).done;)n.push(r.value);return n}if(e==null)return[e];if(typeof(t=e.length)==`number`){for(n=Array(t);t--;)n[t]=e[t];return n}return[e]}for(t=arguments.length,n=Array(t);t--;)n[t]=arguments[t];return n}var ei=typeof Symbol<`u`?e=>e[Symbol.toStringTag]===`AsyncFunction`:()=>!1,ti=typeof location<`u`&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function ni(e,t){ti=e,ri=t}var ri=()=>!0,ii=!Error(``).stack;function ai(){if(ii)try{throw ai.arguments,Error()}catch(e){return e}return Error()}function oi(e,t){var n=e.stack;return n?(t=t||0,n.indexOf(e.name)===0&&(t+=(e.name+e.message).split(`
3
+ `).length),n.split(`
4
+ `).slice(t).filter(ri).map((e=>`
5
+ `+e)).join(``)):``}var si=[`Unknown`,`Constraint`,`Data`,`TransactionInactive`,`ReadOnly`,`Version`,`NotFound`,`InvalidState`,`InvalidAccess`,`Abort`,`Timeout`,`QuotaExceeded`,`Syntax`,`DataClone`],ci=[`Modify`,`Bulk`,`OpenFailed`,`VersionChange`,`Schema`,`Upgrade`,`InvalidTable`,`MissingAPI`,`NoSuchDatabase`,`InvalidArgument`,`SubTransaction`,`Unsupported`,`Internal`,`DatabaseClosed`,`PrematureCommit`,`ForeignAwait`].concat(si),li={VersionChanged:`Database version changed by other database connection`,DatabaseClosed:`Database has been closed`,Abort:`Transaction aborted`,TransactionInactive:`Transaction has already completed or failed`,MissingAPI:`IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb`};function ui(e,t){this._e=ai(),this.name=e,this.message=t}function di(e,t){return e+`. Errors: `+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(`
6
+ `)}function fi(e,t,n,r){this._e=ai(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=di(e,t)}function pi(e,t){this._e=ai(),this.name=`BulkError`,this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=di(e,t)}kr(ui).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+`: `+this.message+oi(this._e,2))}},toString:function(){return this.name+`: `+this.message}}),kr(fi).from(ui),kr(pi).from(ui);var mi=ci.reduce(((e,t)=>(e[t]=t+`Error`,e)),{}),hi=ui,H=ci.reduce(((e,t)=>{var n=t+`Error`;function r(e,r){this._e=ai(),this.name=n,e?typeof e==`string`?(this.message=`${e}${r?`
7
+ `+r:``}`,this.inner=r||null):typeof e==`object`&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=li[t]||n,this.inner=null)}return kr(r).from(hi),e[t]=r,e}),{});H.Syntax=SyntaxError,H.Type=TypeError,H.Range=RangeError;var gi=si.reduce(((e,t)=>(e[t+`Error`]=H[t],e)),{}),_i=ci.reduce(((e,t)=>([`Syntax`,`Type`,`Range`].indexOf(t)===-1&&(e[t+`Error`]=H[t]),e)),{});function U(){}function vi(e){return e}function yi(e,t){return e==null||e===vi?t:function(n){return t(e(n))}}function bi(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function xi(e,t){return e===U?t:function(){var n=e.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?bi(r,this.onsuccess):r),i&&(this.onerror=this.onerror?bi(i,this.onerror):i),a===void 0?n:a}}function Si(e,t){return e===U?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?bi(n,this.onsuccess):n),r&&(this.onerror=this.onerror?bi(r,this.onerror):r)}}function Ci(e,t){return e===U?t:function(n){var r=e.apply(this,arguments);Sr(n,r);var i=this.onsuccess,a=this.onerror;this.onsuccess=null,this.onerror=null;var o=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?bi(i,this.onsuccess):i),a&&(this.onerror=this.onerror?bi(a,this.onerror):a),r===void 0?o===void 0?void 0:o:Sr(r,o)}}function wi(e,t){return e===U?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function Ti(e,t){return e===U?t:function(){var n=e.apply(this,arguments);if(n&&typeof n.then==`function`){for(var r=this,i=arguments.length,a=Array(i);i--;)a[i]=arguments[i];return n.then((function(){return t.apply(r,a)}))}return t.apply(this,arguments)}}_i.ModifyError=fi,_i.DexieError=ui,_i.BulkError=pi;var Ei={},Di=100,[Oi,ki,Ai]=typeof Promise>`u`?[]:(()=>{let e=Promise.resolve();if(typeof crypto>`u`||!crypto.subtle)return[e,Cr(e),e];let t=crypto.subtle.digest(`SHA-512`,new Uint8Array([0]));return[t,Cr(t),e]})(),ji=ki&&ki.then,Mi=Oi&&Oi.constructor,Ni=!!Ai,Pi=!1,Fi=Ai?()=>{Ai.then(na)}:yr.setImmediate?setImmediate.bind(null,na):yr.MutationObserver?()=>{var e=document.createElement(`div`);new MutationObserver((()=>{na(),e=null})).observe(e,{attributes:!0}),e.setAttribute(`i`,`1`)}:()=>{setTimeout(na,0)},Ii=function(e,t){Wi.push([e,t]),Ri&&(Fi(),Ri=!1)},Li=!0,Ri=!0,zi=[],Bi=[],Vi=null,Hi=vi,Ui={id:`global`,global:!0,ref:0,unhandleds:[],onunhandled:Da,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{Da(e[0],e[1])}catch(e){}}))}},W=Ui,Wi=[],Gi=0,Ki=[];function G(e){if(typeof this!=`object`)throw TypeError(`Promises must be constructed via new`);this._listeners=[],this.onuncatched=U,this._lib=!1;var t=this._PSD=W;if(ti&&(this._stackHolder=ai(),this._prev=null,this._numPrev=0),typeof e!=`function`){if(e!==Ei)throw TypeError(`Not a function`);this._state=arguments[1],this._value=arguments[2],!1===this._state&&Xi(this,this._value)}else this._state=null,this._value=null,++t.ref,Yi(this,e)}var qi={get:function(){var e=W,t=fa;function n(n,r){var i=!e.global&&(e!==W||t!==fa);let a=i&&!ga();var o=new G(((t,o)=>{Qi(this,new Ji(wa(n,e,i,a),wa(r,e,i,a),t,o,e))}));return ti&&ta(o,this),o}return n.prototype=Ei,n},set:function(e){Or(this,`then`,e&&e.prototype===Ei?qi:{get:function(){return e},set:qi.set})}};function Ji(e,t,n,r,i){this.onFulfilled=typeof e==`function`?e:null,this.onRejected=typeof t==`function`?t:null,this.resolve=n,this.reject=r,this.psd=i}function Yi(e,t){try{t((t=>{if(e._state===null){if(t===e)throw TypeError(`A promise cannot be resolved with itself.`);var n=e._lib&&ra();t&&typeof t.then==`function`?Yi(e,((e,n)=>{t instanceof G?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,Zi(e)),n&&ia()}}),Xi.bind(null,e))}catch(t){Xi(e,t)}}function Xi(e,t){if(Bi.push(t),e._state===null){var n=e._lib&&ra();t=Hi(t),e._state=!1,e._value=t,ti&&typeof t==`object`&&t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=jr(t,`stack`);t._promise=e,Or(t,`stack`,{get:()=>Pi?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){zi.some((t=>t._value===e._value))||zi.push(e)}(e),Zi(e),n&&ia()}}function Zi(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)Qi(e,t[n]);var i=e._PSD;--i.ref||i.finalize(),Gi===0&&(++Gi,Ii((()=>{--Gi==0&&aa()}),[]))}function Qi(e,t){if(e._state!==null){var n=e._state?t.onFulfilled:t.onRejected;if(n===null)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Gi,Ii($i,[n,e,t])}else e._listeners.push(t)}function $i(e,t,n){try{Vi=t;var r,i=t._value;t._state?r=e(i):(Bi.length&&(Bi=[]),r=e(i),Bi.indexOf(i)===-1&&function(e){for(var t=zi.length;t;)if(zi[--t]._value===e._value)return void zi.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{Vi=null,--Gi==0&&aa(),--n.psd.ref||n.psd.finalize()}}function ea(e,t,n){if(t.length===n)return t;var r=``;if(!1===e._state){var i,a,o=e._value;o==null?(i=o,a=``):(i=o.name||`Error`,a=o.message||o,r=oi(o,0)),t.push(i+(a?`: `+a:``)+r)}return ti&&((r=oi(e._stackHolder,2))&&t.indexOf(r)===-1&&t.push(r),e._prev&&ea(e._prev,t,n)),t}function ta(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function na(){ra()&&ia()}function ra(){var e=Li;return Li=!1,Ri=!1,e}function ia(){var e,t,n;do for(;Wi.length>0;)for(e=Wi,Wi=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}while(Wi.length>0);Li=!0,Ri=!0}function aa(){var e=zi;zi=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=Ki.slice(0),n=t.length;n;)t[--n]()}function oa(e){return new G(Ei,!1,e)}function sa(e,t){var n=W;return function(){var r=ra(),i=W;try{return ba(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{ba(i,!1),r&&ia()}}}Er(G.prototype,{then:qi,_then:function(e,t){Qi(this,new Ji(null,null,e,t,W))},catch:function(e){if(arguments.length===1)return this.then(null,e);var t=arguments[0],n=arguments[1];return typeof t==`function`?this.then(null,(e=>e instanceof t?n(e):oa(e))):this.then(null,(e=>e&&e.name===t?n(e):oa(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),oa(t))))},stack:{get:function(){if(this._stack)return this._stack;try{Pi=!0;var e=ea(this,[],20).join(`
8
+ From previous: `);return this._state!==null&&(this._stack=e),e}finally{Pi=!1}}},timeout:function(e,t){return e<1/0?new G(((n,r)=>{var i=setTimeout((()=>r(new H.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,i))})):this}}),typeof Symbol<`u`&&Symbol.toStringTag&&Or(G.prototype,Symbol.toStringTag,`Dexie.Promise`),Ui.env=xa(),Er(G,{all:function(){var e=$r.apply(null,arguments).map(_a);return new G((function(t,n){e.length===0&&t([]);var r=e.length;e.forEach(((i,a)=>G.resolve(i).then((n=>{e[a]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof G)return e;if(e&&typeof e.then==`function`)return new G(((t,n)=>{e.then(t,n)}));var t=new G(Ei,!0,e);return ta(t,Vi),t},reject:oa,race:function(){var e=$r.apply(null,arguments).map(_a);return new G(((t,n)=>{e.map((e=>G.resolve(e).then(t,n)))}))},PSD:{get:()=>W,set:e=>W=e},totalEchoes:{get:()=>fa},newPSD:ma,usePSD:Sa,scheduler:{get:()=>Ii,set:e=>{Ii=e}},rejectionMapper:{get:()=>Hi,set:e=>{Hi=e}},follow:(e,t)=>new G(((n,r)=>ma(((t,n)=>{var r=W;r.unhandleds=[],r.onunhandled=n,r.finalize=bi((function(){(function(e){function t(){e(),Ki.splice(Ki.indexOf(t),1)}Ki.push(t),++Gi,Ii((()=>{--Gi==0&&aa()}),[])})((()=>{this.unhandleds.length===0?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),Mi&&(Mi.allSettled&&Or(G,`allSettled`,(function(){let e=$r.apply(null,arguments).map(_a);return new G((t=>{e.length===0&&t([]);let n=e.length,r=Array(n);e.forEach(((e,i)=>G.resolve(e).then((e=>r[i]={status:`fulfilled`,value:e}),(e=>r[i]={status:`rejected`,reason:e})).then((()=>--n||t(r)))))}))})),Mi.any&&typeof AggregateError<`u`&&Or(G,`any`,(function(){let e=$r.apply(null,arguments).map(_a);return new G(((t,n)=>{e.length===0&&n(AggregateError([]));let r=e.length,i=Array(r);e.forEach(((e,a)=>G.resolve(e).then((e=>t(e)),(e=>{i[a]=e,--r||n(AggregateError(i))}))))}))})));var ca={awaits:0,echoes:0,id:0},la=0,ua=[],da=0,fa=0,pa=0;function ma(e,t,n,r){var i=W,a=Object.create(i);a.parent=i,a.ref=0,a.global=!1,a.id=++pa;var o=Ui.env;a.env=Ni?{Promise:G,PromiseProp:{value:G,configurable:!0,writable:!0},all:G.all,race:G.race,allSettled:G.allSettled,any:G.any,resolve:G.resolve,reject:G.reject,nthen:Ta(o.nthen,a),gthen:Ta(o.gthen,a)}:{},t&&Sr(a,t),++i.ref,a.finalize=function(){--this.parent.ref||this.parent.finalize()};var s=Sa(a,e,n,r);return a.ref===0&&a.finalize(),s}function ha(){return ca.id||(ca.id=++la),++ca.awaits,ca.echoes+=Di,ca.id}function ga(){return!!ca.awaits&&(--ca.awaits==0&&(ca.id=0),ca.echoes=ca.awaits*Di,!0)}function _a(e){return ca.echoes&&e&&e.constructor===Mi?(ha(),e.then((e=>(ga(),e)),(e=>(ga(),Oa(e))))):e}function va(e){++fa,ca.echoes&&--ca.echoes!=0||(ca.echoes=ca.id=0),ua.push(W),ba(e,!0)}function ya(){var e=ua[ua.length-1];ua.pop(),ba(e,!1)}function ba(e,t){var n=W;if((t?!ca.echoes||da++&&e===W:!da||--da&&e===W)||Ca(t?va.bind(null,e):ya),e!==W&&(W=e,n===Ui&&(Ui.env=xa()),Ni)){var r=Ui.env.Promise,i=e.env;ki.then=i.nthen,r.prototype.then=i.gthen,(n.global||e.global)&&(Object.defineProperty(yr,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function xa(){var e=yr.Promise;return Ni?{Promise:e,PromiseProp:Object.getOwnPropertyDescriptor(yr,`Promise`),all:e.all,race:e.race,allSettled:e.allSettled,any:e.any,resolve:e.resolve,reject:e.reject,nthen:ki.then,gthen:e.prototype.then}:{}}function Sa(e,t,n,r,i){var a=W;try{return ba(e,!0),t(n,r,i)}finally{ba(a,!1)}}function Ca(e){ji.call(Oi,e)}function wa(e,t,n,r){return typeof e==`function`?function(){var i=W;n&&ha(),ba(t,!0);try{return e.apply(this,arguments)}finally{ba(i,!1),r&&Ca(ga)}}:e}function Ta(e,t){return function(n,r){return e.call(this,wa(n,t),wa(r,t))}}(``+ji).indexOf(`[native code]`)===-1&&(ha=ga=U);var Ea=`unhandledrejection`;function Da(e,t){var n;try{n=t.onuncatched(e)}catch(e){}if(!1!==n)try{var r,i={promise:t,reason:e};if(yr.document&&document.createEvent?((r=document.createEvent(`Event`)).initEvent(Ea,!0,!0),Sr(r,i)):yr.CustomEvent&&Sr(r=new CustomEvent(Ea,{detail:i}),i),r&&yr.dispatchEvent&&(dispatchEvent(r),!yr.PromiseRejectionEvent&&yr.onunhandledrejection))try{yr.onunhandledrejection(r)}catch(e){}ti&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${e.stack||e}`)}catch(e){}}var Oa=G.reject;function ka(e,t,n,r){if(e.idbdb&&(e._state.openComplete||W.letThrough||e._vip)){var i=e._createTransaction(t,n,e._dbSchema);try{i.create(),e._state.PR1398_maxLoop=3}catch(i){return i.name===mi.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(`Dexie: Need to reopen db`),e._close(),e.open().then((()=>ka(e,t,n,r)))):Oa(i)}return i._promise(t,((e,t)=>ma((()=>(W.trans=i,r(e,t,i)))))).then((e=>i._completion.then((()=>e))))}if(e._state.openComplete)return Oa(new H.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return Oa(new H.DatabaseClosed);e.open().catch(U)}return e._state.dbReadyPromise.then((()=>ka(e,t,n,r)))}var Aa=`3.2.7`,ja=`￿`,Ma=-1/0,Na=`Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.`,Pa=`String expected.`,Fa=[],Ia=typeof navigator<`u`&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),La=Ia,Ra=Ia,za=e=>!/(dexie\.js|dexie\.min\.js)/.test(e),Ba=`__dbnames`,Va=`readonly`,Ha=`readwrite`;function Ua(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}var Wa={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Ga(e){return typeof e!=`string`||/\./.test(e)?e=>e:t=>(t[e]===void 0&&e in t&&delete(t=Kr(t))[e],t)}var Ka=class{_trans(e,t,n){let r=this._tx||W.trans,i=this.name;function a(e,n,r){if(!r.schema[i])throw new H.NotFound(`Table `+i+` not part of transaction`);return t(r.idbtrans,r)}let o=ra();try{return r&&r.db===this.db?r===W.trans?r._promise(e,a,n):ma((()=>r._promise(e,a,n)),{trans:r,transless:W.transless||W}):ka(this.db,e,[this.name],a)}finally{o&&ia()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(`readonly`,(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(typeof e==`string`)return new this.db.WhereClause(this,e);if(xr(e))return new this.db.WhereClause(this,`[${e.join(`+`)}]`);let t=br(e);if(t.length===1)return this.where(t[0]).equals(e[t[0]]);let n=this.schema.indexes.concat(this.schema.primKey).filter((e=>{if(e.compound&&t.every((t=>e.keyPath.indexOf(t)>=0))){for(let n=0;n<t.length;++n)if(t.indexOf(e.keyPath[n])===-1)return!1;return!0}return!1})).sort(((e,t)=>e.keyPath.length-t.keyPath.length))[0];if(n&&this.db._maxKey!==ja){let r=n.keyPath.slice(0,t.length);return this.where(r).equals(r.map((t=>e[t])))}!n&&ti&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${t.join(`+`)}]`);let{idxByName:r}=this.schema,i=this.db._deps.indexedDB;function a(e,t){try{return i.cmp(e,t)===0}catch(e){return!1}}let[o,s]=t.reduce((([t,n],i)=>{let o=r[i],s=e[i];return[t||o,t||!o?Ua(n,o&&o.multi?e=>{let t=Rr(e,i);return xr(t)&&t.some((e=>a(s,e)))}:e=>a(s,Rr(e,i))):n]}),[null,null]);return o?this.where(o.name).equals(e[o.keyPath]).filter(s):n?this.filter(s):this.where(t).equals(``)}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,xr(e)?`[${e.join(`+`)}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;let t=t=>{if(!t)return t;let n=Object.create(e.prototype);for(var r in t)if(Tr(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(`reading`,t),e}defineClass(){return this.mapToClass((function(e){Sr(this,e)}))}add(e,t){let{auto:n,keyPath:r}=this.schema.primKey,i=e;return r&&n&&(i=Ga(r)(e)),this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`add`,keys:t==null?null:[t],values:[i]}))).then((e=>e.numFailures?G.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{zr(e,r,t)}catch(e){}return t}))}update(e,t){if(typeof e!=`object`||xr(e))return this.where(`:id`).equals(e).modify(t);{let n=Rr(e,this.schema.primKey.keyPath);if(n===void 0)return Oa(new H.InvalidArgument(`Given object does not contain its primary key`));try{typeof t==`function`?t(e,{value:e,primKey:n}):br(t).forEach((n=>{zr(e,n,t[n])}))}catch(e){}return this.where(`:id`).equals(n).modify(t)}}put(e,t){let{auto:n,keyPath:r}=this.schema.primKey,i=e;return r&&n&&(i=Ga(r)(e)),this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`put`,values:[i],keys:t==null?null:[t]}))).then((e=>e.numFailures?G.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{zr(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(`readwrite`,(t=>this.core.mutate({trans:t,type:`delete`,keys:[e]}))).then((e=>e.numFailures?G.reject(e.failures[0]):void 0))}clear(){return this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`deleteRange`,range:Wa}))).then((e=>e.numFailures?G.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(`readonly`,(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){let r=Array.isArray(t)?t:void 0,i=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(`readwrite`,(t=>{let{auto:n,keyPath:a}=this.schema.primKey;if(a&&r)throw new H.InvalidArgument(`bulkAdd(): keys argument invalid on tables with inbound keys`);if(r&&r.length!==e.length)throw new H.InvalidArgument(`Arguments objects and keys must have the same length`);let o=e.length,s=a&&n?e.map(Ga(a)):e;return this.core.mutate({trans:t,type:`add`,keys:r,values:s,wantResults:i}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(e===0)return i?t:n;throw new pi(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){let r=Array.isArray(t)?t:void 0,i=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(`readwrite`,(t=>{let{auto:n,keyPath:a}=this.schema.primKey;if(a&&r)throw new H.InvalidArgument(`bulkPut(): keys argument invalid on tables with inbound keys`);if(r&&r.length!==e.length)throw new H.InvalidArgument(`Arguments objects and keys must have the same length`);let o=e.length,s=a&&n?e.map(Ga(a)):e;return this.core.mutate({trans:t,type:`put`,keys:r,values:s,wantResults:i}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(e===0)return i?t:n;throw new pi(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){let t=e.length;return this._trans(`readwrite`,(t=>this.core.mutate({trans:t,type:`delete`,keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(e===0)return n;throw new pi(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}};function qa(e){var t={},n=function(n,r){if(r){for(var i=arguments.length,a=Array(i-1);--i;)a[i-1]=arguments[i];return t[n].subscribe.apply(null,a),e}if(typeof n==`string`)return t[n]};n.addEventType=a;for(var r=1,i=arguments.length;r<i;++r)a(arguments[r]);return n;function a(e,r,i){if(typeof e!=`object`){var o;r||(r=wi),i||(i=U);var s={subscribers:[],fire:i,subscribe:function(e){s.subscribers.indexOf(e)===-1&&(s.subscribers.push(e),s.fire=r(s.fire,e))},unsubscribe:function(e){s.subscribers=s.subscribers.filter((function(t){return t!==e})),s.fire=s.subscribers.reduce(r,i)}};return t[e]=n[e]=s,s}br(o=e).forEach((function(e){var t=o[e];if(xr(t))a(e,o[e][0],o[e][1]);else{if(t!==`asap`)throw new H.InvalidArgument(`Invalid event config`);var n=a(e,vi,(function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];n.subscribers.forEach((function(e){Ir((function(){e.apply(null,t)}))}))}))}}))}}function Ja(e,t){return kr(t).from({prototype:e}),t}function Ya(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function Xa(e,t){e.filter=Ua(e.filter,t)}function Za(e,t,n){var r=e.replayFilter;e.replayFilter=r?()=>Ua(r(),t()):t,e.justLimit=n&&!r}function Qa(e,t){if(e.isPrimKey)return t.primaryKey;let n=t.getIndexByKeyPath(e.index);if(!n)throw new H.Schema(`KeyPath `+e.index+` on object store `+t.name+` is not indexed`);return n}function $a(e,t,n){let r=Qa(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:e.dir===`prev`,unique:!!e.unique,query:{index:r,range:e.range}})}function eo(e,t,n,r){let i=e.replayFilter?Ua(e.filter,e.replayFilter()):e.filter;if(e.or){let a={},o=(e,n,r)=>{if(!i||i(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var o=n.primaryKey,s=``+o;s===`[object ArrayBuffer]`&&(s=``+new Uint8Array(o)),Tr(a,s)||(a[s]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(o,n),to($a(e,r,n),e.algorithm,o,!e.keysOnly&&e.valueMapper)])}return to($a(e,r,n),Ua(e.algorithm,i),t,!e.keysOnly&&e.valueMapper)}function to(e,t,n,r){var i=sa(r?(e,t,i)=>n(r(e),t,i):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=U}),(t=>{e.fail(t),n=U}))||i(e.value,e,(e=>n=e)),n()}))}))}function no(e,t){try{let n=ro(e),r=ro(t);if(n!==r)return n===`Array`?1:r===`Array`?-1:n===`binary`?1:r===`binary`?-1:n===`string`?1:r===`string`?-1:n===`Date`?1:r===`Date`?-1:NaN;switch(n){case`number`:case`Date`:case`string`:return e>t?1:e<t?-1:0;case`binary`:return function(e,t){let n=e.length,r=t.length,i=n<r?n:r;for(let n=0;n<i;++n)if(e[n]!==t[n])return e[n]<t[n]?-1:1;return n===r?0:n<r?-1:1}(io(e),io(t));case`Array`:return function(e,t){let n=e.length,r=t.length,i=n<r?n:r;for(let n=0;n<i;++n){let r=no(e[n],t[n]);if(r!==0)return r}return n===r?0:n<r?-1:1}(e,t)}}catch(e){}return NaN}function ro(e){let t=typeof e;if(t!==`object`)return t;if(ArrayBuffer.isView(e))return`binary`;let n=Yr(e);return n===`ArrayBuffer`?`binary`:n}function io(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}var ao=class{_read(e,t){var n=this._ctx;return n.error?n.table._trans(null,Oa.bind(null,n.error)):n.table._trans(`readonly`,e).then(t)}_write(e){var t=this._ctx;return t.error?t.table._trans(null,Oa.bind(null,t.error)):t.table._trans(`readwrite`,e,`locked`)}_addAlgorithm(e){var t=this._ctx;t.algorithm=Ua(t.algorithm,e)}_iterate(e,t){return eo(this._ctx,e,t,this._ctx.table.core)}clone(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&Sr(n,e),t._ctx=n,t}raw(){return this._ctx.valueMapper=null,this}each(e){var t=this._ctx;return this._read((n=>eo(t,e,n,t.table.core)))}count(e){return this._read((e=>{let t=this._ctx,n=t.table.core;if(Ya(t,!0))return n.count({trans:e,query:{index:Qa(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return eo(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){let n=e.split(`.`).reverse(),r=n[0],i=n.length-1;function a(e,t){return t?a(e[n[t]],t-1):e[r]}var o=this._ctx.dir===`next`?1:-1;function s(e,t){var n=a(e,i),r=a(t,i);return n<r?-o:n>r?o:0}return this.toArray((function(e){return e.sort(s)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(t.dir===`next`&&Ya(t,!0)&&t.limit>0){let{valueMapper:n}=t,r=Qa(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{let n=[];return eo(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,Ya(t)?Za(t,(()=>{var t=e;return(e,n)=>t===0||(t===1?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):Za(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),Za(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return Xa(this._ctx,(function(n,r,i){return!e(n.value)||(r(i),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return Xa(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=Ua(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir===`prev`?`next`:`prev`,this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=`unique`,this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(t.dir===`next`&&Ya(t,!0)&&t.limit>0)return this._read((e=>{var n=Qa(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=`unique`,this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return Xa(this._ctx,(function(e){var t=e.primaryKey.toString(),r=Tr(n,t);return n[t]=!0,!r})),this}modify(e){var t=this._ctx;return this._write((n=>{var r;if(typeof e==`function`)r=e;else{var i=br(e),a=i.length;r=function(t){for(var n=!1,r=0;r<a;++r){var o=i[r],s=e[o];Rr(t,o)!==s&&(zr(t,o,s),n=!0)}return n}}let o=t.table.core,{outbound:s,extractKey:c}=o.schema.primaryKey,l=this.db._options.modifyChunkSize||200,u=[],d=0,f=[],p=(e,t)=>{let{failures:n,numFailures:r}=t;d+=e-r;for(let e of br(n))u.push(n[e])};return this.clone().primaryKeys().then((i=>{let a=u=>{let d=Math.min(l,i.length-u);return o.getMany({trans:n,keys:i.slice(u,u+d),cache:`immutable`}).then((f=>{let m=[],h=[],g=s?[]:null,_=[];for(let e=0;e<d;++e){let t=f[e],n={value:Kr(t),primKey:i[u+e]};!1!==r.call(n,n.value,n)&&(n.value==null?_.push(i[u+e]):s||no(c(t),c(n.value))===0?(h.push(n.value),s&&g.push(i[u+e])):(_.push(i[u+e]),m.push(n.value)))}let v=Ya(t)&&t.limit===1/0&&(typeof e!=`function`||e===oo)&&{index:t.index,range:t.range};return Promise.resolve(m.length>0&&o.mutate({trans:n,type:`add`,values:m}).then((e=>{for(let t in e.failures)_.splice(parseInt(t),1);p(m.length,e)}))).then((()=>(h.length>0||v&&typeof e==`object`)&&o.mutate({trans:n,type:`put`,keys:g,values:h,criteria:v,changeSpec:typeof e!=`function`&&e}).then((e=>p(h.length,e))))).then((()=>(_.length>0||v&&e===oo)&&o.mutate({trans:n,type:`delete`,keys:_,criteria:v}).then((e=>p(_.length,e))))).then((()=>i.length>u+d&&a(u+l)))}))};return a(0).then((()=>{if(u.length>0)throw new fi(`Error modifying one or more objects`,u,d,f);return i.length}))}))}))}delete(){var e=this._ctx,t=e.range;return Ya(e)&&(e.isPrimKey&&!Ra||t.type===3)?this._write((n=>{let{primaryKey:r}=e.table.core.schema,i=t;return e.table.core.count({trans:n,query:{index:r,range:i}}).then((t=>e.table.core.mutate({trans:n,type:`deleteRange`,range:i}).then((({failures:e,lastResult:n,results:r,numFailures:i})=>{if(i)throw new fi(`Could not delete some values`,Object.keys(e).map((t=>e[t])),t-i);return t-i}))))})):this.modify(oo)}},oo=(e,t)=>t.value=null;function so(e,t){return e<t?-1:e===t?0:1}function co(e,t){return e>t?-1:e===t?0:1}function lo(e,t,n){var r=e instanceof go?new e.Collection(e):e;return r._ctx.error=n?new n(t):TypeError(t),r}function uo(e){return new e.Collection(e,(()=>ho(``))).limit(0)}function fo(e,t,n,r,i,a){for(var o=Math.min(e.length,r.length),s=-1,c=0;c<o;++c){var l=t[c];if(l!==r[c])return i(e[c],n[c])<0?e.substr(0,c)+n[c]+n.substr(c+1):i(e[c],r[c])<0?e.substr(0,c)+r[c]+n.substr(c+1):s>=0?e.substr(0,s)+t[s]+n.substr(s+1):null;i(e[c],l)<0&&(s=c)}return o<r.length&&a===`next`?e+n.substr(e.length):o<e.length&&a===`prev`?e.substr(0,n.length):s<0?null:e.substr(0,s)+r[s]+n.substr(s+1)}function po(e,t,n,r){var i,a,o,s,c,l,u,d=n.length;if(!n.every((e=>typeof e==`string`)))return lo(e,Pa);function f(e){i=function(e){return e===`next`?e=>e.toUpperCase():e=>e.toLowerCase()}(e),a=function(e){return e===`next`?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=e===`next`?so:co;var t=n.map((function(e){return{lower:a(e),upper:i(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));s=t.map((function(e){return e.upper})),c=t.map((function(e){return e.lower})),l=e,u=e===`next`?``:r}f(`next`);var p=new e.Collection(e,(()=>mo(s[0],c[d-1]+r)));p._ondirectionchange=function(e){f(e)};var m=0;return p._addAlgorithm((function(e,n,r){var i=e.key;if(typeof i!=`string`)return!1;var f=a(i);if(t(f,c,m))return!0;for(var p=null,h=m;h<d;++h){var g=fo(i,f,s[h],c[h],o,l);g===null&&p===null?m=h+1:(p===null||o(p,g)>0)&&(p=g)}return n(p===null?r:function(){e.continue(p+u)}),!1})),p}function mo(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function ho(e){return{type:1,lower:e,upper:e}}var go=class{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||this._cmp(e,t)===0&&(n||r)&&(!n||!r)?uo(this):new this.Collection(this,(()=>mo(e,t,!n,!r)))}catch(e){return lo(this,Na)}}equals(e){return e==null?lo(this,Na):new this.Collection(this,(()=>ho(e)))}above(e){return e==null?lo(this,Na):new this.Collection(this,(()=>mo(e,void 0,!0)))}aboveOrEqual(e){return e==null?lo(this,Na):new this.Collection(this,(()=>mo(e,void 0,!1)))}below(e){return e==null?lo(this,Na):new this.Collection(this,(()=>mo(void 0,e,!1,!0)))}belowOrEqual(e){return e==null?lo(this,Na):new this.Collection(this,(()=>mo(void 0,e)))}startsWith(e){return typeof e==`string`?this.between(e,e+ja,!0,!0):lo(this,Pa)}startsWithIgnoreCase(e){return e===``?this.startsWith(e):po(this,((e,t)=>e.indexOf(t[0])===0),[e],ja)}equalsIgnoreCase(e){return po(this,((e,t)=>e===t[0]),[e],``)}anyOfIgnoreCase(){var e=$r.apply(Qr,arguments);return e.length===0?uo(this):po(this,((e,t)=>t.indexOf(e)!==-1),e,``)}startsWithAnyOfIgnoreCase(){var e=$r.apply(Qr,arguments);return e.length===0?uo(this):po(this,((e,t)=>t.some((t=>e.indexOf(t)===0))),e,ja)}anyOf(){let e=$r.apply(Qr,arguments),t=this._cmp;try{e.sort(t)}catch(e){return lo(this,Na)}if(e.length===0)return uo(this);let n=new this.Collection(this,(()=>mo(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=n===`next`?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,i,a)=>{let o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return i(a),!1;return t(o,e[r])===0||(i((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[Ma,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){let e=$r.apply(Qr,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return lo(this,Na)}let t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[Ma,t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){let n=this._cmp,r=this._ascending,i=this._descending,a=this._min,o=this._max;if(e.length===0)return uo(this);if(!e.every((e=>e[0]!==void 0&&e[1]!==void 0&&r(e[0],e[1])<=0)))return lo(this,`First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower`,H.InvalidArgument);let s=!t||!1!==t.includeLowers,c=t&&!0===t.includeUppers,l,u=r;function d(e,t){return u(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,i=e.length;for(;r<i;++r){let i=e[r];if(n(t[0],i[1])<0&&n(t[1],i[0])>0){i[0]=a(i[0],t[0]),i[1]=o(i[1],t[1]);break}}return r===i&&e.push(t),e}),[]),l.sort(d)}catch(e){return lo(this,Na)}let f=0,p=c?e=>r(e,l[f][1])>0:e=>r(e,l[f][1])>=0,m=s?e=>i(e,l[f][0])>0:e=>i(e,l[f][0])>=0,h=p,g=new this.Collection(this,(()=>mo(l[0][0],l[l.length-1][1],!s,!c)));return g._ondirectionchange=e=>{e===`next`?(h=p,u=r):(h=m,u=i),l.sort(d)},g._addAlgorithm(((e,t,n)=>{for(var i=e.key;h(i);)if(++f,f===l.length)return t(n),!1;return!!function(e){return!p(e)&&!m(e)}(i)||(this._cmp(i,l[f][1])===0||this._cmp(i,l[f][0])===0||t((()=>{u===r?e.continue(l[f][0]):e.continue(l[f][1])})),!1)})),g}startsWithAnyOf(){let e=$r.apply(Qr,arguments);return e.every((e=>typeof e==`string`))?e.length===0?uo(this):this.inAnyRange(e.map((e=>[e,e+ja]))):lo(this,`startsWithAnyOf() only works with strings`)}};function _o(e){return sa((function(t){return vo(t),e(t.target.error),!1}))}function vo(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}var yo=`storagemutated`,bo=`x-storagemutated-1`,xo=qa(null,yo),So=class{_lock(){return Fr(!W.global),++this._reculock,this._reculock!==1||W.global||(W.lockOwnerFor=this),this}_unlock(){if(Fr(!W.global),--this._reculock==0)for(W.global||(W.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{Sa(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&W.lockOwnerFor!==this}create(e){if(!this.mode)return this;let t=this.db.idbdb,n=this.db._state.dbOpenError;if(Fr(!this.idbtrans),!e&&!t)switch(n&&n.name){case`DatabaseClosedError`:throw new H.DatabaseClosed(n);case`MissingAPIError`:throw new H.MissingAPI(n.message,n);default:throw new H.OpenFailed(n)}if(!this.active)throw new H.TransactionInactive;return Fr(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=sa((t=>{vo(t),this._reject(e.error)})),e.onabort=sa((t=>{vo(t),this.active&&this._reject(new H.Abort(e.error)),this.active=!1,this.on(`abort`).fire(t)})),e.oncomplete=sa((()=>{this.active=!1,this._resolve(),`mutatedParts`in e&&xo.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(e===`readwrite`&&this.mode!==`readwrite`)return Oa(new H.ReadOnly(`Transaction is readonly`));if(!this.active)return Oa(new H.TransactionInactive);if(this._locked())return new G(((r,i)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,i)},W])}));if(n)return ma((()=>{var e=new G(((e,n)=>{this._lock();let r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new G(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();let n=G.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);(function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)})()}var i=t._waitingFor;return new G(((e,r)=>{n.then((n=>t._waitingQueue.push(sa(e.bind(null,n)))),(e=>t._waitingQueue.push(sa(r.bind(null,e))))).finally((()=>{t._waitingFor===i&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new H.Abort))}table(e){let t=this._memoizedTables||(this._memoizedTables={});if(Tr(t,e))return t[e];let n=this.schema[e];if(!n)throw new H.NotFound(`Table `+e+` not part of transaction`);let r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}};function Co(e,t,n,r,i,a,o){return{name:e,keyPath:t,unique:n,multi:r,auto:i,compound:a,src:(n&&!o?`&`:``)+(r?`*`:``)+(i?`++`:``)+wo(t)}}function wo(e){return typeof e==`string`?e:e?`[`+[].join.call(e,`+`)+`]`:``}function To(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:Lr(n,(e=>[e.name,e]))}}var Eo=e=>{try{return e.only([[]]),Eo=()=>[[]],[[]]}catch(e){return Eo=()=>ja,ja}};function Do(e){return e==null?()=>{}:typeof e==`string`?function(e){return e.split(`.`).length===1?t=>t[e]:t=>Rr(t,e)}(e):t=>Rr(t,e)}function Oo(e){return[].slice.call(e)}var ko=0;function Ao(e){return e==null?`:id`:typeof e==`string`?e:`[${e.join(`+`)}]`}function jo(e,t,n){function r(e){if(e.type===3)return null;if(e.type===4)throw Error(`Cannot convert never type to IDBKeyRange`);let{lower:n,upper:r,lowerOpen:i,upperOpen:a}=e;return n===void 0?r===void 0?null:t.upperBound(r,!!a):r===void 0?t.lowerBound(n,!!i):t.bound(n,r,!!i,!!a)}let{schema:i,hasGetAll:a}=function(e,t){let n=Oo(e.objectStoreNames);return{schema:{name:e.name,tables:n.map((e=>t.objectStore(e))).map((e=>{let{keyPath:t,autoIncrement:n}=e,r=xr(t),i=t==null,a={},o={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:r,keyPath:t,autoIncrement:n,unique:!0,extractKey:Do(t)},indexes:Oo(e.indexNames).map((t=>e.index(t))).map((e=>{let{name:t,unique:n,multiEntry:r,keyPath:i}=e,o={name:t,compound:xr(i),keyPath:i,unique:n,multiEntry:r,extractKey:Do(i)};return a[Ao(i)]=o,o})),getIndexByKeyPath:e=>a[Ao(e)]};return a[`:id`]=o.primaryKey,t!=null&&(a[Ao(t)]=o.primaryKey),o}))},hasGetAll:n.length>0&&`getAll`in t.objectStore(n[0])&&!(typeof navigator<`u`&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(e,n),o=i.tables.map((e=>function(e){let t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:i,values:a,range:o}){return new Promise(((s,c)=>{s=sa(s);let l=e.objectStore(t),u=l.keyPath==null,d=n===`put`||n===`add`;if(!d&&n!==`delete`&&n!==`deleteRange`)throw Error(`Invalid operation type: `+n);let{length:f}=i||a||{length:1};if(i&&a&&i.length!==a.length)throw Error(`Given keys array must have same length as given values array.`);if(f===0)return s({numFailures:0,failures:{},results:[],lastResult:void 0});let p,m=[],h=[],g=0,_=e=>{++g,vo(e)};if(n===`deleteRange`){if(o.type===4)return s({numFailures:g,failures:h,results:[],lastResult:void 0});o.type===3?m.push(p=l.clear()):m.push(p=l.delete(r(o)))}else{let[e,t]=d?u?[a,i]:[a,null]:[i,null];if(d)for(let r=0;r<f;++r)m.push(p=t&&t[r]!==void 0?l[n](e[r],t[r]):l[n](e[r])),p.onerror=_;else for(let t=0;t<f;++t)m.push(p=l[n](e[t])),p.onerror=_}let v=e=>{let t=e.target.result;m.forEach(((e,t)=>e.error!=null&&(h[t]=e.error))),s({numFailures:g,failures:h,results:n===`delete`?i:m.map((e=>e.result)),lastResult:t})};p.onerror=e=>{_(e),v(e)},p.onsuccess=v}))},getMany:({trans:e,keys:n})=>new Promise(((r,i)=>{r=sa(r);let a=e.objectStore(t),o=n.length,s=Array(o),c,l=0,u=0,d=e=>{let t=e.target;s[t._pos]=t.result,++u===l&&r(s)},f=_o(i);for(let e=0;e<o;++e)n[e]!=null&&(c=a.get(n[e]),c._pos=e,c.onsuccess=d,c.onerror=f,++l);l===0&&r(s)})),get:({trans:e,key:n})=>new Promise(((r,i)=>{r=sa(r);let a=e.objectStore(t).get(n);a.onsuccess=e=>r(e.target.result),a.onerror=_o(i)})),query:function(e){return n=>new Promise(((i,a)=>{i=sa(i);let{trans:o,values:s,limit:c,query:l}=n,u=c===1/0?void 0:c,{index:d,range:f}=l,p=o.objectStore(t),m=d.isPrimaryKey?p:p.index(d.name),h=r(f);if(c===0)return i({result:[]});if(e){let e=s?m.getAll(h,u):m.getAllKeys(h,u);e.onsuccess=e=>i({result:e.target.result}),e.onerror=_o(a)}else{let e=0,t=s||!(`openKeyCursor`in m)?m.openCursor(h):m.openKeyCursor(h),n=[];t.onsuccess=r=>{let a=t.result;return a?(n.push(s?a.value:a.primaryKey),++e===c?i({result:n}):void a.continue()):i({result:n})},t.onerror=_o(a)}}))}(a),openCursor:function({trans:e,values:n,query:i,reverse:a,unique:o}){return new Promise(((s,c)=>{s=sa(s);let{index:l,range:u}=i,d=e.objectStore(t),f=l.isPrimaryKey?d:d.index(l.name),p=a?o?`prevunique`:`prev`:o?`nextunique`:`next`,m=n||!(`openKeyCursor`in f)?f.openCursor(r(u),p):f.openKeyCursor(r(u),p);m.onerror=_o(c),m.onsuccess=sa((t=>{let n=m.result;if(!n)return void s(null);n.___id=++ko,n.done=!1;let r=n.continue.bind(n),i=n.continuePrimaryKey;i&&(i=i.bind(n));let a=n.advance.bind(n),o=()=>{throw Error(`Cursor not stopped`)};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw Error(`Cursor not started`)},n.fail=sa(c),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{let t=new Promise(((e,t)=>{e=sa(e),m.onerror=_o(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),s=()=>{if(m.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw Error(`Cursor behind last entry`)},n.stop()};return m.onsuccess=sa((e=>{m.onsuccess=s,s()})),n.continue=r,n.continuePrimaryKey=i,n.advance=a,s(),t},s(n)}),c)}))},count({query:e,trans:n}){let{index:i,range:a}=e;return new Promise(((e,o)=>{let s=n.objectStore(t),c=i.isPrimaryKey?s:s.index(i.name),l=r(a),u=l?c.count(l):c.count();u.onsuccess=sa((t=>e(t.target.result))),u.onerror=_o(o)}))}}}(e))),s={};return o.forEach((e=>s[e.name]=e)),{stack:`dbcore`,transaction:e.transaction.bind(e),table(e){if(!s[e])throw Error(`Table '${e}' not found`);return s[e]},MIN_KEY:-1/0,MAX_KEY:Eo(t),schema:i}}function Mo({_novip:e},t){let n=t.db;e.core=function(e,t,{IDBKeyRange:n,indexedDB:r},i){return{dbcore:function(e,t){return t.reduce(((e,{create:t})=>V(V({},e),t(e))),e)}(jo(t,n,i),e.dbcore)}}(e._middlewares,n,e._deps,t).dbcore,e.tables.forEach((t=>{let n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function No({_novip:e},t,n,r){n.forEach((n=>{let i=r[n];t.forEach((t=>{let r=jr(t,n);(!r||`value`in r&&r.value===void 0)&&(t===e.Transaction.prototype||t instanceof e.Transaction?Or(t,n,{get(){return this.table(n)},set(e){Dr(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,i))}))}))}function Po({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function Fo(e,t){return e._cfg.version-t._cfg.version}function Io(e,t,n,r){let i=e._dbSchema,a=e._createTransaction(`readwrite`,e._storeNames,i);a.create(n),a._completion.catch(r);let o=a._reject.bind(a),s=W.transless||W;ma((()=>{W.trans=a,W.transless=s,t===0?(br(i).forEach((e=>{Ro(n,e,i[e].primKey,i[e].indexes)})),Mo(e,n),G.follow((()=>e.on.populate.fire(a))).catch(o)):function({_novip:e},t,n,r){let i=[],a=e._versions,o=e._dbSchema=Bo(e,e.idbdb,r),s=!1,c=a.filter((e=>e._cfg.version>=t));function l(){return i.length?G.resolve(i.shift()(n.idbtrans)).then(l):G.resolve()}return c.forEach((a=>{i.push((()=>{let i=o,c=a._cfg.dbschema;Vo(e,i,r),Vo(e,c,r),o=e._dbSchema=c;let l=Lo(i,c);l.add.forEach((e=>{Ro(r,e[0],e[1].primKey,e[1].indexes)})),l.change.forEach((e=>{if(e.recreate)throw new H.Upgrade(`Not yet support for changing primary key`);{let t=r.objectStore(e.name);e.add.forEach((e=>zo(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),zo(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));let u=a._cfg.contentUpgrade;if(u&&a._cfg.version>t){Mo(e,r),n._memoizedTables={},s=!0;let t=Br(c);l.del.forEach((e=>{t[e]=i[e]})),Po(e,[e.Transaction.prototype]),No(e,[e.Transaction.prototype],br(t),t),n.schema=t;let a=ei(u),o;a&&ha();let d=G.follow((()=>{if(o=u(n),o&&a){var e=ga.bind(null,null);o.then(e,e)}}));return o&&typeof o.then==`function`?G.resolve(o):d.then((()=>o))}})),i.push((t=>{s&&La||(function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>e[n]==null&&t.db.deleteObjectStore(n)))})(a._cfg.dbschema,t),Po(e,[e.Transaction.prototype]),No(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),n.schema=e._dbSchema}))})),l().then((()=>{var e,t=r;br(e=o).forEach((n=>{t.db.objectStoreNames.contains(n)||Ro(t,n,e[n].primKey,e[n].indexes)}))}))}(e,t,a,n).catch(o)}))}function Lo(e,t){let n={del:[],add:[],change:[]},r;for(r in e)t[r]||n.del.push(r);for(r in t){let i=e[r],a=t[r];if(i){let e={name:r,def:a,recreate:!1,del:[],add:[],change:[]};if(``+(i.primKey.keyPath||``)!=``+(a.primKey.keyPath||``)||i.primKey.auto!==a.primKey.auto&&!Ia)e.recreate=!0,n.change.push(e);else{let t=i.idxByName,r=a.idxByName,o;for(o in t)r[o]||e.del.push(o);for(o in r){let n=t[o],i=r[o];n?n.src!==i.src&&e.change.push(i):e.add.push(i)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,a])}return n}function Ro(e,t,n,r){let i=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>zo(i,e))),i}function zo(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function Bo(e,t,n){let r={};return Nr(t.objectStoreNames,0).forEach((e=>{let t=n.objectStore(e),i=t.keyPath,a=Co(wo(i),i||``,!1,!1,!!t.autoIncrement,i&&typeof i!=`string`,!0),o=[];for(let e=0;e<t.indexNames.length;++e){let n=t.index(t.indexNames[e]);i=n.keyPath;var s=Co(n.name,i,!!n.unique,!!n.multiEntry,!1,i&&typeof i!=`string`,!1);o.push(s)}r[e]=To(e,a,o)})),r}function Vo({_novip:e},t,n){let r=n.db.objectStoreNames;for(let i=0;i<r.length;++i){let a=r[i],o=n.objectStore(a);e._hasGetAll=`getAll`in o;for(let e=0;e<o.indexNames.length;++e){let n=o.indexNames[e],r=o.index(n).keyPath,i=typeof r==`string`?r:`[`+Nr(r).join(`+`)+`]`;if(t[a]){let e=t[a].idxByName[i];e&&(e.name=n,delete t[a].idxByName[i],t[a].idxByName[n]=e)}}}typeof navigator<`u`&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&yr.WorkerGlobalScope&&yr instanceof yr.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(e._hasGetAll=!1)}var Ho=class{_parseStoresSpec(e,t){br(e).forEach((n=>{if(e[n]!==null){var r=e[n].split(`,`).map(((e,t)=>{let n=(e=e.trim()).replace(/([&*]|\+\+)/g,``),r=/^\[/.test(n)?n.match(/^\[(.*)\]$/)[1].split(`+`):n;return Co(n,r||null,/\&/.test(e),/\*/.test(e),/\+\+/.test(e),xr(r),t===0)})),i=r.shift();if(i.multi)throw new H.Schema(`Primary key cannot be multi-valued`);r.forEach((e=>{if(e.auto)throw new H.Schema(`Only primary key can be marked as autoIncrement (++)`);if(!e.keyPath)throw new H.Schema(`Index must have a name and cannot be an empty string`)})),t[n]=To(n,i,r)}}))}stores(e){let t=this.db;this._cfg.storesSource=this._cfg.storesSource?Sr(this._cfg.storesSource,e):e;let n=t._versions,r={},i={};return n.forEach((e=>{Sr(r,e._cfg.storesSource),i=e._cfg.dbschema={},e._parseStoresSpec(r,i)})),t._dbSchema=i,Po(t,[t._allTables,t,t.Transaction.prototype]),No(t,[t._allTables,t,t.Transaction.prototype,this._cfg.tables],br(i),i),t._storeNames=br(i),this}upgrade(e){return this._cfg.contentUpgrade=Ti(this._cfg.contentUpgrade||U,e),this}};function Uo(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new fs(Ba,{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:`name`})),n.table(`dbnames`)}function Wo(e){return e&&typeof e.databases==`function`}function Go(e){return ma((function(){return W.letThrough=!0,e()}))}function Ko(){var e;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function qo(e){let t=e._state,{indexedDB:n}=e._deps;if(t.isBeingOpened||e.idbdb)return t.dbReadyPromise.then((()=>t.dbOpenError?Oa(t.dbOpenError):e));ti&&(t.openCanceller._stackHolder=ai()),t.isBeingOpened=!0,t.dbOpenError=null,t.openComplete=!1;let r=t.openCanceller;function i(){if(t.openCanceller!==r)throw new H.DatabaseClosed(`db.open() was cancelled`)}let a=t.dbReadyResolve,o=null,s=!1,c=()=>new G(((r,a)=>{if(i(),!n)throw new H.MissingAPI;let c=e.name,l=t.autoSchema?n.open(c):n.open(c,Math.round(10*e.verno));if(!l)throw new H.MissingAPI;l.onerror=_o(a),l.onblocked=sa(e._fireOnBlocked),l.onupgradeneeded=sa((r=>{if(o=l.transaction,t.autoSchema&&!e._options.allowEmptyDB){l.onerror=vo,o.abort(),l.result.close();let e=n.deleteDatabase(c);e.onsuccess=e.onerror=sa((()=>{a(new H.NoSuchDatabase(`Database ${c} doesnt exist`))}))}else{o.onerror=_o(a);var i=r.oldVersion>2**62?0:r.oldVersion;s=i<1,e._novip.idbdb=l.result,Io(e,i/10,o,a)}}),a),l.onsuccess=sa((()=>{o=null;let n=e._novip.idbdb=l.result,i=Nr(n.objectStoreNames);if(i.length>0)try{let r=n.transaction((a=i).length===1?a[0]:a,`readonly`);t.autoSchema?function({_novip:e},t,n){e.verno=t.version/10;let r=e._dbSchema=Bo(0,t,n);e._storeNames=Nr(t.objectStoreNames,0),No(e,[e._allTables],br(r),r)}(e,n,r):(Vo(e,e._dbSchema,r),function(e,t){let n=Lo(Bo(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,r)||console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`)),Mo(e,r)}catch(e){}var a;Fa.push(e),n.onversionchange=sa((n=>{t.vcFired=!0,e.on(`versionchange`).fire(n)})),n.onclose=sa((t=>{e.on(`close`).fire(t)})),s&&function({indexedDB:e,IDBKeyRange:t},n){!Wo(e)&&n!==Ba&&Uo(e,t).put({name:n}).catch(U)}(e._deps,c),r()}),a)})).catch((e=>e&&e.name===`UnknownError`&&t.PR1398_maxLoop>0?(t.PR1398_maxLoop--,console.warn(`Dexie: Workaround for Chrome UnknownError on open()`),c()):G.reject(e)));return G.race([r,(typeof navigator>`u`?G.resolve():Ko()).then(c)]).then((()=>(i(),t.onReadyBeingFired=[],G.resolve(Go((()=>e.on.ready.fire(e.vip)))).then((function n(){if(t.onReadyBeingFired.length>0){let r=t.onReadyBeingFired.reduce(Ti,U);return t.onReadyBeingFired=[],G.resolve(Go((()=>r(e.vip)))).then(n)}}))))).finally((()=>{t.onReadyBeingFired=null,t.isBeingOpened=!1})).then((()=>e)).catch((n=>{t.dbOpenError=n;try{o&&o.abort()}catch(e){}return r===t.openCanceller&&e._close(),Oa(n)})).finally((()=>{t.openComplete=!0,a()}))}function Jo(e){var t=t=>e.next(t),n=i(t),r=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),a=i.value;return i.done?a:a&&typeof a.then==`function`?a.then(n,r):xr(a)?Promise.all(a).then(n,r):n(a)}}return i(t)()}function Yo(e,t,n){var r=arguments.length;if(r<2)throw new H.InvalidArgument(`Too few arguments`);for(var i=Array(r-1);--r;)i[r-1]=arguments[r];return n=i.pop(),[e,Hr(i),n]}function Xo(e,t,n,r,i){return G.resolve().then((()=>{let a=W.transless||W,o=e._createTransaction(t,n,e._dbSchema,r),s={trans:o,transless:a};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===mi.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(`Dexie: Need to reopen db`),e._close(),e.open().then((()=>Xo(e,t,n,null,i)))):Oa(r)}let c=ei(i),l;c&&ha();let u=G.follow((()=>{if(l=i.call(o,o),l){if(c){var e=ga.bind(null,null);l.then(e,e)}else typeof l.next==`function`&&typeof l.throw==`function`&&(l=Jo(l))}}),s);return(l&&typeof l.then==`function`?G.resolve(l).then((e=>o.active?e:Oa(new H.PrematureCommit(`Transaction committed too early. See http://bit.ly/2kdckMn`)))):u.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),Oa(e))))}))}function Zo(e,t,n){let r=xr(e)?e.slice():[e];for(let e=0;e<n;++e)r.push(t);return r}var Qo={stack:`dbcore`,name:`VirtualIndexMiddleware`,level:1,create:function(e){return V(V({},e),{},{table(t){let n=e.table(t),{schema:r}=n,i={},a=[];function o(e,t,n){let r=Ao(e),s=i[r]=i[r]||[],c=e==null?0:typeof e==`string`?1:e.length,l=t>0,u=V(V({},n),{},{isVirtual:l,keyTail:t,keyLength:c,extractKey:Do(e),unique:!l&&n.unique});return s.push(u),u.isPrimaryKey||a.push(u),c>1&&o(c===2?e[0]:e.slice(0,c-1),t+1,n),s.sort(((e,t)=>e.keyTail-t.keyTail)),u}let s=o(r.primaryKey.keyPath,0,r.primaryKey);i[`:id`]=[s];for(let e of r.indexes)o(e.keyPath,0,e);function c(t){let n=t.query.index;return n.isVirtual?V(V({},t),{},{query:{index:n,range:(r=t.query.range,i=n.keyTail,{type:r.type===1?2:r.type,lower:Zo(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,i),lowerOpen:!0,upper:Zo(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,i),upperOpen:!0})}}):t;var r,i}return V(V({},n),{},{schema:V(V({},r),{},{primaryKey:s,indexes:a,getIndexByKeyPath:function(e){let t=i[Ao(e)];return t&&t[0]}}),count:e=>n.count(c(e)),query:e=>n.query(c(e)),openCursor(t){let{keyTail:r,isVirtual:i,keyLength:a}=t.query.index;return i?n.openCursor(c(t)).then((n=>n&&function(n){return Object.create(n,{continue:{value:function(i){i==null?t.unique?n.continue(n.key.slice(0,a).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue():n.continue(Zo(i,t.reverse?e.MAX_KEY:e.MIN_KEY,r))}},continuePrimaryKey:{value(t,i){n.continuePrimaryKey(Zo(t,e.MAX_KEY,r),i)}},primaryKey:{get:()=>n.primaryKey},key:{get(){let e=n.key;return a===1?e[0]:e.slice(0,a)}},value:{get:()=>n.value}})}(n))):n.openCursor(t)}})}})}};function $o(e,t,n,r){return n=n||{},r=r||``,br(e).forEach((i=>{if(Tr(t,i)){var a=e[i],o=t[i];if(typeof a==`object`&&typeof o==`object`&&a&&o){let e=Yr(a);e===Yr(o)?e===`Object`?$o(a,o,n,r+i+`.`):a!==o&&(n[r+i]=t[i]):n[r+i]=t[i]}else a!==o&&(n[r+i]=t[i])}else n[r+i]=void 0})),br(t).forEach((i=>{Tr(e,i)||(n[r+i]=t[i])})),n}var es={stack:`dbcore`,name:`HooksMiddleware`,level:2,create:e=>V(V({},e),{},{table(t){let n=e.table(t),{primaryKey:r}=n.schema;return V(V({},n),{},{mutate(e){let i=W.trans,{deleting:a,creating:o,updating:s}=i.table(t).hook;switch(e.type){case`add`:if(o.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`put`:if(o.fire===U&&s.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`delete`:if(a.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`deleteRange`:if(a.fire===U)break;return i._promise(`readwrite`,(()=>function(e){return l(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function c(e){let t=W.trans,i=e.keys||function(e,t){return t.type===`delete`?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!i)throw Error(`Keys missing`);return(e=e.type===`add`||e.type===`put`?V(V({},e),{},{keys:i}):V({},e)).type!==`delete`&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return t.type===`add`?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:`immutable`})}(n,e,i).then((c=>{let l=i.map(((n,i)=>{let l=c[i],u={onerror:null,onsuccess:null};if(e.type===`delete`)a.fire.call(u,n,l,t);else if(e.type===`add`||l===void 0){let a=o.fire.call(u,n,e.values[i],t);n==null&&a!=null&&(n=a,e.keys[i]=n,r.outbound||zr(e.values[i],r.keyPath,n))}else{let r=$o(l,e.values[i]),a=s.fire.call(u,r,n,l,t);if(a){let t=e.values[i];Object.keys(a).forEach((e=>{Tr(t,e)?t[e]=a[e]:zr(t,e,a[e])}))}}return u}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:a})=>{for(let r=0;r<i.length;++r){let a=n?n[r]:i[r],o=l[r];a==null?o.onerror&&o.onerror(t[r]):o.onsuccess&&o.onsuccess(e.type===`put`&&c[r]?e.values[r]:a)}return{failures:t,results:n,numFailures:r,lastResult:a}})).catch((e=>(l.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function l(e,t,i){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:i}).then((({result:n})=>c({type:`delete`,keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length<i?{failures:[],numFailures:0,lastResult:void 0}:l(e,V(V({},t),{},{lower:n[n.length-1],lowerOpen:!0}),i)))))}}})}})};function ts(e,t,n){try{if(!t||t.keys.length<e.length)return null;let r=[];for(let i=0,a=0;i<t.keys.length&&a<e.length;++i)no(t.keys[i],e[a])===0&&(r.push(n?Kr(t.values[i]):t.values[i]),++a);return r.length===e.length?r:null}catch(e){return null}}var ns={stack:`dbcore`,level:-1,create:e=>({table:t=>{let n=e.table(t);return V(V({},n),{},{getMany:e=>{if(!e.cache)return n.getMany(e);let t=ts(e.keys,e.trans._cache,e.cache===`clone`);return t?G.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:e.cache===`clone`?Kr(t):t},t)))},mutate:e=>(e.type!==`add`&&(e.trans._cache=null),n.mutate(e))})}})};function rs(e){return!(`from`in e)}var is=function(e,t){if(!this){let t=new is;return e&&`d`in e&&Sr(t,e),t}Sr(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function as(e,t,n){let r=no(t,n);if(isNaN(r))return;if(r>0)throw RangeError();if(rs(e))return Sr(e,{from:t,to:n,d:1});let i=e.l,a=e.r;if(no(n,e.from)<0)return i?as(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},ls(e);if(no(t,e.to)>0)return a?as(a,t,n):e.r={from:t,to:n,d:1,l:null,r:null},ls(e);no(t,e.from)<0&&(e.from=t,e.l=null,e.d=a?a.d+1:1),no(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);let o=!e.r;i&&!e.l&&os(e,i),a&&o&&os(e,a)}function os(e,t){rs(t)||function e(t,{from:n,to:r,l:i,r:a}){as(t,n,r),i&&e(t,i),a&&e(t,a)}(e,t)}function ss(e,t){let n=cs(t),r=n.next();if(r.done)return!1;let i=r.value,a=cs(e),o=a.next(i.from),s=o.value;for(;!r.done&&!o.done;){if(no(s.from,i.to)<=0&&no(s.to,i.from)>=0)return!0;no(i.from,s.from)<0?i=(r=n.next(s.from)).value:s=(o=a.next(i.from)).value}return!1}function cs(e){let t=rs(e)?null:{s:0,n:e};return{next(e){let n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&no(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||no(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function ls(e){var t,n;let r=(((t=e.r)==null?void 0:t.d)||0)-(((n=e.l)==null?void 0:n.d)||0),i=r>1?`r`:r<-1?`l`:``;if(i){let t=i===`r`?`l`:`r`,n=V({},e),r=e[i];e.from=r.from,e.to=r.to,e[i]=r[i],n[i]=r[t],e[t]=n,n.d=us(n)}e.d=us(e)}function us({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}Er(is.prototype,{add(e){return os(this,e),this},addKey(e){return as(this,e,e),this},addKeys(e){return e.forEach((e=>as(this,e,e))),this},[Xr](){return cs(this)}});var ds={stack:`dbcore`,level:0,create:e=>{let t=e.schema.name,n=new is(e.MIN_KEY,e.MAX_KEY);return V(V({},e),{},{table:r=>{let i=e.table(r),{schema:a}=i,{primaryKey:o}=a,{extractKey:s,outbound:c}=o,l=V(V({},i),{},{mutate:e=>{let o=e.trans,s=o.mutatedParts||(o.mutatedParts={}),c=e=>{let n=`idb://${t}/${r}/${e}`;return s[n]||(s[n]=new is)},l=c(``),u=c(`:dels`),{type:d}=e,[f,p]=e.type===`deleteRange`?[e.range]:e.type===`delete`?[e.keys]:e.values.length<50?[[],e.values]:[],m=e.trans._cache;return i.mutate(e).then((e=>{if(xr(f)){d!==`delete`&&(f=e.results),l.addKeys(f);let t=ts(f,m);t||d===`add`||u.addKeys(f),(t||p)&&function(e,t,n,r){function i(t){let i=e(t.name||``);function a(e){return e==null?null:t.extractKey(e)}let o=e=>t.multiEntry&&xr(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(n||r).forEach(((e,t)=>{let i=n&&a(n[t]),s=r&&a(r[t]);no(i,s)!==0&&(i!=null&&o(i),s!=null&&o(s))}))}t.indexes.forEach(i)}(c,a,t,p)}else if(f){let e={from:f.lower,to:f.upper};u.add(e),l.add(e)}else l.add(n),u.add(n),a.indexes.forEach((e=>c(e.name).add(n)));return e}))}}),u=({query:{index:t,range:n}})=>{var r,i;return[t,new is((r=n.lower)==null?e.MIN_KEY:r,(i=n.upper)==null?e.MAX_KEY:i)]},d={get:e=>[o,new is(e.key)],getMany:e=>[o,new is().addKeys(e.keys)],count:u,query:u,openCursor:u};return br(d).forEach((e=>{l[e]=function(a){let{subscr:o}=W;if(o){let l=e=>{let n=`idb://${t}/${r}/${e}`;return o[n]||(o[n]=new is)},u=l(``),f=l(`:dels`),[p,m]=d[e](a);if(l(p.name||``).add(m),!p.isPrimaryKey){if(e!==`count`){let t=e===`query`&&c&&a.values&&i.query(V(V({},a),{},{values:!1}));return i[e].apply(this,arguments).then((n=>{if(e===`query`){if(c&&a.values)return t.then((({result:e})=>(u.addKeys(e),n)));let e=a.values?n.result.map(s):n.result;a.values?u.addKeys(e):f.addKeys(e)}else if(e===`openCursor`){let e=n,t=a.values;return e&&Object.create(e,{key:{get:()=>(f.addKey(e.primaryKey),e.key)},primaryKey:{get(){let t=e.primaryKey;return f.addKey(t),t}},value:{get:()=>(t&&u.addKey(e.primaryKey),e.value)}})}return n}))}f.add(n)}}return i[e].apply(this,arguments)}})),l}})}},fs=class e{constructor(t,n){this._middlewares={},this.verno=0;let r=e.dependencies;this._options=n=V({addons:e.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange},n),this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};let{addons:i}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;let a={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:U,dbReadyPromise:null,cancelOpen:U,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var o;a.dbReadyPromise=new G((e=>{a.dbReadyResolve=e})),a.openCanceller=new G(((e,t)=>{a.cancelOpen=t})),this._state=a,this.name=t,this.on=qa(this,`populate`,`blocked`,`versionchange`,`close`,{ready:[Ti,U]}),this.on.ready.subscribe=Pr(this.on.ready.subscribe,(t=>(n,r)=>{e.vip((()=>{let e=this._state;if(e.openComplete)e.dbOpenError||G.resolve().then(n),r&&t(n);else if(e.onReadyBeingFired)e.onReadyBeingFired.push(n),r&&t(n);else{t(n);let e=this;r||t((function t(){e.on.ready.unsubscribe(n),e.on.ready.unsubscribe(t)}))}}))})),this.Collection=(o=this,Ja(ao.prototype,(function(e,t){this.db=o;let n=Wa,r=null;if(t)try{n=t()}catch(e){r=e}let i=e._ctx,a=i.table,s=a.hook.reading.fire;this._ctx={table:a,index:i.index,isPrimKey:!i.index||a.schema.primKey.keyPath&&i.index===a.schema.primKey.name,range:n,keysOnly:!1,dir:`next`,unique:``,algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:i.or,valueMapper:s===vi?null:s}}))),this.Table=function(e){return Ja(Ka.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:qa(null,{creating:[xi,U],reading:[yi,vi],updating:[Ci,U],deleting:[Si,U]})}))}(this),this.Transaction=function(e){return Ja(So.prototype,(function(t,n,r,i,a){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=i,this.idbtrans=null,this.on=qa(this,`complete`,`error`,`abort`),this.parent=a||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new G(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),Oa(e)}))}))}(this),this.Version=function(e){return Ja(Ho.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return Ja(go.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:n===`:id`?null:n,or:r};let i=e._deps.indexedDB;if(!i)throw new H.MissingAPI;this._cmp=this._ascending=i.cmp.bind(i),this._descending=(e,t)=>i.cmp(t,e),this._max=(e,t)=>i.cmp(e,t)>0?e:t,this._min=(e,t)=>i.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(`versionchange`,(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(`blocked`,(e=>{!e.newVersion||e.newVersion<e.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)})),this._maxKey=Eo(n.IDBKeyRange),this._createTransaction=(e,t,n,r)=>new this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(`blocked`).fire(e),Fa.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(`versionchange`).fire(e)))},this.use(Qo),this.use(es),this.use(ds),this.use(ns),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new H.Type(`Given version is not a positive number`);if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new H.Schema(`Cannot add version when database is open`);this.verno=Math.max(this.verno,e);let t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(Fo),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||W.letThrough||this._vip)?e():new G(((e,t)=>{if(this._state.openComplete)return t(new H.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new H.DatabaseClosed);this.open().catch(U)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});let i=this._middlewares[e]||(this._middlewares[e]=[]);return i.push({stack:e,create:t,level:n==null?10:n,name:r}),i.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return qo(this)}_close(){let e=this._state,t=Fa.indexOf(this);if(t>=0&&Fa.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new G((t=>{e.dbReadyResolve=t})),e.openCanceller=new G(((t,n)=>{e.cancelOpen=n}))}close(){this._close();let e=this._state;this._options.autoOpen=!1,e.dbOpenError=new H.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){let e=arguments.length>0,t=this._state;return new G(((n,r)=>{let i=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=sa((()=>{(function({indexedDB:e,IDBKeyRange:t},n){!Wo(e)&&n!==Ba&&Uo(e,t).delete(n).catch(U)})(this._deps,this.name),n()})),e.onerror=_o(r),e.onblocked=this._fireOnBlocked};if(e)throw new H.InvalidArgument(`Arguments not allowed in db.delete()`);t.isBeingOpened?t.dbReadyPromise.then(i):i()}))}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){let e=this._state.dbOpenError;return e&&e.name===`DatabaseClosed`}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return br(this._allTables).map((e=>this._allTables[e]))}transaction(){let e=Yo.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=W.trans;r&&r.db===this&&e.indexOf(`!`)===-1||(r=null);let i=e.indexOf(`?`)!==-1,a,o;e=e.replace(`!`,``).replace(`?`,``);try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(typeof t!=`string`)throw TypeError(`Invalid table argument to Dexie.transaction(). Only Table or String are allowed`);return t})),e==`r`||e===Va)a=Va;else{if(e!=`rw`&&e!=Ha)throw new H.InvalidArgument(`Invalid transaction mode: `+e);a=Ha}if(r){if(r.mode===Va&&a===Ha){if(!i)throw new H.SubTransaction(`Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY`);r=null}r&&o.forEach((e=>{if(r&&r.storeNames.indexOf(e)===-1){if(!i)throw new H.SubTransaction(`Table `+e+` not included in parent transaction.`);r=null}})),i&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):Oa(e)}let s=Xo.bind(null,this,a,o,r,n);return r?r._promise(a,s,`lock`):W.trans?Sa(W.transless,(()=>this._whenReady(s))):this._whenReady(s)}table(e){if(!Tr(this._allTables,e))throw new H.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}},ps=typeof Symbol<`u`&&`observable`in Symbol?Symbol.observable:`@@observable`,ms=class{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&typeof e!=`function`?e:{next:e,error:t,complete:n})}[ps](){return this}};function hs(e,t){return br(t).forEach((n=>{os(e[n]||(e[n]=new is),t[n])})),e}function gs(e){let t,n=!1,r=new ms((r=>{let i=ei(e),a=!1,o={},s={},c={get closed(){return a},unsubscribe:()=>{a=!0,xo.storagemutated.unsubscribe(f)}};r.start&&r.start(c);let l=!1,u=!1;function d(){return br(s).some((e=>o[e]&&ss(o[e],s[e])))}let f=e=>{hs(o,e),d()&&p()},p=()=>{if(l||a)return;o={};let m={},h=function(t){i&&ha();let n=()=>ma(e,{subscr:t,trans:null}),r=W.trans?Sa(W.transless,n):n();return i&&r.then(ga,ga),r}(m);u||(xo(yo,f),u=!0),l=!0,Promise.resolve(h).then((e=>{n=!0,t=e,l=!1,a||(d()?p():(o={},s=m,r.next&&r.next(e)))}),(e=>{l=!1,n=!1,r.error&&r.error(e),c.unsubscribe()}))};return p(),c}));return r.hasValue=()=>n,r.getValue=()=>t,r}var _s;try{_s={indexedDB:yr.indexedDB||yr.mozIndexedDB||yr.webkitIndexedDB||yr.msIndexedDB,IDBKeyRange:yr.IDBKeyRange||yr.webkitIDBKeyRange}}catch(e){_s={indexedDB:null,IDBKeyRange:null}}var vs=fs;function ys(e){let t=bs;try{bs=!0,xo.storagemutated.fire(e)}finally{bs=t}}Er(vs,V(V({},_i),{},{delete:e=>new vs(e,{addons:[]}).delete(),exists:e=>new vs(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(`NoSuchDatabaseError`,(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return Wo(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>e!==Ba)))):Uo(e,t).toCollection().primaryKeys()}(vs.dependencies).then(e)}catch(e){return Oa(new H.MissingAPI)}},defineClass:()=>function(e){Sr(this,e)},ignoreTransaction:e=>W.trans?Sa(W.transless,e):e(),vip:Go,async:function(e){return function(){try{var t=Jo(e.apply(this,arguments));return t&&typeof t.then==`function`?t:G.resolve(t)}catch(e){return Oa(e)}}},spawn:function(e,t,n){try{var r=Jo(e.apply(n,t||[]));return r&&typeof r.then==`function`?r:G.resolve(r)}catch(e){return Oa(e)}},currentTransaction:{get:()=>W.trans||null},waitFor:function(e,t){let n=G.resolve(typeof e==`function`?vs.ignoreTransaction(e):e).timeout(t||6e4);return W.trans?W.trans.waitFor(n):n},Promise:G,debug:{get:()=>ti,set:e=>{ni(e,e===`dexie`?()=>!0:za)}},derive:kr,extend:Sr,props:Er,override:Pr,Events:qa,on:xo,liveQuery:gs,extendObservabilitySet:hs,getByKeyPath:Rr,setByKeyPath:zr,delByKeyPath:function(e,t){typeof t==`string`?zr(e,t,void 0):`length`in t&&[].map.call(t,(function(t){zr(e,t,void 0)}))},shallowClone:Br,deepClone:Kr,getObjectDiff:$o,cmp:no,asap:Ir,minKey:Ma,addons:[],connections:Fa,errnames:mi,dependencies:_s,semVer:Aa,version:Aa.split(`.`).map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/10**(2*n)))})),vs.maxKey=Eo(vs.dependencies.IDBKeyRange),typeof dispatchEvent<`u`&&typeof addEventListener<`u`&&(xo(yo,(e=>{if(!bs){let t;Ia?(t=document.createEvent(`CustomEvent`),t.initCustomEvent(bo,!0,!0,e)):t=new CustomEvent(bo,{detail:e}),bs=!0,dispatchEvent(t),bs=!1}})),addEventListener(bo,(({detail:e})=>{bs||ys(e)})));var bs=!1;if(typeof BroadcastChannel<`u`){let e=new BroadcastChannel(bo);typeof e.unref==`function`&&e.unref(),xo(yo,(t=>{bs||e.postMessage(t)})),e.onmessage=e=>{e.data&&ys(e.data)}}else if(typeof self<`u`&&typeof navigator<`u`){xo(yo,(e=>{try{bs||(typeof localStorage<`u`&&localStorage.setItem(bo,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients==`object`&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:bo,changedParts:e}))))}catch(e){}})),typeof addEventListener<`u`&&addEventListener(`storage`,(e=>{if(e.key===bo){let t=JSON.parse(e.newValue);t&&ys(t.changedParts)}}));let e=self.document&&navigator.serviceWorker;e&&e.addEventListener(`message`,(function({data:e}){e&&e.type===bo&&ys(e.changedParts)}))}G.rejectionMapper=function(e,t){if(!e||e instanceof ui||e instanceof TypeError||e instanceof SyntaxError||!e.name||!gi[e.name])return e;var n=new gi[e.name](t||e.message,e);return`stack`in e&&Or(n,`stack`,{get:function(){return this.inner.stack}}),n},ni(ti,za);var K=new class extends fs{constructor(){super(`utopya`),this.version(1).stores({providers:`++id`,categories:`id, [providerId+kind]`,channels:`id, providerId, [providerId+number], [categoryId+number]`,movies:`id, providerId, [categoryId+added]`,series:`id, providerId, [categoryId+added]`,episodes:`id, seriesId, providerId`}),this.version(2).stores({favorites:`id, [providerId+kind]`,recents:`id, [providerId+kind]`}),this.version(3).stores({programs:`id, providerId, [key+start]`,epgLinks:`id, providerId`}),this.version(4).stores({reminders:`id, start`}),this.version(5).stores({progress:`id, providerId, seriesId, updated`}),this.version(6).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey]`,series:`id, providerId, [categoryId+added], [providerId+vkey]`}),this.version(7).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added]`,series:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added]`}),this.version(8).stores({catState:`id, providerId`,chanState:`id, providerId`,groups:`++id, providerId`,groupItems:`[groupId+channelId], groupId, channelId`}),this.version(9).stores({epgChannels:`id, providerId`}),this.version(10).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added], [providerId+rating]`,series:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added], [providerId+rating]`})}};function xs(...e){let t=e.join(`|`),n=2166136261,r=84696351;for(let e=0;e<t.length;e++){let i=t.charCodeAt(e);n=Math.imul(n^i,16777619),r=Math.imul(r^i,1540483477)}return(r>>>0)%2097152*4294967296+(n>>>0)||1}var Ss={_doc:`İçerik sınıflandırma. adultWords: kategori adı küçük harfe çevrilip (katlanmadan) alt dize araması. M3U girdisi: adres yolunda /series/ → dizi, /movie/ veya /movies/ → film; uzantı vodExtensions'taysa bölüm kalıbı varsa dizi yoksa film; uzantısız/uzun uzantılı adreslerde grup adı (küçük harf) seriesWords içeriyor ve bölüm kalıbı varsa dizi, movieWords'ten biriyle başlıyor ya da 'vod' içeriyorsa film; aksi halde canlı. notMatchWords: spor programı başlığında geçerse maç sayılmaz (büyük/küçük harf duyarsız).`,adultWords:[`xxx`,`adult`,`+18`,`18+`,`yetişkin`,`yetiskin`,`porn`,`erotic`,`erotik`],vodExtensions:[`mp4`,`mkv`,`avi`,`mov`,`wmv`,`flv`,`m4v`,`webm`,`mpg`,`mpeg`,`divx`],seriesWords:[`series`,`dizi`,`season`,`sezon`,`tv shows`,`shows`],movieWords:[`movie`,`film`,`vod`,`sinema`,`cinema`,`box office`],notMatchWords:[`özet`,`ozet`,`highlights`,`tekrar`,`replay`,`stüdyo`,`studio`,`analiz`,`magazin`,`klip`]},Cs={_doc:`Ad işleme. foldName: küçük harf + fold eşlemesi (platform/tür tanıma, arama). normalizeName: küçük harf + normalizeFold, [..] ve (..) silinir, qualityTags harf olmayan sınırlarda silinir, baştaki 2-3 harfli ülke öneki ('tr:', 'uk |') silinir, yalnızca harf/rakam kalır (EPG ve sürüm eşleşmesi). Yapısal regex'ler (ülke öneki, yıl, etiket) her platformun kodunda; davranış fixtures/cases/names.json ile sınanır. U+0307 (birleşik nokta) silinir: 'İ'.lowercase() = 'i̇' olduğundan aksi halde 'DİZİ' 'dizi' ile eşleşmez.`,fold:{"̇":``,ı:`i`,ş:`s`,ğ:`g`,ü:`u`,ö:`o`,ç:`c`,ß:`b`,ə:`e`},normalizeFold:{"̇":``,ı:`i`,ş:`s`,ğ:`g`,ü:`u`,ö:`o`,ç:`c`},qualityTags:[`uhd`,`fhd`,`hd`,`sd`,`4k`,`8k`,`hevc`,`h265`,`1080p`,`720p`,`backup`,`yedek`],removeWordsTrim:` |-:/●`},ws=(()=>{try{return RegExp(`\\p{L}`,`u`).test(`ş`)}catch(e){return!1}})(),Ts=ws?`\\p{L}`:`A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u024F\\u0370-\\u03FF\\u0400-\\u04FF\\u0590-\\u06FF\\u3040-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF`,Es=(e,t=``)=>new RegExp(e.replace(/LETTER/g,Ts),ws?t+`u`:t),Ds=e=>{let t=RegExp(`[${Object.keys(e).join(``)}]`,`g`);return n=>n.replace(t,t=>e[t])},Os=Ds(Cs.fold),ks=Ds(Cs.normalizeFold),As=e=>Os(e.toLowerCase()),js=/\[[^\]]*\]|\([^)]*\)/g,Ms=RegExp(`(^|[^a-z])(${Cs.qualityTags.join(`|`)})(?![a-z])`,`g`),Ns=/^[a-z]{2,3}\s*[:|]\s*/,Ps=Es(`[^LETTER0-9]`,`g`);function Fs(e){return ks(e.toLowerCase()).replace(js,` `).replace(Ms,`$1 `).replace(Ns,` `).replace(Ps,``)}var Is=/^\s*(?:\[([A-Za-z]{2,3})\]\s*[|:\-●•]*|([A-Za-z]{2,3})\s*[|:\-●•]+)\s*/;function Ls(e){let t=Is.exec(e);return t?(t[1]||t[2]).toUpperCase():null}var Rs=/\[([^\]]*)]|\(([^)]*)\)/g,zs=/^(?:19|20)\d{2}$/;function Bs(e){let t=[];return e.replace(Rs,(e,n,r)=>{let i=(n||r||``).trim();return i&&!zs.test(i)&&t.push(i),``}),t.length?t.join(` · `):null}var Vs=e=>e.replace(Rs,` `).trim();function Hs(e){let t=[];for(let n of e.split(` / `)){let e=Vs(n);e&&t.indexOf(e)<0&&t.push(e)}return t.length?t:[e]}var Us=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),Ws=(e,t)=>{let n=0,r=e.length;for(;n<r&&t.indexOf(e[n])>=0;)n++;for(;r>n&&t.indexOf(e[r-1])>=0;)r--;return e.slice(n,r)};function Gs(e,t){if(!t.length)return e;let n=e;for(let e of t)n=n.replace(new RegExp(Us(e),`gi`),` `);return n=Ws(n.replace(/\s{2,}/g,` `),Cs.removeWordsTrim),n.trim()?n:e}var Ks=Es(`[LETTER]{2,}.*\\s(?:-|–|vs\\.?|v)\\s.*[LETTER]{2,}`,`i`);function qs(e){let t=e.toLowerCase();return Ks.test(e)&&!Ss.notMatchWords.some(e=>t.indexOf(e)>=0)}var Js={_doc:`Kategori adından platform tanıma. Ad foldName ile katlanır, separators boşluğa çevrilir, başa/sona boşluk eklenir; keywords'ten biri geçiyor ve excludes'tan hiçbiri geçmiyorsa eşleşir. Listede İLK eşleşen kazanır (sıra önemli). logo: Wikimedia Commons dosya adı (https://commons.wikimedia.org/wiki/Special:FilePath/<ad>?width=320) ya da https ile başlıyorsa doğrudan adres; null ise ad yazı logosu olarak çizilir. tintWhite=false: kendi arka planlı logo, beyaza boyanmaz.`,separators:`|:-_/[]()●•`,platforms:[{key:`netflix`,name:`Netflix`,color:`#E50914`,keywords:[`netflix`],logo:`Netflix_2015_logo.svg`},{key:`hbo`,name:`HBO Max`,color:`#5822B4`,keywords:[`hbo`,` max `,`max original`],excludes:[`max prime`],logo:`Max_logo.svg`},{key:`disney`,name:`Disney+`,color:`#113CCF`,keywords:[`disney`],logo:`Disney%2B_logo.svg`},{key:`prime`,name:`Prime Video`,color:`#00A8E1`,keywords:[`prime`,`amazon`],excludes:[`max prime`],logo:`Amazon_Prime_Video_logo.svg`},{key:`apple`,name:`Apple TV+`,color:`#333333`,keywords:[`apple`],logo:`Apple_TV_Plus_Logo.svg`},{key:`blutv`,name:`BluTV`,color:`#0F6FFF`,keywords:[`blutv`,`blu tv`],logo:`BluTV_logo.svg`,tintWhite:!1},{key:`exxen`,name:`Exxen`,color:`#FFB800`,keywords:[`exxen`],logo:`Exxen.png`,tintWhite:!1},{key:`gain`,name:`Gain`,color:`#7B2CF5`,keywords:[`gain`],logo:`GA%C4%B0N_LOGO.jpg`,tintWhite:!1},{key:`tabii`,name:`tabii`,color:`#00B67A`,keywords:[`tabii`],logo:`Tabii_logo.svg`},{key:`tvplus`,name:`TV+`,color:`#8A7300`,keywords:[`tv+`,`tvplus`,`tv plus`,`turkcell tv`],logo:`https://tvplus.com.tr/images/pwa/icon-192x192.png`,tintWhite:!1},{key:`tod`,name:`TOD`,color:`#6D1ED4`,keywords:[`tod `,`bein connect`,`tod|`,`tod -`]},{key:`puhu`,name:`puhutv`,color:`#FF3D00`,keywords:[`puhu`],logo:`Puhutv.png`,tintWhite:!1},{key:`mubi`,name:`MUBI`,color:`#001489`,keywords:[`mubi`],logo:`Mubi_logo.svg`},{key:`paramount`,name:`Paramount+`,color:`#0064FF`,keywords:[`paramount`],logo:`Paramount_Plus.svg`},{key:`hulu`,name:`Hulu`,color:`#1CE783`,keywords:[`hulu`],logo:`Hulu_Logo.svg`},{key:`bein`,name:`beIN SPORTS`,color:`#5B2C83`,keywords:[`bein`]},{key:`ssport`,name:`S Sport`,color:`#0057B8`,keywords:[`s sport`,`ssport`]},{key:`tivibu`,name:`Tivibu`,color:`#00A0E3`,keywords:[`tivibu`]},{key:`dazn`,name:`DAZN`,color:`#1A1A1A`,keywords:[`dazn`]},{key:`sky`,name:`Sky`,color:`#0072C9`,keywords:[` sky `]},{key:`peacock`,name:`Peacock`,color:`#222222`,keywords:[`peacock`]}]},Ys={_doc:`Kategori adından tür. Ad foldName ile katlanır, başa/sona boşluk eklenir (ayırıcılar çevrilmez); alt dize araması, İLK eşleşen kazanır. Hiçbiri eşleşmezse OTHER. Gruplamada sıra bu listenin sırasıdır, OTHER en sonda.`,genres:[{key:`ADULT`,keywords:[`adult`,`xxx`,`+18`,`18+`]},{key:`KIDS`,keywords:[`cocuk`,`kids`,`kinder`,`cartoon`,`cizgi`]},{key:`SPORTS`,keywords:[`spor`,`sport`,`bein`,`futbol`,`football`,`nba`,`ufc`,`f1 `,`motogp`,`epl`,`tennis`,`golf`,`dazn`,`event`]},{key:`NEWS`,keywords:[`haber`,`news`,`nachrichten`]},{key:`DOCS`,keywords:[`belgesel`,`docu`,`doku`,`documentary`,`nature`,`discovery`]},{key:`MUSIC`,keywords:[`muzik`,`music`,`musik`,`radyo`,`radio`]},{key:`MOVIES`,keywords:[`film`,`dizi`,`sinema`,`cinema`,`movie`,`kino`,`serien`,`series`,`boxset`,`yesilcam`,`actor`,`anime`]},{key:`RELIGION`,keywords:[`dini`,`religio`]},{key:`LOCAL`,keywords:[`yerel`,`local`,`regional`]},{key:`NATIONAL`,keywords:[`ulusal`,`national`,`genel`,`general`]},{key:`UHD`,keywords:[`4k`,`uhd`]},{key:`OTHER`,keywords:[]}]},Xs=Js.platforms,Zs=Ys.genres.map(e=>e.key),Qs=RegExp(`[${Js.separators.replace(/[\]\\\-^]/g,`\\$&`)}]`,`g`);function $s(e){let t=` `+As(e).replace(Qs,` `)+` `;for(let e of Xs)if(e.keywords.some(e=>t.indexOf(e)>=0)&&!(e.excludes||[]).some(e=>t.indexOf(e)>=0))return e;return null}function ec(e){return e.logo?e.logo.startsWith(`https://`)?e.logo:`https://commons.wikimedia.org/wiki/Special:FilePath/${e.logo}?width=320`:null}function tc(e){let t=` `+As(e)+` `,n=Ys.genres.find(e=>e.keywords.some(e=>t.indexOf(e)>=0));return n?n.key:`OTHER`}function nc(e,t){return e.map((e,t)=>[e,t]).sort((e,n)=>t(e[0],n[0])||e[1]-n[1]).map(e=>e[0])}function rc(e,t){let n=new Map;for(let r of e){let e=t(r);if(e===null)continue;let i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function ic(e,t,n){let r=e.filter(e=>!e.hidden&&!e.locked),i=e=>e.map(e=>e.id),a=[];return t===`COUNTRY`?(rc(r,e=>(e.country===void 0?Ls(e.name):e.country)||n).forEach((e,t)=>a.push({key:`country:${t}`,categoryIds:i(e),country:t})),nc(a,(e,t)=>Number(t.country===n)-Number(e.country===n)||t.categoryIds.length-e.categoryIds.length)):t===`GENRE`?(rc(r,e=>tc(e.name)).forEach((e,t)=>a.push({key:`genre:${t}`,categoryIds:i(e),genre:t})),nc(a,(e,t)=>Zs.indexOf(e.genre)-Zs.indexOf(t.genre))):t===`PLATFORM`?(rc(r,e=>{var t,n;return(t=(n=$s(e.name))==null?void 0:n.key)==null?null:t}).forEach((e,t)=>{let n=Xs.find(e=>e.key===t);a.push({key:`platform:${t}`,categoryIds:i(e),platform:n})}),nc(a,(e,t)=>Xs.indexOf(e.platform)-Xs.indexOf(t.platform))):a}var ac=e=>/^\s*()?#EXT(M3U|INF)/.test(e),oc=e=>e.split(/\s+/).filter(Boolean);async function sc(e){let t=oc(e);if(!t.length)throw new ur(`NOT_FOUND`);for(let e of t){let t=``;if(await _r(await gr(e),e=>(t+=e,t.trim().length<16)),!ac(t))throw new ur(`PARSE`,`not m3u`)}}function cc(e){let t=e.trim().replace(/\/+$/,``);return/^https?:\/\//i.test(t)||(t=`http://${t}`),t.split(`/player_api.php`)[0].split(`/get.php`)[0].replace(/\/+$/,``)}var lc=(e,t,n={})=>{let r=[`username=${encodeURIComponent(e.username)}`,`password=${encodeURIComponent(e.password)}`];t&&r.push(`action=${t}`);for(let e in n)r.push(`${e}=${encodeURIComponent(n[e])}`);return`${cc(e.url)}/player_api.php?${r.join(`&`)}`},uc=(e,t,n)=>`${cc(e.url)}/movie/${e.username}/${e.password}/${t}.${n}`,dc=(e,t,n)=>`${cc(e.url)}/series/${e.username}/${e.password}/${t}.${n}`,fc=(e,t)=>{let n=e[t];return n==null||n===``||typeof n==`object`?null:String(n)},pc=(e,t)=>{let n=parseFloat(fc(e,t)||``);return isNaN(n)?null:n};async function mc(e){let t=``;await _r(await gr(e),e=>{t+=e});try{let e=JSON.parse(t);return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}catch(e){throw new ur(`PARSE`,`json`)}}async function hc(e){let t=await mc(lc(e)),n=t.user_info;if(!n||typeof n!=`object`||pc(n,`auth`)===0)throw new ur(`AUTH`);let r=(fc(n,`status`)||``).toLowerCase();if(r===`expired`)throw new ur(`EXPIRED`);if(r&&r!==`active`)throw new ur(`AUTH`,r);return t}var gc=new URL(`worker-VohmfNTb.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href,_c=e=>/\.m3u8?$/i.test(e);function vc(e){return new Promise(t=>e.listFiles(t,()=>t([])))}function yc(e){return new Promise((t,n)=>tizen.filesystem.resolve(e,t,n,`r`))}async function bc(){let e=await new Promise(e=>tizen.filesystem.listStorages(e,()=>e([]))),t=[],n=async(e,r)=>{for(let i of await vc(e))i.isDirectory?r<2&&!i.name.startsWith(`.`)&&await n(i,r+1):_c(i.name)&&t.push({name:i.name,path:i.toURI()})};for(let t of e)if(t.type===`EXTERNAL`&&t.state===`MOUNTED`)try{await n(await yc(t.label),0)}catch(e){}return t}async function xc(e){let t=await yc(e);return new Promise((e,n)=>t.readAsText(e,n,`UTF-8`))}var Sc=[`HERO`,`CONTINUE`,`UP_NEXT`,`NEW_EPISODES`,`FAVORITE_CHANNELS`,`STARTING_SOON`,`RECENT_CHANNELS`,`TONIGHT_SPORTS`,`SCHEDULE`,`PLATFORMS`,`FOR_YOU`,`NEW_MOVIES`,`NEW_SERIES`,`TOP_RATED`,`GENRES`],Cc={groupMode:`CATEGORY`,numbering:`GLOBAL`,previewAutoplay:!0,fallbackToPrevious:!0,aspect:`fit`,colorKeys:[`FAVORITE`,`AUDIO`,`SUBTITLES`,`ASPECT`],lastChannelId:null,homeShelves:Sc,knownShelves:Sc,pinHash:null,hideLocked:!1,adultAutoLock:!0,searchHistory:[],startScreen:`home`,accent:`blue`,theme:`navy`,filterWords:[],epgHours:12,epgOffsetMin:0,autoNextEpisode:!0,preferredAudio:`tr`,preferredSubtitle:null,subtitleScale:1,subtitleColor:0,subtitleBackground:!1,autoSubtitles:!1,rememberTracks:!0,stremioAddons:[]},wc=`utopya.settings`,Tc=[`HERO`,`CONTINUE`,`UP_NEXT`,`FAVORITE_CHANNELS`,`RECENT_CHANNELS`,`TONIGHT_SPORTS`,`SCHEDULE`,`PLATFORMS`,`NEW_MOVIES`,`NEW_SERIES`,`TOP_RATED`];function Ec(e,t){let n=e.slice();return Sc.forEach((e,r)=>{if(t.indexOf(e)>=0||n.indexOf(e)>=0)return;let i=0;for(let e=r-1;e>=0;e--){let t=n.indexOf(Sc[e]);if(t>=0){i=t+1;break}}n.splice(i,0,e)}),n}function Dc(){try{let e=JSON.parse(localStorage.getItem(wc)||`{}`);return e.homeShelves&&(e.homeShelves=Ec(e.homeShelves,e.knownShelves||Tc)),V(V(V({},Cc),e),{},{knownShelves:Sc})}catch(e){return Cc}}var q=I(Dc()),Oc=()=>{q.value=Dc()};function kc(e){q.value=V(V({},q.value),e);try{localStorage.setItem(wc,JSON.stringify(q.value))}catch(e){}}var Ac={blue:`#4FC3F7`,orange:`#FFA726`,green:`#66BB6A`,purple:`#B388FF`,red:`#FF5252`},jc={navy:[`#070C18`,`#111C33`,`#1A2947`,`#0D1830`],amoled:[`#000000`,`#0E0E0E`,`#1C1C1C`,`#000000`],graphite:[`#0E0F12`,`#1A1C21`,`#262A31`,`#16181D`],forest:[`#06120D`,`#0F2219`,`#183327`,`#0B1E15`],wine:[`#14070C`,`#241018`,`#351823`,`#1E0B12`]},Mc=e=>{let t=parseInt(e.slice(1),16);return`${t>>16}, ${t>>8&255}, ${t&255}`};function Nc(){let e=document.documentElement.style,[t,n,r,i]=jc[q.value.theme],a=Ac[q.value.accent];e.setProperty(`--bg`,t),e.setProperty(`--surface`,n),e.setProperty(`--surface-variant`,r),e.setProperty(`--bg-top`,i),e.setProperty(`--glass`,`rgba(${Mc(n)}, 0.72)`),e.setProperty(`--accent`,a),e.setProperty(`--accent-rgb`,Mc(a))}q.subscribe(Nc);var Pc=I(null),Fc=I(null),Ic=I(null),Lc=`utopya.activeProvider`;async function Rc(){let e=await K.providers.toArray(),t=null;try{t=Number(localStorage.getItem(Lc))||null}catch(e){}return e.some(e=>e.id===t)||(t=e.length?e[0].id:null),Pc.value=e,Fc.value=t,e}function zc(e){Fc.value=e;try{localStorage.setItem(Lc,String(e))}catch(e){}}async function Bc(e,t){if(e.type===`xtream`)await hc(e);else if(t!==void 0){if(!/^\s*()?#EXT(M3U|INF)/.test(t.slice(0,64)))throw new ur(`PARSE`,`not m3u`)}else await sc(e.url)}function Vc(){let e=(Pc.value||[]).find(e=>e.id===Fc.value);e&&e.lastSync&&Date.now()-(e.lastEpgSync||0)>q.peek().epgHours*36e5&&Wc(e.id,void 0,`epg`)}async function Hc(e){let t=await K.providers.add(e);return await Rc(),zc(t),t}var Uc=null;async function Wc(e,t,n=`all`){let r=(Pc.value||[]).find(t=>t.id===e);if(n===`all`&&t===void 0&&r&&r.type===`m3u`&&/^file:/i.test(r.url))try{t=await xc(r.url)}catch(t){Ic.value={providerId:e,failed:`NOT_FOUND`,detail:r.url};return}Uc||(Uc=new Worker(gc,{type:`classic`}),Uc.onmessage=e=>{let t=e.data;(t.type!==`progress`||t.count===0)&&console.log(`senkron`,t.type,`stage`in t?t.stage:``,`error`in t?`${t.error} ${t.detail}`:``),t.type===`progress`?Ic.value={providerId:t.providerId,stage:t.stage,count:t.count}:t.type===`done`?(Ic.value={providerId:t.providerId,stage:`DONE`,count:t.counts.live},Rc()):Ic.value={providerId:t.providerId,failed:t.error,detail:t.detail}},Uc.onerror=e=>{console.error(`worker hatası`,e.message,e.filename,e.lineno);let t=Ic.value;t&&(Ic.value={providerId:t.providerId,failed:`UNKNOWN`,detail:e.message})}),Ic.value={providerId:e,stage:`CONNECTING`,count:0},Uc.postMessage({type:`sync`,providerId:e,fileText:t,mode:n,epgOffsetMin:q.peek().epgOffsetMin})}var Gc={name:``,url:``,username:``,password:``,epg:``,userAgent:``,liveFormat:`ts`};function Kc(e,t,n){return n?n.name.replace(/\.m3u8?$/i,``):t.replace(/^[a-z]+:\/\//i,``).split(/[/:\s]/)[0]||(e===`xtream`?`Xtream`:`M3U`)}function qc(e){let[t,n]=N({s:`choose`}),[r,i]=N(Gc),[a,o]=N(null),[s,c]=N(null),[l,u]=N(!1),[d,f]=N(`xtream`),p=F(null);P(()=>{L(p.current)},[t.s,t.s===`form`?t.kind:``]);let m=e=>{f(e),c(null),u(!1),n({s:`form`,kind:e})};return Kt(r=>{if(r===`back`)return t.s===`choose`?e.onExit():t.s===`usb`?n({s:`form`,kind:`file`}):t.s===`form`?n({s:`choose`}):t.s===`sync`&&e.onDone(),!0}),M(`div`,{class:`onboarding`,ref:p,children:[t.s===`choose`&&M(Yc,{open:m}),t.s===`form`&&M(el,{kind:t.kind,form:r,edit:e=>i(V(V({},r),e)),file:a,pickFile:async()=>{Et?n({s:`usb`}):Jc(e=>o(e))},error:s,missing:l,submit:async()=>{let e=d,t=e===`file`?(a==null?void 0:a.uri)||``:mr(r.url);if(!t||e===`xtream`&&(!r.username.trim()||!r.password)){u(!0);return}u(!1),c(null);let i={name:r.name.trim()||Kc(e,t,a),type:e===`xtream`?`xtream`:`m3u`,url:e===`xtream`?cc(t):t,username:r.username.trim(),password:r.password,epgUrls:r.epg.split(/[\s,]+/).map(mr).filter(e=>/^https?:/i.test(e)),userAgent:r.userAgent.trim()||null,liveFormat:r.liveFormat,createdAt:Date.now()};n({s:`validating`});try{await Bc(i,a==null?void 0:a.text);let t=await Hc(i);Wc(t,e===`file`?a.text:void 0),n({s:`sync`,providerId:t})}catch(t){console.warn(`doğrulama`,t),c(fr(t)),n({s:`form`,kind:e})}},back:()=>n({s:`choose`})}),t.s===`usb`&&M(tl,{onPick:async e=>{try{o({name:e.name,uri:e.path,text:await xc(e.path)}),c(null)}catch(e){c(`NOT_FOUND`)}n({s:`form`,kind:`file`})},back:()=>n({s:`form`,kind:`file`})}),t.s===`validating`&&M(`p`,{class:`center-msg`,children:R(`onb_validating`)}),t.s===`sync`&&M(nl,{providerId:t.providerId,onDone:e.onDone,back:()=>m(d)})]})}function Jc(e){let t=document.createElement(`input`);t.type=`file`,t.accept=`.m3u,.m3u8,audio/x-mpegurl`,t.onchange=()=>{let n=t.files&&t.files[0];if(!n)return;let r=new FileReader;r.onload=()=>e({name:n.name,uri:`file:${n.name}`,text:String(r.result)}),r.readAsText(n)},t.click()}function Yc({open:e}){return M(`div`,{class:`onb-choose`,children:[M(`div`,{class:`onb-brand`,children:[M(`div`,{class:`brand-mark`,children:M(z,{name:`play`})}),M(`h1`,{children:R(`app_name`)}),M(`p`,{class:`tagline muted`,children:R(`onb_tagline`)}),M(`ul`,{class:`features`,children:[M(Xc,{icon:`live`,text:R(`onb_feat_live`)}),M(Xc,{icon:`movie`,text:R(`onb_feat_vod`)}),M(Xc,{icon:`grid`,text:R(`tz_feat_tools`)})]}),M(`p`,{class:`note muted`,children:R(`onb_no_content`)})]}),M(`div`,{class:`onb-options`,children:[M(`h2`,{children:R(`onb_how`)}),M(Zc,{icon:`dns`,tint:`#4FC3F7`,title:R(`onb_xtream`),desc:R(`onb_xtream_desc`),badge:R(`onb_badge_common`),initial:!0,onClick:()=>e(`xtream`)}),M(Zc,{icon:`link`,tint:`#66BB6A`,title:R(`onb_m3u_url`),desc:R(`onb_m3u_url_desc`),onClick:()=>e(`m3u`)}),M(Zc,{icon:`file`,tint:`#90A4AE`,title:R(`onb_m3u_file`),desc:R(`tz_m3u_file_desc`),onClick:()=>e(`file`)})]})]})}function Xc({icon:e,text:t}){return M(`li`,{children:[M(`span`,{class:`feature-icon`,children:M(z,{name:e})}),t]})}function Zc(e){return M(`button`,{class:`option`,"data-focus":!0,"data-focus-default":e.initial||void 0,onClick:e.onClick,children:[M(`span`,{class:`option-icon`,style:{color:e.tint,background:Qc(e.tint,.16)},children:M(z,{name:e.icon})}),M(`span`,{class:`option-text`,children:[M(`span`,{class:`option-title`,children:[e.title,e.badge&&M(`span`,{class:`badge`,style:{color:e.tint,background:Qc(e.tint,.2)},children:e.badge})]}),M(`span`,{class:`muted`,children:e.desc})]}),M(z,{name:`chevron`,class:`muted`})]})}var Qc=(e,t)=>{let n=parseInt(e.slice(1),16);return`rgba(${n>>16}, ${n>>8&255}, ${n&255}, ${t})`};function $c({title:e,hint:t,back:n}){return M(`div`,{class:`step-header`,children:[M(`button`,{class:`btn outline`,"data-focus":!0,onClick:n,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{children:[M(`h1`,{children:e}),t&&M(`p`,{class:`muted`,children:t})]})]})}function el(e){let{kind:t,form:n,edit:r}=e,[i,a]=t===`xtream`?[R(`onb_xtream`),R(`onb_hint_xtream`)]:t===`m3u`?[R(`onb_m3u_url`),R(`onb_hint_m3u`)]:[R(`onb_m3u_file`),R(`tz_hint_file`)];return M(`div`,{class:`form-step`,children:[M($c,{title:i,hint:a,back:e.back}),M(`div`,{class:`form-row`,children:[M(`div`,{class:`form-panel glass`,"data-focus-group":`form-${t}`,children:[t===`m3u`&&M(hn,{label:R(`onb_url`),value:n.url,onInput:e=>r({url:e}),placeholder:`http://…/playlist.m3u`,initial:!0}),t===`file`&&M(`div`,{class:`field`,children:[e.file&&M(`p`,{class:`file-chosen`,children:R(`onb_file_chosen`,e.file.name)}),M(`button`,{class:`btn`,"data-focus":!0,"data-focus-default":!0,onClick:e.pickFile,children:[M(z,{name:`folder`}),R(`onb_pick_file`)]})]}),t===`xtream`&&M(x,{children:[M(hn,{label:R(`onb_server`),value:n.url,onInput:e=>r({url:e}),placeholder:`http://server:8080`,initial:!0}),M(`div`,{class:`field-pair`,children:[M(hn,{label:R(`onb_username`),value:n.username,onInput:e=>r({username:e})}),M(hn,{label:R(`onb_password`),value:n.password,onInput:e=>r({password:e}),password:!0})]})]}),M(`button`,{class:`btn primary connect`,"data-focus":!0,onClick:e.submit,children:R(`onb_connect`)}),M(`h3`,{class:`muted`,children:R(`onb_optional`)}),M(hn,{label:R(`onb_name`),value:n.name,onInput:e=>r({name:e}),placeholder:R(`onb_name_ph`)}),M(hn,{label:R(`onb_epg`),value:n.epg,onInput:e=>r({epg:e}),placeholder:`http://…/epg.xml.gz`}),t!==`file`&&M(hn,{label:R(`onb_user_agent`),value:n.userAgent,onInput:e=>r({userAgent:e})}),t===`xtream`&&M(`div`,{class:`field`,children:[M(`span`,{class:`field-label`,children:R(`onb_live_format`)}),M(`div`,{class:`row`,children:[`ts`,`m3u8`].map(e=>M(`button`,{class:`chip${n.liveFormat===e?` selected`:``}`,"data-focus":!0,onClick:()=>r({liveFormat:e}),children:e.toUpperCase()},e))})]})]}),M(`div`,{class:`form-side`,children:[e.missing&&M(`p`,{class:`error-box`,children:R(`onb_required`)}),e.error&&M(`p`,{class:`error-box`,children:R(dr(e.error))}),M(`div`,{class:`onb-help glass`,children:[M(`h3`,{children:R(`tz_onb_help_title`)}),M(`ul`,{children:[t!==`file`&&M(`li`,{children:R(`tz_onb_help_keyboard`)}),t===`xtream`&&M(`li`,{children:R(`tz_onb_help_server`)}),t===`xtream`&&M(`li`,{children:R(`tz_onb_help_creds`)}),t===`m3u`&&M(`li`,{children:R(`tz_onb_help_m3u`)}),t===`file`&&M(`li`,{children:R(`tz_onb_help_file`)}),M(`li`,{children:R(`tz_onb_help_epg`)}),M(`li`,{children:R(`tz_onb_help_privacy`)})]})]})]})]})]})}function tl({onPick:e,back:t}){let[n,r]=N(null),i=F(null);return P(()=>{bc().then(r,()=>r([]))},[]),P(()=>{n&&L(i.current)},[n]),M(`div`,{class:`form-step`,children:[M($c,{title:R(`tz_usb_title`),back:t}),M(`div`,{class:`usb-list glass`,ref:i,children:[n===null&&M(`p`,{class:`muted`,children:R(`loading`)}),n&&!n.length&&M(`p`,{class:`muted`,children:R(`tz_usb_empty`)}),n&&n.map(t=>M(`button`,{class:`option`,"data-focus":!0,onClick:()=>e(t),children:[M(`span`,{class:`option-icon`,children:M(z,{name:`file`})}),M(`span`,{class:`option-text`,children:[M(`span`,{class:`option-title`,children:t.name}),M(`span`,{class:`muted`,children:decodeURI(t.path.replace(/^file:\/\//,``))})]})]},t.path))]})]})}function nl({providerId:e,onDone:t,back:n}){let r=Ic.value,i=r&&r.providerId===e?r:null;P(()=>{i&&`stage`in i&&i.stage===`DONE`&&t()},[i]);let a=i&&`failed`in i?i:null,o=F(null);return P(()=>{L(o.current)},[!!a]),M(`div`,{class:`sync-step`,ref:o,children:[M(`h1`,{children:R(`sync_title`)}),a?M(x,{children:[M(`p`,{class:`error-text`,children:R(`sync_failed`)}),M(`p`,{children:R(dr(a.failed))}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>Wc(e),children:R(`retry`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:n,children:R(`back`)})]})]}):M(x,{children:[M(`p`,{class:`stage`,children:rl(i&&`stage`in i?i:null)}),M(`div`,{class:`indeterminate`,children:M(`span`,{})}),M(`button`,{class:`btn outline`,"data-focus":!0,"data-focus-default":!0,onClick:t,children:R(`sync_background`)})]})]})}function rl(e){switch(e&&e.stage){case`CATEGORIES`:return R(`sync_categories`);case`LIVE`:return R(`sync_live`,e.count);case`MOVIES`:return R(`sync_movies`,e.count);case`SERIES`:return R(`sync_series`,e.count);case`EPG`:return R(`sync_epg`,e.count);case`DONE`:return R(`sync_done`);default:return R(`sync_connecting`)}}function il(e){let t=typeof e==`string`?e:``;try{let e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);let r=new TextDecoder(`utf-8`).decode(n);return/[\uFFFD\u0000-\u0008]/.test(r)?t:r}catch(e){return t}}function al(e,t,n,r){let i=[];for(let a of e){let e=Number(a.start_timestamp),o=Number(a.stop_timestamp==null?a.end_timestamp:a.stop_timestamp);e&&o&&(o<=e&&(o+=86400),i.push({id:xs(n,e*1e3),providerId:t,key:n,start:e*1e3,stop:o*1e3,title:il(a.title),desc:il(a.description)||null,category:null,stamp:r}))}return i.sort((e,t)=>e.start-t.start)}var ol=432e5;async function sl(e){let t=await K.epgLinks.get(e);return t?t.key:null}async function cl(e,t,n){let r=await sl(e);return r?(await K.programs.where(`[key+start]`).between([r,t-ol],[r,n],!0,!1).toArray()).filter(e=>e.stop>t):[]}async function ll(e,t,n){let r=await cl(e.id,t,n);return!r.some(e=>e.stop>Date.now())&&await ml(e)&&(r=await cl(e.id,t,n)),r}var ul=(e,t)=>{let n=null;for(let r of e)r.start<=t&&r.stop>t&&(n=r);let r=n?n.stop:t;return{now:n,next:e.find(e=>e.start>=r)||null}};async function dl(e,t=Date.now()){let n=await ll(e,t-1,t+432e5);return n.length?ul(n,t):ul(await gl(e),t)}var fl=e=>{let t=(Pc.value||[]).find(t=>t.id===e.providerId);return t&&t.type===`xtream`?t:null},pl=new Map;async function ml(e){let t=fl(e),n=pl.get(e.id)||0;if(!t||Date.now()-n<18e5)return!1;pl.set(e.id,Date.now());try{let n=await K.epgLinks.get(e.id);if(n&&n.manual)return!1;let r=await mc(lc(t,`get_simple_data_table`,{stream_id:e.remoteId})),i=`${t.id}|xt:${e.remoteId}`,a=al(r.epg_listings||[],t.id,i,Date.now());return a.some(e=>e.stop>Date.now())?(await K.programs.bulkPut(a),await K.epgLinks.put({id:e.id,providerId:t.id,key:i,manual:!1}),!0):!1}catch(e){return console.warn(`get_simple_data_table`,e),!1}}var hl=new Map;async function gl(e){let t=fl(e);if(!t)return[];let n=hl.get(e.id);if(n&&Date.now()-n.at<6e5)return n.list;let r=[];try{r=al((await mc(lc(t,`get_short_epg`,{stream_id:e.remoteId,limit:`4`}))).epg_listings||[],t.id,`${t.id}|xs:${e.remoteId}`,Date.now())}catch(e){}return hl.delete(e.id),hl.set(e.id,{at:Date.now(),list:r}),hl.size>200&&hl.delete(hl.keys().next().value),r}var _l=(e,t=Date.now())=>Math.max(0,Math.min(1,(t-e.start)/(e.stop-e.start))),vl=e=>e<10?`0${e}`:`${e}`,yl=e=>{let t=new Date(e);return`${vl(t.getHours())}:${vl(t.getMinutes())}`},bl=e=>`${yl(e.start)} – ${yl(e.stop)}`,xl=I(Date.now());setInterval(()=>xl.value=Date.now(),3e5);var Sl=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Cl(e){let t=new TextEncoder().encode(e),n=t.length,r=n+9+63>>6<<6,i=new Uint8Array(r);i.set(t),i[n]=128,new DataView(i.buffer).setUint32(r-4,n*8);let a=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],o=Array(64),s=new DataView(i.buffer),c=(e,t)=>e>>>t|e<<32-t;for(let e=0;e<r;e+=64){for(let t=0;t<16;t++)o[t]=s.getUint32(e+t*4);for(let e=16;e<64;e++){let t=c(o[e-15],7)^c(o[e-15],18)^o[e-15]>>>3,n=c(o[e-2],17)^c(o[e-2],19)^o[e-2]>>>10;o[e]=o[e-16]+t+o[e-7]+n|0}let[t,n,r,i,l,u,d,f]=a;for(let e=0;e<64;e++){let a=f+(c(l,6)^c(l,11)^c(l,25))+(l&u^~l&d)+Sl[e]+o[e]|0,s=(c(t,2)^c(t,13)^c(t,22))+(t&n^t&r^n&r)|0;f=d,d=u,u=l,l=i+a|0,i=r,r=n,n=t,t=a+s|0}a[0]=a[0]+t|0,a[1]=a[1]+n|0,a[2]=a[2]+r|0,a[3]=a[3]+i|0,a[4]=a[4]+l|0,a[5]=a[5]+u|0,a[6]=a[6]+d|0,a[7]=a[7]+f|0}return a.map(e=>(`0000000`+(e>>>0).toString(16)).slice(-8)).join(``)}var wl=new Set,Tl=I(0),El=I(new Map),Dl=I(new Map);async function Ol(e){let[t,n]=await Promise.all([K.catState.where(`providerId`).equals(e).toArray(),K.chanState.where(`providerId`).equals(e).toArray()]);El.value=new Map(t.map(e=>[e.id,e])),Dl.value=new Map(n.map(e=>[e.id,e])),Tl.value++}function kl(e){let t=El.value.get(e.id);return t&&t.locked!==void 0?t.locked:e.adult&&q.value.adultAutoLock}function Al(e,t){return!q.value.pinHash||t!==void 0&&wl.has(t)||e&&wl.has(e.id)?!1:t!==void 0&&!!(Dl.value.get(t)||{}).locked||!!e&&kl(e)}function jl(e,t){e!==null&&wl.add(e),t!==void 0&&wl.add(t)}function Ml(e){let t=El.value.get(e.id);return!(t&&t.hidden||q.value.hideLocked&&q.value.pinHash&&kl(e)&&!wl.has(e.id))}var Nl=e=>!!(Dl.value.get(e)||{}).hidden;async function Pl(e,t,n,r){let i=K[e],a=await i.get(t)||{id:t,providerId:n};await i.put(V(V({},a),r)),await Ol(n)}var Fl=(e,t,n)=>Pl(`catState`,e,t,n),Il=(e,t,n)=>Pl(`chanState`,e,t,n),Ll=e=>Cl(`utopya:${e}`),Rl=()=>!!q.peek().pinHash,zl=e=>!q.peek().pinHash||Ll(e)===q.peek().pinHash;function Bl(e){wl.clear(),kc({pinHash:e?Ll(e):null}),Tl.value++}var Vl=e=>e.type===`cat`?`cat:${e.id}`:e.type===`ugroup`?`ug:${e.id}`:e.type===`group`?e.key:e.type,Hl=50;async function Ul(e,t){let n=await Wl(e,t),r=(await K.categories.where(`[providerId+kind]`).equals([e,`live`]).toArray()).filter(e=>!Ml(e)),i=new Set;if(t.type!==`cat`)for(let e of r)for(let t of await K.channels.where(`[categoryId+number]`).between([e.id,fs.minKey],[e.id,fs.maxKey]).primaryKeys())i.add(t);return n.filter(e=>!i.has(e)&&!Nl(e))}async function Wl(e,t){if(t.type===`all`)return K.channels.where(`[providerId+number]`).between([e,fs.minKey],[e,fs.maxKey]).primaryKeys();if(t.type===`cat`)return K.channels.where(`[categoryId+number]`).between([t.id,fs.minKey],[t.id,fs.maxKey]).primaryKeys();if(t.type===`group`){let e=[];for(let n of t.ids)await K.channels.where(`[categoryId+number]`).between([n,fs.minKey],[n,fs.maxKey]).eachKey((t,n)=>{e.push([t[1],n.primaryKey])});return e.map((e,t)=>[e[0],t,e[1]]).sort((e,t)=>e[0]-t[0]||e[1]-t[1]).map(e=>e[2])}return t.type===`ugroup`?(await K.groupItems.where(`groupId`).equals(t.id).toArray()).sort((e,t)=>e.order-t.order).map(e=>e.channelId):t.type===`fav`?(await K.favorites.where(`[providerId+kind]`).equals([e,`live`]).toArray()).sort((e,t)=>e.order-t.order).map(e=>e.id):(await K.recents.where(`[providerId+kind]`).equals([e,`live`]).toArray()).sort((e,t)=>t.at-e.at).slice(0,Hl).map(e=>e.id)}var Gl=class e{constructor(e){lr(this,`ids`,void 0),lr(this,`pages`,new Map),this.ids=e}page(t){let n=this.pages.get(t);return n||(n=K.channels.bulkGet(this.ids.slice(t*e.PAGE,(t+1)*e.PAGE)),this.pages.set(t,n),this.pages.size>8&&this.pages.delete(this.pages.keys().next().value)),n}async range(t,n){let r=e.PAGE,i=[];for(let e=Math.floor(t/r);e<=Math.floor((n-1)/r);e++)(await this.page(e)).forEach((a,o)=>{let s=e*r+o;s>=t&&s<n&&i.push(a)});return i}};lr(Gl,`PAGE`,40);async function Kl(e,t,n){return await K.favorites.get(n)?(await K.favorites.delete(n),!1):(await K.favorites.put({id:n,providerId:e,kind:t,order:Date.now()}),!0)}async function ql(e,t,n){await K.recents.put({id:n,providerId:e,kind:t,at:Date.now()})}var Jl=e=>K.groups.where(`providerId`).equals(e).sortBy(`order`);async function Yl(e,t){return K.groups.add({providerId:e,name:t,order:Date.now()})}var Xl=(e,t)=>K.groupItems.put({groupId:e,channelId:t,order:Date.now()}),Zl=(e,t)=>K.groupItems.delete([e,t]);async function Ql(e){await K.groupItems.where(`groupId`).equals(e).delete(),await K.groups.delete(e)}async function $l(e,t,n,r){if(r<0||r>=t.length)return;let[i,a]=await Promise.all([K.groupItems.get([e,t[n]]),K.groupItems.get([e,t[r]])]);i&&a&&await K.groupItems.bulkPut([V(V({},i),{},{order:a.order}),V(V({},a),{},{order:i.order})])}var J=(e,t)=>{let n=e?e[t]:null;return n==null||n===``||typeof n==`object`?null:String(n)},eu=(e,t)=>{let n=parseFloat(J(e,t)||``);return isNaN(n)?null:n},tu=(e,t)=>{let n=e?e[t]:null;return Array.isArray(n)?typeof n[0]==`string`&&n[0]?n[0]:null:J(e,t)};function nu(e){if(!e)return null;let t=/^(\d+):(\d{2})(?::(\d{2}))?$/.exec(e.trim());if(t)return t[1]*3600+t[2]*60+(t[3]?+t[3]:0);let n=/(\d+)\s*min/i.exec(e);return n?n[1]*60:null}var ru=e=>(Pc.value||[]).find(t=>t.id===e);async function iu(e){let t=ru(e.providerId);if(e.detailLoaded||!t||t.type!==`xtream`)return e;try{let n=await mc(lc(t,`get_vod_info`,{vod_id:e.remoteId})),r=n.info,i=n.movie_data,a=J(i,`container_extension`),o=eu(r,`rating`),s={poster:e.poster||J(r,`movie_image`)||J(r,`cover_big`),backdrop:tu(r,`backdrop_path`)||e.backdrop||null,plot:J(r,`plot`)||J(r,`description`)||e.plot,cast:J(r,`cast`)||J(r,`actors`),director:J(r,`director`),genre:J(r,`genre`)||e.genre,year:(J(r,`releasedate`)||J(r,`release_date`)||``).slice(0,4)||e.year,rating:o&&o>0?o:e.rating,durationSec:eu(r,`duration_secs`)||nu(J(r,`duration`)),tmdbId:J(r,`tmdb_id`)||J(r,`tmdb`),url:a?uc(t,e.remoteId,a):e.url,detailLoaded:!0};return await K.movies.update(e.id,s),V(V({},e),s)}catch(t){return console.warn(`get_vod_info`,t),e}}async function au(e){let t=ru(e.providerId),n=()=>K.episodes.where(`seriesId`).equals(e.id).toArray();if(e.detailLoaded||!t||t.type!==`xtream`)return{series:e,episodes:ou(await n())};try{let n=await mc(lc(t,`get_series_info`,{series_id:e.remoteId})),r=n.info,i=eu(r,`rating`),a={poster:e.poster||J(r,`cover`),backdrop:tu(r,`backdrop_path`)||e.backdrop,plot:J(r,`plot`)||e.plot,cast:J(r,`cast`)||e.cast,genre:J(r,`genre`)||e.genre,rating:i&&i>0?i:e.rating,tmdbId:J(r,`tmdb_id`)||J(r,`tmdb`),detailLoaded:!0},o=n.episodes,s=Array.isArray(o)?o.filter(Array.isArray).map(e=>[null,e]):o&&typeof o==`object`?Object.keys(o).map(e=>[e,o[e]]).filter(e=>Array.isArray(e[1])):[],c=Date.now(),l=[];for(let[n,r]of s)r.forEach((r,i)=>{let a=J(r,`id`);if(!a)return;let o=r.info,s=eu(r,`season`)||(n?parseInt(n,10):0)||1;l.push({id:xs(e.providerId,`episode`,a),providerId:e.providerId,stamp:c,seriesId:e.id,remoteId:a,season:s,episode:eu(r,`episode_num`)||i+1,title:J(r,`title`)||`S${s}E${i+1}`,url:dc(t,a,J(r,`container_extension`)||`mp4`),poster:J(o,`movie_image`)||null,plot:J(o,`plot`),durationSec:eu(o,`duration_secs`)||nu(J(o,`duration`))})});return await K.transaction(`rw`,K.series,K.episodes,async()=>{await K.series.update(e.id,a),await K.episodes.where(`seriesId`).equals(e.id).delete(),await K.episodes.bulkPut(l)}),{series:V(V({},e),a),episodes:ou(l)}}catch(t){return console.warn(`get_series_info`,t),{series:e,episodes:ou(await n())}}}var ou=e=>e.sort((e,t)=>e.season-t.season||e.episode-t.episode),su=.95;async function cu(e,t,n,r,i,a){if(!a||i<5e3)return;let o=i/a>=su;await K.progress.put({id:t,providerId:n,kind:e,seriesId:r,position:o?0:i,duration:a,watched:o,updated:Date.now()})}async function lu(e,t,n,r,i){if(!i)return K.progress.delete(t);await K.progress.put({id:t,providerId:n,kind:e,seriesId:r,position:0,duration:0,watched:!0,updated:Date.now()})}var uu=e=>K.progress.get(e);async function du(e){let t=await K.progress.bulkGet(e),n=new Map;return t.forEach(e=>e&&n.set(e.id,e)),n}async function fu(e){let t=e.filter(e=>!e.episode&&e.item&&!e.item.backdrop&&!e.item.detailLoaded).slice(0,20);if(!t.length)return e;let n=await Promise.all(t.map(e=>Promise.race([iu(e.item),new Promise(e=>setTimeout(()=>e(null),3e3))]))),r=new Map;return n.forEach(e=>{e&&r.set(e.id,e)}),e.map(e=>e.item&&r.has(e.item.id)?V(V({},e),{},{item:r.get(e.item.id)}):e)}var pu=e=>e===`movie`?K.movies:K.series,mu=e=>({key:`i${e.id}`,id:e.id,title:e.name,poster:e.poster,rating:e.rating,item:e});async function hu(e,t){return K.categories.where(`[providerId+kind]`).equals([e,t]).sortBy(`order`)}async function gu(e,t,n=30){return pu(t).where(`[providerId+added]`).between([e,fs.minKey],[e,fs.maxKey]).reverse().limit(n).toArray()}async function _u(e,t){let n=n=>n.where(`[categoryId+added]`).between([e,fs.minKey],[e,fs.maxKey]).reverse().limit(t).toArray(),r=await n(pu(`movie`));return r.length?r:n(pu(`series`))}async function vu(e,t){let n=(await K.favorites.where(`[providerId+kind]`).equals([e,t]).toArray()).sort((e,t)=>t.order-e.order);return(await pu(t).bulkGet(n.map(e=>e.id))).filter(e=>!!e)}async function yu(e,t){let n=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>!e.watched&&e.position>0&&(t===`movie`?e.kind===`movie`:e.kind===`episode`)).sort((e,t)=>t.updated-e.updated),r=[],i=new Set;for(let e of n){if(r.length>=30)break;let n=e.duration?e.position/e.duration:0;if(t===`movie`){let t=await K.movies.get(e.id);t&&r.push({key:`c${t.id}`,id:t.id,title:t.name,poster:t.poster,rating:null,progress:n,item:t,updated:e.updated})}else if(e.seriesId!==null&&!i.has(e.seriesId)){i.add(e.seriesId);let[t,a]=await Promise.all([K.series.get(e.seriesId),K.episodes.get(e.id)]);if(t&&a){let i=`S${bu(a.season)}E${bu(a.episode)}`;r.push({key:`c${a.id}`,id:t.id,title:`${t.name} · ${i}`,poster:t.poster||a.poster,rating:null,progress:n,episode:a,item:t,updated:e.updated})}}}return r}var bu=e=>e<10?`0${e}`:`${e}`,xu=new Map;async function Su(e,t,n){let r=`${e}|${t}|${n}`,i=xu.get(r);if(i)return i;try{let e=JSON.parse(localStorage.getItem(`genres|${r}`)||`null`);if(e)return xu.set(r,e),e}catch(e){}let a=new Map;await pu(t).where(`providerId`).equals(e).each(e=>{if(e.genre)for(let t of e.genre.split(/[,/|&]/)){let e=t.trim();if(e.length<2||e.length>30)continue;let n=e.toLowerCase(),r=a.get(n);r?r.n++:a.set(n,{name:e,n:1})}});let o=[...a.values()].sort((e,t)=>t.n-e.n).slice(0,30).map(e=>e.name);xu.set(r,o);try{for(let n of Object.keys(localStorage))n.indexOf(`genres|${e}|${t}|`)===0&&localStorage.removeItem(n);localStorage.setItem(`genres|${r}`,JSON.stringify(o))}catch(e){}return o}async function Cu(e){let t=new Map;for(let n of e){if(n.adult)continue;let e=$s(n.name);if(!e)continue;let r=t.get(e.key);r?r.push(n.id):t.set(e.key,[n.id])}let n=[];for(let e of Xs){let r=t.get(e.key);if(!r)continue;let i=[];for(let e of r)i.push(...await _u(e,3));let a=i.sort((e,t)=>t.added-e.added).map(e=>e.poster).filter(e=>!!e).slice(0,3);n.push({platform:e,posters:a,categoryIds:r})}return n}async function wu(e,t,n,r){let i;if(n.favorites)i=await vu(e,t);else if(n.categoryIds){i=[];for(let e of n.categoryIds)i.push(...await _u(e,1e5))}else i=await pu(t).where(`providerId`).equals(e).toArray();if(n.genre){let e=n.genre.toLowerCase();i=i.filter(t=>!!t.genre&&t.genre.toLowerCase().indexOf(e)>=0)}let a=new Intl.Collator(void 0,{sensitivity:`base`}),o=(e,t)=>a.compare(e.name,t.name),s={added:(e,t)=>t.added-e.added||o(e,t),name:o,rating:(e,t)=>(t.rating||0)-(e.rating||0)||o(e,t),year:(e,t)=>(parseInt(t.year||`0`)||0)-(parseInt(e.year||`0`)||0)||o(e,t)};return i.sort(s[r])}async function Tu(e,t){return pu(t).where(`[providerId+vkey]`).equals([e.providerId,e.vkey]).toArray()}var Eu=()=>Math.floor((Date.now()-new Date(new Date().getFullYear(),0,0).getTime())/864e5);function Du(e){let t=e.filter(e=>e.backdrop),n=(t.length?t:e).slice(0,10);return n.length?n[Eu()%n.length]:null}async function Ou(e,t,n=20){let r=pu(t).where(`[providerId+rating]`),i=await r.between([e,0],[e,fs.maxKey],!1,!0).reverse().limit(n).toArray();return(i.length<n?i:await r.between([e,i[i.length-1].rating],[e,fs.maxKey],!0,!0).toArray()).sort((e,t)=>t.rating-e.rating||t.added-e.added).slice(0,n)}async function ku(e){let t=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>e.kind===`episode`&&e.seriesId!==null).sort((e,t)=>t.updated-e.updated).slice(0,100),n=new Set,r=[];for(let e of t){if(r.length>=15)break;if(n.has(e.seriesId)||(n.add(e.seriesId),!e.watched))continue;let t=ou(await K.episodes.where(`seriesId`).equals(e.seriesId).toArray()),i=await K.progress.bulkGet(t.map(e=>e.id)),a=t.findIndex(t=>t.id===e.id),o=t.slice(a+1).find((e,t)=>{let n=i[a+1+t];return!n||!n.watched}),s=await K.series.get(e.seriesId);o&&s&&r.push({key:`u${o.id}`,id:s.id,title:`${s.name} · S${bu(o.season)}E${bu(o.episode)}`,poster:o.poster||s.poster,rating:null,episode:o,item:s})}return r}async function Au(e,t){let n=(await Ul(e,{type:t})).slice(0,t===`recent`?20:void 0),r=(await K.channels.bulkGet(n)).filter(e=>!!e);return Promise.all(r.map(async e=>({channel:e,now:(await dl(e)).now})))}async function ju(e){let t=Date.now(),n=new Date;n.getHours()>=2&&n.setDate(n.getDate()+1),n.setHours(2,0,0,0);let r=t-72e5,i=(await hu(e,`live`)).filter(e=>!e.adult&&tc(e.name)===`SPORTS`),a=[];for(let e of i)if(a.push(...await K.channels.where(`[categoryId+number]`).between([e.id,fs.minKey],[e.id,fs.maxKey]).limit(300).toArray()),a.length>=300)break;let o=[],s=new Set,c=0;for(let e of a){let i=!!await K.epgLinks.get(e.id);if(!(!i&&c>=12)){i||c++;for(let i of await ll(e,r,n.getTime())){if(i.stop<=t||!qs(i.title))continue;let n=`${Fs(i.title)}|${Math.floor(i.start/6e4)}`;s.has(n)||(s.add(n),o.push({key:n,start:i.start,title:i.title,channel:e,channelName:e.name,live:i.start<=t}))}}}return o.sort((e,t)=>e.start-t.start).slice(0,20)}async function Mu(){let e=await K.reminders.where(`start`).above(Date.now()).limit(20).toArray(),t=await K.channels.bulkGet(e.map(e=>e.channelId));return e.map((e,n)=>({key:`r${e.id}`,start:e.start,title:e.title,channel:t[n]||null,channelName:e.channelName,live:!1}))}async function Nu(e){let[t,n]=await Promise.all([hu(e,`movie`).then(e=>Cu(e)),hu(e,`series`).then(e=>Cu(e))]),r=t.map(e=>V(V({},e),{},{kind:`movie`}));for(let e of n)r.some(t=>t.platform.key===e.platform.key)||r.push(V(V({},e),{},{kind:`series`}));let i=e=>Xs.findIndex(t=>t.key===e);return r.sort((e,t)=>i(e.platform.key)-i(t.platform.key))}var Pu=`utopya.seriesSeen`,Fu=()=>{try{return JSON.parse(localStorage.getItem(Pu)||`{}`)}catch(e){return{}}};function Iu(e){let t=Fu();t[e]=Date.now();try{localStorage.setItem(Pu,JSON.stringify(t))}catch(e){}}var Lu=Date.UTC(2001,0,1);async function Ru(e){let t=await K.favorites.where(`[providerId+kind]`).equals([e,`series`]).toArray(),n=await K.series.bulkGet(t.map(e=>e.id)),r=Fu(),i=[];for(let e=0;e<t.length;e++){let a=n[e];if(!a||a.added<Lu)continue;let o=Math.max(t[e].order,r[a.id]||0);await K.progress.where(`seriesId`).equals(a.id).each(e=>{e.updated>o&&(o=e.updated)}),a.added>o&&i.push(a)}return i.sort((e,t)=>t.added-e.added).slice(0,20)}var zu=e=>e.split(/[,/|&]/).map(e=>e.trim()).filter(e=>e.length>=2&&e.length<=30);function Bu(e,t){let n=e.slice(),r=t,i=()=>{r=r+1831565813|0;let e=Math.imul(r^r>>>15,1|r);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296};for(let e=n.length-1;e>0;e--){let t=Math.floor(i()*(e+1)),r=n[e];n[e]=n[t],n[t]=r}return n}async function Vu(e){let t=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>e.kind===`movie`&&e.position>0);if(!t.length)return null;let n=new Map;for(let e of await K.movies.bulkGet(t.map(e=>e.id)))if(e&&e.genre)for(let t of zu(e.genre)){let e=t.toLowerCase(),r=n.get(e);r?r.n++:n.set(e,{name:t,n:1})}let r=[];n.forEach((e,t)=>r.push({k:t,name:e.name}));let i=Hu(r,e=>n.get(e.k).n,2);if(!i.length)return null;let a=[];await K.movies.where(`providerId`).equals(e).each(e=>{if(!e.rating||e.rating<6||!e.genre)return;let t=e.genre.toLowerCase();i.some(e=>t.indexOf(e.k)>=0)&&a.push(e)});let o=await K.progress.bulkGet(a.map(e=>e.id)),s=a.filter((e,t)=>!o[t]||!o[t].watched).sort((e,t)=>t.rating-e.rating||t.added-e.added).slice(0,60),c=new Date;return{genres:i.map(e=>e.name),items:Bu(s,Eu()+c.getFullYear()*1e3).slice(0,12)}}function Hu(e,t,n){return e.map((e,t)=>({x:e,i:t})).sort((e,n)=>t(n.x)-t(e.x)||e.i-n.i).slice(0,n).map(e=>e.x)}async function Uu(e){let t=Date.now(),n=t+18e5,r=(await Ul(e,{type:`fav`})).slice(0,30),i=(await K.channels.bulkGet(r)).filter(e=>!!e),a=[];for(let e of i)for(let r of await ll(e,t,n))r.start>t&&r.start<=n&&a.push({key:`s${r.id}`,start:r.start,title:r.title,channel:e,channelName:e.name,live:!1,program:r});return a.sort((e,t)=>e.start-t.start).slice(0,20)}var Wu=I(null),Gu=I(new Set),Ku=6e4;async function qu(){Gu.value=new Set(await K.reminders.toCollection().primaryKeys())}async function Ju(e,t,n=0){let r=!await K.reminders.get(e.id)||n!==0;return r?await K.reminders.put({id:e.id,providerId:t.providerId,channelId:t.id,channelName:t.name,title:e.title,start:e.start,stop:e.stop,repeat:n}):await K.reminders.delete(e.id),await qu(),r}var Yu=async e=>{await K.reminders.delete(e),await qu()},Xu={1:864e5,2:6048e5};function Zu(){qu();let e=async()=>{if(Wu.peek())return;let e=await K.reminders.where(`start`).belowOrEqual(Date.now()+Ku).first();if(e){if(await K.reminders.delete(e.id),e.repeat){let t=Xu[e.repeat],n=e.start+t;for(;n<Date.now();)n+=t;await K.reminders.put(V(V({},e),{},{id:-n,start:n,stop:e.stop===void 0?void 0:e.stop+(n-e.start)}))}await qu(),e.start>Date.now()-6e5&&(Wu.value=e)}};e(),setInterval(e,15e3)}function Qu({src:e,size:t}){return M(`span`,{class:`channel-logo`,style:{width:`${t*1.4/10}rem`,height:`${t/10}rem`},children:e&&M(`img`,{src:e,alt:``,onError:e=>e.currentTarget.style.visibility=`hidden`})})}function $u({value:e,class:t}){return M(`span`,{class:`progress-line ${t||``}`,children:M(`span`,{style:{width:`${Math.round(e*100)}%`}})})}function ed({text:e,active:t}){let n=F(null),r=F(null);return P(()=>{let e=n.current,i=r.current,a=i.scrollWidth-e.clientWidth;t&&a>0?(i.style.setProperty(`--marquee`,`${-a}px`),i.style.animationDuration=`${Math.max(3,a/40)}s`,i.classList.add(`run`)):i.classList.remove(`run`)},[t,e]),M(`span`,{class:`marquee`,ref:n,children:M(`span`,{ref:r,children:e})})}function td(e){let t=e.channel;return M(`button`,{onlongpress:e.onLongPress,class:`channel-row focus-row ${e.current?`selected`:`idle`}${e.compact?` compact`:``}`,"data-focus":!0,"data-idx":e.index,"data-focus-default":e.focused||void 0,style:{top:`${e.index*e.pitch}rem`},onClick:e.onClick,children:[e.number!==null&&M(`span`,{class:`ch-number`,children:e.number}),e.compact?M(Qu,{src:t?t.logo:null,size:30}):M(`span`,{class:`ch-logo-box`,children:M(Qu,{src:t?t.logo:null,size:44})}),M(`span`,{class:`ch-text`,children:[M(`span`,{class:`ch-name`,children:[M(ed,{text:t?t.name:``,active:e.marquee}),e.favorite&&M(z,{name:`star`,class:`fav-star`})]}),e.program&&M(`span`,{class:`ch-program`,children:e.program.title}),e.program&&!e.compact&&M($u,{value:_l(e.program),class:`ch-progress`})]})]})}var nd=I({type:`all`}),rd=I(``),id=I(null),ad=I(null),od=I(new Set);async function sd(e){let t=await K.favorites.where(`[providerId+kind]`).equals([e,`live`]).primaryKeys();od.value=new Set(t)}var cd=I([]);function ld(e){let t=document.activeElement;cd.value=[...cd.value,{page:e,restore:t}],t&&t!==document.body&&t.blur()}function ud(){let e=cd.value;if(!e.length)return;let t=e[e.length-1];cd.value=e.slice(0,-1),setTimeout(()=>t.restore&&t.restore.isConnected?Rt(t.restore):Vt(),0)}var dd=e=>{let t=cd.value;cd.value=[...t.slice(0,-1),{page:e,restore:t.length?t[t.length-1].restore:null}]},Y=I(`home`),fd=I(`live`),pd=0;function md(e,t,n){ad.value={ids:e,index:t,archive:n,seq:++pd},Y.value!==`player`&&(fd.value=Y.value),Y.value=`player`}var hd=()=>{Y.value=fd.value};function gd(e){let{pager:t,count:n,index:r}=e,[i,a]=N(new Map),[o,s]=N(0),c=e.listRef,l=e.compact?6:7.2,u=c.current?Math.ceil(c.current.clientHeight/vd()/l):10;P(()=>{let e=o;r<o+2?e=Math.max(0,r-2):r>o+u-1-2&&(e=Math.max(0,Math.min(n-u,r-u+1+2))),e!==o&&s(e)},[r,n,u]);let d=Math.max(0,o-3),f=Math.min(n,o+u+3);P(()=>{if(!t)return;let e=!0;return t.range(d,f).then(t=>{if(!e)return;let n=new Map;t.forEach((e,t)=>n.set(d+t,e)),a(n)}),()=>{e=!1}},[t,d,f]),P(()=>{c.current&&(c.current.scrollTop=o*l*vd())},[o]);let[p,m]=N(new Map),h=xl.value;P(()=>{let e=!0,t=[...i.values()].filter(e=>!!e),n=()=>{let e=new Map;for(let n of t){let t=_d.get(n.id);t&&t.tick===h&&e.set(n.id,t.now)}return e};m(n());let r=t.filter(e=>{let t=_d.get(e.id);return!t||t.tick!==h});if(!r.length)return;let a=setTimeout(()=>{Promise.all(r.map(e=>dl(e).then(t=>{_d.set(e.id,{tick:h,now:t.now})}))).then(()=>{e&&m(n())})},300);return()=>{e=!1,clearTimeout(a)}},[i,h]),P(()=>{if(!e.focused||!c.current)return;let t=c.current.querySelector(`[data-idx="${r}"]`);t&&document.activeElement!==t&&t.focus()},[r,d]),Kt(t=>{if(!c.current||!c.current.contains(document.activeElement))return;let i=t===`up`?-1:t===`down`?1:t===`chUp`?-u:t===`chDown`?u:0;if(!i)return;let a=Math.max(0,Math.min(n-1,r+i));return a!==r&&e.setIndex(a),!0});let g=od.value,_=[];for(let t=d;t<f;t++){let n=i.get(t);_.push(M(td,{compact:e.compact,current:t===e.current,pitch:l,channel:n,index:t,number:e.numberOf(n,t),favorite:!!n&&g.has(n.id),program:n&&p.get(n.id)||null,focused:t===r,marquee:e.focused&&t===r,onClick:()=>e.onOpen(t),onLongPress:()=>e.onMenu(t)},t))}return M(`div`,{class:`channel-list${e.compact?` compact`:``}`,ref:c,"data-focus-group":e.group,"data-focus-noscroll":!0,children:M(`div`,{class:`channel-list-inner`,style:{height:`${n*l}rem`},children:_})})}var _d=new Map,vd=()=>parseFloat(getComputedStyle(document.documentElement).fontSize),yd=e=>e&&e>0?`★ ${Math.round(e*10)/10}`:null,bd=e=>e.item?{"data-hero-kind":`url`in e.item?`movie`:`series`,"data-hero-id":String(e.item.id),"data-hero-ep":e.episode?String(e.episode.id):void 0}:{},xd=e=>{let t=e.item,n=t?t.name:e.title;return[e.rating&&e.rating>0?`★ ${e.rating.toFixed(1)}`:null,t&&t.year&&n.indexOf(`(${t.year})`)<0?t.year:null].filter(Boolean).join(` · `)},Sd=e=>{if(e.episode)return`S${bu(e.episode.season)}E${bu(e.episode.episode)}`;let t=e.item;if(!t)return``;let n=t.genre?t.genre.split(/[,/|&]/)[0].trim():``;return[t.year,n].filter(Boolean).join(` · `)};function Cd(e){let t=e.card;return M(`button`,V(V({onlongpress:e.onLongPress,class:`poster-card plain`,"data-focus":!0,"data-focus-initial":e.initial||void 0,"data-info-title":t.item?t.item.name:t.title,"data-info-meta":xd(t)},bd(t)),{},{onClick:e.onClick,children:t.poster&&M(pn,{src:ln(t.poster,342),onError:e=>e.currentTarget.style.display=`none`})}))}function wd(e){let t=e.card,n=t.item,r=n&&`backdrop`in n?n.backdrop:null,i=t.episode&&t.episode.poster||r||t.poster,a=Sd(t);return M(`button`,V(V({onlongpress:e.onLongPress,class:`wide-card`,"data-focus":!0,"data-focus-initial":e.initial||void 0},bd(t)),{},{onClick:e.onClick,children:[i&&M(pn,{src:ln(i,780),onError:e=>e.currentTarget.style.display=`none`}),M(`span`,{class:`wc-shade`}),M(`span`,{class:`wc-text`,children:[M(`span`,{class:`wc-title`,children:n?n.name:t.title}),a&&M(`span`,{class:`wc-sub`,children:a})]}),t.badge&&M(`span`,{class:`wc-badge`,children:t.badge}),!!t.progress&&M(`span`,{class:`poster-progress wc-progress`,children:M(`span`,{style:{width:`${Math.round(t.progress*100)}%`}})})]}))}function Td(e){return e.kind===`movie`?M(Cd,V({},e)):M(wd,V({},e))}function Ed({p:e,class:t}){let n=ec(e);return n?M(`img`,{class:`${t||``}${e.tintWhite===!1?` own-color`:` tint-white`}`,src:n,alt:e.name}):M(`b`,{class:t,children:e.name})}function Dd({tile:e,onClick:t,initial:n}){let r=e.platform;return M(`button`,{class:`platform-tile`,"data-focus":!0,"data-focus-initial":n||void 0,onClick:t,children:[M(`span`,{class:`pt-collage`,children:e.posters.map(e=>M(pn,{src:ln(e,342)},e))}),M(`span`,{class:`pt-shade`,style:{background:`linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.7) 60%, ${Od(r.color,.85)})`}}),M(`span`,{class:`pt-logo`,children:M(Ed,{p:r})})]})}var Od=(e,t)=>{let n=parseInt(e.slice(1),16);return`rgba(${n>>16},${n>>8&255},${n&255},${t})`},kd=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Ad(e,t){let n=new RegExp(kd(t.name),`i`),r=n.test(e)?n:new RegExp(t.keywords.map(e=>kd(e.trim())).filter(Boolean).join(`|`),`i`);return e.replace(r,``).replace(/^[\s·|\-:/+]+|[\s·|\-:/]+$/g,``)||e}function jd({title:e,children:t,info:n,cls:r,seeAll:i}){let a=F(null),[o,s]=N(null);P(()=>{let e=a.current,t=t=>{let n=t.target;e.scrollLeft=Math.max(0,n.offsetLeft-1.6*vd());let r=n.getAttribute(`data-info-title`);s(r?{title:r,meta:n.getAttribute(`data-info-meta`)||``}:null)},n=()=>setTimeout(()=>{e.contains(document.activeElement)||s(null)},0);return e.addEventListener(`focusin`,t),e.addEventListener(`focusout`,n),()=>{e.removeEventListener(`focusin`,t),e.removeEventListener(`focusout`,n)}},[]);let[c,l]=ke(()=>{let t=$s(e);return[t,t?Ad(e,t):e]},[e]);return M(`section`,{class:r?`shelf ${r}`:`shelf`,children:[M(`h2`,{class:`shelf-title`,children:[c&&M(`span`,{class:`shelf-logo`,children:M(Ed,{p:c})}),l,i&&M(`button`,{class:`shelf-all`,"data-focus":!0,onClick:i,children:`${R(`shelf_see_all`)} ›`})]}),M(`div`,{class:`shelf-row`,ref:a,"data-focus-group":`shelf-${e}`,children:t}),n&&M(`p`,{class:`shelf-info`,children:[o&&M(`b`,{children:o.title}),o&&o.meta&&M(`span`,{children:` ${o.meta}`})]})]})}var Md=8,Nd=2;function Pd(e,t){t.episode?ld({name:`vod`,kind:`episode`,id:t.episode.id,seriesId:t.id}):t.progress!==void 0&&e===`movie`?ld({name:`vod`,kind:`movie`,id:t.id}):ld(e===`movie`?{name:`movie`,id:t.id}:{name:`series`,id:t.id})}function Fd({kind:e}){var t;let n=Fc.value,r=((t=(Pc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync)||0,[i,a]=N(null),[o,s]=N(null),[c,l]=N(0),u=cd.value.length,d=F(!1);P(()=>{u===0&&d.current&&l(e=>e+1),d.current=u>0},[u]);let[f,p]=N(Md),m=F([]),h=F(!1),g=F(``);P(()=>{let t=!0;return g.current!==`${n}|${e}|${r}`&&p(Md),(async()=>{let i=(await hu(n,e)).filter(e=>!e.adult);m.current=i;let[o,s,c,l]=await Promise.all([yu(n,e),Cu(i),vu(n,e),gu(n,e)]),u={cont:o,tiles:s,favs:c,recent:l,genres:[],cats:[],next:0};if(!t)return;let d=g.current===`${n}|${e}|${r}`;g.current=`${n}|${e}|${r}`,a(d?e=>e?V(V({},u),{},{genres:e.genres,cats:e.cats,next:e.next}):u:u);let[f,p]=await Promise.all([Su(n,e,r),fu(u.cont)]);t&&a(e=>e&&V(V({},e),{},{genres:f,cont:p}))})(),()=>{t=!1}},[n,e,r,c]),P(()=>{if(!i||h.current||i.cats.length>=f||i.next>=m.current.length)return;h.current=!0;let e=!0;return(async()=>{let t=[],n=i.next,r=m.current;for(;n<r.length&&!t.length;){let e=r.slice(n,n+Nd),i=await Promise.all(e.map(e=>_u(e.id,20)));e.forEach((e,n)=>{i[n].length&&t.push({c:e,items:i[n]})}),n+=e.length}h.current=!1,e&&a(e=>e&&V(V({},e),{},{cats:[...e.cats,...t],next:n}))})(),()=>{e=!1,h.current=!1}},[i,f]);let _=e=>{let t=e.target.closest(`.cat-shelf`);t&&i&&Array.prototype.indexOf.call(t.parentElement.querySelectorAll(`.cat-shelf`),t)>=i.cats.length-3&&p(e=>Math.max(e,i.cats.length+Md))};if(!i)return null;if(!i.cats.length&&!i.recent.length&&!i.cont.length)return M(`p`,{class:`empty`,children:R(`vod_empty`)});let v=async(t,r)=>{let i=t.item;if(!i)return;let a=[],o=()=>l(e=>e+1);if(!(e===`series`&&r)){let t=!!await K.favorites.get(i.id);a.push({label:R(t?`vod_remove_favorite`:`vod_add_favorite`),onSelect:async()=>{await Kl(n,e,i.id),o()}})}if(e===`movie`&&a.push({label:R(`vod_mark_watched`),onSelect:async()=>{await lu(`movie`,i.id,n,null,!0),o()}},{label:R(`vod_mark_unwatched`),onSelect:async()=>{await lu(`movie`,i.id,n,null,!1),o()}}),r){let e=t.episode?t.episode.id:i.id;a.push({label:R(`menu_remove_continue`),onSelect:async()=>{await K.progress.delete(e),o()}})}s({title:t.title,items:a})},y=!1,b=()=>y?!1:y=!0;return M(`div`,{class:`vod-home`,onFocusCapture:_,children:[i.cont.length>0&&M(jd,{title:R(`shelf_continue`),children:i.cont.map(t=>M(wd,{card:t,initial:b(),onClick:()=>Pd(e,t),onLongPress:()=>v(t,!0)},t.key))}),i.tiles.length>0&&M(jd,{title:R(`shelf_platforms`),children:i.tiles.map(t=>M(Dd,{tile:t,initial:b(),onClick:()=>ld({name:`browse`,kind:e,title:t.platform.name,filter:{categoryIds:t.categoryIds,platformKey:t.platform.key}})},t.platform.key))}),i.favs.length>0&&M(jd,{title:R(`shelf_favorites`),info:e===`movie`,seeAll:()=>ld({name:`browse`,kind:e,title:R(`shelf_favorites`),filter:{favorites:!0}}),children:i.favs.map(t=>{let n=mu(t);return M(Td,{kind:e,card:n,initial:b(),onClick:()=>Pd(e,n),onLongPress:()=>v(n,!1)},n.key)})}),i.recent.length>0&&M(jd,{title:R(`shelf_recent`),info:e===`movie`,seeAll:()=>ld({name:`browse`,kind:e,title:R(`shelf_recent`),filter:{all:!0},sort:`added`}),children:i.recent.map(t=>{let n=mu(t);return M(Td,{kind:e,card:n,initial:b(),onClick:()=>Pd(e,n),onLongPress:()=>v(n,!1)},n.key)})}),i.genres.length>0&&M(jd,{title:R(`shelf_genres`),children:i.genres.map(t=>M(`button`,{class:`chip genre-chip`,"data-focus":!0,onClick:()=>ld({name:`browse`,kind:e,title:t,filter:{genre:t}}),children:t},t))}),i.cats.map(({c:t,items:n})=>M(jd,{cls:`cat-shelf`,title:Gs(t.name,q.value.filterWords),info:e===`movie`,seeAll:()=>ld({name:`browse`,kind:e,title:t.name,filter:{categoryIds:[t.id]}}),children:n.map(t=>{let n=mu(t);return M(Td,{kind:e,card:n,onClick:()=>Pd(e,n),onLongPress:()=>v(n,!1)},n.key)})},t.id)),o&&M(bn,{title:o.title,items:o.items,onClose:()=>s(null)})]})}var Id=350,Ld=()=>{let e=new Date().getHours();return R(e>=5&&e<=11?`home_greeting_morning`:e>=12&&e<=17?`home_greeting_day`:`home_greeting_evening`)};function Rd({providerId:e}){let n=Pc.value||[],r=n.find(t=>t.id===e),[i,a]=N(null),[o,s]=N(null),[c,l]=N(0),u=F(null),d=F(null),f=F(null),p=ke(()=>I(null),[]),m=F(void 0),h=F(!1),g=()=>l(e=>e+1),_=cd.value.length,v=F(!1);P(()=>{_===0&&v.current&&g(),v.current=_>0},[_]),P(()=>{let n=!0;(async()=>{let i=performance.now(),o=t(`türler`,Su(e,`movie`,r&&r.lastSync||0)),[s,c,l,u,d,f,p,m,h,g,_,v,y]=await Promise.all([t(`devam film`,yu(e,`movie`)),t(`devam dizi`,yu(e,`series`)),t(`en iyi film`,Ou(e,`movie`)),t(`platformlar`,Nu(e)),t(`sıradaki`,ku(e)),t(`yeni bölüm`,Ru(e)),t(`sana özel`,Vu(e)),t(`favori kanal`,Au(e,`fav`)),t(`son kanal`,Au(e,`recent`)),t(`yayın akışı`,Mu()),t(`yeni film`,gu(e,`movie`,20)),t(`yeni dizi`,gu(e,`series`,20)),t(`en iyi dizi`,Ou(e,`series`))]);`${Math.round(performance.now()-i)}`;let b={hero:Du(l),cont:[...s,...c].sort((e,t)=>(t.updated||0)-(e.updated||0)).slice(0,20),up:d,newEps:f.map(e=>V(V({},mu(e)),{},{key:`n${e.id}`,badge:R(`home_new_episode_badge`)})),forYou:p,soon:[],genres:[],favs:m,recents:h,tonight:[],schedule:g,tiles:u,newMovies:_,newSeries:v,topMovies:l,topSeries:y};if(!n)return;a(b);let x=()=>{n&&a(V({},b))};o.then(e=>{b.genres=e,e.length&&x()});let S=await t(`arka planlar`,fu(b.cont));S!==b.cont&&(b.cont=S,x()),b.soon=await t(`birazdan`,Uu(e)),x(),b.tonight=await t(`bu akşam`,ju(e)),x()})();let i=()=>g();return window.addEventListener(`utopya:progress`,i),()=>{n=!1,window.removeEventListener(`utopya:progress`,i)}},[e,r&&r.lastSync,c]),P(()=>{let e=()=>{h.current=!0};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)},[]);let y=F(Date.now()),b=F(!1),S=F(void 0);P(()=>{i&&!b.current&&(b.current=!0,S.current=window.setTimeout(()=>{if(h.current||cd.peek().length)return;let e=document.activeElement;(!e||e===document.body||e.closest(`.topbar`))&&L(f.current)},Math.max(0,1200-(Date.now()-y.current))))},[i]),P(()=>()=>clearTimeout(S.current),[]);let ee=async(t,n)=>{let r=await Ul(e,{type:t}),i=r.indexOf(n);i>=0&&md(r,i)},C={HERO:()=>null,CONTINUE:()=>i.cont.length?M(jd,{title:R(`shelf_continue`),children:i.cont.map(e=>M(wd,{card:e,onClick:()=>Pd(e.episode?`series`:`movie`,e),onLongPress:()=>s({title:e.title,items:[{label:R(`menu_open`),onSelect:()=>Pd(e.episode?`series`:`movie`,e)},{label:R(`menu_remove_continue`),onSelect:async()=>{await K.progress.delete(e.episode?e.episode.id:e.id),g()}}]})},e.key))}):null,UP_NEXT:()=>i.up.length?M(jd,{title:R(`home_up_next`),children:i.up.map(e=>{let t=()=>ld({name:`vod`,kind:`episode`,id:e.episode.id,seriesId:e.id,startMs:0});return M(wd,{card:e,onClick:t,onLongPress:()=>s({title:e.title,items:[{label:R(`menu_open`),onSelect:t},{label:R(`menu_remove_up_next`),onSelect:async()=>{await K.progress.where(`seriesId`).equals(e.id).delete(),g()}}]})},e.key)})}):null,NEW_EPISODES:()=>i.newEps.length?M(jd,{title:R(`home_new_episodes`),children:i.newEps.map(e=>M(wd,{card:e,onClick:()=>ld({name:`series`,id:e.id}),onLongPress:()=>s({title:e.title,items:[{label:R(`home_dismiss_new`),onSelect:()=>{Iu(e.id),g()}}]})},e.key))}):null,FOR_YOU:()=>i.forYou&&i.forYou.items.length?k(R(`home_for_you_genres`,i.forYou.genres.join(`, `)),i.forYou.items,`movie`,`rating`,{genre:i.forYou.genres[0]}):null,STARTING_SOON:()=>i.soon.length?M(jd,{title:R(`home_starting_soon`),children:i.soon.map(e=>M(Ud,{pc:e,badge:Gu.value.has(e.program.id)?R(`home_reminder_badge`):void 0,onClick:async()=>B(R(await Ju(e.program,e.channel)?`guide_reminder_set`:`guide_reminder_removed`)),onLongPress:()=>s({title:e.title,items:[{label:R(`home_open_channel`),onSelect:()=>ee(`fav`,e.channel.id)}]})},e.key))}):null,GENRES:()=>i.genres.length?M(jd,{title:R(`home_genres`),children:i.genres.map(e=>M(`button`,{class:`chip genre-chip`,"data-focus":!0,onClick:()=>ld({name:`browse`,kind:`movie`,title:e,filter:{genre:e}}),children:e},e))}):null,FAVORITE_CHANNELS:()=>i.favs.length?M(jd,{title:R(`home_favorite_channels`),children:i.favs.map(t=>M(Hd,{cc:t,onClick:()=>ee(`fav`,t.channel.id),onLongPress:()=>s({title:t.channel.name,items:[{label:R(`menu_remove_favorite`),onSelect:async()=>{await Kl(e,`live`,t.channel.id),g()}}]})},t.channel.id))}):null,RECENT_CHANNELS:()=>i.recents.length?M(jd,{title:R(`home_recent_channels`),children:i.recents.map(e=>M(Hd,{cc:e,onClick:()=>ee(`recent`,e.channel.id),onLongPress:()=>s({title:e.channel.name,items:[{label:R(`menu_remove_recent`),onSelect:async()=>{await K.recents.delete(e.channel.id),g()}}]})},e.channel.id))}):null,TONIGHT_SPORTS:()=>i.tonight.length?M(jd,{title:R(`home_tonight`),children:i.tonight.map(e=>M(Ud,{pc:e,onClick:()=>e.channel&&ee(`all`,e.channel.id)},e.key))}):null,SCHEDULE:()=>i.schedule.length?M(jd,{title:R(`home_schedule`),children:i.schedule.map(e=>M(Ud,{pc:e,onClick:()=>e.channel&&ee(`all`,e.channel.id)},e.key))}):null,PLATFORMS:()=>i.tiles.length?M(jd,{title:R(`shelf_platforms`),children:i.tiles.map(e=>M(Dd,{tile:e,onClick:()=>ld({name:`browse`,kind:e.kind,title:e.platform.name,filter:{categoryIds:e.categoryIds,platformKey:e.platform.key}})},e.platform.key))}):null,NEW_MOVIES:()=>k(R(`home_new_movies`),i.newMovies,`movie`,`added`),NEW_SERIES:()=>k(R(`home_new_series`),i.newSeries,`series`,`added`),TOP_RATED:()=>i.topMovies.length||i.topSeries.length?M(x,{children:[k(R(`home_top_movies`),i.topMovies,`movie`,`rating`),k(R(`home_top_series`),i.topSeries,`series`,`rating`)]}):null},w=i?q.value.homeShelves.filter(e=>e in C).map(e=>({k:e,el:C[e]()})).filter(e=>e.el):[],T=i&&i.hero?{kind:`movie`,item:i.hero}:null,E=(yt(()=>!!p.value).value||!!T)&&q.value.homeShelves.indexOf(`HERO`)>=0,D=e=>{let t=e.target,n=t.closest(`.shelf`),r=d.current,i=f.current;if(E&&n&&r&&i){let e=r.clientHeight-parseFloat(getComputedStyle(r).paddingBottom);i.style.transform=`translateY(${-Math.min(n.offsetTop,Math.max(0,i.offsetHeight-e))}px)`}let a=t.closest(`[data-hero-id]`);if(!a)return;clearTimeout(m.current);let o=a.getAttribute(`data-hero-kind`),s=+a.getAttribute(`data-hero-id`),c=a.getAttribute(`data-hero-ep`);m.current=window.setTimeout(async()=>{if(o===`movie`){let e=await K.movies.get(s);e&&(p.value={kind:o,item:await iu(e)},`${Math.round(performance.now())}`)}else{let e=await K.series.get(s);if(!e)return;let t=await au(e);p.value={kind:o,item:t.series,episode:c?t.episodes.find(e=>e.id===+c):void 0},`${Math.round(performance.now())}`}},Id)};P(()=>()=>clearTimeout(m.current),[]),P(()=>{!E&&f.current&&(f.current.style.transform=``)},[E]),Kt(e=>{if(!E||e!==`up`&&e!==`down`||!f.current)return;let t=document.activeElement;if(!t||!f.current.contains(t))return;let n=Wt(t,e);if(n)return Rt(n);let r=Array.prototype.slice.call(f.current.querySelectorAll(`.shelf`)),i=r[r.indexOf(t.closest(`.shelf`))+(e===`up`?-1:1)];if(!i)return e===`down`||void 0;let a=i.querySelector(`.shelf-row`);return Rt(a&&Bt(a))});let O=M(`div`,{class:`home-actions`,children:[M(`button`,{class:`round-btn`,"data-focus":!0,"aria-label":R(`home_edit`),title:R(`home_edit`),onClick:()=>ld({name:`homeEdit`}),children:M(z,{name:`edit`})}),n.length>1&&M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>s({title:R(`home_switch_source`),items:n.map(t=>({label:t.name,checked:t.id===e,onSelect:()=>zc(t.id)}))}),children:R(`home_switch_source`)})]});return M(`div`,{class:`home${E?` with-hero`:``}`,ref:u,children:[E?M(Vd,{hero:p,fallback:T,actions:O}):M(`div`,{class:`home-head`,children:[M(`h1`,{children:Ld()}),r&&M(`span`,{class:`muted`,children:` · ${r.name}`}),M(`span`,{class:`spacer`}),O]}),M(`div`,{class:`home-shelves`,ref:d,"data-focus-noscroll":E||void 0,onFocusCapture:D,onScroll:E?e=>{e.currentTarget.scrollTop=0}:void 0,children:M(`div`,{class:`home-list`,ref:f,children:[i&&!w.length&&M(`p`,{class:`home-empty`,children:R(`home_empty`)}),w.map(e=>M(`div`,{class:`home-block`,children:e.el},e.k))]})}),o&&M(bn,{title:o.title,items:o.items,onClose:()=>s(null)})]});function k(e,t,n,r,i={all:!0}){if(!t.length)return null;let a=()=>ld({name:`browse`,kind:n,title:e,filter:i,sort:r});return n===`series`?M(jd,{title:e,seeAll:a,children:t.map(e=>{let t=mu(e);return M(wd,{card:t,onClick:()=>Pd(n,t)},t.key)})}):M(jd,{title:e,seeAll:a,children:t.map(e=>{let t=mu(e);return M(Cd,{card:t,onClick:()=>Pd(n,t)},t.key)})})}}var zd=e=>e.split(` / `)[0].replace(/\s*\(\d{4}\)\s*$/,``);async function Bd(e){if(e.kind===`movie`){ld({name:`vod`,kind:`movie`,id:e.item.id});return}let t=e.episode||(await au(e.item)).episodes[0];ld(t?{name:`vod`,kind:`episode`,id:t.id,seriesId:e.item.id}:{name:`series`,id:e.item.id})}function Vd({hero:e,fallback:t,actions:n}){let r=e.value||t;if(!r)return null;let i=r.item,a=i.backdrop||i.poster,o=a&&ln(a,1280),s=i.rating&&i.rating>0?i.rating.toFixed(1):null,c=i.genre?i.genre.split(/[,/|&]/).map(e=>e.trim()).filter(Boolean).slice(0,2).join(` · `):``;return M(`div`,{class:`hero2`,children:[M(`div`,{class:`hero2-bg`,children:o&&M(`img`,{src:o,alt:``,decoding:`async`},o)}),M(`div`,{class:`hero2-actions`,children:n}),M(`div`,{class:`hero2-info`,children:[M(`span`,{class:`hero2-kind`,children:R(r.kind===`movie`?`home_kind_movie`:`home_kind_series`)}),M(`h2`,{class:`hero2-title`,children:zd(i.name)}),M(`p`,{class:`hero2-meta`,children:[s&&M(`b`,{children:`★ ${sn.value===`tr`?s.replace(`.`,`,`):s}`}),i.year&&M(`span`,{children:i.year}),c&&M(`span`,{children:c})]}),M(`p`,{class:`hero2-plot`,children:i.plot||``}),M(`div`,{class:`row hero2-buttons`,"data-focus-group":`hero`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>Bd(r),children:R(`vod_play`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>ld(r.kind===`movie`?{name:`movie`,id:i.id}:{name:`series`,id:i.id}),children:R(`home_details`)})]})]})]})}function Hd({cc:e,onClick:t,onLongPress:n}){let r=e.channel;return M(`div`,{class:`channel-tile`,children:[M(`button`,{onlongpress:n,class:`ct-card`,"data-focus":!0,onClick:t,children:r.logo?M(Qu,{src:r.logo,size:60}):M(`span`,{class:`ct-name-big`,children:r.name})}),M(`span`,{class:`ct-name`,children:r.name}),e.now&&M(x,{children:[M(`span`,{class:`ct-program`,children:e.now.title}),M($u,{value:_l(e.now),class:`ct-progress`})]})]})}function Ud({pc:e,onClick:t,onLongPress:n,badge:r}){return M(`button`,{onlongpress:n,class:`program-tile`,"data-focus":!0,onClick:t,children:[M(`span`,{class:`pt-logo-box`,children:e.channel&&e.channel.logo&&M(Qu,{src:e.channel.logo,size:40})}),M(`span`,{class:`pt-text`,children:[M(`span`,{class:`pt-time`,children:[yl(e.start),e.live&&M(`span`,{class:`pt-badge`,children:R(`home_live_now`)}),r&&M(`span`,{class:`pt-badge reminder`,children:r})]}),M(`span`,{class:`pt-title`,children:e.title}),M(`span`,{class:`pt-channel`,children:e.channelName})]})]})}var Wd={_doc:`Ülke öneki → görünen ad [tr, en]. Chromium 56'da Intl.DisplayNames olmadığı için Tizen bu tabloyu kullanır; listede olmayan kod olduğu gibi gösterilir. Android cihaz yerel ayarını (Locale.displayCountry) kullanır; UK/EN → Birleşik Krallık, EX → Ex-YU kuralları aynı.`,countries:{TR:{tr:`Türkiye`,en:`Türkiye`},DE:{tr:`Almanya`,en:`Germany`},UK:{tr:`Birleşik Krallık`,en:`United Kingdom`},EN:{tr:`Birleşik Krallık`,en:`United Kingdom`},GB:{tr:`Birleşik Krallık`,en:`United Kingdom`},US:{tr:`Amerika Birleşik Devletleri`,en:`United States`},USA:{tr:`Amerika Birleşik Devletleri`,en:`United States`},CA:{tr:`Kanada`,en:`Canada`},FR:{tr:`Fransa`,en:`France`},IT:{tr:`İtalya`,en:`Italy`},ES:{tr:`İspanya`,en:`Spain`},PT:{tr:`Portekiz`,en:`Portugal`},NL:{tr:`Hollanda`,en:`Netherlands`},BE:{tr:`Belçika`,en:`Belgium`},AT:{tr:`Avusturya`,en:`Austria`},CH:{tr:`İsviçre`,en:`Switzerland`},PL:{tr:`Polonya`,en:`Poland`},RO:{tr:`Romanya`,en:`Romania`},BG:{tr:`Bulgaristan`,en:`Bulgaria`},GR:{tr:`Yunanistan`,en:`Greece`},AL:{tr:`Arnavutluk`,en:`Albania`},RS:{tr:`Sırbistan`,en:`Serbia`},HR:{tr:`Hırvatistan`,en:`Croatia`},BA:{tr:`Bosna-Hersek`,en:`Bosnia and Herzegovina`},MK:{tr:`Kuzey Makedonya`,en:`North Macedonia`},SI:{tr:`Slovenya`,en:`Slovenia`},HU:{tr:`Macaristan`,en:`Hungary`},CZ:{tr:`Çekya`,en:`Czechia`},SK:{tr:`Slovakya`,en:`Slovakia`},RU:{tr:`Rusya`,en:`Russia`},UA:{tr:`Ukrayna`,en:`Ukraine`},SE:{tr:`İsveç`,en:`Sweden`},NO:{tr:`Norveç`,en:`Norway`},DK:{tr:`Danimarka`,en:`Denmark`},FI:{tr:`Finlandiya`,en:`Finland`},IE:{tr:`İrlanda`,en:`Ireland`},AZ:{tr:`Azerbaycan`,en:`Azerbaijan`},GE:{tr:`Gürcistan`,en:`Georgia`},IR:{tr:`İran`,en:`Iran`},IQ:{tr:`Irak`,en:`Iraq`},AR:{tr:`Arap ülkeleri`,en:`Arabic`},ARA:{tr:`Arap ülkeleri`,en:`Arabic`},IN:{tr:`Hindistan`,en:`India`},PK:{tr:`Pakistan`,en:`Pakistan`},AF:{tr:`Afganistan`,en:`Afghanistan`},BR:{tr:`Brezilya`,en:`Brazil`},MX:{tr:`Meksika`,en:`Mexico`},LAT:{tr:`Latin Amerika`,en:`Latin America`},AU:{tr:`Avustralya`,en:`Australia`},NZ:{tr:`Yeni Zelanda`,en:`New Zealand`},CY:{tr:`Kıbrıs`,en:`Cyprus`},KU:{tr:`Kürtçe`,en:`Kurdish`},KUR:{tr:`Kürtçe`,en:`Kurdish`},EX:{tr:`Ex-YU`,en:`Ex-YU`},EXYU:{tr:`Ex-YU`,en:`Ex-YU`}}},Gd=(e,t)=>e&&e!==`und`?e.toUpperCase():`#${t+1}`,Kd=class{constructor(e,t){lr(this,`av`,webapis.avplay),lr(this,`rect`,{x:0,y:0,w:window.innerWidth,h:window.innerHeight}),lr(this,`aspect`,`fit`),lr(this,`ev`,void 0),lr(this,`opened`,!1),lr(this,`subTimer`,void 0),lr(this,`token`,0),this.ev=t;let n=document.createElement(`object`);n.type=`application/avplayer`,n.style.cssText=`position:absolute;left:0;top:0;width:100%;height:100%`,e.appendChild(n)}open(e,t,n){this.stop();let r=++this.token,i=()=>r===this.token;try{if(this.av.open(e),this.opened=!0,t)try{this.av.setStreamingProperty(`USER_AGENT`,t)}catch(e){}this.av.setListener({onbufferingstart:()=>this.ev.onBuffering(!0),onbufferingcomplete:()=>this.ev.onBuffering(!1),onstreamcompleted:()=>this.ev.onEnded(),oncurrentplaytime:e=>this.ev.onTime(e),onerror:e=>this.ev.onError(String(e)),onevent:()=>{},onsubtitlechange:(e,t)=>{clearTimeout(this.subTimer),this.ev.onSubtitle(t||``),this.subTimer=window.setTimeout(()=>this.ev.onSubtitle(``),Number(e)||3e3)}}),this.applyRect(),this.av.prepareAsync(()=>{if(i()){if(this.applyRect(),n)try{this.av.seekTo(n)}catch(e){}this.av.play(),this.ev.onPlaying()}},e=>{i()&&this.ev.onError(String(e))})}catch(e){this.ev.onError(String(e))}}stop(){if(this.token++,this.opened){this.opened=!1;try{this.av.stop()}catch(e){}try{this.av.close()}catch(e){}}}pause(){try{this.av.pause()}catch(e){}}resume(){try{this.av.play()}catch(e){}}seek(e){try{this.av.seekTo(Math.max(0,e))}catch(e){}}setRect(e){this.rect=e,this.applyRect()}setAspect(e){this.aspect=e,this.applyRect()}applyRect(){if(!this.opened)return;let e=1920/window.innerWidth,{x:t,y:n,w:r,h:i}=this.rect;this.aspect===`zoom`&&(t-=r/6,n-=i/6,r*=4/3,i*=4/3);try{this.av.setDisplayMethod(this.aspect===`fill`?`PLAYER_DISPLAY_MODE_FULL_SCREEN`:`PLAYER_DISPLAY_MODE_LETTER_BOX`),this.av.setDisplayRect(Math.round(t*e),Math.round(n*e),Math.round(r*e),Math.round(i*e))}catch(e){}}tracks(e){try{return this.av.getTotalTrackInfo().filter(t=>t.type===e).map((e,t)=>{let n=``;try{n=JSON.parse(e.extra_info).language||``}catch(e){}return{index:e.index,language:n,label:Gd(n,t)}})}catch(e){return[]}}audioTracks(){return this.tracks(`AUDIO`)}textTracks(){return this.tracks(`TEXT`)}selectAudio(e){try{this.av.setSelectTrack(`AUDIO`,e)}catch(e){}}selectText(e){try{e===null?this.av.setSilentSubtitle(!0):(this.av.setSilentSubtitle(!1),this.av.setSelectTrack(`TEXT`,e))}catch(e){}}videoHeight(){try{let e=this.av.getTotalTrackInfo().find(e=>e.type===`VIDEO`);return e?JSON.parse(e.extra_info).Height|0:0}catch(e){return 0}}duration(){try{return this.av.getDuration()||0}catch(e){return 0}}buffered(){return 0}setSpeed(e){try{e===Math.round(e)&&this.av.setSpeed(e)}catch(e){}}},qd=class{constructor(e,t){lr(this,`video`,void 0),lr(this,`hls`,null),lr(this,`ts`,null),lr(this,`ev`,void 0),lr(this,`token`,0),this.ev=t;let n=document.createElement(`video`);n.style.cssText=`position:absolute;background:#000`,n.autoplay=!0,n.addEventListener(`waiting`,()=>t.onBuffering(!0)),n.addEventListener(`playing`,()=>{t.onBuffering(!1),t.onPlaying()}),n.addEventListener(`ended`,()=>t.onEnded()),n.addEventListener(`timeupdate`,()=>t.onTime(n.currentTime*1e3)),n.addEventListener(`error`,()=>t.onError(n.error?`media ${n.error.code}`:`media`)),e.appendChild(n),this.video=n,this.setRect({x:0,y:0,w:0,h:0})}open(e,t,n){this.stop(),++this.token;let r=this.video;!/\.m3u8(\?|$)/i.test(e)&&/\.ts(\?|$)/i.test(e),r.src=pr(e),r.addEventListener(`loadedmetadata`,()=>{n&&(r.currentTime=n/1e3)},{once:!0})}stop(){this.token++,this.hls&&(this.hls.destroy(),this.hls=null),this.ts&&(this.ts.destroy(),this.ts=null),this.video.removeAttribute(`src`),this.video.load()}pause(){this.video.pause()}resume(){this.video.play()}seek(e){this.video.currentTime=Math.max(0,e/1e3)}setRect(e){let t=this.video.style;t.left=`${e.x}px`,t.top=`${e.y}px`,t.width=`${e.w}px`,t.height=`${e.h}px`}setAspect(e){let t=this.video.style;t.objectFit=e===`fit`?`contain`:e===`fill`?`fill`:`cover`}audioTracks(){return this.hls?this.hls.audioTracks.map((e,t)=>({index:t,language:e.lang||``,label:e.name||Gd(e.lang,t)})):[]}textTracks(){return this.hls?this.hls.subtitleTracks.map((e,t)=>({index:t,language:e.lang||``,label:e.name||Gd(e.lang,t)})):[]}selectAudio(e){this.hls&&(this.hls.audioTrack=e)}selectText(e){this.hls&&(this.hls.subtitleTrack=e===null?-1:e)}videoHeight(){return this.video.videoHeight}duration(){let e=this.video.duration;return isFinite(e)?e*1e3:0}buffered(){let e=this.video.buffered;return e.length?e.end(e.length-1)*1e3:0}setSpeed(e){this.video.playbackRate=e}},X=I(`idle`),Jd=I(null),Yd=I(``),Xd=I(`unknown`),Zd=I(0),Qd=I(q.value.aspect),$d=I(null),ef=I(0),tf=I(null),nf=I(null),rf=I(``),Z,af=0,of,sf,cf=!1,lf={tur:`tr`,eng:`en`,deu:`de`,ger:`de`,fra:`fr`,fre:`fr`,ara:`ar`,rus:`ru`},uf=e=>{let t=e.toLowerCase().slice(0,3);return lf[t]||t.slice(0,2)};function df(e,t){q.peek().rememberTracks&&(e===`audio`?t&&t.language&&kc({preferredAudio:uf(t.language)}):kc({preferredSubtitle:t&&t.language?uf(t.language):null}))}function ff(){cf=!0;let{preferredAudio:e,preferredSubtitle:t}=q.peek(),n=(e,t)=>t?e.find(e=>e.language&&uf(e.language)===t):void 0,r=n(Z.audioTracks(),e);r&&Z.selectAudio(r.index);let i=n(Z.textTracks(),t);i&&Z.selectText(i.index)}var pf={},mf=[1500,3e3,6e3,12e3],hf=[`auth`,`not_found`,`format`,`limit`];function gf(e){let t=e.toUpperCase();return/HTTP (429|458|509)\b/.test(t)?`limit`:/HTTP 5\d\d\b/.test(t)?`server`:/AUTH|401|403|FORBIDDEN|UNAUTHORIZED/.test(t)?`auth`:/INVALID_URI|404|410|NOT_FOUND|MANIFESTLOADERROR/.test(t)?`not_found`:/NOT_SUPPORTED|UNSUPPORTED|FORMAT|MEDIA 4/.test(t)?`format`:/DECOD|MEDIA 3/.test(t)?`decoder`:/TIMEOUT|TIMED_OUT/.test(t)?`timeout`:/CONNECTION|NETWORK|MEDIA 2|FRAGLOAD|LEVELLOAD/.test(t)?`network`:`unknown`}async function _f(e){if(!/^https?:/i.test(e))return null;let t=typeof AbortController<`u`?new AbortController:null,n=setTimeout(()=>t&&t.abort(),5e3);try{let n=await fetch(e,{headers:{Range:`bytes=0-0`},cache:`no-store`,signal:t?t.signal:void 0});try{n.body&&n.body.cancel()}catch(e){}return n.status>=400?`HTTP ${n.status}${n.statusText?` ${n.statusText}`:``}`:null}catch(e){return null}finally{clearTimeout(n)}}var vf=!1,yf=0;function bf(e){let t={onBuffering:e=>{e&&X.value===`playing`?X.value=`loading`:!e&&X.value===`loading`&&(X.value=`playing`)},onPlaying:()=>{X.value===`loading`&&!cf&&ff(),X.value=`playing`,af=0,Zd.value=0,pf.started&&pf.started()},onEnded:()=>pf.ended&&pf.ended(),onTime:e=>{ef.value=e},onSubtitle:e=>{rf.value=e},onError:e=>{let t=Jd.value;if(!t||X.value===`error`||vf)return;vf=!0,X.value=`loading`;let n=yf;_f(t.url).then(r=>{if(n!==yf||(vf=!1,X.value===`error`))return;let i=r||e;console.warn(`oynatma hatası`,i);let a=gf(i);if(hf.indexOf(a)<0&&af<mf.length){Zd.value=af+1,clearTimeout(of);let e=t.key.startsWith(`live:`)?void 0:ef.peek()||sf;of=window.setTimeout(()=>Z.open(t.url,t.userAgent,e),mf[af++])}else Zd.value=0,Xd.value=a,Yd.value=i,X.value=`error`,Z.stop(),pf.failed&&pf.failed()})}};Z=Et?new Kd(e,t):new qd(e,t),$d.subscribe(e=>{e===null?Z.setRect({x:0,y:0,w:0,h:0}):e===`full`?Z.setRect({x:0,y:0,w:window.innerWidth,h:window.innerHeight}):Z.setRect(e)}),window.addEventListener(`resize`,()=>{$d.peek()===`full`&&Z.setRect({x:0,y:0,w:window.innerWidth,h:window.innerHeight})}),Qd.subscribe(e=>{Z.setAspect(e),q.peek().aspect!==e&&kc({aspect:e})}),document.addEventListener(`visibilitychange`,()=>{let e=Jd.value;if(!e)return;if(document.hidden){Z.stop();return}let t=e.key.startsWith(`live:`)?void 0:ef.peek()||sf;X.value=`loading`,Z.open(e.url,e.userAgent,t)})}function xf(e,t={}){pf.ended=t.onEnded,pf.failed=t.onFailed,pf.started=t.onStarted,!(Jd.value&&Jd.value.key===e.key&&X.value!==`error`)&&(clearTimeout(of),yf++,vf=!1,af=0,Zd.value=0,cf=!1,sf=t.startMs,Jd.value=e,X.value=`loading`,Yd.value=``,rf.value=``,tf.value=null,nf.value=null,ef.value=t.startMs||0,Z.open(e.url,e.userAgent,t.startMs))}function Sf(){let e=Jd.value;if(!e)return;let t=e.key.startsWith(`live:`)?void 0:ef.peek()||sf;Jd.value=null,xf(e,{startMs:t,onEnded:pf.ended,onFailed:pf.failed,onStarted:pf.started})}function Cf(){clearTimeout(of),yf++,vf=!1,Jd.value=null,X.value=`idle`,Z.stop()}function wf(){X.value===`paused`?(Z.resume(),X.value=`playing`):(X.value===`playing`||X.value===`loading`)&&(Z.pause(),X.value=`paused`)}var Tf=e=>Z.seek(e),Ef=()=>Z.audioTracks(),Df=()=>Z.textTracks(),Of=e=>Z.selectAudio(e);function kf(e){e===null&&(rf.value=``),Z.selectText(e)}var Af=()=>Z.videoHeight(),jf=()=>Z.duration(),Mf=()=>Z.buffered(),Nf=e=>Z.setSpeed(e);function Pf(e){let t=e.getBoundingClientRect();return{x:t.left,y:t.top,w:t.width,h:t.height}}var Ff=700,If=e=>{let t=Wd.countries[e];return t?t[sn.value]:e};function Lf({onOpenPlayer:e}){var t;let n=Fc.value,r=q.value,[i,a]=N([]),[o,s]=N(null),[c,l]=N(0),u=F(0);u.current=c;let d=F(null),[f,p]=N(null),[m,h]=N([]),[g,_]=N(null),[v,y]=N(null),[b,x]=N(null),S=Tl.value,[ee,C]=N(!1),[w,T]=N(!1),E=F(null),D=F(null),O=nd.value,k=(()=>{let e=Ic.value;return!!e&&e.providerId===n&&`stage`in e&&e.stage!==`DONE`})(),te=(t=(Pc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync;P(()=>{K.categories.where(`[providerId+kind]`).equals([n,`live`]).sortBy(`order`).then(a),sd(n),Ol(n),Jl(n).then(e=>h(e.sort((e,t)=>e.name.localeCompare(t.name))))},[n,te]);let A=ke(()=>{let e=[{key:`fav`,label:R(`cat_favorites`),filter:{type:`fav`}},{key:`recent`,label:R(`cat_recent`),filter:{type:`recent`}},{key:`all`,label:R(`cat_all`),filter:{type:`all`}}],t=m.map(e=>({key:`ug:${e.id}`,label:e.name,filter:{type:`ugroup`,id:e.id},group:e})),n=i.filter(Ml);if(r.groupMode===`CATEGORY`){let i=e=>(El.value.get(e.id)||{}).pinned||0,a=n.map((e,t)=>[e,t]).sort((e,t)=>i(t[0])-i(e[0])||e[1]-t[1]).map(e=>e[0]);return e.concat(t,a.map(e=>({key:`cat:${e.id}`,label:Gs(e.name,r.filterWords),filter:{type:`cat`,id:e.id},platform:$s(e.name),locked:kl(e),pinned:!!(El.value.get(e.id)||{}).pinned,cat:e})))}let a=sn.value===`tr`?`TR`:`UK`,o=ic(n.map(e=>({id:e.id,name:e.name,locked:kl(e)})),r.groupMode,a);return e.concat(t,o.map(e=>({key:e.key,label:e.platform?e.platform.name:e.country?If(e.country):R(`genre_${e.genre.toLowerCase()}`),filter:{type:`group`,key:e.key,ids:e.categoryIds},platform:e.platform})))},[i,r.groupMode,sn.value,m,S]),j=Vl(O),ne=A.find(e=>Vl(e.filter)===j);P(()=>{rd.value=ne?ne.label:``},[ne&&ne.label]),P(()=>{let e=!0;return s(null),Ul(n,O).then(t=>{if(!e)return;let n=t,r=id.peek(),i=r===null?-1:n.indexOf(r);s(n);let a=d.current===j;d.current=j;let o=i>=0?i:a?Math.max(0,Math.min(u.current,n.length-1)):0;l(o),i>=0&&(id.value=null),(i>=0||a)&&setTimeout(()=>{i<0&&document.activeElement!==document.body||Rt(D.current&&D.current.querySelector(`[data-idx="${o}"]`))},0)}),()=>{e=!1}},[n,j,te,S]);let re=F({pick:e=>{},menu:e=>{}});re.current={pick:e=>oe(!!e.cat&&Al(e.cat),()=>{e.cat&&jl(e.cat.id),nd.value=e.filter}),menu:e=>le(e)};let ie=ke(()=>o?new Gl(o):null,[o]);P(()=>{id.peek()===null&&setTimeout(()=>L(E.current),0)},[]),P(()=>{let e=()=>{let e=document.activeElement;C(!!E.current&&E.current.contains(e)),T(!!D.current&&D.current.contains(e))};return document.addEventListener(`focusin`,e),()=>document.removeEventListener(`focusin`,e)},[]),P(()=>()=>{ad.peek()||Cf(),$d.value=null},[]);let ae=(e,t)=>r.numbering===`HIDDEN`?null:r.numbering===`CATEGORY`?t+1:e?e.number:null,oe=(e,t)=>e?_({then:t}):t(),se=async t=>{if(!o)return;let n=await K.channels.get(o[t]),r=n&&n.categoryId!==null&&i.find(e=>e.id===n.categoryId)||null;oe(!!n&&Al(r,n.id),()=>{n&&jl(r?r.id:null,n.id),e(o,t)})},ce=async e=>{let t=ie&&(await ie.range(e,e+1))[0];if(!t||!o)return;let r=od.value.has(t.id),i=async()=>s(await Ul(n,O)),a=[{label:R(r?`menu_remove_favorite`:`menu_add_favorite`),onSelect:async()=>{await Kl(n,`live`,t.id),await sd(n),O.type===`fav`&&i()}}];if(O.type===`fav`||O.type===`ugroup`){let t=async t=>{if(!(t<0||t>=o.length)){if(O.type===`ugroup`)await $l(O.id,o,e,t);else{let[n,r]=await K.favorites.bulkGet([o[e],o[t]]);if(!n||!r)return;await K.favorites.bulkPut([V(V({},n),{},{order:r.order}),V(V({},r),{},{order:n.order})])}await i(),l(t)}};a.push({label:R(`menu_move_up`),onSelect:()=>t(e-1)},{label:R(`menu_move_down`),onSelect:()=>t(e+1)})}a.push({label:R(`menu_add_to_group`),onSelect:()=>p({title:R(`menu_add_to_group`),items:m.map(e=>({label:e.name,onSelect:()=>{Xl(e.id,t.id).then(()=>B(e.name))}})).concat([{label:R(`menu_new_group`),onSelect:()=>x({initial:R(`group_default_name`,m.length+1),save:async e=>{await Xl(await Yl(n,e.trim()||R(`group_default_name`,m.length+1)),t.id),h((await Jl(n)).sort((e,t)=>e.name.localeCompare(t.name)))}})}])})}),O.type===`ugroup`&&a.push({label:R(`menu_remove_from_group`),onSelect:async()=>{await Zl(O.id,t.id),i()}}),a.push({label:R(`menu_epg_mapping`),onSelect:()=>ld({name:`epgmap`,channelId:t.id})});let c=!!(Dl.value.get(t.id)||{}).locked;a.push({label:R(c?`menu_unlock`:`menu_lock`),onSelect:()=>{if(!Rl())return y(R(`pin_needed_first`));c?_({then:()=>Il(t.id,n,{locked:!1})}):Il(t.id,n,{locked:!0})}}),a.push({label:R(`menu_hide`),onSelect:async()=>{await Il(t.id,n,{hidden:!0}),i()}}),p({title:t.name,items:a})},le=e=>{if(e.group)return p({title:e.label,items:[{label:R(`menu_delete_group`),onSelect:async()=>{await Ql(e.group.id),h(m.filter(t=>t.id!==e.group.id)),Vl(O)===e.key&&(nd.value={type:`all`})}}]});let t=e.cat;if(!t)return;let r=El.value.get(t.id)||{},i=kl(t);p({title:t.name,items:[{label:R(r.pinned?`menu_unpin`:`menu_pin_top`),onSelect:()=>Fl(t.id,n,{pinned:r.pinned?0:Date.now()})},{label:R(i?`menu_unlock`:`menu_lock`),onSelect:()=>{if(!Rl())return y(R(`pin_needed_first`));i?_({then:()=>Fl(t.id,n,{locked:!1})}):Fl(t.id,n,{locked:!0})}},{label:R(`menu_hide`),onSelect:async()=>{await Fl(t.id,n,{hidden:!0}),Vl(O)===e.key&&(nd.value={type:`all`})}}]})},ue=xn(async e=>{if(!o)return;let t=-1;if(r.numbering===`CATEGORY`)t=e-1<o.length?e-1:-1;else{let r=await K.channels.where(`[providerId+number]`).equals([n,e]).first();t=r?o.indexOf(r.id):-1}if(t<0)return B(R(`channel_not_found`));l(t),setTimeout(()=>Rt(D.current&&D.current.querySelector(`[data-idx="${t}"]`)),0)});Kt(e=>{if(e.startsWith(`digit`))return ue.push(e.slice(5)),!0});let de=R(`group_${r.groupMode.toLowerCase()}`);return M(`div`,{class:`live-screen`,children:[M(`div`,{class:`live-cats glass${ee?` wide`:``}`,ref:E,"data-focus-group":`live-cats`,children:[M(`button`,{class:`group-mode`,"data-focus":!0,onClick:()=>p({title:R(`group_by`,de),items:[`CATEGORY`,`COUNTRY`,`GENRE`,`PLATFORM`].map(e=>({label:R(`group_${e.toLowerCase()}`),checked:e===r.groupMode,onSelect:()=>{kc({groupMode:e}),nd.value={type:`all`}}}))}),children:[M(`span`,{children:[M(`span`,{class:`gm-title`,children:R(`live_categories`)}),M(`span`,{class:`gm-value`,children:R(`group_by`,de)})]}),M(z,{name:`tune`})]}),M(Rf,{entries:A,selectedKey:j,actions:re})]}),M(`div`,{class:`live-channels glass`,children:[M(`div`,{class:`panel-title`,children:[M(`h2`,{children:ne?ne.label:``}),o&&o.length>0&&M(`span`,{class:`muted`,children:R(`live_channel_count`,o.length)})]}),o&&o.length===0?M(`p`,{class:`empty`,children:R(k?`live_syncing`:`live_empty_category`)}):M(gd,{listRef:D,group:`live-channels`,pager:ie,count:o?o.length:0,index:c,setIndex:l,numberOf:ae,focused:w,onOpen:se,onMenu:ce})]}),M(Vf,{pager:ie,index:c,active:w,locked:e=>Al(i.find(t=>t.id===e.categoryId)||null,e.id)}),M(Sn,{digits:ue.digits}),f&&M(bn,{title:f.title,items:f.items,onClose:()=>p(null)}),g&&M(Cn,{title:R(`pin_enter`),check:zl,onDone:()=>{let e=g.then;_(null),e()},onClose:()=>_(null)}),v&&M(Tn,{text:v,onClose:()=>y(null)}),b&&M(wn,{title:R(`menu_new_group`),label:R(`group_name`),initial:b.initial,onSave:b.save,onClose:()=>x(null)})]})}var Rf=class extends S{constructor(...e){super(...e),lr(this,`rev`,-1)}shouldComponentUpdate(e){return e.entries!==this.props.entries||e.selectedKey!==this.props.selectedKey||Tl.peek()!==this.rev}render(){let{entries:e,selectedKey:t,actions:n}=this.props;return this.rev=Tl.peek(),M(`div`,{class:`cat-list`,children:e.map(e=>M(zf,{e,selected:Vl(e.filter)===t,onClick:()=>n.current.pick(e),onLongPress:()=>n.current.menu(e)},e.key))})}};function zf({e,selected:t,onClick:n,onLongPress:r}){return M(`button`,{onlongpress:r,class:`cat-row focus-row${t?` selected`:``}`,"data-focus":!0,"data-focus-default":t||void 0,onClick:n,children:[e.platform&&M(Bf,{p:e.platform}),M(`span`,{class:`cat-name`,children:e.label}),e.pinned&&M(z,{name:`pin`,class:`cat-icon`}),e.locked&&M(z,{name:`lock`,class:`cat-icon`})]})}function Bf({p:e}){let t=ec(e);return M(`span`,{class:`platform-badge`,children:t?M(`img`,{src:t,alt:``,class:e.tintWhite===!1?``:`tint-white`}):M(`b`,{children:e.name})})}function Vf({pager:e,index:t,active:n,locked:r}){let[i,a]=N(),[o,s]=N(null),c=F(null);P(()=>{let e=()=>{let e=$d.peek();e&&e!==`full`&&c.current&&($d.value=Pf(c.current))};return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),P(()=>{if(s(null),!i)return;let e=!0,t=setTimeout(()=>dl(i).then(t=>e&&s(t)),250);return()=>{e=!1,clearTimeout(t)}},[i&&i.id]);let l=q.value.previewAutoplay;return P(()=>{if(!e)return;let n=!0;return e.range(t,t+1).then(e=>n&&a(e[0])),()=>{n=!1}},[e,t]),P(()=>{if(!i)return;let e=Jd.peek();if(e&&e.key===`live:${i.id}`&&($d.value=Pf(c.current)),!n||!l||r(i))return;let t=setTimeout(()=>{let e=(Pc.value||[]).find(e=>e.id===i.providerId);$d.value=Pf(c.current),xf({url:i.url,userAgent:e?e.userAgent:null,key:`live:${i.id}`})},Ff);return()=>clearTimeout(t)},[i&&i.id,n]),M(`div`,{class:`live-preview glass`,children:[M(`span`,{class:`preview-label`,children:R(`live_preview`)}),M(`div`,{class:`preview-box${$d.value&&$d.value!==`full`?` hole`:``}`,ref:c,children:i&&r(i)?M(z,{name:`lock`,class:`preview-lock`}):!l&&i&&M(Qu,{src:i.logo,size:64})}),i&&M(`h3`,{class:`preview-name`,children:i.name}),o&&(o.now||o.next)?M(x,{children:[o.now&&M(Hf,{label:R(`now_label`),p:o.now,progress:!0}),o.next&&M(Hf,{label:R(`next_label`),p:o.next})]}):M(`p`,{class:`muted`,children:R(`no_program`)})]})}function Hf({label:e,p:t,progress:n}){return M(`div`,{class:`program-block`,children:[M(`span`,{class:`pb-label`,children:`${e} · ${bl(t)}`}),M(`span`,{class:`pb-title`,children:t.title}),n&&M($u,{value:_l(t),class:`pb-progress`}),t.desc&&M(`span`,{class:`pb-desc`,children:t.desc})]})}var Uf=e=>e<10?`0${e}`:`${e}`;function Wf(e,t){if(!t){let t=new Date(e);return{Y:`${t.getFullYear()}`,m:Uf(t.getMonth()+1),d:Uf(t.getDate()),H:Uf(t.getHours()),M:Uf(t.getMinutes()),S:Uf(t.getSeconds())}}let n;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).format(new Date(e))}catch(t){return Wf(e)}let r=/(\d+)\/(\d+)\/(\d+),?\s+(\d+):(\d+):(\d+)/.exec(n);return{Y:r[3],m:r[1],d:r[2],H:Uf(r[4]%24),M:r[5],S:r[6]}}var Gf=(e,t,n)=>{let r=Wf(e,n);return t.replace(/[YmdHMS]/g,e=>r[e])};function Kf(e,t,n,r,i){let a=e=>Math.floor(e/1e3),o={utc:t,start:t,utcend:n,end:n,lutc:r,now:r,timestamp:r};return e.replace(/\{([YmdHMS])\}/g,(e,n)=>Wf(t,i)[n]).replace(/\$?\{(\w+)(?::([^}]+))?\}/g,(e,s,c)=>{if(s===`duration`||s===`offset`){let e=a(s===`duration`?n-t:r-t);return`${c&&/^\d+$/.test(c)?Math.floor(e/+c):e}`}let l=o[s];return l===void 0?e:c?Gf(l,c,i):`${a(l)}`})}var qf=(e,t)=>e+(e.indexOf(`?`)>=0?`&`:`?`)+t.replace(/^[?&]/,``);function Jf(e,t,n,r,i={}){let a=Math.floor(t/1e3),o=Math.max(60,Math.floor((n-t)/1e3));switch(e.catchupType){case`XTREAM`:{let n=/^(https?:\/\/[^/]+)((?:\/.*?)?)\/([^/]+)\/([^/]+)\/([^/?]+?)(?:\.\w+)?(?:\?.*)?$/.exec(e.url);if(!n)return null;let r=n[1]+n[2].replace(/\/live$/,``),a=Wf(t,i.serverZone||i.deviceZone);return`${r}/timeshift/${n[3]}/${n[4]}/${Math.ceil(o/60)}/${a.Y}-${a.m}-${a.d}:${a.H}-${a.M}/${n[5]}.ts`}case`SHIFT`:return qf(e.url,`utc=${a}&lutc=${Math.floor(r/1e3)}`);case`APPEND`:case`DEFAULT`:{if(!e.catchupSource)return null;let a=Kf(e.catchupSource,t,n,r,i.deviceZone);return e.catchupType===`APPEND`?e.url+a:/^https?:\/\//i.test(a)?a:qf(e.url,a)}case`FLUSSONIC`:{let t=e.url.indexOf(`?`),n=t>=0?e.url.slice(0,t):e.url,r=t>=0?e.url.slice(t):``,i=/^(.*\/)([^/]+)\.m3u8$/.exec(n);if(i)return`${i[1]}${i[2]}-${a}-${o}.m3u8${r}`;let s=/^(.*\/)(?:mpegts|[^/]+\.ts)$/.exec(n);return s?`${s[1]}timeshift_abs-${a}.ts${r}`:`${n.replace(/\/$/,``)}/timeshift_abs-${a}.ts${r}`}default:return null}}var Yf=(e,t,n)=>e.catchupType!==`NONE`&&t<n&&t>=n-Math.max(1,e.catchupDays)*864e5;function Xf({onRetry:e,onBack:t}){let n=F(null);return P(()=>{L(n.current)},[]),M(`div`,{class:`player-center`,children:M(`div`,{class:`error-card`,ref:n,"data-focus-scope":!0,children:[M(z,{name:`error`,class:`error-icon`}),M(`p`,{children:Zf()}),Yd.value&&M(`p`,{class:`error-detail`,children:R(`player_error_detail`,Yd.value)}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:e,children:R(`retry`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:t,children:R(`back`)})]})]})})}var Zf=()=>R(`player_error_${Xd.peek()}`),Qf=/(?:(\d+):)?(\d{1,2}):(\d{1,2})[,.](\d{1,3})/;function $f(e){let t=Qf.exec(e);if(!t)return NaN;let n=(t[4]+`00`).slice(0,3);return(((t[1]||0)*60+ +t[2])*60+ +t[3])*1e3+ +n}function ep(e){return e.replace(/\{\\[^}]*\}/g,``).replace(/<(\/?)([ibu])(\s[^>]*)?>/gi,`$1$2`).replace(/<[^>]+>/g,``).replace(/\u0001/g,`<`).replace(/\u0002/g,`>`).trim()}function tp(e){let t=[],n=e.replace(/^/,``).replace(/\r\n?/g,`
9
+ `).split(/\n\s*\n/);for(let e of n){let n=e.split(`
10
+ `),r=n.findIndex(e=>e.indexOf(`-->`)>=0);if(r<0)continue;let[i,a]=n[r].split(`-->`),o=$f(i),s=$f(a),c=ep(n.slice(r+1).join(`
11
+ `));isNaN(o)||isNaN(s)||!c||t.push({start:o,end:s,text:c})}return t.sort((e,t)=>e.start-t.start)}function np(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i].start<=t?n=i+1:r=i}let i=[];for(let r=n-1;r>=0&&r>=n-5;r--)e[r].end>t&&i.unshift(e[r]);return i}function rp(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch(t){return new TextDecoder(`windows-1254`).decode(e)}}var ip=I(null),ap=I(0);function op(){ip.value=null,ap.value=0}var sp=[`#fff`,`#ffeb3b`,`#00e5ff`];function cp({text:e}){let t=e.split(/(<\/?[ibu]>)/i),n=[],r=!1,i=!1,a=!1;return t.forEach((e,t)=>{let o=/^<(\/?)([ibu])>$/i.exec(e);if(o){let e=!o[1],t=o[2].toLowerCase();t===`i`?r=e:t===`b`?i=e:a=e}else e&&n.push(M(`span`,{style:{fontStyle:r?`italic`:void 0,fontWeight:i?700:void 0,textDecoration:a?`underline`:void 0},children:e},t))}),M(x,{children:n})}function lp(){let e=yt(()=>{let e=ip.value;return e?np(e.cues,ef.value-ap.value).map(e=>e.text).join(`
12
+ `):rf.value}).value;if(!e)return null;let t=q.value;return M(`div`,{class:`subtitle-layer${t.subtitleBackground?` boxed`:``}`,style:{fontSize:`${(4*t.subtitleScale).toFixed(2)}rem`,color:sp[t.subtitleColor]},children:e.split(`
13
+ `).map((e,t)=>M(`span`,{class:`subtitle-line`,children:M(cp,{text:e})},t))})}var up=72e5,dp=18e5,fp=36e5,pp=864e5,mp=e=>Math.floor(e/dp)*dp,hp=150;function gp(e){let{pager:t,count:n,rowRem:r,winStart:i}=e,a=i+up,o=F(null),[s,c]=N(Math.max(0,e.initialRow-3)),[l,u]=N({row:e.initialRow,pid:-1}),[d,f]=N(new Map),[p,m]=N(new Map),[h,g]=N(Date.now()),_=o.current?Math.max(1,Math.floor(o.current.clientHeight/vd()/r)):6,v=F(new Map);P(()=>{let e=setInterval(()=>g(Date.now()),3e4);return()=>clearInterval(e)},[]),P(()=>{l.row<s?c(l.row):l.row>s+_-1&&c(Math.min(Math.max(0,n-_),l.row-_+1))},[l.row,_,n]);let y=s,b=Math.min(n,s+_+1);P(()=>{let e=!0;return t.range(y,b).then(async t=>{let n=new Map;if(t.forEach((e,t)=>e&&n.set(y+t,e)),!e)return;f(n);let r=i-pp/2,a=i+up+pp,o=[...n.values()].filter(e=>{let t=v.current.get(e.id);return!t||t.from>i-fp||t.to<i+72e5+fp});for(await Promise.all(o.map(async e=>{v.current.set(e.id,{from:r,to:a,list:await ll(e,r,a)})}));v.current.size>hp;)v.current.delete(v.current.keys().next().value);if(!e)return;let s=new Map;v.current.forEach((e,t)=>s.set(t,e.list)),m(s)}),()=>{e=!1}},[t,y,b,Math.floor(i/pp*2)]);let x=e=>{let t=d.get(e);return t&&p.get(t.id)||null};P(()=>{if(l.pid!==-1)return;let e=x(l.row);if(e===null)return;let t=l.at===void 0?Date.now():l.at,n=e.find(e=>e.start<=t&&e.stop>t)||e.find(e=>e.stop>i&&e.start<a);u({row:l.row,pid:n?n.id:null})},[p,d]),P(()=>{if(!o.current)return;if(l.pid===-1){let e=o.current.querySelector(`[data-cell="${l.row}:ch"], [data-cell="${l.row}:wait"]`);e&&document.activeElement!==e&&e.focus();return}let e=o.current.querySelector(`[data-cell="${l.row}:${l.pid===null?`ch`:l.pid}"]`)||o.current.querySelector(`[data-cell="${l.row}:wait"]`);e&&document.activeElement!==e&&e.focus()},[l,d,p,i,s]),P(()=>{let e=()=>{let e=document.activeElement,t=e&&o.current&&o.current.contains(e)?e.getAttribute(`data-cell`):null;if(!t)return;let[n,r]=t.split(`:`);if(r===`wait`)return;let i={row:+n,pid:r===`ch`||r===`null`?null:+r};u(e=>e.row===i.row&&(e.pid===i.pid||e.pid===-1)?e:i)};return document.addEventListener(`focusin`,e),()=>document.removeEventListener(`focusin`,e)},[]);let S=(e,t)=>{let n=(x(e)||[]).filter(e=>e.stop>i&&e.start<a),r=n.find(e=>e.start<=t&&e.stop>t)||n[0];return r?r.id:null};Kt(t=>{if(!o.current||!o.current.contains(document.activeElement))return;let r=x(l.row)||[],s=l.pid===null?-1:r.findIndex(e=>e.id===l.pid),c=s>=0?r[s]:null,d=c?Math.max(c.start,i):l.at===void 0?i:l.at;switch(t){case`right`:{if(!c)return u({row:l.row,pid:S(l.row,i)}),!0;let t=r[s+1];return c.stop>a?e.setWinStart(i+fp):t?(t.start>=a&&e.setWinStart(mp(t.start-dp)),u({row:l.row,pid:t.id})):e.setWinStart(i+fp),!0}case`left`:{if(!c)return!0;let t=r[s-1];return c.start<i?e.setWinStart(i-fp):t&&t.stop>i-pp?(t.stop<=i&&e.setWinStart(mp(Math.max(t.start,t.stop-up+dp))),u({row:l.row,pid:t.id})):u({row:l.row,pid:null}),!0}case`up`:case`down`:case`chUp`:case`chDown`:{let e=t===`up`?-1:t===`down`?1:t===`chUp`?-8:8;if(t===`up`&&l.row===0)return;let r=Math.max(0,Math.min(n-1,l.row+e));return r!==l.row&&(l.pid===null?u({row:r,pid:null}):x(r)===null?u({row:r,pid:-1,at:d}):u({row:r,pid:S(r,d)})),!0}}});let ee=h>=i&&h<a?(h-i)/up*100:null,C=[];for(let t=y;t<b;t++){let n=d.get(t);if(!n){C.push(M(`div`,{class:`epg-row`,style:{top:`${(t-s)*r}rem`,height:`${r-.4}rem`},children:M(`button`,{class:`epg-channel`,"data-focus":!0,"data-cell":`${t}:wait`})},t));continue}let o=x(t),c=o?o.filter(e=>e.stop>i&&e.start<a):[],u=e.numberOf(n,t);C.push(M(`div`,{class:`epg-row`,style:{top:`${(t-s)*r}rem`,height:`${r-.4}rem`},children:[M(`button`,{class:`epg-channel`,"data-focus":!0,"data-cell":`${t}:ch`,"data-focus-default":l.row===t&&l.pid===null||void 0,onClick:()=>e.onChannel(n,t),children:[u!==null&&M(`span`,{class:`epg-num`,children:u}),M(Qu,{src:n.logo,size:26}),M(`span`,{class:`epg-chname`,children:n.name})]}),M(`div`,{class:`epg-programs`,children:[o&&!c.length&&M(`button`,{class:`epg-cell`,"data-focus":!0,"data-cell":`${t}:null`,style:{left:0,width:`100%`},onClick:()=>e.onChannel(n,t),children:M(`span`,{class:`epg-title`,children:R(`guide_no_data`)})}),c.map(r=>{let o=Math.max(r.start,i),s=Math.min(r.stop,a);return M(`button`,{class:`epg-cell${r.start<=h&&r.stop>h?` live`:``}`,"data-focus":!0,"data-cell":`${t}:${r.id}`,"data-focus-default":l.row===t&&l.pid===r.id||void 0,style:{left:`${(o-i)/up*100}%`,width:`${(s-o)/up*100}%`},onClick:()=>e.onProgram(r,n,t),children:[M(`span`,{class:`epg-title`,children:r.title}),M(`span`,{class:`epg-time`,children:yl(r.start)})]},r.id)})]})]},t))}return M(`div`,{class:`epg-grid${e.translucent?` translucent`:``}`,children:[M(`div`,{class:`epg-header`,children:[0,1,2,3].map(e=>M(`span`,{style:{left:`${e*25}%`},children:yl(i+e*dp)},e))}),M(`div`,{class:`epg-body`,ref:o,"data-focus-group":`epg`,"data-focus-noscroll":!0,onScroll:e=>{e.currentTarget.scrollTop=0},children:[C,ee!==null&&M(`div`,{class:`epg-now`,style:{left:`calc(var(--epg-ch) + (100% - var(--epg-ch)) * ${ee/100})`}})]})]})}var _p=5e3,vp=700,yp=[`fit`,`fill`,`zoom`],bp=[0,15,30,45,60,90,120],xp=[.5,.75,1,1.25,1.5,2],Sp=[];for(let e=-10;e<=10;e+=.5)Sp.push(e);var Cp=e=>R(`tz_sub_offset_value`,`${e>0?`+`:``}${(e/1e3).toFixed(1)}`),wp=e=>`${e}x`,Tp=3e4,Ep=e=>e<10?`0${e}`:`${e}`,Dp=e=>`${Ep(e.getHours())}:${Ep(e.getMinutes())}`,Op=e=>e>=2e3?`4K`:e>=1e3?`FHD`:e>=700?`HD`:e>0?`SD`:``;function kp({onExit:e}){let t=ad.value,n=t.ids,r=ke(()=>new Gl(n),[n]),[i,a]=N(t.index),[o,s]=N(null),[c,l]=N(!0),[u,d]=N(null),[f,p]=N(0),[m,h]=N(t.archive?{program:t.archive,offset:0}:null),[g,_]=N(null),[v,y]=N(null),[b,x]=N(0),S=F(void 0),ee=F(!0),C=F(void 0),w=F(0),[,T]=N(0),E=F(null),D=F(0),O=F(void 0),k=q.value,te=o?o.providerId:null,A=()=>{l(!0),clearTimeout(O.current),O.current=window.setTimeout(()=>l(!1),_p)},j=e=>{let t=n.length;t&&(o&&(E.current=o.id),clearTimeout(C.current),_(null),h(null),a((e%t+t)%t))};P(()=>{let e=!0;return(async()=>{let t=await K.channels.get(n[i]);if(!e||!t)return;if(q.peek().pinHash){await Ol(t.providerId);let n=t.categoryId===null?null:await K.categories.get(t.categoryId)||null;if(!e)return;if(Al(n,t.id)){s(t),Cf(),y({channel:t,categoryId:t.categoryId});return}}s(t),A(),$d.value=`full`;let r=(Pc.value||[]).find(e=>e.id===t.providerId);if(clearTimeout(S.current),!ee.current&&!m&&(await new Promise(e=>{S.current=window.setTimeout(e,350)}),!e))return;if(ee.current=!1,m){let e=m.program,n=Date.now(),i=Yf(t,e.start,n)?Jf(t,e.start+m.offset,e.stop,n,{serverZone:r?r.serverTimezone:null}):null;if(!i){B(R(`archive_unavailable`)),h(null);return}xf({url:i,userAgent:r?r.userAgent:null,key:`arc:${t.id}:${e.id}:${m.offset}`},{onEnded:()=>ne(t,e)});return}let o=!1;xf({url:t.url,userAgent:r?r.userAgent:null,key:`live:${t.id}`},{onStarted:()=>{o||(o=!0,ql(t.providerId,`live`,t.id),kc({lastChannelId:t.id}))},onFailed:()=>{let e=E.current;if(!q.peek().fallbackToPrevious||e===null||Date.now()-D.current<Tp)return;let t=n.indexOf(e);t<0||(D.current=Date.now(),E.current=null,a(t),B(R(`player_fallback_reason`,Zf())))}})})(),()=>{e=!1,clearTimeout(S.current)}},[i,m,b]);let ne=async(e,t)=>{let n=(await ll(e,t.stop-6e4,t.stop+216e5)).filter(e=>e.id!==t.id&&e.start>=t.stop-6e4).sort((e,t)=>e.start-t.start)[0];h(n&&n.stop<Date.now()?{program:n,offset:0}:null)},re=()=>{clearTimeout(C.current),_(null),h(null)};P(()=>()=>clearTimeout(C.current),[]);let ie=()=>m?m.offset+ef.peek():0,ae=e=>{if(!m)return;let t=Math.min(m.program.stop,Date.now()-6e4)-m.program.start,n=Math.max(0,Math.min(t,(g===null?ie():g)+e));_(n),A(),clearTimeout(C.current),C.current=window.setTimeout(()=>{_(null);let e=o&&o.catchupType===`XTREAM`;h({program:m.program,offset:e?Math.floor(n/6e4)*6e4:n})},vp)};P(()=>{te!==null&&sd(te)},[te]),P(()=>{let e=setInterval(()=>T(e=>e+1),5e3);return()=>{clearInterval(e),clearTimeout(O.current),o&&(id.value=o.id)}},[o]),P(()=>{if(!f)return;let e=setTimeout(()=>{X.peek()!==`paused`&&wf(),p(0),B(R(`sleep_triggered`))},f*6e4);return()=>clearTimeout(e)},[f]);let oe=()=>{o&&(id.value=o.id),ad.value=null,$d.value=null,e()},se=async()=>{if(!o)return;let e=await Kl(o.providerId,`live`,o.id);await sd(o.providerId),B(R(e?`player_favorite_added`:`player_favorite_removed`))},ce=()=>{let e=yp[(yp.indexOf(Qd.value)+1)%yp.length];Qd.value=e,B(R(`aspect_${e}`))},le=e=>{e===`FAVORITE`?se():e===`AUDIO`?d({page:`audio`,direct:!0}):e===`SUBTITLES`?d({page:`subs`,direct:!0}):e===`ASPECT`?ce():e===`CHANNELS`?d(`list`):e===`INFO`?A():e===`GUIDE`&&d(`guide`)},ue=xn(async e=>{let t=-1;if(k.numbering===`CATEGORY`)t=e-1<n.length?e-1:-1;else if(te!==null){let r=await K.channels.where(`[providerId+number]`).equals([te,e]).first();t=r?n.indexOf(r.id):-1}t<0?B(R(`channel_not_found`)):j(t)});P(()=>{let e=()=>{u||d({page:`main`,direct:!1})};return document.addEventListener(`longpress`,e),()=>document.removeEventListener(`longpress`,e)},[u]),Kt((e,t)=>{if(e.startsWith(`digit`))return ue.push(e.slice(5)),!0;if(m&&!u&&e===`stop`)return re(),!0;if(m&&!u&&X.peek()!==`error`){if(e===`left`||e===`right`)return w.current=t&&t.repeat?w.current+1:0,ae((e===`left`?-1:1)*(w.current>4?12e4:3e4)),!0;if(e===`rew`||e===`ff`)return ae((e===`rew`?-1:1)*12e4),!0;if(e===`ok`||e===`playPause`||e===`play`||e===`pause`)return wf(),A(),!0}if(e===`back`)return u?d(null):c?(clearTimeout(O.current),l(!1)):oe(),!0;if(!u&&(X.peek()!==`error`||e!==`ok`&&e!==`left`&&e!==`right`))switch(e){case`ok`:return d(`controls`),l(!0),clearTimeout(O.current),!0;case`up`:case`chUp`:return j(i+1),!0;case`down`:case`chDown`:return j(i-1),!0;case`left`:case`channelList`:return d(`list`),!0;case`right`:case`guide`:return d(`guide`),!0;case`last`:return E.current!==null&&n.indexOf(E.current)>=0&&j(n.indexOf(E.current)),!0;case`info`:return c?l(!1):A(),!0;case`menu`:return d({page:`main`,direct:!1}),!0;case`playPause`:case`play`:case`pause`:return wf(),A(),!0;case`red`:return le(k.colorKeys[0]),!0;case`green`:return le(k.colorKeys[1]),!0;case`yellow`:return le(k.colorKeys[2]),!0;case`blue`:return le(k.colorKeys[3]),!0}});let de=!!o&&od.value.has(o.id),fe=X.value,pe=c&&!u||u===`controls`,me=!!m&&!u&&(c||g!==null||fe===`paused`);return M(`div`,{class:`player`,children:[M(lp,{}),fe===`loading`&&M(`div`,{class:`player-center`,children:[M(`div`,{class:`spinner`}),Zd.value>0&&M(`span`,{class:`retry-label`,children:R(`player_retrying`,Zd.value)})]}),fe===`paused`&&M(`div`,{class:`player-center`,children:M(z,{name:`pause`,class:`paused-icon`})}),fe===`error`&&M(Xf,{onRetry:Sf,onBack:oe}),o&&m&&me&&M(jp,{channel:o,program:m.program,target:g,offset:m.offset,paused:fe===`paused`}),o&&!m&&pe&&M(Mp,{channel:o,number:k.numbering===`HIDDEN`?null:k.numbering===`CATEGORY`?i+1:o.number,favorite:de,hint:u!==`controls`,children:u===`controls`&&M(Np,{favorite:de,subsOn:!1,onClose:()=>{d(null),A()},actions:{channels:()=>d(`list`),guide:()=>d(`guide`),audio:()=>d({page:`audio`,direct:!0}),subs:()=>d({page:`subs`,direct:!0}),picture:ce,favorite:se,more:()=>d({page:`main`,direct:!1}),back:oe}})}),u===`list`&&M(Pp,{pager:r,count:n.length,current:i,title:rd.value,numberOf:(e,t)=>k.numbering===`HIDDEN`?null:k.numbering===`CATEGORY`?t+1:e?e.number:null,onPick:e=>{d(null),e!==i&&j(e)}}),u===`guide`&&M(Fp,{pager:r,count:n.length,current:i,numberOf:(e,t)=>k.numbering===`HIDDEN`?null:k.numbering===`CATEGORY`?t+1:e.number,onPlay:e=>{d(null),e===i?re():j(e)},onArchive:(e,t)=>{d(null),t!==i&&j(t),h({program:e,offset:0})}}),u&&typeof u==`object`&&M(Ip,{page:u.page,direct:u.direct,favorite:de,sleepMin:f,setPage:e=>d({page:e,direct:!1}),close:()=>d(null),onFavorite:se,onSleep:e=>{p(e),e&&B(R(`sleep_set`,e))},onGuide:()=>d(`guide`),onGoLive:m?()=>{d(null),re()}:void 0}),M(Sn,{digits:ue.digits}),v&&M(Cn,{title:R(`pin_enter`),check:zl,onDone:()=>{jl(v.categoryId,v.channel.id),y(null),x(e=>e+1)},onClose:()=>{y(null);let e=E.current;e!==null&&n.indexOf(e)>=0?j(n.indexOf(e)):oe()}})]})}function Ap({text:e,live:t,archive:n}){return M(`span`,{class:`badge-sm${t?` live`:``}${n?` archive`:``}`,children:e})}function jp(e){let{program:t}=e,n=e.target===null?e.offset+ef.value:e.target,r=Math.max(1,t.stop-t.start);return M(`div`,{class:`info-band archive-band`,children:M(`div`,{class:`band-row`,children:[M(`div`,{class:`band-left`,children:M(Qu,{src:e.channel.logo,size:64})}),M(`div`,{class:`band-mid`,children:[M(`div`,{class:`band-title`,children:[M(`span`,{class:`band-name`,children:e.channel.name}),M(Ap,{text:R(`player_archive`),archive:!0})]}),M(`p`,{class:`band-program`,children:t.title}),M(`div`,{class:`vod-bar-row`,children:[M(z,{name:e.paused?`play`:`pause`,class:`vod-state`}),M(`span`,{class:`vod-time`,children:yl(t.start+n)}),M(`div`,{class:`vod-bar`,children:M(`span`,{class:`vod-played`,style:{width:`${Math.min(100,n/r*100)}%`}})}),M(`span`,{class:`vod-time`,children:yl(t.stop)})]}),M(`p`,{class:`band-hint`,children:R(`tz_archive_hint`)})]}),M(`span`,{class:`band-clock`,children:Dp(new Date)})]})})}function Mp(e){let t=e.channel,[n,r]=N(null),i=xl.value;P(()=>{let e=!0;return dl(t).then(t=>e&&r(t)),()=>{e=!1}},[t.id,i]);let a=n&&n.now,o=n&&n.next,s=Ef().length,c=Df().length,l=Op(Af());return M(`div`,{class:`info-band`,children:[M(`div`,{class:`band-row`,children:[M(`div`,{class:`band-left`,children:[e.number!==null&&M(`span`,{class:`band-number`,children:e.number}),M(Qu,{src:t.logo,size:64})]}),M(`div`,{class:`band-mid`,children:[M(`div`,{class:`band-title`,children:[M(`span`,{class:`band-name`,children:t.name}),e.favorite&&M(z,{name:`star`,class:`fav-star big`}),M(Ap,{text:R(`player_live`),live:!0}),l&&M(Ap,{text:l}),s>1&&M(Ap,{text:`♪ ${s}`}),c>0&&M(Ap,{text:`CC`})]}),a?M(x,{children:[M(`p`,{class:`band-program`,children:[M(`span`,{class:`band-time`,children:bl(a)}),a.title]}),M(`div`,{class:`band-progress`,children:[M($u,{value:_l(a)}),M(`span`,{children:R(`minutes_left`,Math.max(0,Math.round((a.stop-Date.now())/6e4)))})]})]}):M(`p`,{class:`band-program`,children:R(`no_program`)}),o&&M(`p`,{class:`band-next`,children:`${R(`next_label`)}: ${yl(o.start)} ${o.title}`}),e.hint&&M(`p`,{class:`band-hint`,children:R(`player_hint_live`)})]}),M(`span`,{class:`band-clock`,children:Dp(new Date)})]}),e.children]})}function Np(e){let t=F(null);P(()=>{L(t.current)},[]),Kt(t=>{if(t===`back`)return e.onClose(),!0});let n=e.actions;return M(`div`,{class:`control-bar`,ref:t,"data-focus-scope":!0,children:[[`list`,R(`pc_channels`),n.channels],[`guide`,R(`player_guide`),n.guide],[`audio`,R(`player_audio`),n.audio],[`subtitles`,R(`player_subtitles`),n.subs,e.subsOn],[`aspect`,R(`pc_picture`),n.picture],[e.favorite?`star`:`starOutline`,R(`pc_favorite`),n.favorite,e.favorite],[`more`,R(`pc_more`),n.more],[`back`,R(`back`),n.back]].map(([e,t,n,r],i)=>M(`div`,{class:`cb-item`,children:[M(`button`,{class:`cb-btn${r?` active`:``}`,"data-focus":!0,"data-focus-default":i===0||void 0,onClick:n,children:M(z,{name:e})}),M(`span`,{class:`cb-label`,children:t})]},t))})}function Pp(e){let[t,n]=N(e.current),r=F(null);return P(()=>{setTimeout(()=>{let t=r.current&&r.current.querySelector(`[data-idx="${e.current}"]`);t&&t.focus()},0)},[]),M(`div`,{class:`list-overlay`,"data-focus-scope":!0,children:[M(`h2`,{children:e.title}),M(gd,{listRef:r,group:`player-list`,compact:!0,current:e.current,pager:e.pager,count:e.count,index:t,setIndex:n,numberOf:e.numberOf,focused:!0,onOpen:e.onPick,onMenu:()=>{}})]})}function Fp(e){let[t,n]=N(mp(Date.now()));return M(`div`,{class:`guide-overlay`,"data-focus-scope":!0,children:M(gp,{pager:e.pager,count:e.count,initialRow:e.current,rowRem:5.2,translucent:!0,winStart:t,setWinStart:n,numberOf:e.numberOf,onChannel:(t,n)=>e.onPlay(n),onProgram:async(t,n,r)=>{let i=Date.now();t.start>i?B(R(await Ju(t,n)?`guide_reminder_set`:`guide_reminder_removed`)):t.stop<=i&&Yf(n,t.start,i)?e.onArchive(t,r):e.onPlay(r)}})})}function Ip(e){let t=F(null),n=tf.value,r=nf.value,i=e=>{tf.value=e},a=e=>{nf.value=e};P(()=>{L(t.current)},[e.page]),Kt(t=>{if(t===`back`)return e.page!==`main`&&!e.direct?e.setPage(`main`):e.close(),!0});let o=()=>e.direct?e.close():e.setPage(`main`),s=Ef(),c=Df(),l=(e,t,n)=>{let r=e.find(e=>e.index===t);return r?r.label:n},u=R(`player_options`),d=[];if(e.page===`main`){d=[{label:R(`player_audio`),value:s.length?l(s,n,R(`player_auto`)):R(`player_no_tracks`),onSelect:()=>e.setPage(`audio`)},{label:R(`player_subtitles`),value:ip.value?ip.value.label:l(c,r,R(`player_off`)),onSelect:()=>e.setPage(`subs`)},{label:R(`player_aspect`),value:R(`aspect_${Qd.value}`),onSelect:()=>e.setPage(`aspect`)}];let t=e.vod;if(t&&d.push({label:R(`player_speed`),value:wp(t.speed),onSelect:()=>e.setPage(`speed`)}),d.push({label:R(`player_sleep`),value:e.sleepMin?R(`sleep_set`,e.sleepMin):R(`sleep_off`),onSelect:()=>e.setPage(`sleep`)}),t&&t.prev&&d.push({label:R(`vod_prev_ep`),value:t.prev.title,onSelect:()=>{e.close(),t.prev.go()}}),t&&t.next&&d.push({label:R(`vod_next_ep`),value:t.next.title,onSelect:()=>{e.close(),t.next.go()}}),e.onGuide){let t=e.onGuide;d.push({label:R(`player_guide`),onSelect:t}),d.push({label:R(e.favorite?`menu_remove_favorite`:`menu_add_favorite`),onSelect:()=>{e.onFavorite(),e.close()}})}e.onGoLive&&d.unshift({label:R(`player_go_live`),onSelect:e.onGoLive}),d.push({label:R(`player_info`),onSelect:()=>e.setPage(`info`)})}else if(e.page===`audio`)u=R(`player_audio`),d=[{label:R(`player_auto`),checked:n===null,onSelect:()=>{i(null),o()}}].concat(s.map((e,t)=>({label:e.label||R(`track_n`,t+1),checked:n===e.index,onSelect:()=>{Of(e.index),i(e.index),df(`audio`,e),o()}})));else if(e.page===`subs`){u=R(`player_subtitles`);let t=ip.value;d=[{label:R(`player_off`),checked:r===null&&!t,onSelect:()=>{kf(null),a(null),op(),df(`text`,null),o()}}],t&&d.push({label:t.label,checked:!0,onSelect:o}),d=d.concat(c.map((e,n)=>({label:e.label||R(`track_n`,n+1),checked:!t&&r===e.index,onSelect:()=>{op(),kf(e.index),a(e.index),df(`text`,e),o()}})));let n=e.vod;n&&(d.push({label:R(`sub_find`),onSelect:()=>{e.close(),n.findSubs()}}),d.push({label:R(`sub_load`),onSelect:()=>{e.close(),n.loadSubs()}}),t&&d.push({label:R(`sub_offset`),value:Cp(ap.value),onSelect:()=>e.setPage(`offset`)}))}else if(e.page===`offset`)u=R(`sub_offset`),d=Sp.map(e=>({label:Cp(e*1e3),checked:ap.value===e*1e3,onSelect:()=>{ap.value=e*1e3,o()}}));else if(e.page===`aspect`)u=R(`player_aspect`),d=yp.map(e=>({label:R(`aspect_${e}`),checked:Qd.value===e,onSelect:()=>{Qd.value=e,o()}}));else if(e.page===`speed`&&e.vod){let t=e.vod;u=R(`player_speed`),d=xp.map(e=>({label:wp(e),checked:t.speed===e,onSelect:()=>{t.setSpeed(e),o()}}))}else if(e.page===`sleep`)u=R(`player_sleep`),d=bp.map(t=>({label:t?R(`sleep_minutes`,t):R(`sleep_off`),checked:e.sleepMin===t,onSelect:()=>{e.onSleep(t),o()}}));else{u=R(`player_info`);let t=Af();d=[{label:R(`info_video`,t?`${t}p`:R(`info_none`)),onSelect:()=>{}},{label:R(`info_audio`,s.length?s.map(e=>e.label).join(`, `):R(`info_none`)),onSelect:()=>{}},{label:R(`back`),onSelect:()=>e.setPage(`main`)}]}let f=d.some(e=>e.checked);return M(`div`,{class:`options-panel`,ref:t,"data-focus-scope":!0,children:[M(`h2`,{children:u}),d.map((t,n)=>M(`button`,{class:`opt-row focus-row${t.checked?` selected`:``}`,"data-focus":!0,"data-focus-default":(f?t.checked:n===0)||void 0,onClick:t.onSelect,children:[M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:t.label}),t.value&&M(`span`,{class:`opt-value`,children:t.value})]}),t.checked?M(z,{name:`check`}):e.page===`main`&&t.value!==void 0?M(z,{name:`chevron`}):null]},`${e.page}-${n}`))]})}function Lp(){let e=$d.value;if(e===`full`)return null;if(!e)return M(`div`,{class:`backdrop`,style:{left:0,top:0,right:0,bottom:0}});let t=window.innerWidth,n=window.innerHeight,r=(e,t,n,r)=>M(`div`,{class:`backdrop`,style:{left:`${e}px`,top:`${t}px`,width:`${n}px`,height:`${r}px`,backgroundPosition:`${-e}px ${-t}px`}});return M(x,{children:[r(0,0,t,e.y),r(0,e.y+e.h,t,n-e.y-e.h),r(0,e.y,e.x,e.h),r(e.x+e.w,e.y,t-e.x-e.w,e.h)]})}var Rp=1.8,zp=1.2,Bp={movie:{w:11.6,ratio:1.5},series:{w:20,ratio:.5625}},Vp=[[`added`,`sort_added`],[`name`,`sort_name`],[`rating`,`sort_rating`],[`year`,`sort_year`]];function Hp(e){var t;let n=Fc.value,r=((t=(Pc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync)||0,[i,a]=N(e.sort||`added`),[o,s]=N(e.filter.genre||null),[c,l]=N(null),[u,d]=N([]),[f,p]=N(0),[m,h]=N(6),[g,_]=N(Bp[e.kind].w),[v,y]=N(null),b=Bp[e.kind],x=g*b.ratio+Rp,[S,ee]=N(null),C=F(null),w=F(null);P(()=>{Su(n,e.kind,r).then(d)},[n,e.kind]),P(()=>{let t=!0;return wu(n,e.kind,{categoryIds:e.filter.categoryIds,genre:o||void 0,favorites:e.filter.favorites},i).then(e=>{t&&(l(e),p(0))}),()=>{t=!1}},[n,i,o,e.kind,JSON.stringify(e.filter)]),P(()=>{c&&c.length&&setTimeout(()=>L(C.current),0)},[c===null]),P(()=>{let e=C.current;if(!e)return;let t=vd(),n=e.clientWidth/t-2*zp,r=Math.max(1,Math.round(n/(b.w+Rp)));h(r),_(Math.floor((n/r-Rp)*100)/100);let i=e=>{let t=e.target,n=t.closest(`[data-idx]`);n&&p(Number(n.getAttribute(`data-idx`)));let r=t.getAttribute(`data-info-title`);y(r?{title:r,meta:t.getAttribute(`data-info-meta`)||``}:null)};return e.addEventListener(`focusin`,i),()=>e.removeEventListener(`focusin`,i)},[c===null,e.kind]),Kt(e=>{if(e===`back`)return ud(),!0});let T=e.filter.platformKey?Xs.find(t=>t.key===e.filter.platformKey):$s(e.title),E=R(`genre_label`,o||R(`browse_all`));return M(`div`,{class:`browse`,ref:w,children:[M(Wp,{kind:e.kind,title:e.title,filter:e.filter,platform:T||null,genreCount:(e.filter.genre||e.filter.favorites)&&c?c.length:null,children:M(`div`,{class:`row bb-sorts`,children:[Vp.map(([e,t])=>M(`button`,{class:`chip${i===e?` selected`:``}`,"data-focus":!0,onClick:()=>a(e),children:R(t)},e)),u.length>0&&M(`button`,{class:`btn outline bb-genre`,"data-focus":!0,onClick:()=>ee({title:E,items:[null,...u].map(e=>({label:e||R(`browse_all`),checked:e===o,onSelect:()=>s(e)}))}),children:E})]})}),e.kind===`movie`&&M(`p`,{class:`shelf-info browse-info`,children:[v&&M(`b`,{children:v.title}),v&&v.meta&&M(`span`,{children:` ${v.meta}`})]}),M(`div`,{class:`browse-grid ${e.kind}`,ref:C,"data-focus-group":`browse`,style:{"--cw":`${g}rem`},children:c&&(()=>{let t=Math.ceil(c.length/m),n=Math.floor(f/m),r=Math.max(0,n-4),i=Math.min(t,n+7),a=[M(`span`,{class:`grid-spacer`,style:{height:`${r*x}rem`}},`top`)];for(let t=r*m;t<Math.min(c.length,i*m);t++){let n=mu(c[t]);a.push(M(`span`,{"data-idx":t,class:`grid-cell`,children:M(Td,{kind:e.kind,card:n,onClick:()=>Pd(e.kind,n)})},n.key))}return a.push(M(`span`,{class:`grid-spacer`,style:{height:`${(t-i)*x}rem`}},`bottom`)),a})()}),S&&M(bn,{title:S.title,items:S.items,onClose:()=>ee(null)})]})}var Up=e=>{let t=parseInt(e.slice(1),16);return`${t>>16}, ${t>>8&255}, ${t&255}`};function Wp(e){let t=Fc.value,{platform:n,filter:r}=e,[i,a]=N(null);P(()=>{let n=!0;return(async()=>{let i={movie:[],series:[]};if(r.platformKey)for(let e of[`movie`,`series`])i[e]=(await hu(t,e)).filter(e=>!e.adult&&($s(e.name)||{key:``}).key===r.platformKey).map(e=>e.id);else r.categoryIds&&(i[e.kind]=r.categoryIds);let o=async n=>r.platformKey||r.categoryIds?i[n].length?pu(n).where(`categoryId`).anyOf(i[n]).count():0:n===e.kind&&r.all?pu(n).where(`providerId`).equals(t).count():0,[s,c]=await Promise.all([o(`movie`),o(`series`)]);n&&a({movie:s,series:c,ids:i})})(),()=>{n=!1}},[t,e.kind,JSON.stringify(r)]);let o=!!n&&!!r.platformKey&&!!i&&i.movie>0&&i.series>0,s=t=>i?t===e.kind&&e.genreCount!==null?e.genreCount:i[t]:0,c=i&&!o?[`movie`,`series`].filter(e=>s(e)>0).map(e=>R(e===`movie`?`browse_movie_count`:`browse_series_count`,s(e))).join(` · `):``,l=n?Up(n.color):`var(--accent-rgb)`,u=t=>{t!==e.kind&&i&&dd({name:`browse`,kind:t,title:e.title,filter:{categoryIds:i.ids[t],platformKey:r.platformKey}})};return M(`div`,{class:`browse-bar`,style:{background:`linear-gradient(90deg, rgba(${l}, 0.55), rgba(${l}, 0.12) 45%, rgba(255, 255, 255, 0.04))`},children:[M(`div`,{class:`bb-id`,children:[n?M(`span`,{class:`browse-logo`,children:M(Ed,{p:n})}):M(`h1`,{class:`bb-title`,children:e.title}),c&&M(`span`,{class:`bb-count`,children:c})]}),o&&M(`div`,{class:`bb-tabs`,"data-focus-group":`browse-tabs`,children:[`movie`,`series`].map(t=>M(`button`,{class:`bb-tab${t===e.kind?` selected`:``}`,"data-focus":!0,"data-focus-default":t===e.kind||void 0,onClick:()=>u(t),children:[R(t===`movie`?`nav_movies`:`nav_series`),M(`span`,{class:`bb-tab-count`,children:` ${i[t]}`})]},t))}),M(`span`,{class:`spacer`}),e.children]})}var Gp=e=>{let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60);return n?`${n}:${bu(r)}:${bu(t%60)}`:`${bu(r)}:${bu(t%60)}`},Kp=e=>!!e&&!e.watched&&e.position>1e4;function qp({src:e}){return M(`div`,{class:`detail-backdrop`,children:[e&&M(`img`,{src:e,alt:``,decoding:`async`}),M(`span`,{class:`db-h`}),M(`span`,{class:`db-v`})]})}function Jp({chips:e}){return M(`div`,{class:`meta-chips`,children:e.filter(Boolean).map(e=>M(`span`,{class:`meta-chip${e.startsWith(`★`)?` gold`:``}`,children:e},e))})}function Yp(e,t){let[n,r]=N([]);return P(()=>{e&&Tu(e,t).then(r)},[e&&e.id]),n}function Xp(e,t,n){return{title:R(`vod_versions`,e.length),items:e.map(e=>({label:Bs(e.name)||R(`vod_version_standard`),checked:e.id===t.id,onSelect:()=>{e.id!==t.id&&dd(n===`movie`?{name:`movie`,id:e.id}:{name:`series`,id:e.id})}}))}}function Zp(){Kt(e=>{if(e===`back`)return ud(),!0})}function Qp({id:e}){let[t,n]=N(null),[r,i]=N(),[a,o]=N(!1),[s,c]=N([]),[l,u]=N(null),d=F(null),f=Yp(t,`movie`);Zp();let p=async()=>{i(await uu(e)),o(!!await K.favorites.get(e))};if(P(()=>{let t=!0;K.movies.get(e).then(async r=>{if(!r||!t)return;n(r);let i=await iu(r);if(!t||(n(i),r.categoryId===null))return;let a=(await _u(r.categoryId,21)).filter(t=>t.id!==e).slice(0,20);t&&c(a)}),p();let r=()=>p();return window.addEventListener(`utopya:progress`,r),()=>{t=!1,window.removeEventListener(`utopya:progress`,r)}},[e]),P(()=>{t&&setTimeout(()=>L(d.current),0)},[!!t]),!t)return null;let m=Kp(r),h=!!r&&r.watched,g=e=>ld({name:`vod`,kind:`movie`,id:t.id,startMs:e}),_=[[m?R(`vod_resume`,Gp(r.position)):R(`vod_play`),()=>g(m?r.position:0)]];return m&&_.push([R(`vod_restart`),()=>g(0)]),f.length>1&&_.push([R(`vod_versions`,f.length),()=>u(Xp(f,t,`movie`))]),_.push([R(a?`vod_remove_favorite`:`vod_add_favorite`),async()=>{await Kl(t.providerId,`movie`,t.id),p()}]),_.push([R(h?`vod_mark_unwatched`:`vod_mark_watched`),async()=>{await lu(`movie`,t.id,t.providerId,null,!h),p()}]),M(`div`,{class:`detail`,children:[M(qp,{src:t.backdrop||t.poster}),M(`div`,{class:`detail-scroll`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:ud,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{class:`detail-row`,children:[M(`div`,{class:`detail-poster`,children:t.poster&&M(`img`,{src:t.poster,alt:``})}),M(`div`,{class:`detail-info`,children:[M(`h1`,{children:t.name}),M(Jp,{chips:[t.year,t.durationSec?R(`vod_minutes`,Math.ceil(t.durationSec/60)):null,yd(t.rating),t.genre]}),t.plot&&M(`p`,{class:`detail-plot`,children:t.plot}),t.director&&M(`p`,{class:`detail-credit`,children:R(`vod_director`,t.director)}),t.cast&&M(`p`,{class:`detail-credit`,children:R(`vod_cast`,t.cast)}),M(`div`,{class:`detail-actions`,ref:d,children:_.map(([e,t],n)=>M(`button`,{class:`btn ${n===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":n===0||void 0,onClick:t,children:e},e))})]})]}),s.length>0&&M(jd,{title:R(`shelf_similar`),info:!0,children:s.map(e=>{let t=mu(e);return M(Cd,{card:t,onClick:()=>dd({name:`movie`,id:t.id})},t.key)})})]}),l&&M(bn,{title:l.title,items:l.items,onClose:()=>u(null)})]})}function $p(e,t){if(!e.length)return null;let n=e.filter(e=>Kp(t.get(e.id))).sort((e,n)=>t.get(n.id).updated-t.get(e.id).updated)[0];if(n)return{ep:n,pos:t.get(n.id).position};let r=-1;return e.forEach((e,n)=>{let i=t.get(e.id);i&&i.watched&&(r=n)}),{ep:e[Math.min(r+1,e.length-1)],pos:0}}function em({id:e,season:t}){let[n,r]=N(null),[i,a]=N(null),[o,s]=N(new Map),[c,l]=N(!1),[u,d]=N(t||null),[f,p]=N(null),m=F(null),h=Yp(n,`series`);Zp();let g=async(t=i)=>{t&&s(await du(t.map(e=>e.id))),l(!!await K.favorites.get(e))};if(P(()=>{let t=!0;K.series.get(e).then(async e=>{if(!e||!t)return;r(e);let n=await au(e);t&&(r(n.series),a(n.episodes),n.episodes.length&&u===null&&d(Math.min(...n.episodes.map(e=>e.season))),g(n.episodes))});let n=()=>g();return window.addEventListener(`utopya:progress`,n),()=>{t=!1,window.removeEventListener(`utopya:progress`,n)}},[e]),P(()=>{n&&setTimeout(()=>L(m.current),0)},[!!n]),!n)return null;let _=i?$p(i,o):null,v=i?[...new Set(i.map(e=>e.season))].sort((e,t)=>e-t):[],y=(e,t)=>ld({name:`vod`,kind:`episode`,id:e.id,seriesId:n.id,startMs:t}),b=e=>`S${bu(e.season)}E${bu(e.episode)}`,x=[];_&&x.push([_.pos?R(`vod_resume`,`${b(_.ep)} · ${Gp(_.pos)}`):`${R(`vod_play`)} ${b(_.ep)}`,()=>y(_.ep,_.pos)]),h.length>1&&x.push([R(`vod_versions`,h.length),()=>p(Xp(h,n,`series`))]),x.push([R(c?`vod_remove_favorite`:`vod_add_favorite`),async()=>{await Kl(n.providerId,`series`,n.id),g()}]);let S=e=>{let t=o.get(e.id),r=!!t&&t.watched;p({title:e.title,items:[{label:R(r?`vod_mark_unwatched`:`vod_mark_watched`),onSelect:async()=>{await lu(`episode`,e.id,n.providerId,n.id,!r),g()}}]})};return M(`div`,{class:`detail`,children:[M(qp,{src:n.backdrop||n.poster}),M(`div`,{class:`detail-scroll series`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:ud,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{class:`detail-row`,children:[M(`div`,{class:`detail-poster`,children:n.poster&&M(`img`,{src:n.poster,alt:``})}),M(`div`,{class:`detail-info`,children:[M(`h1`,{children:n.name}),M(Jp,{chips:[n.year,yd(n.rating),n.genre]}),n.plot&&M(`p`,{class:`detail-plot`,children:n.plot}),n.cast&&M(`p`,{class:`detail-credit`,children:R(`vod_cast`,n.cast)}),M(`div`,{class:`detail-actions`,ref:m,children:x.map(([e,t],n)=>M(`button`,{class:`btn ${n===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":n===0||void 0,onClick:t,children:e},e))})]})]}),v.length>1?M(`div`,{class:`season-chips`,children:v.map(e=>M(`button`,{class:`chip${e===u?` selected`:``}`,"data-focus":!0,onClick:()=>d(e),children:R(`vod_season`,e)},e))}):M(`div`,{class:`season-gap`}),i===null&&M(`p`,{class:`muted`,children:R(`vod_episodes_loading`)}),i&&!i.length&&M(`p`,{class:`muted`,children:R(`vod_no_episodes`)}),M(`div`,{class:`episode-list`,"data-focus-group":`episodes`,children:i&&i.filter(e=>e.season===u).map(e=>M(tm,{e,poster:n.poster,p:o.get(e.id),onClick:()=>{let t=o.get(e.id);y(e,t&&!t.watched?t.position:0)},onLongPress:()=>S(e)},e.id))})]}),f&&M(bn,{title:f.title,items:f.items,onClose:()=>p(null)})]})}function tm(e){let{e:t,p:n}=e,r=n&&!n.watched&&n.duration?n.position/n.duration:0;return M(`button`,{onlongpress:e.onLongPress,class:`episode-row focus-row`,"data-focus":!0,onClick:e.onClick,children:[M(`span`,{class:`ep-thumb`,children:[(t.poster||e.poster)&&M(pn,{src:t.poster||e.poster}),r>0&&r<.95&&M(`span`,{class:`poster-progress`,children:M(`span`,{style:{width:`${Math.round(r*100)}%`}})})]}),M(`span`,{class:`ep-text`,children:[M(`span`,{class:`ep-title`,children:R(`vod_episode_title`,t.episode,t.title)}),t.plot&&M(`span`,{class:`ep-plot`,children:t.plot})]}),t.durationSec?M(`span`,{class:`ep-min`,children:R(`vod_minutes`,Math.round(t.durationSec/60))}):null,n&&n.watched&&M(z,{name:`check`,class:`ep-watched`})]})}var nm=`keys`,rm=null;function im(){return new Promise((e,t)=>{let n=indexedDB.open(`utopya-keys`,1);n.onupgradeneeded=()=>n.result.createObjectStore(nm),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function am(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function om(){return rm||(rm=(async()=>{let e=window.crypto&&window.crypto.subtle;if(!e)return null;try{let t=await im(),n=await am(t.transaction(nm).objectStore(nm).get(`main`));if(n)return n;let r=await e.generateKey({name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`]);return await am(t.transaction(nm,`readwrite`).objectStore(nm).put(r,`main`)),r}catch(e){return console.warn(`şifreleme anahtarı yok`,e),null}})()),rm}var sm=e=>btoa(String.fromCharCode.apply(null,Array.prototype.slice.call(new Uint8Array(e)))),cm=e=>Uint8Array.from(atob(e),e=>e.charCodeAt(0));async function lm(e){let t=await om();if(!t)return`p:${e}`;let n=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},t,new TextEncoder().encode(e));return`v1:${sm(n)}:${sm(r)}`}async function um(e){if(e.startsWith(`p:`))return e.slice(2);let t=/^v1:([^:]+):(.+)$/.exec(e),n=await om();if(!t||!n)return null;try{let e=await crypto.subtle.decrypt({name:`AES-GCM`,iv:cm(t[1])},n,cm(t[2]));return new TextDecoder().decode(e)}catch(e){return null}}var dm=`https://api.opensubtitles.com/api/v1`,fm=`UtopyaTV v1.0`,pm=`utopya.opensubtitles`;async function mm(){try{let e=localStorage.getItem(pm),t=e&&await um(e);return t?JSON.parse(t):null}catch(e){return null}}var hm=null;async function gm(e){hm=null;try{e&&(e.key||e.user||e.pass)?localStorage.setItem(pm,await lm(JSON.stringify(e))):localStorage.removeItem(pm)}catch(e){}}var _m=class extends Error{};async function vm(e,t,n,r){let i=n?`?`+Object.keys(n).sort().map(e=>`${e.toLowerCase()}=${encodeURIComponent(String(n[e]).toLowerCase())}`).join(`&`):``,a={"Api-Key":e.key,Accept:`application/json`,"X-User-Agent":fm};hm&&(a.Authorization=`Bearer ${hm}`),r&&(a[`Content-Type`]=`application/json`);let o=await fetch(pr(dm+t+i),{method:r?`POST`:`GET`,headers:a,body:r?JSON.stringify(r):void 0,credentials:`omit`});if(o.status===406||o.status===429)throw new _m;if(!o.ok)throw Error(`OpenSubtitles ${o.status}`);return o.json()}var ym=65536;function bm(e,t,n){let r=e>>>0,i=Math.floor(e/4294967296)>>>0;for(let e of[t,n]){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let n=0;n+8<=e.byteLength;n+=8){let e=r+t.getUint32(n,!0);r=e>>>0,i=i+t.getUint32(n+4,!0)+ +(e>4294967295)>>>0}}let a=e=>(`00000000`+e.toString(16)).slice(-8);return a(i)+a(r)}async function xm(e,t,n){let r=await fetch(pr(e),{headers:{Range:`bytes=${t}-${n}`},credentials:`omit`});if(r.status!==206)return null;let i=parseInt((r.headers.get(`content-range`)||``).split(`/`)[1],10);return{bytes:new Uint8Array(await r.arrayBuffer()),total:i}}async function Sm(e){try{let t=await xm(e,0,65535);if(!t||!(t.total>=2*ym))return null;let n=await xm(e,t.total-ym,t.total-1);return n?bm(t.total,t.bytes,n.bytes):null}catch(e){return null}}function Cm(e,t,n){let r=e.filter(e=>e.attributes.files&&e.attributes.files.length),i=e=>{let n=e.attributes.feature_details||{};return t.season===void 0||n.season_number===t.season&&n.episode_number===t.episode},a=e=>{let n=e.attributes.feature_details||{};return t.season===void 0||n.season_number===void 0||n.season_number===t.season},o=Hs(t.title).map(Fs),s=t.year?parseInt(t.year,10):NaN,c=e=>{let n=e.attributes.feature_details||{},r=Fs((t.season===void 0?n.title:n.parent_title)||``);return!r||o.indexOf(r)<0?!1:isNaN(s)||!n.year||Math.abs(n.year-s)<=1},l=e=>e.sort((e,t)=>(t.attributes.download_count||0)-(e.attributes.download_count||0))[0]||null;return l(r.filter(e=>String(e.attributes.moviehash_match)===`true`&&a(e)))||(n?l(r.filter(i)):null)||l(r.filter(e=>i(e)&&c(e)))}async function wm(e,t){let n=await mm();if(!n||!n.key)return{kind:`no_key`};try{let r=await Sm(e.url),i={languages:t};r&&(i.moviehash=r),e.season===void 0?i.type=`movie`:(i.type=`episode`,i.season_number=e.season,i.episode_number=e.episode);let a=async e=>(await vm(n,`/subtitles`,V(V({},i),e))).data||[],o=null;e.tmdbId&&+e.tmdbId>0&&(o=Cm(await a(e.season===void 0?{tmdb_id:e.tmdbId}:{parent_tmdb_id:e.tmdbId}),e,!0));for(let t of Hs(e.title).reverse()){if(o)break;let n={query:t.toLowerCase()};e.season===void 0&&e.year&&(n.year=e.year.slice(0,4)),o=Cm(await a(n),e,!1)}if(!o)return{kind:`not_found`};if(n.user&&!hm)try{hm=(await vm(n,`/login`,null,{username:n.user,password:n.pass})).token||null}catch(e){}let s=await vm(n,`/download`,null,{file_id:o.attributes.files[0].file_id});if(!s.link)return{kind:`not_found`};let c=await fetch(pr(s.link),{credentials:`omit`});if(!c.ok)return{kind:`failed`};let l=rp(await c.arrayBuffer());return l.trim()?{kind:`found`,name:o.attributes.release||`OpenSubtitles`,text:l}:{kind:`failed`}}catch(e){return e instanceof _m?{kind:`limit`}:(console.warn(`OpenSubtitles`,e),{kind:`failed`})}}var Tm=4e3,Em=650,Dm=[`fit`,`fill`,`zoom`],Om=e=>e<10?`0${e}`:`${e}`,km=()=>{let e=new Date;return`${Om(e.getHours())}:${Om(e.getMinutes())}`},Am=e=>`S${bu(e.season)}E${bu(e.episode)}`;function jm(e){let[t,n]=N(null),[r,i]=N([]),[a,o]=N(null),[s,c]=N(!0),[l,u]=N(null),[d,f]=N(null),[p,m]=N(!1),[h,g]=N(1),[_,v]=N(0),[,y]=N(0),b=F(void 0),S=F(void 0),ee=F(0),C=F(!1),w=F(!1),[T,E]=N(!1),D=r.findIndex(t=>t.id===e.id),O=D>0?r[D-1]:null,k=D>=0&&D<r.length-1?r[D+1]:null,te=F({props:e,info:t});te.current={props:e,info:t};let A=(e=!1)=>{var t;let{props:n,info:r}=te.current,i=jf();if(!r||i<=0)return;let a=C.current?i:ef.peek();n.kind!==`stream`&&(cu(n.kind,n.id,r.providerId,(t=n.seriesId)==null?null:t,a,i),e&&window.dispatchEvent(new Event(`utopya:progress`)))},j=()=>{c(!0),clearTimeout(b.current),b.current=window.setTimeout(()=>c(!1),Tm)};P(()=>{let t=!0;return C.current=!1,w.current=!1,clearTimeout(S.current),u(null),g(1),op(),m(!1),f(null),(async()=>{let r;if(e.kind===`stream`)r={title:e.title||``,sub:``,url:e.url,userAgent:null,providerId:-1,target:{title:e.title||``,year:null,url:e.url,tmdbId:null}};else if(e.kind===`movie`){let t=await K.movies.get(e.id);if(!t)return;r={title:t.name,sub:t.year||``,url:t.url,userAgent:null,providerId:t.providerId,target:{title:t.name,year:t.year,url:t.url,tmdbId:t.tmdbId||null}}}else{let[n,a]=await Promise.all([K.episodes.get(e.id),K.series.get(e.seriesId)]);if(!n||!a)return;r={title:a.name,sub:`${Am(n)} · ${n.title}`,url:n.url,userAgent:null,providerId:a.providerId,target:{title:a.name,year:a.year,season:n.season,episode:n.episode,url:n.url,tmdbId:a.tmdbId||null}},t&&i(ou(await K.episodes.where(`seriesId`).equals(a.id).toArray()))}let a=(Pc.value||[]).find(e=>e.id===r.providerId);if(r.userAgent=a?a.userAgent:null,!t)return;n(r);let o=e.startMs;if(o===void 0){let t=await uu(e.id);o=t&&!t.watched?t.position:0}$d.value=`full`,xf({url:r.url,userAgent:r.userAgent,key:e.kind===`stream`?`stream:${r.url}`:`vod:${e.id}`},{startMs:o||void 0,onEnded:()=>{C.current=!0,A(!0),j()},onStarted:()=>ae(r.target)}),j()})(),()=>{t=!1}},[e.id]),P(()=>{let e=setInterval(()=>{X.peek()===`playing`&&A()},1e4),t=setInterval(()=>y(e=>e+1),1e3);return()=>{clearInterval(e),clearInterval(t)}},[t]),P(()=>()=>{A(!0),Cf(),op(),$d.value=null,clearTimeout(b.current)},[]);let ne=()=>q.peek().preferredSubtitle||`tr`,re=(e,t)=>{let n=tp(t);return n.length?(kf(null),ap.value=0,ip.value={label:e,cues:n},!0):!1},ie=async(e,t)=>{t||B(R(`sub_searching`));let n=te.current.props.id,r=await wm(e,ne());if(te.current.props.id===n){if(r.kind===`found`)re(r.name,r.text)?B(R(`sub_found`,r.name)):t||B(R(`sub_failed`));else if(t)return;else r.kind===`not_found`?B(R(`sub_not_found`)):r.kind===`no_key`?B(R(`sub_no_key`)):r.kind===`limit`?B(R(`sub_limit`)):B(R(`error_network`))}},ae=e=>{if(w.current||!q.peek().autoSubtitles)return;w.current=!0;let t=te.current.props.id;setTimeout(()=>{if(te.current.props.id!==t||ip.peek())return;let n=ne();Df().some(e=>e.language.toLowerCase().startsWith(n))||ie(e,!0)},4e3)},oe=async e=>{try{let t=await fetch(pr(mr(e)),{credentials:`omit`});if(t.ok&&re(`SRT`,rp(await t.arrayBuffer()))){B(R(`sub_loaded`));return}}catch(e){}B(R(`sub_failed`))},se=jf(),ce=se-ef.peek();P(()=>{if(!k||p||d!==null||!q.peek().autoNextEpisode)return;let t=Jd.peek();t&&t.key===`vod:${e.id}`&&X.peek()!==`loading`&&(C.current||se>6e4&&ce>0&&ce<=15e3)&&f(10)}),P(()=>{if(d===null)return;if(d<=0){le(k);return}let e=setTimeout(()=>f(e=>e===null?null:e-1),1e3);return()=>clearTimeout(e)},[d]),P(()=>{if(!_)return;let e=setTimeout(()=>{X.peek()!==`paused`&&wf(),v(0),B(R(`sleep_triggered`))},_*6e4);return()=>clearTimeout(e)},[_]);let le=t=>{A(),uu(t.id).then(n=>dd({name:`vod`,kind:`episode`,id:t.id,seriesId:e.seriesId,startMs:n&&!n.watched?n.position:0}))},ue=()=>{A(),ud()},de=e=>{let t=l===null?ef.peek():l,n=Math.max(0,Math.min(se||1/0,t+e));u(n),j(),clearTimeout(S.current),S.current=window.setTimeout(()=>{Tf(n),u(null)},Em)};if(P(()=>{let e=()=>{a||o({page:`main`,direct:!1})};return document.addEventListener(`longpress`,e),()=>document.removeEventListener(`longpress`,e)},[a]),Kt((e,t)=>{if(X.peek()===`error`)return e===`back`?(ue(),!0):`default`;if(e===`back`)return a?o(null):d===null?s&&X.peek()===`playing`?(clearTimeout(b.current),c(!1)):ue():(f(null),m(!0)),!0;if(a||d!==null)return;ee.current=t.repeat?ee.current+1:0;let n=ee.current>6?6e4:ee.current>2?3e4:1e4;switch(e){case`ok`:return wf(),j(),!0;case`left`:return de(-n),!0;case`right`:return de(n),!0;case`rew`:return de(-3e4),!0;case`ff`:return de(3e4),!0;case`playPause`:case`play`:case`pause`:return wf(),j(),!0;case`up`:case`info`:return o(`controls`),c(!0),clearTimeout(b.current),!0;case`down`:return r.length?o(`episodes`):j(),!0;case`menu`:return o({page:`main`,direct:!1}),!0;case`green`:return o({page:`audio`,direct:!0}),!0;case`yellow`:return o({page:`subs`,direct:!0}),!0;case`chUp`:return k&&le(k),!0;case`chDown`:return O&&le(O),!0}}),!t)return null;let fe=X.value,pe=s||fe===`paused`||l!==null||a===`controls`;return M(`div`,{class:`player vod-player`,children:[M(lp,{}),fe===`loading`&&M(`div`,{class:`player-center`,children:[M(`div`,{class:`spinner`}),Zd.value>0&&M(`span`,{class:`retry-label`,children:R(`player_retrying`,Zd.value)})]}),fe===`error`&&M(Xf,{onRetry:Sf,onBack:ue}),pe&&M(x,{children:[M(`div`,{class:`vod-top`,children:[M(`div`,{children:[M(`h1`,{children:t.title}),t.sub&&M(`p`,{children:t.sub})]}),M(`span`,{class:`band-clock`,children:km()})]}),M(`div`,{class:`vod-bottom`,children:[M(Fm,{paused:fe===`paused`,target:l,d:se}),a===`controls`?M(Mm,{paused:fe===`paused`,series:r.length>0,prev:!!O,next:!!k,close:()=>{o(null),j()},on:{play:()=>wf(),back10:()=>de(-1e4),fwd10:()=>de(1e4),prev:()=>O&&le(O),next:()=>k&&le(k),episodes:()=>o(`episodes`),audio:()=>o({page:`audio`,direct:!0}),subs:()=>o({page:`subs`,direct:!0}),speed:()=>o({page:`speed`,direct:!0}),picture:()=>{let e=Dm[(Dm.indexOf(Qd.value)+1)%3];Qd.value=e,B(R(`aspect_${e}`))},more:()=>o({page:`main`,direct:!1}),exit:ue}}):M(`p`,{class:`band-hint`,children:R(`vod_hint`)})]})]}),a===`episodes`&&M(Nm,{eps:r,current:e.id,onPick:t=>{o(null),t.id!==e.id&&le(t)}}),a&&typeof a==`object`&&M(Ip,{page:a.page,direct:a.direct,favorite:!1,sleepMin:_,setPage:e=>o({page:e,direct:!1}),close:()=>o(null),onFavorite:()=>{},onSleep:e=>{v(e),e&&B(R(`sleep_set`,e))},vod:{speed:h,setSpeed:e=>{Nf(e),g(e)},prev:O?{title:`${Am(O)} · ${O.title}`,go:()=>le(O)}:void 0,next:k?{title:`${Am(k)} · ${k.title}`,go:()=>le(k)}:void 0,findSubs:()=>ie(t.target,!1),loadSubs:()=>E(!0)}}),T&&M(wn,{title:R(`sub_url_title`),label:R(`sub_url_hint`),initial:``,placeholder:`https://…/altyazi.srt`,onSave:e=>{e.trim()&&oe(e)},onClose:()=>E(!1)}),d!==null&&k&&M(Pm,{seconds:d,title:`${Am(k)} · ${k.title}`,onPlay:()=>le(k),onCancel:()=>{f(null),m(!0)}})]})}function Mm(e){let t=F(null);P(()=>{L(t.current)},[]),Kt(t=>t===`back`?(e.close(),!0):void 0);let n=e.on,r=[[e.paused?`play`:`pause`,R(e.paused?`pc_play`:`pc_pause`),n.play],[`back`,`-10 sn`,n.back10],[`chevron`,`+10 sn`,n.fwd10]];return e.series&&e.prev&&r.push([`back`,R(`pc_prev`),n.prev]),e.series&&e.next&&r.push([`chevron`,R(`pc_next`),n.next]),e.series&&r.push([`list`,R(`vod_episodes`),n.episodes]),r.push([`audio`,R(`player_audio`),n.audio],[`subtitles`,R(`player_subtitles`),n.subs],[`more`,R(`pc_speed`),n.speed],[`aspect`,R(`pc_picture`),n.picture],[`more`,R(`pc_more`),n.more],[`back`,R(`back`),n.exit]),M(`div`,{class:`control-bar`,ref:t,"data-focus-scope":!0,children:r.map(([e,t,n],r)=>M(`div`,{class:`cb-item`,children:[M(`button`,{class:`cb-btn`,"data-focus":!0,"data-focus-default":r===0||void 0,onClick:n,children:M(z,{name:e})}),M(`span`,{class:`cb-label`,children:t})]},t))})}function Nm({eps:e,current:t,onPick:n}){let r=F(null);return P(()=>{let e=r.current&&r.current.querySelector(`[data-current]`);e&&e.focus()},[]),M(`div`,{class:`episodes-panel`,ref:r,"data-focus-scope":!0,children:[M(`h2`,{children:R(`vod_episodes`)}),e.map(e=>M(`button`,{class:`focus-row opt-row${e.id===t?` selected`:``}`,"data-focus":!0,"data-current":e.id===t||void 0,onClick:()=>n(e),children:[M(`span`,{class:`ep-code`,children:Am(e)}),M(`span`,{class:`opt-label`,children:e.title})]},e.id))]})}function Pm(e){let t=F(null);return P(()=>{L(t.current)},[]),M(`div`,{class:`next-card`,ref:t,"data-focus-scope":!0,children:[M(`p`,{class:`next-when`,children:R(`vod_next_episode`,e.seconds)}),M(`p`,{class:`next-title`,children:e.title}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:e.onPlay,children:R(`vod_play_now`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:e.onCancel,children:R(`cancel`)})]})]})}function Fm({paused:e,target:t,d:n}){let r=t===null?ef.value:t,i=e=>n>0?`${Math.min(100,e/n*100)}%`:`0%`;return M(`div`,{class:`vod-bar-row`,children:[M(z,{name:e?`play`:`pause`,class:`vod-state`}),M(`span`,{class:`vod-time`,children:Gp(r)}),M(`div`,{class:`vod-bar`,children:[M(`span`,{class:`vod-buffer`,style:{width:i(Mf())}}),M(`span`,{class:`vod-played`,style:{width:i(r)}})]}),M(`span`,{class:`vod-time`,children:[`-`,Gp(Math.max(0,n-r))]})]})}function Im({channelId:e}){let[t,n]=N(null),[r,i]=N(null),[a,o]=N(null),[s,c]=N(``),l=F(null);if(Kt(e=>e===`back`?(ud(),!0):void 0),P(()=>{K.channels.get(e).then(async e=>{if(!e)return;n(e);let t=await K.epgLinks.get(e.id);o(t?t.key:null),i((await K.epgChannels.where(`providerId`).equals(e.providerId).toArray()).sort((e,t)=>e.name.localeCompare(t.name)))})},[e]),P(()=>{r&&setTimeout(()=>L(l.current),0)},[!!r]),!t)return null;let u=s.trim().toLowerCase(),d=(r||[]).filter(e=>!u||e.name.toLowerCase().indexOf(u)>=0||e.xmlId.indexOf(s.trim())>=0).slice(0,300),f=(r||[]).find(e=>e.id===a),p=async e=>{e?await K.epgLinks.put({id:t.id,providerId:t.providerId,key:e,manual:!0}):await K.epgLinks.delete(t.id),Wc(t.providerId,void 0,`epg`),ud()};return M(`div`,{class:`epg-mapping`,children:[M(`div`,{class:`em-left`,children:[M(`button`,{class:`btn outline`,"data-focus":!0,onClick:ud,children:[M(z,{name:`back`}),R(`back`)]}),M(`h1`,{children:R(`epg_mapping_title`)}),M(`p`,{class:`em-channel`,children:t.name}),a&&M(`p`,{class:`muted`,children:R(`epg_mapping_current`,f?f.name:a.split(`|`)[1])}),M(hn,{label:R(`epg_mapping_filter`),value:s,onInput:c,class:`em-filter`})]}),M(`div`,{class:`em-list`,ref:l,"data-focus-group":`epgmap`,children:r&&!r.length?M(`p`,{children:R(`epg_mapping_none`)}):M(x,{children:[M(`button`,{class:`focus-row opt-row em-auto`,"data-focus":!0,"data-focus-default":!0,onClick:()=>p(null),children:R(`epg_mapping_auto`)}),d.map(e=>M(`button`,{class:`focus-row opt-row${e.id===a?` selected`:``}`,"data-focus":!0,onClick:()=>p(e.id),children:[M(`span`,{class:`opt-label`,children:e.name}),M(`span`,{class:`muted em-id`,children:e.xmlId})]},e.id))]})})]})}function Lm(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++)if((n[e]||0)!==(r[e]||0))return(n[e]||0)>(r[e]||0);return!1}var Rm=`https://registry.npmjs.org/@erhan%2futopyatv/latest`,zm=864e5;async function Bm(){let e=await fetch(Rm,{cache:`no-store`});if(!e.ok)throw Error(`HTTP ${e.status}`);return(await e.json()).version}async function Vm(){try{if(Date.now()-Number(localStorage.getItem(`updateChecked`)||0)<zm)return;localStorage.setItem(`updateChecked`,String(Date.now()));let e=await Bm();Lm(e,`0.1.8`)&&B(R(`set_update_available`,e))}catch(e){}}var Hm=`utopya.settings`,Um=`utopya-yedek-`;async function Wm(){let[e,t,n,r,i,a,o]=await Promise.all([K.providers.toArray(),K.favorites.toArray(),K.groups.toArray(),K.groupItems.toArray(),K.catState.toArray(),K.chanState.toArray(),K.progress.toArray()]),s={version:1,app:`tizen`,createdAt:Date.now(),settings:localStorage.getItem(Hm)||`{}`,providers:e,favorites:t,groups:n,groupItems:r,catState:i,chanState:a,progress:o};return JSON.stringify(s)}var Gm=e=>e<10?`0${e}`:`${e}`;function Km(e=new Date){return`${Um}${e.getFullYear()}${Gm(e.getMonth()+1)}${Gm(e.getDate())}-${Gm(e.getHours())}${Gm(e.getMinutes())}.json`}async function qm(){let e=await Wm(),t=Km();if(!Et){let n=document.createElement(`a`);return n.href=URL.createObjectURL(new Blob([e],{type:`application/json`})),n.download=t,n.click(),setTimeout(()=>URL.revokeObjectURL(n.href),5e3),t}let n=(await new Promise((e,t)=>tizen.filesystem.resolve(`downloads`,e,t,`rw`))).createFile(t);return await new Promise((t,r)=>n.openStream(`w`,n=>{n.write(e),n.close(),t()},r,`UTF-8`)),`Downloads/${t}`}async function Jm(){if(!Et)return[];let e=[],t=async t=>{try{let n=await new Promise((e,n)=>tizen.filesystem.resolve(t,e,n,`r`)),r=await new Promise(e=>n.listFiles(e,()=>e([])));for(let t of r)!t.isDirectory&&t.name.indexOf(Um)===0&&/\.json$/i.test(t.name)&&e.push({name:t.name,uri:t.toURI()})}catch(e){}};await t(`downloads`);let n=await new Promise(e=>tizen.filesystem.listStorages(e,()=>e([])));for(let e of n)e.type===`EXTERNAL`&&e.state===`MOUNTED`&&await t(e.label);return e.sort((e,t)=>e.name<t.name?1:-1)}async function Ym(e){let t=await new Promise((t,n)=>tizen.filesystem.resolve(e,t,n,`r`));return new Promise((e,n)=>t.readAsText(e,n,`UTF-8`))}async function Xm(e){let t=JSON.parse(e);if(!t||t.version!==1||!Array.isArray(t.providers))throw Error(`yedek biçimi tanınmadı`);let n=[K.channels,K.movies,K.series,K.episodes,K.categories,K.programs,K.epgLinks,K.epgChannels,K.recents],r=[K.providers,K.favorites,K.groups,K.groupItems,K.catState,K.chanState,K.progress];await K.transaction(`rw`,[...n,...r],async()=>{for(let e of[...n,...r])await e.clear();await K.providers.bulkPut(t.providers),await K.favorites.bulkPut(t.favorites),await K.groups.bulkPut(t.groups),await K.groupItems.bulkPut(t.groupItems),await K.catState.bulkPut(t.catState),await K.chanState.bulkPut(t.chanState),await K.progress.bulkPut(t.progress)});try{localStorage.setItem(Hm,t.settings)}catch(e){}Oc(),await Rc();for(let e of await K.providers.toArray())Wc(e.id)}var Zm=[[`sources`,`set_sources`,`dns`],[`player`,`set_player`,`play`],[`look`,`set_appearance`,`grid`],[`epg`,`set_epg`,`guide`],[`parental`,`set_parental`,`lock`],[`hidden`,`set_hidden`,`list`],[`about`,`set_about`,`more`]];function Q(e){return M(`button`,{onlongpress:e.onLongPress,class:`focus-row set-row`,"data-focus":!0,onClick:e.onClick,children:[M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:e.title}),e.subtitle&&M(`span`,{class:`set-sub`,children:e.subtitle})]}),e.value&&M(`span`,{class:`set-value`,children:e.value})]})}var Qm=({text:e})=>M(`h3`,{class:`set-header`,children:e});function $m(){let[e,t]=N(`sources`),[n,r]=N(null),i=F(null),a=q.value;P(()=>{setTimeout(()=>L(i.current),0)},[]);let o=(e,t,n,i)=>r({kind:`menu`,title:e,items:t.map(([e,t])=>({label:t,checked:e===n,onSelect:()=>i(e)}))}),s=e=>kc(e),c=e=>R(e?`set_on`:`set_off`),l=(e,t)=>(e.find(e=>e[0]===t)||[null,``])[1];return M(`div`,{class:`settings`,children:[M(`div`,{class:`set-sections`,ref:i,"data-focus-group":`set-sections`,children:Zm.map(([n,r,i])=>M(`button`,{class:`focus-row set-section${e===n?` selected`:``}`,"data-focus":!0,"data-focus-default":e===n||void 0,onFocus:()=>t(n),onClick:()=>t(n),children:[M(z,{name:i}),M(`span`,{children:R(r)})]},n))}),M(`div`,{class:`set-panel glass`,"data-focus-group":`set-panel`,children:[M(`h2`,{children:R(Zm.find(t=>t[0]===e)[1])}),e===`sources`&&M(th,{setDialog:r}),e===`player`&&(()=>{let e=[[null,R(`set_lang_default`)],[`tr`,`Türkçe`],[`en`,`English`],[`de`,`Deutsch`],[`fr`,`Français`],[`ar`,`العربية`],[`ru`,`Русский`]],t=[[null,R(`player_off`)],...e.slice(1)],n=[[`fit`,R(`aspect_fit`)],[`fill`,R(`aspect_fill`)],[`zoom`,R(`aspect_zoom`)]],i=[.75,1,1.25,1.5,1.75].map(e=>[e,`%${Math.round(e*100)}`]),u=[[0,R(`color_white`)],[1,R(`color_yellow`)],[2,R(`color_cyan`)]];return M(x,{children:[M(Q,{title:R(`set_audio_lang`),value:l(e,a.preferredAudio),onClick:()=>o(R(`set_audio_lang`),e,a.preferredAudio,e=>s({preferredAudio:e}))}),M(Q,{title:R(`set_sub_lang`),value:l(t,a.preferredSubtitle),onClick:()=>o(R(`set_sub_lang`),t,a.preferredSubtitle,e=>s({preferredSubtitle:e}))}),M(Q,{title:R(`set_sub_size`),value:l(i,a.subtitleScale),onClick:()=>o(R(`set_sub_size`),i,a.subtitleScale,e=>s({subtitleScale:e}))}),M(Q,{title:R(`set_sub_color`),value:l(u,a.subtitleColor),onClick:()=>o(R(`set_sub_color`),u,a.subtitleColor,e=>s({subtitleColor:e}))}),M(Q,{title:R(`set_sub_bg`),value:c(a.subtitleBackground),onClick:()=>s({subtitleBackground:!a.subtitleBackground})}),M(Q,{title:R(`set_auto_subs`),subtitle:R(`set_auto_subs_hint`),value:c(a.autoSubtitles),onClick:()=>s({autoSubtitles:!a.autoSubtitles})}),M(Q,{title:R(`set_remember_tracks`),value:c(a.rememberTracks),onClick:()=>s({rememberTracks:!a.rememberTracks})}),M(ih,{setDialog:r}),M(Q,{title:R(`set_aspect`),value:l(n,a.aspect),onClick:()=>o(R(`set_aspect`),n,a.aspect,e=>s({aspect:e}))}),M(Q,{title:R(`set_preview`),value:c(a.previewAutoplay),onClick:()=>s({previewAutoplay:!a.previewAutoplay})}),M(Q,{title:R(`set_auto_next`),value:c(a.autoNextEpisode),onClick:()=>s({autoNextEpisode:!a.autoNextEpisode})}),M(Q,{title:R(`set_fallback`),value:c(a.fallbackToPrevious),onClick:()=>s({fallbackToPrevious:!a.fallbackToPrevious})})]})})(),e===`look`&&M(oh,{setDialog:r,choose:o}),e===`epg`&&(()=>{let e=[6,12,24,48].map(e=>[e,R(`set_epg_hours`,e)]),t=[];for(let e=-180;e<=180;e+=30)t.push([e,R(`set_epg_offset_value`,e)]);let n=Fc.value;return M(x,{children:[M(Q,{title:R(`set_epg_interval`),value:l(e,a.epgHours),onClick:()=>o(R(`set_epg_interval`),e,a.epgHours,e=>s({epgHours:e}))}),M(Q,{title:R(`set_epg_offset`),value:l(t,a.epgOffsetMin),onClick:()=>o(R(`set_epg_offset`),t,a.epgOffsetMin,e=>{s({epgOffsetMin:e}),n&&Wc(n,void 0,`epg`)})}),M(Q,{title:R(`set_epg_refresh`),subtitle:R(`set_epg_urls`),onClick:()=>{n&&Wc(n,void 0,`epg`)}})]})})(),e===`parental`&&M(x,{children:[Rl()?M(x,{children:[M(Q,{title:R(`set_pin_change`),onClick:()=>r({kind:`pin`,title:R(`pin_enter`),check:zl,done:()=>eh(r)})}),M(Q,{title:R(`set_pin_remove`),onClick:()=>r({kind:`pin`,title:R(`pin_enter`),check:zl,done:()=>{Bl(null),r({kind:`notice`,text:R(`set_pin_removed`)})}})})]}):M(Q,{title:R(`set_pin_set`),onClick:()=>eh(r)}),M(Q,{title:R(`set_hide_locked`),value:c(a.hideLocked),onClick:()=>s({hideLocked:!a.hideLocked})}),M(Q,{title:R(`set_adult_lock`),value:c(a.adultAutoLock),onClick:()=>s({adultAutoLock:!a.adultAutoLock})}),M(`p`,{class:`set-hint`,children:R(`set_parental_hint`)})]}),e===`hidden`&&M(sh,{}),e===`about`&&M(`div`,{class:`set-about`,children:[M(`h3`,{children:R(`app_name`)}),M(`p`,{class:`set-version`,children:R(`set_version`,`0.1.8`)}),M(Q,{title:R(`set_update_check`),onClick:async()=>{try{let e=await Bm();r({kind:`notice`,text:Lm(e,`0.1.8`)?`${R(`set_update_available`,e)}. ${R(`tz_update_hint`)}`:R(`set_update_none`,`0.1.8`)})}catch(e){r({kind:`notice`,text:R(`set_update_failed`)})}}}),M(`p`,{children:R(`set_about_text`)}),M(Qm,{text:R(`set_keys`)}),M(`p`,{class:`muted`,children:R(`tz_keys_text`)}),M(`p`,{class:`muted set-ua`,children:navigator.userAgent})]})]}),n&&n.kind===`menu`&&M(bn,{title:n.title,items:n.items,onClose:()=>r(null)}),n&&n.kind===`notice`&&M(Tn,{text:n.text,onClose:()=>r(null)}),n&&n.kind===`confirm`&&M(gn,{title:n.title,message:n.text,onConfirm:()=>{r(null),n.ok()},onDismiss:()=>r(null)}),n&&n.kind===`pin`&&M(Cn,{title:n.title,check:n.check,onDone:e=>{r(null),n.done(e)},onClose:()=>r(null)},n.title),n&&n.kind===`text`&&M(wn,{title:n.title,label:n.label,initial:n.initial,placeholder:n.placeholder,password:n.password,onSave:n.save,onClose:()=>r(null)})]})}function eh(e){e({kind:`pin`,title:R(`pin_new`),check:()=>!0,done:t=>{e({kind:`pin`,title:R(`set_pin_confirm`),check:e=>e===t,done:()=>{Bl(t),e({kind:`notice`,text:R(`set_pin_saved`)})}})}})}function th({setDialog:e}){let t=Pc.value||[],n=Fc.value,r=Ic.value,i=e=>e?new Date(e).toLocaleString(sn.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`}):R(`set_never`),a=t=>{let r=[];t.id!==n&&r.push({label:R(`set_make_active`),onSelect:()=>zc(t.id)}),r.push({label:R(`set_resync`),onSelect:()=>Wc(t.id)}),r.push({label:R(`set_edit`),onSelect:()=>o(t)}),r.push({label:R(`set_test_connection`),onSelect:async()=>{try{await Bc(t),e({kind:`notice`,text:R(`set_connection_ok`)})}catch(t){e({kind:`notice`,text:R(`error_${(t.error||`unknown`).toLowerCase()}`)})}}}),t.type===`xtream`&&r.push({label:R(`set_account`),onSelect:()=>{e({kind:`notice`,text:[t.expDate?R(`set_account_expiry`,i(t.expDate)):R(`set_account_unlimited`),t.maxConnections?R(`set_account_connections`,`?`,String(t.maxConnections)):null].filter(Boolean).join(`
14
+ `)})}}),r.push({label:R(`set_delete_source`),onSelect:()=>e({kind:`confirm`,title:t.name,text:R(`set_delete_confirm`,t.name),ok:()=>rh(t.id)})}),e({kind:`menu`,title:t.name,items:r})},o=t=>{let n=(n,r,i,a,s=!1)=>({label:`${n}${r&&!s?`: ${r}`:``}`,onSelect:()=>e({kind:`text`,title:n,label:n,initial:r,password:s,save:async e=>{await K.providers.update(t.id,i(e.trim())),await Rc(),a&&Wc(t.id);let n=(Pc.peek()||[]).find(e=>e.id===t.id);n&&o(n)}})}),r=[n(R(`onb_name`),t.name,e=>({name:e||t.name}),!1)];t.type===`xtream`?r.push(n(R(`onb_server`),t.url,e=>({url:mr(e)}),!0),n(R(`onb_username`),t.username,e=>({username:e}),!0),n(R(`onb_password`),t.password,e=>({password:e}),!0,!0)):t.url.startsWith(`file:`)||r.push(n(R(`onb_url`),t.url,e=>({url:e.split(/\s+/).map(mr).filter(Boolean).join(` `)}),!0)),r.push(n(R(`onb_epg`),t.epgUrls.join(` `),e=>({epgUrls:e.split(/\s+/).map(mr).filter(Boolean)}),!0),n(R(`onb_user_agent`),t.userAgent||``,e=>({userAgent:e||null}),!1)),e({kind:`menu`,title:`${t.name} · ${R(`set_edit`)}`,items:r})};return M(x,{children:[t.map(e=>{let t=r&&r.providerId===e.id&&`stage`in r&&r.stage!==`DONE`;return M(Q,{title:`${e.name}${e.id===n?` ✓`:``}`,subtitle:`${e.type===`xtream`?`Xtream`:`M3U`} · ${t?R(`sync_title`)+`…`:R(`set_last_sync`,i(e.lastSync))}`,value:e.id===n?R(`set_active`):void 0,onClick:()=>a(e)},e.id)}),M(Q,{title:R(`set_add_source`),onClick:()=>Y.value=`onboarding`}),M(Qm,{text:R(`set_backup`)}),M(Q,{title:R(`set_backup_now`),subtitle:R(`set_backup_warning`),onClick:async()=>{try{e({kind:`notice`,text:R(`set_backup_done`,await qm())})}catch(t){e({kind:`notice`,text:`${R(`error_storage`)} (${String(t)})`})}}}),M(Q,{title:R(`set_restore`),onClick:async()=>{let t=t=>e({kind:`confirm`,title:R(`set_restore`),text:R(`set_restore_confirm`),ok:async()=>{try{await Xm(await t()),e({kind:`notice`,text:R(`set_restore_done`)})}catch(t){e({kind:`notice`,text:`${R(`error_unknown`)} (${String(t)})`})}}}),n=(await Jm()).map(e=>({label:e.name,onSelect:()=>t(()=>Ym(e.uri))}));Et||n.push({label:R(`set_restore_file`),onSelect:()=>nh(e=>t(async()=>e))}),e(n.length?{kind:`menu`,title:R(`set_restore`),items:n}:{kind:`notice`,text:R(`set_restore_none`)})}})]})}function nh(e){let t=document.createElement(`input`);t.type=`file`,t.accept=`.json,application/json`,t.onchange=()=>{let n=t.files&&t.files[0];n&&n.text().then(e)},t.click()}async function rh(e){let t=[K.channels,K.movies,K.series,K.episodes,K.categories,K.programs,K.epgLinks,K.epgChannels,K.favorites,K.recents,K.progress,K.catState,K.chanState];for(let n of t)await n.where(`providerId`).equals(e).delete();await K.providers.delete(e),await Rc()}function ih({setDialog:e}){let[t,n]=N(null);P(()=>{mm().then(n)},[]);let r=t||{key:``,user:``,pass:``},i=(t,i)=>({label:i,onSelect:()=>e({kind:`text`,title:i,label:i,initial:r[t],password:t===`pass`,save:async e=>{await gm(V(V({},r),{},{[t]:e.trim()})),n(await mm())}})});return M(Q,{title:R(`os_account`),subtitle:R(`os_account_hint`),value:R(t&&t.key?`os_account_set`:`os_account_none`),onClick:()=>e({kind:`menu`,title:R(`os_account`),items:[i(`key`,R(`os_api_key`)),i(`user`,R(`os_username`)),i(`pass`,R(`os_password`))]})})}var ah={HERO:`home_hero`,CONTINUE:`shelf_continue`,UP_NEXT:`home_up_next`,FAVORITE_CHANNELS:`home_favorite_channels`,RECENT_CHANNELS:`home_recent_channels`,TONIGHT_SPORTS:`home_tonight`,SCHEDULE:`home_schedule`,PLATFORMS:`shelf_platforms`,NEW_MOVIES:`home_new_movies`,NEW_SERIES:`home_new_series`,TOP_RATED:`home_top_rated`,NEW_EPISODES:`home_new_episodes`,STARTING_SOON:`home_starting_soon`,FOR_YOU:`home_for_you`,GENRES:`home_genres`};function oh({setDialog:e,choose:t}){let n=q.value,r=kc,i=(e,t)=>(e.find(e=>e[0]===t)||[null,``])[1],a=[[`home`,R(`nav_home`)],[`live`,R(`nav_live`)],[`guide`,R(`nav_guide`)],[`movies`,R(`nav_movies`)],[`series`,R(`nav_series`)],[`last`,R(`start_last`)],[`firstFav`,R(`start_first_fav`)]],o=[[`GLOBAL`,R(`numbering_global`)],[`CATEGORY`,R(`numbering_category`)],[`HIDDEN`,R(`numbering_hidden`)]],s=[[`blue`,R(`accent_blue`)],[`orange`,R(`accent_orange`)],[`green`,R(`accent_green`)],[`purple`,R(`accent_purple`)],[`red`,R(`accent_red`)]],c=[[`navy`,R(`theme_navy`)],[`amoled`,R(`theme_amoled`)],[`graphite`,R(`theme_graphite`)],[`forest`,R(`theme_forest`)],[`wine`,R(`theme_wine`)]],l=[[`FAVORITE`,R(`act_favorite`)],[`AUDIO`,R(`player_audio`)],[`SUBTITLES`,R(`player_subtitles`)],[`ASPECT`,R(`player_aspect`)],[`GUIDE`,R(`player_guide`)],[`CHANNELS`,R(`pc_channels`)],[`INFO`,R(`pc_info`)],[`NONE`,R(`act_none`)]],u=n.homeShelves.filter(e=>Sc.indexOf(e)>=0);return M(x,{children:[M(Q,{title:R(`set_start`),value:i(a,n.startScreen),onClick:()=>t(R(`set_start`),a,n.startScreen,e=>r({startScreen:e}))}),M(Q,{title:R(`set_numbering`),value:i(o,n.numbering),onClick:()=>t(R(`set_numbering`),o,n.numbering,e=>r({numbering:e}))}),M(Q,{title:R(`set_accent`),value:i(s,n.accent),onClick:()=>t(R(`set_accent`),s,n.accent,e=>r({accent:e}))}),M(Q,{title:R(`set_theme`),value:i(c,n.theme),onClick:()=>t(R(`set_theme`),c,n.theme,e=>r({theme:e}))}),M(Q,{title:R(`set_filter_words`),subtitle:R(`set_filter_words_hint`),value:n.filterWords.length?n.filterWords.join(`, `):R(`set_none`),onClick:()=>e({kind:`text`,title:R(`set_filter_words`),label:R(`set_filter_words`),initial:n.filterWords.join(`, `),placeholder:`[RAW], FHD, VIP`,save:e=>r({filterWords:e.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),M(Q,{title:R(`home_edit`),subtitle:R(`set_home_shelves`),value:`${u.length} / ${Sc.length}`,onClick:()=>ld({name:`homeEdit`})}),M(Qm,{text:R(`set_color_keys`)}),[`key_red`,`key_green`,`key_yellow`,`key_blue`].map((e,a)=>M(Q,{title:R(e),value:i(l,n.colorKeys[a]),onClick:()=>t(R(e),l,n.colorKeys[a],e=>{let t=n.colorKeys.slice();t[a]=e,r({colorKeys:t})})},e)),M(Q,{title:R(`set_language`),value:sn.value===`tr`?`Türkçe`:`English`,onClick:()=>t(R(`set_language`),[[`tr`,`Türkçe`],[`en`,`English`]],sn.value,cn)})]})}function sh(){let e=Fc.value,[t,n]=N([]),[r,i]=N([]),a=async()=>{let[t,r]=await Promise.all([K.catState.where(`providerId`).equals(e).filter(e=>!!e.hidden).toArray(),K.chanState.where(`providerId`).equals(e).filter(e=>!!e.hidden).toArray()]);n((await K.categories.bulkGet(t.map(e=>e.id))).filter(e=>!!e)),i((await K.channels.bulkGet(r.map(e=>e.id))).filter(e=>!!e).sort((e,t)=>e.number-t.number))};return P(()=>{a()},[e]),!t.length&&!r.length?M(`p`,{class:`set-hint`,children:R(`set_hidden_none`)}):M(x,{children:[t.length>0&&M(Qm,{text:R(`set_hidden_categories`)}),t.map(t=>M(Q,{title:t.name,value:R(`set_unhide`),onClick:async()=>{await Fl(t.id,e,{hidden:!1}),a()}},t.id)),r.length>0&&M(Qm,{text:R(`set_hidden_channels`)}),r.map(t=>M(Q,{title:`${t.number} ${t.name}`,value:R(`set_unhide`),onClick:async()=>{await Il(t.id,e,{hidden:!1}),await Ol(e),a()}},t.id))]})}function ch(){let e=q.value.homeShelves.filter(e=>Sc.indexOf(e)>=0),t=Sc.filter(t=>e.indexOf(t)<0),[n,r]=N(null),[i,a]=N(null),o=F(null);P(()=>{L(o.current)},[]),P(()=>{if(!i||!o.current)return;let e=o.current.querySelector(`[data-he="${i}"]`);e&&e.focus(),a(null)});let s=e=>kc({homeShelves:e});Kt(t=>{if(n){if(t===`up`||t===`down`){let r=e.indexOf(n),i=r+(t===`up`?-1:1);if(i>=0&&i<e.length){let t=e.slice();t[r]=t[i],t[i]=n,s(t),a(`row-${n}`)}return!0}return(t===`ok`||t===`back`)&&r(null),!0}});let c=t=>{s(e.indexOf(t)>=0?e.filter(e=>e!==t):[...e,t]),a(`sw-${t}`)},l=(i,a)=>{let o=a!==null,s=a===1||!e.length&&i===t[0];return M(`div`,{class:`he-row${n===i?` moving`:``}`,children:[M(`button`,{class:`focus-row he-main`,"data-focus":!0,"data-focus-default":s||void 0,"data-he":`row-${i}`,onClick:()=>o&&r(n===i?null:i),children:[M(`span`,{class:`he-num`,children:o?`${a}.`:``}),M(`span`,{class:`he-label`,children:R(ah[i])}),n===i&&M(`span`,{class:`he-moving`,children:R(`home_edit_moving`)})]}),M(`button`,{class:`he-switch${o?` on`:``}`,"data-focus":!0,"data-he":`sw-${i}`,onClick:()=>c(i),children:R(o?`set_on`:`set_off`)})]},i)};return M(`div`,{class:`home-edit`,ref:o,children:[M(`div`,{class:`he-head`,children:[M(`h1`,{children:R(`home_edit`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>{r(null),s(Sc)},children:R(`home_edit_reset`)})]}),M(`p`,{class:`he-hint`,children:R(`home_edit_hint`)}),M(`div`,{class:`he-list`,children:[e.map((e,t)=>l(e,t+1)),t.length>0&&M(`h3`,{class:`set-header`,children:R(`home_edit_hidden`)}),t.map(e=>l(e,null))]})]})}var $=(e,t)=>e&&typeof e[t]==`string`&&e[t].trim()||null,lh=(e,t)=>{let n=e&&e[t],r=typeof n==`number`?n:parseFloat(String(n));return isFinite(r)?r:null};function uh(e){let t=e.trim().replace(/^stremio:\/\//i,`https://`);return/manifest\.json$/i.test(t)||(t=`${t.replace(/\/+$/,``)}/manifest.json`),t}async function dh(e){let t=await fetch(pr(e),{credentials:`omit`});if(!t.ok)throw Error(`HTTP ${t.status}`);return t.json()}var fh=new Map;function ph(e){let t=fh.get(e);return t||(t=dh(e).then(t=>mh(e,t)),t.catch(()=>fh.delete(e)),fh.set(e,t)),t}function mh(e,t){let n=e=>Array.isArray(t[e])?t[e]:[],r=n(`catalogs`).map(e=>e).filter(e=>{let t=Array.isArray(e.extra)?e.extra:[],n=Array.isArray(e.extraRequired)?e.extraRequired:[];return!t.some(e=>e.isRequired===!0)&&!n.length&&$(e,`type`)&&$(e,`id`)}).map(e=>({type:$(e,`type`),id:$(e,`id`),name:$(e,`name`)||$(e,`id`)})),i=n(`idPrefixes`).filter(e=>typeof e==`string`),a=e;try{a=new URL(e).host}catch(e){}return{url:e,base:e.replace(/\/manifest\.json$/i,``),id:$(t,`id`)||e,name:$(t,`name`)||a,logo:$(t,`logo`),types:n(`types`).filter(e=>typeof e==`string`),idPrefixes:i.length?i:null,resources:n(`resources`).map(e=>typeof e==`string`?e:$(e,`name`)).filter(e=>!!e),catalogs:r}}var hh=(e,t,n,r)=>e.resources.indexOf(t)>=0&&e.types.indexOf(n)>=0&&(!e.idPrefixes||e.idPrefixes.some(e=>r.startsWith(e))),gh=e=>encodeURIComponent(e).replace(/\+/g,`%20`),_h=e=>({id:$(e,`id`)||``,type:$(e,`type`)||`movie`,name:$(e,`name`)||``,poster:$(e,`poster`),rating:lh(e,`imdbRating`)});async function vh(e,t){let n=await dh(`${e.base}/catalog/${gh(t.type)}/${gh(t.id)}.json`);return(Array.isArray(n.metas)?n.metas:[]).map(_h).filter(e=>e.id&&e.name)}async function yh(e,t,n){for(let r of e)try{let e=await ph(r);if(!hh(e,`meta`,t,n))continue;let i=(await dh(`${e.base}/meta/${gh(t)}/${gh(n)}.json`)).meta;if(!i)continue;let a=Array.isArray(i.genres)?i.genres:Array.isArray(i.genre)?i.genre:[],o=(Array.isArray(i.videos)?i.videos:[]).map(e=>({id:$(e,`id`)||``,title:$(e,`title`)||$(e,`name`)||``,season:lh(e,`season`)||0,episode:lh(e,`episode`)||lh(e,`number`)||0,thumbnail:$(e,`thumbnail`)})).filter(e=>e.id);return V(V({},_h(i)),{},{type:$(i,`type`)||t,background:$(i,`background`),description:$(i,`description`),releaseInfo:$(i,`releaseInfo`)||(lh(i,`year`)?String(lh(i,`year`)):null),genres:a,videos:o})}catch(e){console.warn(`stremio meta`,r,e)}return null}async function bh(e,t,n){let r=await Promise.all(e.map(async e=>{try{let r=await ph(e);if(!hh(r,`stream`,t,n))return[];let i=await dh(`${r.base}/stream/${gh(t)}/${gh(n)}.json`);return(Array.isArray(i.streams)?i.streams:[]).filter(e=>/^https?:\/\//i.test($(e,`url`)||``)).map(e=>({url:$(e,`url`),name:($(e,`name`)||r.name).replace(/\n/g,` `),title:$(e,`title`)||$(e,`description`)}))}catch(t){return console.warn(`stremio stream`,e,t),[]}}));return[].concat(...r)}var xh=(e,t)=>({key:`${e.type}:${e.id}`,id:t,title:e.name,poster:e.poster,rating:e.rating}),Sh=e=>e===`movie`?R(`nav_movies`):e===`series`?R(`nav_series`):e;function Ch(){let e=q.value.stremioAddons,[t,n]=N([]),[r,i]=N([]),[a,o]=N(!1),[s,c]=N(!1),[l,u]=N(null);P(()=>{let t=!0;return i([]),(async()=>{let r=[];for(let t of e)try{r.push(await ph(t))}catch(e){}if(t){n(r);for(let e of r)for(let n of e.catalogs)try{let r=await vh(e,n);if(!t)return;r.length&&i(t=>[...t,{key:`${e.url}|${n.type}|${n.id}`,title:`${n.name} · ${Sh(n.type)} · ${e.name}`,items:r}])}catch(e){}}})(),()=>{t=!1}},[e.join(`
15
+ `)]);let d=async t=>{let n=uh(t);try{await ph(n),e.indexOf(n)<0&&kc({stremioAddons:[...e,n]}),o(!1),c(!1)}catch(e){c(!0)}};return M(`div`,{class:`extensions`,children:[M(`h2`,{class:`shelf-title`,children:R(`ext_installed`)}),M(`div`,{class:`shelf-row ext-row`,"data-focus-group":`ext-addons`,children:[M(`button`,{class:`chip ext-add`,"data-focus":!0,"data-focus-default":!e.length||void 0,onClick:()=>{c(!1),o(!0)},children:[M(z,{name:`add`}),R(`ext_add`)]}),t.map(e=>M(`button`,{class:`chip ext-chip`,"data-focus":!0,onClick:()=>u(e),children:[e.logo&&M(`img`,{src:e.logo,alt:``}),e.name]},e.url))]}),M(`p`,{class:`ext-note muted`,children:R(e.length?`ext_note`:`ext_empty`)}),r.map(e=>M(jd,{title:e.title,info:!0,children:e.items.map((e,t)=>M(Cd,{card:xh(e,t),onClick:()=>ld({name:`stremio`,type:e.type,id:e.id})},`${e.type}:${e.id}`))},e.key)),a&&M(wn,{title:R(`ext_add`),label:R(s?`ext_failed`:`ext_url`),initial:``,placeholder:`https://…/manifest.json`,onSave:e=>{e.trim()&&(o(!0),d(e))},onClose:()=>o(!1)}),l&&M(gn,{title:l.name,message:R(`ext_remove`),confirmLabel:R(`ext_remove`),onConfirm:()=>{kc({stremioAddons:e.filter(e=>e!==l.url)}),u(null)},onDismiss:()=>u(null)})]})}function wh({type:e,id:t}){let n=q.value.stremioAddons,[r,i]=N(void 0),[a,o]=N(1),[s,c]=N(null),l=F(null);Kt(e=>{if(e===`back`)return ud(),!0}),P(()=>{let r=!0;return yh(n,e,t).then(e=>{if(!r)return;i(e);let t=e?e.videos.map(e=>e.season).filter(e=>e>0):[];t.length&&o(Math.min(...t)),setTimeout(()=>L(l.current),0)}),()=>{r=!1}},[e,t]);let u=async(t,r)=>{c({title:r,list:null});let i=await bh(n,e,t);c({title:r,list:i.map(e=>({label:e.title?`${e.name} · ${e.title}`:e.name,onSelect:()=>ld({name:`stream`,url:e.url,title:r})}))})};if(r===void 0)return M(`div`,{class:`detail`,children:M(`div`,{class:`player-center`,children:M(`div`,{class:`spinner`})})});if(r===null)return M(`div`,{class:`detail`,ref:l,children:M(`div`,{class:`detail-scroll`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:ud,children:[M(z,{name:`back`}),R(`back`)]}),M(`p`,{class:`empty`,children:R(`empty_list`)})]})});let d=Array.from(new Set(r.videos.map(e=>e.season))).sort((e,t)=>e-t),f=r.videos.filter(e=>e.season===a).sort((e,t)=>e.episode-t.episode),p=e=>e<10?`0${e}`:`${e}`;return M(`div`,{class:`detail`,ref:l,children:[M(qp,{src:r.background||r.poster}),M(`div`,{class:`detail-scroll series`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:ud,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{class:`detail-row`,children:[M(`div`,{class:`detail-poster`,children:r.poster&&M(`img`,{src:r.poster,alt:``})}),M(`div`,{class:`detail-info`,children:[M(`h1`,{children:r.name}),M(Jp,{chips:[r.releaseInfo,r.rating?`★ ${r.rating}`:null,r.genres.slice(0,3).join(`, `)]}),r.description&&M(`p`,{class:`detail-plot`,children:r.description}),!r.videos.length&&M(`div`,{class:`detail-actions`,children:M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>u(r.id,r.name),children:R(`ext_find_sources`)})})]})]}),r.videos.length>0&&M(x,{children:[d.length>1?M(`div`,{class:`season-chips`,children:d.map(e=>M(`button`,{class:`chip${e===a?` selected`:``}`,"data-focus":!0,onClick:()=>o(e),children:e===0?R(`ext_specials`):R(`vod_season`,e)},e))}):M(`div`,{class:`season-gap`}),M(`div`,{class:`episode-list`,"data-focus-group":`episodes`,children:f.map((e,t)=>M(`button`,{class:`episode-row focus-row`,"data-focus":!0,"data-focus-default":t===0||void 0,onClick:()=>u(e.id,`${r.name} · S${p(e.season)}E${p(e.episode)}`),children:[M(`span`,{class:`ep-thumb`,children:(e.thumbnail||r.poster)&&M(pn,{src:e.thumbnail||r.poster})}),M(`span`,{class:`ep-text`,children:M(`span`,{class:`ep-title`,children:R(`vod_episode_title`,e.episode,e.title)})})]},e.id))})]})]}),s&&(s.list===null?M(`div`,{class:`scrim`,children:M(`div`,{class:`menu-dialog`,children:[M(`h2`,{children:R(`ext_sources`)}),M(`div`,{class:`spinner`})]})}):M(bn,{title:R(`ext_sources`),items:s.list.length?s.list:[{label:R(`ext_no_sources`),onSelect:()=>{}}],onClose:()=>c(null)}))]})}function Th(){let[e,t]=N(null),[n,r]=N(null),i=F(null),a=Gu.value;P(()=>{K.reminders.orderBy(`start`).toArray().then(e=>{t(e),setTimeout(()=>{document.activeElement===document.body&&L(i.current)},0)})},[a]);let o=e=>new Date(e).toLocaleDateString(sn.value===`tr`?`tr-TR`:`en-GB`,{weekday:`short`,day:`numeric`,month:`short`}),s=async e=>{let t=await Ul(e.providerId,{type:`all`}),n=t.indexOf(e.channelId);n>=0&&md(t,n)};return M(`div`,{class:`recordings`,ref:i,children:[M(`div`,{class:`row rec-tabs`,children:M(`span`,{class:`chip selected`,children:R(`rec_tab_scheduled`)})}),M(`p`,{class:`muted rec-note`,children:R(`tz_rec_note`)}),e&&!e.length&&M(`p`,{class:`empty`,children:R(`rec_scheduled_empty`)}),M(`div`,{class:`rec-list`,children:(e||[]).map(e=>M(`button`,{class:`focus-row rec-row`,"data-focus":!0,onClick:()=>r({title:e.title,items:[{label:R(`home_open_channel`),onSelect:()=>s(e)},{label:R(`guide_remind_off`),onSelect:()=>Yu(e.id)}]}),children:[M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:e.title}),M(`span`,{class:`muted`,children:`${e.channelName} · ${o(e.start)} ${yl(e.start)}${e.stop?`–${yl(e.stop)}`:``}`})]}),e.repeat?M(`span`,{class:`rec-repeat`,children:R(e.repeat===1?`rec_repeat_daily`:`rec_repeat_weekly`)}):null]},e.id))}),n&&M(bn,{title:n.title,items:n.items,onClose:()=>r(null)})]})}var Eh=Es(`[^LETTER0-9]+`,`g`),Dh=e=>e.toLowerCase().split(Eh).filter(Boolean),Oh=(e,t)=>t.every(t=>e.some(e=>e.startsWith(t)));function kh(e,t){let n=e.toLowerCase();return n===t?0:n.startsWith(t)?1:n.indexOf(t)>=0?2:3}var Ah=null,jh=40,Mh=null,Nh=e=>!!(El.value.get(e.id)||{}).hidden||kl(e);async function Ph(e,t){if(Mh&&Mh.stamp===t)return Mh;let n=t=>{let n=[];return t.where(`providerId`).equals(e).each(e=>{n.push({id:e.id,name:e.name,categoryId:e.categoryId,w:Dh(e.name)})}).then(()=>n)},[r,i,a,o]=await Promise.all([n(K.channels),n(K.movies),n(K.series),K.categories.where(`providerId`).equals(e).toArray()]);return Mh={stamp:t,live:r,movie:i,series:a,blocked:new Set(o.filter(Nh).map(e=>e.id))},Mh}function Fh(e,t,n,r){let i=[];for(let n of e)n.categoryId!==null&&r.has(n.categoryId)||Oh(n.w,t)&&i.push(n);return i.sort((e,t)=>kh(e.name,n)-kh(t.name,n)||e.name.length-t.name.length).slice(0,jh)}async function Ih(e,t,n){let r=n.trim().toLowerCase(),i=Dh(r);if(r.length<2||!i.length)return null;let a=await Ph(e,t),o=await Lh(e,t),s=Date.now()-216e5,c=[];for(let e of o.list)if(e.stop>s&&Oh(e.w,i)&&c.push(e.id),c.length>=400)break;let l=(await K.programs.bulkGet(c)).filter(e=>!!e).sort((e,t)=>e.start-t.start),u=await K.epgLinks.where(`providerId`).equals(e).toArray(),d=new Map;for(let e of u)d.has(e.key)||d.set(e.key,e.id);let f=new Map(a.live.map(e=>[e.id,e])),p=[];for(let e of l){let t=f.get(d.get(e.key)||-1);if(!(!t||t.categoryId!==null&&a.blocked.has(t.categoryId))&&(p.push({program:e,channelId:t.id}),p.length>=jh))break}return{channels:Fh(a.live,i,r,a.blocked),movies:Fh(a.movie,i,r,a.blocked),series:Fh(a.series,i,r,a.blocked),programs:p}}async function Lh(e,t){if(Ah&&Ah.stamp===t&&Date.now()-Ah.at<36e5)return Ah;let n=Date.now()-216e5,r=[];return await K.programs.where(`providerId`).equals(e).each(e=>{e.stop>n&&r.push({id:e.id,start:e.start,stop:e.stop,w:Dh(e.title)})}),Ah={stamp:t,at:Date.now(),list:r},Ah}function Rh(e){let t=e.trim();t.length<2||kc({searchHistory:[t,...(q.peek().searchHistory||[]).filter(e=>e.toLowerCase()!==t.toLowerCase())].slice(0,12)})}function zh(){let e=Fc.value,t=(Pc.value||[]).find(t=>t.id===e),n=`${t&&t.lastSync||0}|${t&&t.lastEpgSync||0}`,[r,i]=N(``),[a,o]=N(null),s=F(null),c=q.value.searchHistory||[];P(()=>{setTimeout(()=>L(s.current),0)},[]),P(()=>{let t=!0,i=setTimeout(async()=>{let i=await Ih(e,n,r);if(!t)return;if(!i)return o(null);let[a,s,c,l]=await Promise.all([K.channels.bulkGet(i.channels.map(e=>e.id)),K.movies.bulkGet(i.movies.map(e=>e.id)),K.series.bulkGet(i.series.map(e=>e.id)),K.channels.bulkGet(i.programs.map(e=>e.channelId))]);t&&o({channels:a.filter(e=>!!e),movies:s.filter(e=>!!e),series:c.filter(e=>!!e),programs:i.programs.map((e,t)=>({program:e.program,channel:l[t]})).filter(e=>!!e.channel)})},300);return()=>{t=!1,clearTimeout(i)}},[r,e,n]);let l=()=>Rh(r),u=async(t,n)=>{l();let r=await Ul(e,{type:`all`}),i=r.indexOf(t);i>=0&&md(r,i,n)},d=a&&!a.channels.length&&!a.movies.length&&!a.series.length&&!a.programs.length,f=Date.now(),p=e=>`${new Date(e).toLocaleDateString(sn.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`short`})} ${yl(e)}`;return M(`div`,{class:`search`,ref:s,children:[M(`div`,{class:`search-row`,children:M(hn,{label:R(`nav_search`),value:r,onInput:i,placeholder:R(`search_hint`),initial:!0,class:`search-field`})}),!a&&c.length>0&&M(`section`,{class:`shelf`,children:[M(`h2`,{class:`shelf-title`,children:R(`search_recent`)}),M(`div`,{class:`shelf-row history-row`,"data-focus-group":`search-history`,children:[c.map(e=>M(`button`,{class:`chip`,"data-focus":!0,onClick:()=>i(e),children:e},e)),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>kc({searchHistory:[]}),children:R(`search_clear`)})]})]}),d&&M(`p`,{class:`search-empty`,children:R(`search_no_results`,r.trim())}),a&&a.channels.length>0&&M(jd,{title:R(`search_channels`),children:a.channels.map(e=>M(Hd,{cc:{channel:e,now:null},onClick:()=>u(e.id),onLongPress:()=>{}},e.id))}),a&&a.movies.length>0&&M(jd,{title:R(`search_movies`),info:!0,children:a.movies.map(e=>{let t=mu(e);return M(Cd,{card:t,onClick:()=>{l(),ld({name:`movie`,id:e.id})}},t.key)})}),a&&a.series.length>0&&M(jd,{title:R(`search_series`),children:a.series.map(e=>{let t=mu(e);return M(wd,{card:t,onClick:()=>{l(),ld({name:`series`,id:e.id})}},t.key)})}),a&&a.programs.length>0&&M(`section`,{class:`search-programs`,children:[M(`h2`,{class:`shelf-title`,children:R(`search_programs`)}),a.programs.map(({program:e,channel:t})=>M(`button`,{class:`focus-row opt-row search-prog`,"data-focus":!0,onClick:()=>u(t.id,e.stop<f?e:void 0),children:[M(Qu,{src:t.logo,size:30}),M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:e.title}),M(`span`,{class:`muted`,children:t.name})]}),M(`span`,{class:`sp-time${e.start<=f&&e.stop>f?` live`:``}`,children:p(e.start)})]},e.id))]})]})}function Bh(e){let{program:t,channel:n}=e,r=F(null),i=F(document.activeElement);P(()=>(L(r.current),()=>i.current&&i.current.isConnected&&i.current.focus()),[]),Kt(t=>t===`back`?(e.onClose(),!0):`default`);let a=Date.now(),o=new Date(t.start).toLocaleDateString(sn.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`long`}),s=[],c=Yf(n,t.start,a);return t.start<=a&&t.stop>a?(s.push([R(`guide_watch`),e.onWatch]),c&&s.push([R(`guide_restart`),e.onArchive])):t.stop<=a&&c&&s.push([R(`guide_watch_archive`),e.onArchive]),t.start>a&&(s.push([R(Gu.value.has(t.id)?`guide_remind_off`:`guide_remind`),async()=>{B(R(await Ju(t,n)?`guide_reminder_set`:`guide_reminder_removed`))}]),s.push([R(`tz_remind_daily`),async()=>{await Ju(t,n,1),B(R(`guide_reminder_set`))}]),s.push([R(`tz_remind_weekly`),async()=>{await Ju(t,n,2),B(R(`guide_reminder_set`))}])),s.push([R(`guide_close`),()=>{}]),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`program-dialog`,ref:r,role:`dialog`,children:[M(`h2`,{children:t.title}),M(`p`,{class:`pd-meta`,children:`${n.name} · ${o} ${yl(t.start)} – ${yl(t.stop)}`}),t.category&&M(`p`,{class:`pd-cat`,children:t.category}),t.desc&&M(`p`,{class:`pd-desc`,children:t.desc}),M(`div`,{class:`row pd-buttons`,children:s.map(([t,n],r)=>M(`button`,{class:`btn ${r===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":r===0||void 0,onClick:()=>{e.onClose(),n()},children:t},t))})]})})}var Vh=I(null),Hh=864e5;function Uh({onOpenPlayer:e,onSearch:t}){let n=Fc.value,r=Vh.value||{filter:{type:`all`},label:R(`cat_all`)},[i,a]=N(null),[o,s]=N([]),[c,l]=N(mp(Date.now())),[u,d]=N(null),[f,p]=N(null),m=q.value;P(()=>{K.categories.where(`[providerId+kind]`).equals([n,`live`]).sortBy(`order`).then(s)},[n]),P(()=>{let e=!0;return a(null),Ul(n,r.filter).then(t=>e&&a(t)),()=>{e=!1}},[n,JSON.stringify(r.filter)]);let h=ke(()=>i?new Gl(i):null,[i]),g=(t,n)=>{i&&e(i,t,n)};return M(`div`,{class:`guide`,children:[M(`div`,{class:`guide-head`,children:[M(`h1`,{children:new Date(c).toLocaleDateString(sn.value===`tr`?`tr-TR`:`en-GB`,{weekday:`long`,day:`numeric`,month:`long`})}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>d({title:R(`guide_category`,r.label),items:[{label:R(`cat_all`),filter:{type:`all`}},{label:R(`cat_favorites`),filter:{type:`fav`}},...o.map(e=>({label:e.name,filter:{type:`cat`,id:e.id}}))].map(e=>({label:e.label,checked:JSON.stringify(e.filter)===JSON.stringify(r.filter),onSelect:()=>Vh.value={filter:e.filter,label:e.label}}))}),children:R(`guide_category`,r.label)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(c-Hh),children:R(`guide_prev_day`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(mp(Date.now())),children:R(`guide_now`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(c+Hh),children:R(`guide_next_day`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:t,children:R(`guide_search`)})]})]}),i&&!i.length?M(`p`,{class:`empty`,children:R(`live_empty_category`)}):h&&M(gp,{pager:h,count:i.length,initialRow:0,rowRem:6,winStart:c,setWinStart:l,numberOf:(e,t)=>m.numbering===`HIDDEN`?null:m.numbering===`CATEGORY`?t+1:e.number,onChannel:(e,t)=>g(t),onProgram:(e,t,n)=>p({p:e,c:t,row:n})},JSON.stringify(r.filter)),M(`p`,{class:`guide-hint`,children:R(`guide_hint`)}),u&&M(bn,{title:u.title,items:u.items,onClose:()=>d(null)}),f&&M(Bh,{program:f.p,channel:f.c,onClose:()=>p(null),onWatch:()=>g(f.row),onArchive:()=>g(f.row,f.p)})]})}var Wh=[{id:`home`,label:`nav_home`},{id:`live`,label:`nav_live`},{id:`guide`,label:`nav_guide`},{id:`movies`,label:`nav_movies`},{id:`series`,label:`nav_series`},{id:`recordings`,label:`nav_recordings`},{id:`extensions`,label:`nav_extensions`},{id:`search`,label:`nav_search`,icon:`search`},{id:`settings`,label:`nav_settings`,icon:`settings`}],Gh=I(!1),Kh=null,qh=e=>{if(e===`back`&&cd.value.length)return ud();e===`back`&&Kh&&Kh.isConnected&&(Kh&&!Kh.contains(document.activeElement)?L(Kh):Y.value===`home`?Gh.value=!0:Y.value=`home`)};async function Jh(){let e=Wu.value;Wu.value=null,Fc.peek()!==e.providerId&&zc(e.providerId);let t=await Ul(e.providerId,{type:`all`}),n=t.indexOf(e.channelId);n<0||md(t,n)}var Yh=!1,Xh=new Map;function Zh({active:e}){let t=F(null);return P(()=>{Kh=t.current,Yh||(Yh=!0,L(Kh))},[]),M(`header`,{class:`topbar glass`,children:[M(`span`,{class:`brand`,children:R(`app_name`)}),M(`nav`,{class:`pills`,ref:t,"data-focus-group":`menu`,children:Wh.map(t=>{let n=t.id===(e||Y.value);return M(`button`,{class:`pill${n?` selected`:``}${t.icon?` icon-only`:``}`,"data-focus":!0,"data-focus-default":n||void 0,"aria-label":R(t.label),onClick:()=>{let e=Y.value;e!==t.id&&Xh.set(e,cd.value),cd.value=n?[]:Xh.get(t.id)||[],Xh.delete(t.id),Y.value=t.id},children:t.icon?M(z,{name:t.icon}):R(t.label)},t.id)})})]})}function Qh(e){switch(e.name){case`browse`:return M(Hp,{kind:e.kind,title:e.title,filter:e.filter,sort:e.sort});case`movie`:return M(Qp,{id:e.id});case`series`:return M(em,{id:e.id,season:e.season});case`vod`:return M(jm,{kind:e.kind,id:e.id,seriesId:e.seriesId,startMs:e.startMs});case`epgmap`:return M(Im,{channelId:e.channelId});case`homeEdit`:return M(ch,{});case`stream`:return M(jm,{kind:`stream`,id:0,url:e.url,title:e.title});case`stremio`:return M(wh,{type:e.type,id:e.id})}}function $h(){let e=cd.value,t=Wh.find(e=>e.id===Y.value)||Wh[0],n=Pc.value,r=n!==null&&(Y.value===`onboarding`||!n.length),i=e.length?e[e.length-1].page:null,a=i&&i.name===`browse`?i:null;return M(`div`,{class:`app`,children:[M(Lp,{}),n===null?null:r?M(qc,{onDone:()=>Y.value=`home`,onExit:()=>n.length?Y.value=`home`:Gh.value=!0}):Y.value===`player`?M(kp,{onExit:hd},ad.value?ad.value.seq:0):M(x,{children:[(!e.length||a)&&M(Zh,{active:a?a.kind===`movie`?`movies`:`series`:void 0}),M(`main`,{style:e.length?{display:`none`}:void 0,class:`content${Y.value===`live`||Y.value===`guide`?` live-content`:``}`,"data-focus-group":`screen-${Y.value}`,children:Y.value===`home`?M(Rd,{providerId:Fc.value}):Y.value===`live`?M(Lf,{onOpenPlayer:(e,t)=>md(e,t)}):Y.value===`guide`?M(Uh,{onOpenPlayer:(e,t,n)=>md(e,t,n),onSearch:()=>Y.value=`search`}):Y.value===`search`?M(zh,{}):Y.value===`settings`?M($m,{}):Y.value===`movies`?M(Fd,{kind:`movie`}):Y.value===`series`?M(Fd,{kind:`series`}):Y.value===`extensions`?M(Ch,{}):Y.value===`recordings`?M(Th,{}):M(En,{title:R(t.label)})}),e.map((t,n)=>M(`div`,{class:t.page.name===`browse`?`page-flow`:`page`,style:n<e.length-1?{display:`none`}:void 0,children:Qh(t.page)},n))]}),M(yn,{}),Wu.value&&M(gn,{title:R(`tz_reminder_title`,Wu.value.title),message:R(`tz_reminder_text`,Wu.value.channelName),confirmLabel:R(`guide_watch`),onConfirm:()=>Jh(),onDismiss:()=>Wu.value=null}),Gh.value&&M(gn,{title:R(`exit_title`),message:R(`exit_message`),onConfirm:Ot,onDismiss:()=>Gh.value=!1})]})}Dt(),Nc(),bf(document.getElementById(`video`)),Zu(),en(qh),ue(M($h,{}),document.getElementById(`app`)),setTimeout(Vm,15e3),Rc().then(async e=>{new URLSearchParams(location.search),e.length?(Vc(),eg()):Y.value=`onboarding`});async function eg(){let e=q.peek().startScreen,t=Fc.peek();if(e===`last`||e===`firstFav`){if(!t)return;let n=await Ul(t,{type:e===`last`?`all`:`fav`}),r=e===`last`?n.indexOf(q.peek().lastChannelId||-1):0;n.length&&r>=0&&md(n,r)}else Y.value=e}})();