From 14a5dd7476c4bdab3f601adf297d90f2f5428526 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sun, 18 Sep 2022 15:43:48 +0300 Subject: [PATCH 01/41] go get -u to torrent v1.47.0 sync with torrent v1.47.0 and dht/v2 v2.19.0 releases --- server/go.mod | 20 ++++++++++---------- server/go.sum | 40 +++++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/server/go.mod b/server/go.mod index 45147db..d8499c6 100644 --- a/server/go.mod +++ b/server/go.mod @@ -8,7 +8,7 @@ require ( github.com/anacrolix/log v0.13.2-0.20220711050817-613cb738ef30 github.com/anacrolix/missinggo v1.3.0 github.com/anacrolix/publicip v0.3.0 - github.com/anacrolix/torrent v1.46.1-0.20220831010947-648acc0120a4 + github.com/anacrolix/torrent v1.47.0 github.com/gin-contrib/cors v1.4.0 github.com/gin-contrib/location v0.0.2 github.com/gin-gonic/gin v1.8.1 @@ -25,7 +25,7 @@ require ( github.com/alecthomas/atomic v0.1.0-alpha2 // indirect github.com/alexflint/go-scalar v1.1.0 // indirect github.com/anacrolix/chansync v0.3.0 // indirect - github.com/anacrolix/dht/v2 v2.18.1 // indirect + github.com/anacrolix/dht/v2 v2.19.0 // indirect github.com/anacrolix/envpprof v1.2.1 // indirect github.com/anacrolix/ffprobe v1.0.0 // indirect github.com/anacrolix/generics v0.0.0-20220618083756-f99e35403a60 // indirect @@ -50,8 +50,8 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect - github.com/go-playground/validator/v10 v10.11.0 // indirect - github.com/goccy/go-json v0.9.10 // indirect + github.com/go-playground/validator/v10 v10.11.1 // indirect + github.com/goccy/go-json v0.9.11 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect @@ -59,11 +59,11 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/lispad/go-generics-tools v1.1.0 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mschoch/smat v0.2.0 // indirect - github.com/pelletier/go-toml/v2 v2.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.0.5 // indirect github.com/pion/datachannel v1.5.2 // indirect github.com/pion/dtls/v2 v2.1.5 // indirect github.com/pion/ice/v2 v2.2.7 // indirect @@ -80,18 +80,18 @@ require ( github.com/pion/transport v0.13.1 // indirect github.com/pion/turn/v2 v2.0.8 // indirect github.com/pion/udp v0.1.1 // indirect - github.com/pion/webrtc/v3 v3.1.43 // indirect + github.com/pion/webrtc/v3 v3.1.44 // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect github.com/tidwall/btree v1.4.3 // indirect github.com/ugorji/go/codec v1.2.7 // indirect go.opentelemetry.io/otel v1.10.0 // indirect go.opentelemetry.io/otel/trace v1.10.0 // indirect golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect - golang.org/x/exp v0.0.0-20220914170420-dc92f8653013 // indirect + golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b // indirect golang.org/x/net v0.0.0-20220909164309-bea034e7d591 // indirect golang.org/x/sync v0.0.0-20220907140024-f12130a52804 // indirect - golang.org/x/sys v0.0.0-20220913175220-63ea55921009 // indirect + golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41 // indirect golang.org/x/text v0.3.7 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/server/go.sum b/server/go.sum index 76418f3..6b8c1ea 100644 --- a/server/go.sum +++ b/server/go.sum @@ -30,8 +30,8 @@ github.com/alexflint/go-scalar v1.1.0 h1:aaAouLLzI9TChcPXotr6gUhq+Scr8rl0P9P4Pnl github.com/alexflint/go-scalar v1.1.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= github.com/anacrolix/chansync v0.3.0 h1:lRu9tbeuw3wl+PhMu/r+JJCRu5ArFXIluOgdF0ao6/U= github.com/anacrolix/chansync v0.3.0/go.mod h1:DZsatdsdXxD0WiwcGl0nJVwyjCKMDv+knl1q2iBjA2k= -github.com/anacrolix/dht/v2 v2.18.1 h1:0y/2HoD1VzhJ4o/XDtcTwKGDc5rotFmpV+bEC48ZAd8= -github.com/anacrolix/dht/v2 v2.18.1/go.mod h1:mxrSeP/LIY429SgWMO9o6UdjBjB8ZjBh6HHCmd8Ly1g= +github.com/anacrolix/dht/v2 v2.19.0 h1:A9oMHWRGbLmCyx1JlYzg79bDrur8V60+0ts8ZwEVYt4= +github.com/anacrolix/dht/v2 v2.19.0/go.mod h1:0h83KnnAQ2AUYhpQ/CkoZP45K41pjDAlPR9zGHgFjQE= github.com/anacrolix/dms v1.5.0 h1:2WWI++sNL3Jv1UtrlVzw2KvEcOO3yGX6LMR8UwMj6/Q= github.com/anacrolix/dms v1.5.0/go.mod h1:5fAMpBcPFG4WQFh91zhf2E7/KYZ3/WmmRAf/WMoL0Q0= github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= @@ -84,8 +84,8 @@ github.com/anacrolix/sync v0.4.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DC github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8= -github.com/anacrolix/torrent v1.46.1-0.20220831010947-648acc0120a4 h1:YJKKkyni0LsgUamaBEx41uiAXsROJPsKN6vx/p7pukA= -github.com/anacrolix/torrent v1.46.1-0.20220831010947-648acc0120a4/go.mod h1:ZD3czL64N9giubb6qVftXxT8l5QeRYkCKZTpMjgAuhc= +github.com/anacrolix/torrent v1.47.0 h1:aDUnhQZ8+kfStLICHiXOGGYVFgDENK+kz4q96linyRg= +github.com/anacrolix/torrent v1.47.0/go.mod h1:SYPxEUjMwqhDr3kWGzyQLkFMuAb1bgJ57JRMpuD3ZzE= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 h1:QAVZ3pN/J4/UziniAhJR2OZ9Ox5kOY2053tBbbqUPYA= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cYIdaG35x15aH3Zy6d03f7P728QfdcDeD/IEOs= github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= @@ -159,13 +159,13 @@ github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/j github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= -github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw= -github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-json v0.9.10 h1:hCeNmprSNLB8B8vQKWl6DpuH0t60oEs+TAk9a7CScKc= -github.com/goccy/go-json v0.9.10/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -241,8 +241,9 @@ github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ic github.com/lispad/go-generics-tools v1.1.0 h1:mbSgcxdFVmpoyso1X/MJHXbSbSL3dD+qhRryyxk+/XY= github.com/lispad/go-generics-tools v1.1.0/go.mod h1:2csd1EJljo/gy5qG4khXol7ivCPptNjG5Uv2X8MgK84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -269,8 +270,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw= -github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= +github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= +github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= @@ -314,8 +315,8 @@ github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o= github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= -github.com/pion/webrtc/v3 v3.1.43 h1:YT3ZTO94UT4kSBvZnRAH82+0jJPUruiKr9CEstdlQzk= -github.com/pion/webrtc/v3 v3.1.43/go.mod h1:G/J8k0+grVsjC/rjCZ24AKoCCxcFFODgh7zThNZGs0M= +github.com/pion/webrtc/v3 v3.1.44 h1:uY11C9cOupY36bS3Q16NI298c/XKhl5S9EMCo/TxH3Y= +github.com/pion/webrtc/v3 v3.1.44/go.mod h1:G/J8k0+grVsjC/rjCZ24AKoCCxcFFODgh7zThNZGs0M= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -367,7 +368,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/tidwall/btree v1.4.3 h1:Lf5U/66bk0ftNppOBjVoy/AIPBrLMkheBp4NnSNiYOo= @@ -404,8 +404,8 @@ golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM= golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20220914170420-dc92f8653013 h1:ZjglnWxEUdPyXl4o/j4T89SRCI+4X6NW6185PNLEOF4= -golang.org/x/exp v0.0.0-20220914170420-dc92f8653013/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b h1:SCE/18RnFsLrjydh/R/s5EVvHoZprqEQUuoxK8q2Pc4= +golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -479,8 +479,9 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220913175220-63ea55921009 h1:PuvuRMeLWqsf/ZdT1UUZz0syhioyv1mzuFZsXs4fvhw= -golang.org/x/sys v0.0.0-20220913175220-63ea55921009/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41 h1:ohgcoMbSofXygzo6AD2I1kz3BFmW1QArPYTtwEM3UXc= +golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -520,8 +521,9 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From b505e716442a9d55693357fad0a048b78dfe9a4e Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Sun, 18 Sep 2022 15:49:22 +0300 Subject: [PATCH 02/41] bump ver --- server/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/version/version.go b/server/version/version.go index 55cd933..7d58c50 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -1,3 +1,3 @@ package version -const Version = "MatriX.118.1" +const Version = "MatriX.118.2" From 9485966c1ef266ac91c290410a75082e4b7b0ff1 Mon Sep 17 00:00:00 2001 From: Daniel Shleifman Date: Tue, 4 Oct 2022 20:03:13 +0300 Subject: [PATCH 03/41] removed redundant string --- web/src/components/DialogTorrentDetailsContent/Table/index.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/web/src/components/DialogTorrentDetailsContent/Table/index.jsx b/web/src/components/DialogTorrentDetailsContent/Table/index.jsx index 953c16f..3640528 100644 --- a/web/src/components/DialogTorrentDetailsContent/Table/index.jsx +++ b/web/src/components/DialogTorrentDetailsContent/Table/index.jsx @@ -34,7 +34,6 @@ const Table = memo( 'No playable files in this torrent' ) : ( <> -
{isVlcUsed.toString()}
From 06be3d0bea04621a10dca0df7181ed7c52f440fd Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 29 Dec 2022 18:11:47 +0300 Subject: [PATCH 04/41] update to torrent v1.48.0 and trunk dht/v2 --- server/go.mod | 66 ++++++++++---------- server/go.sum | 166 ++++++++++++++++++++++++++++---------------------- 2 files changed, 125 insertions(+), 107 deletions(-) diff --git a/server/go.mod b/server/go.mod index d8499c6..9d22b5a 100644 --- a/server/go.mod +++ b/server/go.mod @@ -4,43 +4,43 @@ go 1.18 require ( github.com/alexflint/go-arg v1.4.3 + github.com/anacrolix/dht/v2 v2.19.3-0.20221221005837-88ee3382ad4a github.com/anacrolix/dms v1.5.0 - github.com/anacrolix/log v0.13.2-0.20220711050817-613cb738ef30 + github.com/anacrolix/log v0.13.2-0.20221123232138-02e2764801c3 github.com/anacrolix/missinggo v1.3.0 + github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 github.com/anacrolix/publicip v0.3.0 - github.com/anacrolix/torrent v1.47.0 + github.com/anacrolix/torrent v1.48.0 github.com/gin-contrib/cors v1.4.0 github.com/gin-contrib/location v0.0.2 - github.com/gin-gonic/gin v1.8.1 + github.com/gin-gonic/gin v1.8.2 github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 github.com/pkg/errors v0.9.1 go.etcd.io/bbolt v1.3.6 - golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 + golang.org/x/time v0.3.0 ) require ( - crawshaw.io/sqlite v0.3.3-0.20210127221821-98b1f83c5508 // indirect + crawshaw.io/sqlite v0.3.3-0.20220618202545-d1964889ea3c // indirect github.com/RoaringBitmap/roaring v1.2.1 // indirect github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 // indirect github.com/alecthomas/atomic v0.1.0-alpha2 // indirect github.com/alexflint/go-scalar v1.1.0 // indirect github.com/anacrolix/chansync v0.3.0 // indirect - github.com/anacrolix/dht/v2 v2.19.0 // indirect github.com/anacrolix/envpprof v1.2.1 // indirect - github.com/anacrolix/ffprobe v1.0.0 // indirect - github.com/anacrolix/generics v0.0.0-20220618083756-f99e35403a60 // indirect + github.com/anacrolix/ffprobe v1.0.1 // indirect + github.com/anacrolix/generics v0.0.0-20221221005542-ac1d5b02b8a3 // indirect github.com/anacrolix/go-libutp v1.2.0 // indirect github.com/anacrolix/missinggo/perf v1.0.0 // indirect - github.com/anacrolix/missinggo/v2 v2.7.0 // indirect + github.com/anacrolix/missinggo/v2 v2.7.1 // indirect github.com/anacrolix/mmsg v1.0.0 // indirect - github.com/anacrolix/multiless v0.3.0 // indirect - github.com/anacrolix/stm v0.4.0 // indirect + github.com/anacrolix/stm v0.5.0 // indirect github.com/anacrolix/sync v0.4.0 // indirect github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect github.com/anacrolix/utp v0.1.0 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect - github.com/benbjohnson/immutable v0.3.0 // indirect - github.com/bits-and-blooms/bitset v1.3.3 // indirect + github.com/benbjohnson/immutable v0.4.2 // indirect + github.com/bits-and-blooms/bitset v1.4.0 // indirect github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dustin/go-humanize v1.0.0 // indirect @@ -51,47 +51,47 @@ require ( github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect github.com/go-playground/validator/v10 v10.11.1 // indirect - github.com/goccy/go-json v0.9.11 // indirect + github.com/goccy/go-json v0.10.0 // indirect github.com/google/btree v1.1.2 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/huandu/xstrings v1.3.2 // indirect + github.com/huandu/xstrings v1.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/lispad/go-generics-tools v1.1.0 // indirect - github.com/mattn/go-isatty v0.0.16 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mschoch/smat v0.2.0 // indirect - github.com/pelletier/go-toml/v2 v2.0.5 // indirect - github.com/pion/datachannel v1.5.2 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect + github.com/pion/datachannel v1.5.5 // indirect github.com/pion/dtls/v2 v2.1.5 // indirect - github.com/pion/ice/v2 v2.2.7 // indirect + github.com/pion/ice/v2 v2.2.12 // indirect github.com/pion/interceptor v0.1.12 // indirect github.com/pion/logging v0.2.2 // indirect github.com/pion/mdns v0.0.5 // indirect github.com/pion/randutil v0.1.0 // indirect github.com/pion/rtcp v1.2.10 // indirect github.com/pion/rtp v1.7.13 // indirect - github.com/pion/sctp v1.8.2 // indirect + github.com/pion/sctp v1.8.5 // indirect github.com/pion/sdp/v3 v3.0.6 // indirect github.com/pion/srtp/v2 v2.0.10 // indirect github.com/pion/stun v0.3.5 // indirect - github.com/pion/transport v0.13.1 // indirect - github.com/pion/turn/v2 v2.0.8 // indirect + github.com/pion/transport v0.14.1 // indirect + github.com/pion/turn/v2 v2.0.9 // indirect github.com/pion/udp v0.1.1 // indirect - github.com/pion/webrtc/v3 v3.1.44 // indirect + github.com/pion/webrtc/v3 v3.1.50 // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect - github.com/tidwall/btree v1.4.3 // indirect - github.com/ugorji/go/codec v1.2.7 // indirect - go.opentelemetry.io/otel v1.10.0 // indirect - go.opentelemetry.io/otel/trace v1.10.0 // indirect - golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect - golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b // indirect - golang.org/x/net v0.0.0-20220909164309-bea034e7d591 // indirect - golang.org/x/sync v0.0.0-20220907140024-f12130a52804 // indirect - golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41 // indirect - golang.org/x/text v0.3.7 // indirect + github.com/tidwall/btree v1.6.0 // indirect + github.com/ugorji/go/codec v1.2.8 // indirect + go.opentelemetry.io/otel v1.11.2 // indirect + go.opentelemetry.io/otel/trace v1.11.2 // indirect + golang.org/x/crypto v0.4.0 // indirect + golang.org/x/exp v0.0.0-20221227203929-1b447090c38c // indirect + golang.org/x/net v0.4.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/text v0.5.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/server/go.sum b/server/go.sum index 6b8c1ea..b956373 100644 --- a/server/go.sum +++ b/server/go.sum @@ -3,8 +3,8 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797 h1:yDf7ARQc637HoxDho7xjqdvO5ZA2Yb+xzv/fOnnvZzw= crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797/go.mod h1:sXBiorCo8c46JlQV3oXPKINnZ8mcqnye1EkVkqsectk= crawshaw.io/sqlite v0.3.2/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4= -crawshaw.io/sqlite v0.3.3-0.20210127221821-98b1f83c5508 h1:fILCBBFnjnrQ0whVJlGhfv1E/QiaFDNtGFBObEVRnYg= -crawshaw.io/sqlite v0.3.3-0.20210127221821-98b1f83c5508/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4= +crawshaw.io/sqlite v0.3.3-0.20220618202545-d1964889ea3c h1:wvzox0eLO6CKQAMcOqz7oH3UFqMpMmK7kwmwV+22HIs= +crawshaw.io/sqlite v0.3.3-0.20220618202545-d1964889ea3c/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w= @@ -30,8 +30,8 @@ github.com/alexflint/go-scalar v1.1.0 h1:aaAouLLzI9TChcPXotr6gUhq+Scr8rl0P9P4Pnl github.com/alexflint/go-scalar v1.1.0/go.mod h1:LoFvNMqS1CPrMVltza4LvnGKhaSpc3oyLEBUZVhhS2o= github.com/anacrolix/chansync v0.3.0 h1:lRu9tbeuw3wl+PhMu/r+JJCRu5ArFXIluOgdF0ao6/U= github.com/anacrolix/chansync v0.3.0/go.mod h1:DZsatdsdXxD0WiwcGl0nJVwyjCKMDv+knl1q2iBjA2k= -github.com/anacrolix/dht/v2 v2.19.0 h1:A9oMHWRGbLmCyx1JlYzg79bDrur8V60+0ts8ZwEVYt4= -github.com/anacrolix/dht/v2 v2.19.0/go.mod h1:0h83KnnAQ2AUYhpQ/CkoZP45K41pjDAlPR9zGHgFjQE= +github.com/anacrolix/dht/v2 v2.19.3-0.20221221005837-88ee3382ad4a h1:rm+hvkZOSt1X24LPmnjOJQLpsI+SmBmlcEA6KOGeFeU= +github.com/anacrolix/dht/v2 v2.19.3-0.20221221005837-88ee3382ad4a/go.mod h1:iG6rmTNQg3fXMCf2QYQZpMUvmoZtS1R+zlil/AFBWQc= github.com/anacrolix/dms v1.5.0 h1:2WWI++sNL3Jv1UtrlVzw2KvEcOO3yGX6LMR8UwMj6/Q= github.com/anacrolix/dms v1.5.0/go.mod h1:5fAMpBcPFG4WQFh91zhf2E7/KYZ3/WmmRAf/WMoL0Q0= github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= @@ -39,10 +39,11 @@ github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54g github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= github.com/anacrolix/envpprof v1.2.1 h1:25TJe6t/i0AfzzldiGFKCpD+s+dk8lONBcacJZB2rdE= github.com/anacrolix/envpprof v1.2.1/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= -github.com/anacrolix/ffprobe v1.0.0 h1:j8fGLBsXejwdXd0pkA9iR3Dt1XwMFv5wjeYWObcue8A= github.com/anacrolix/ffprobe v1.0.0/go.mod h1:BIw+Bjol6CWjm/CRWrVLk2Vy+UYlkgmBZ05vpSYqZPw= -github.com/anacrolix/generics v0.0.0-20220618083756-f99e35403a60 h1:k4/h2B1gGF+PJGyGHxs8nmHHt1pzWXZWBj6jn4OBlRc= -github.com/anacrolix/generics v0.0.0-20220618083756-f99e35403a60/go.mod h1:ff2rHB/joTV03aMSSn/AZNnaIpUw0h3njetGsaXcMy8= +github.com/anacrolix/ffprobe v1.0.1 h1:S/MfCrUNZvbkkykX/1mmLVRf8//M7mvlY3BcwHaK3bQ= +github.com/anacrolix/ffprobe v1.0.1/go.mod h1:MXe+zG/RRa5OdIf5+VYYfS/CfsSqOH7RrvGIqJBzqhI= +github.com/anacrolix/generics v0.0.0-20221221005542-ac1d5b02b8a3 h1:gXyo39DTLD3j6cNKvt8wRAqQs/jeOmbX5CR0djEK8SE= +github.com/anacrolix/generics v0.0.0-20221221005542-ac1d5b02b8a3/go.mod h1:ff2rHB/joTV03aMSSn/AZNnaIpUw0h3njetGsaXcMy8= github.com/anacrolix/go-libutp v1.2.0 h1:sjxoB+/ARiKUR7IK/6wLWyADIBqGmu1fm0xo+8Yy7u0= github.com/anacrolix/go-libutp v1.2.0/go.mod h1:RrJ3KcaDcf9Jqp33YL5V/5CBEc6xMc7aJL8wXfuWL50= github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= @@ -50,8 +51,8 @@ github.com/anacrolix/log v0.6.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgw github.com/anacrolix/log v0.10.0/go.mod h1:s5yBP/j046fm9odtUTbHOfDUq/zh1W8OkPpJtnX0oQI= github.com/anacrolix/log v0.10.1-0.20220123034749-3920702c17f8/go.mod h1:GmnE2c0nvz8pOIPUSC9Rawgefy1sDXqposC2wgtBZE4= github.com/anacrolix/log v0.13.1/go.mod h1:D4+CvN8SnruK6zIFS/xPoRJmtvtnxs+CSfDQ+BFxZ68= -github.com/anacrolix/log v0.13.2-0.20220711050817-613cb738ef30 h1:bAgFzUxN1K3U8KwOzqCOhiygOr5NqYO3kNlV9tvp2Rc= -github.com/anacrolix/log v0.13.2-0.20220711050817-613cb738ef30/go.mod h1:D4+CvN8SnruK6zIFS/xPoRJmtvtnxs+CSfDQ+BFxZ68= +github.com/anacrolix/log v0.13.2-0.20221123232138-02e2764801c3 h1:qDcPnH18SanNZMeMuEjzKpB3NQGR1ahytV08KOhZhNo= +github.com/anacrolix/log v0.13.2-0.20221123232138-02e2764801c3/go.mod h1:MD4fn2pYcyhUAQg9SxoGOpTnV/VIdiKVYKZdCbDC97k= github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62 h1:P04VG6Td13FHMgS5ZBcJX23NPC/fiC4cp9bXwYujdYM= github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62/go.mod h1:66cFKPCO7Sl4vbFnAaSq7e4OXtdMhRSBagJGWgmpJbM= github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s= @@ -65,18 +66,18 @@ github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5ur github.com/anacrolix/missinggo/v2 v2.2.0/go.mod h1:o0jgJoYOyaoYQ4E2ZMISVa9c88BbUBVQQW4QeRkNCGY= github.com/anacrolix/missinggo/v2 v2.5.1/go.mod h1:WEjqh2rmKECd0t1VhQkLGTdIWXO6f6NLjp5GlMZ+6FA= github.com/anacrolix/missinggo/v2 v2.5.2/go.mod h1:yNvsLrtZYRYCOI+KRH/JM8TodHjtIE/bjOGhQaLOWIE= -github.com/anacrolix/missinggo/v2 v2.7.0 h1:4fzOAAn/VCvfWGviLmh64MPMttrlYew81JdPO7nSHvI= -github.com/anacrolix/missinggo/v2 v2.7.0/go.mod h1:2IZIvmRTizALNYFYXsPR7ofXPzJgyBpKZ4kMqMEICkI= +github.com/anacrolix/missinggo/v2 v2.7.1 h1:Y+wL0JC6D2icpwhDpcrRM4THQB/uFcPNYUtZMbYvQgI= +github.com/anacrolix/missinggo/v2 v2.7.1/go.mod h1:2IZIvmRTizALNYFYXsPR7ofXPzJgyBpKZ4kMqMEICkI= github.com/anacrolix/mmsg v0.0.0-20180515031531-a4a3ba1fc8bb/go.mod h1:x2/ErsYUmT77kezS63+wzZp8E3byYB0gzirM/WMBLfw= github.com/anacrolix/mmsg v1.0.0 h1:btC7YLjOn29aTUAExJiVUhQOuf/8rhm+/nWCMAnL3Hg= github.com/anacrolix/mmsg v1.0.0/go.mod h1:x8kRaJY/dCrY9Al0PEcj1mb/uFHwP6GCJ9fLl4thEPc= -github.com/anacrolix/multiless v0.3.0 h1:5Bu0DZncjE4e06b9r1Ap2tUY4Au0NToBP5RpuEngSis= -github.com/anacrolix/multiless v0.3.0/go.mod h1:TrCLEZfIDbMVfLoQt5tOoiBS/uq4y8+ojuEVVvTNPX4= +github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 h1:lOtCD+LzoD1g7bowhYJNR++uV+FyY5bTZXKwnPex9S8= +github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7/go.mod h1:zJv1JF9AqdZiHwxqPgjuOZDGWER6nyE48WBCi/OOrMM= github.com/anacrolix/publicip v0.3.0 h1:QK+lvqNzZDznqWMe5lbnjdXsKb7Mvhqy6osV3J+HwPY= github.com/anacrolix/publicip v0.3.0/go.mod h1:tF1kAG96Ao3t9Q8zyfA7Lso1wOEfHHEcZQTRI+PMm4k= github.com/anacrolix/stm v0.2.0/go.mod h1:zoVQRvSiGjGoTmbM0vSLIiaKjWtNPeTvXUSdJQA4hsg= -github.com/anacrolix/stm v0.4.0 h1:tOGvuFwaBjeu1u9X1eIh9TX8OEedEiEQ1se1FjhFnXY= -github.com/anacrolix/stm v0.4.0/go.mod h1:GCkwqWoAsP7RfLW+jw+Z0ovrt2OO7wRzcTtFYMYY5t8= +github.com/anacrolix/stm v0.5.0 h1:9df1KBpttF0TzLgDq51Z+TEabZKMythqgx89f1FQJt8= +github.com/anacrolix/stm v0.5.0/go.mod h1:MOwrSy+jCm8Y7HYfMAwPj7qWVu7XoVvjOiYwJmpeB/M= github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778/go.mod h1:s735Etp3joe/voe2sdaXLcqDdJSay1O0OPnM0ystjqk= github.com/anacrolix/sync v0.3.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g= github.com/anacrolix/sync v0.4.0 h1:T+MdO/u87ir/ijWsTFsPYw5jVm0SMm4kVpg8t4KF38o= @@ -84,8 +85,8 @@ github.com/anacrolix/sync v0.4.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DC github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8= -github.com/anacrolix/torrent v1.47.0 h1:aDUnhQZ8+kfStLICHiXOGGYVFgDENK+kz4q96linyRg= -github.com/anacrolix/torrent v1.47.0/go.mod h1:SYPxEUjMwqhDr3kWGzyQLkFMuAb1bgJ57JRMpuD3ZzE= +github.com/anacrolix/torrent v1.48.0 h1:OQe1aQb8WnhDzpcI7r3yWoHzHWKyPbfhXGfO9Q/pvbY= +github.com/anacrolix/torrent v1.48.0/go.mod h1:3UtkJ8BnxXDRwvk+eT+uwiZalfFJ8YzAhvxe4QRPSJI= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 h1:QAVZ3pN/J4/UziniAhJR2OZ9Ox5kOY2053tBbbqUPYA= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cYIdaG35x15aH3Zy6d03f7P728QfdcDeD/IEOs= github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= @@ -94,14 +95,14 @@ github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/benbjohnson/immutable v0.2.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI= -github.com/benbjohnson/immutable v0.3.0 h1:TVRhuZx2wG9SZ0LRdqlbs9S5BZ6Y24hJEHTCgWHZEIw= -github.com/benbjohnson/immutable v0.3.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI= +github.com/benbjohnson/immutable v0.4.2 h1:0KBS7FYBWAlu9Xw/i1MS3gvJIwLR8RBeUqFFNn97JMU= +github.com/benbjohnson/immutable v0.4.2/go.mod h1:iAr8OjJGLnLmVUr9MZ/rz4PWUy6Ouc2JLYuMArmvAJM= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= -github.com/bits-and-blooms/bitset v1.3.3 h1:R1XWiopGiXf66xygsiLpzLo67xEYvMkHw3w+rCOSAwg= -github.com/bits-and-blooms/bitset v1.3.3/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.4.0 h1:+YZ8ePm+He2pU3dZlIZiOeAKfrBkXi1lSrXJ/Xzgbu8= +github.com/bits-and-blooms/bitset v1.4.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 h1:GKTyiRCL6zVf5wWaqKnf+7Qs6GbEPfd4iMOitWzXJx8= @@ -122,7 +123,8 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= @@ -132,8 +134,9 @@ github.com/gin-contrib/location v0.0.2/go.mod h1:NGoidiRlf0BlA/VKSVp+g3cuSMeTmip github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gin-gonic/gin v1.8.2 h1:UzKToD9/PoFj/V4rvlKqTRKnQYyz8Sc1MJlv4JHPtvY= +github.com/gin-gonic/gin v1.8.2/go.mod h1:qw5AYuDrzRTnhvusDsrov+fDIxp9Dleuu12h8nfB398= github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= @@ -164,8 +167,8 @@ github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -195,7 +198,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -214,8 +218,9 @@ github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbc github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -229,8 +234,9 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -242,8 +248,8 @@ github.com/lispad/go-generics-tools v1.1.0 h1:mbSgcxdFVmpoyso1X/MJHXbSbSL3dD+qhR github.com/lispad/go-generics-tools v1.1.0/go.mod h1:2csd1EJljo/gy5qG4khXol7ivCPptNjG5Uv2X8MgK84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -270,18 +276,16 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= -github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= -github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew8= +github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0= github.com/pion/dtls/v2 v2.1.5 h1:jlh2vtIyUBShchoTDqpCCqiYCyRFJ/lvf/gQ8TALs+c= github.com/pion/dtls/v2 v2.1.5/go.mod h1:BqCE7xPZbPSubGasRoDFJeTsyJtdD1FanJYL0JGheqY= -github.com/pion/ice/v2 v2.2.6/go.mod h1:SWuHiOGP17lGromHTFadUe1EuPgFh/oCU6FCMZHooVE= -github.com/pion/ice/v2 v2.2.7 h1:kG9tux3WdYUSqqqnf+O5zKlpy41PdlvLUBlYJeV2emQ= -github.com/pion/ice/v2 v2.2.7/go.mod h1:Ckj7cWZ717rtU01YoDQA9ntGWCk95D42uVZ8sI0EL+8= +github.com/pion/ice/v2 v2.2.12 h1:n3M3lUMKQM5IoofhJo73D3qVla+mJN2nVvbSPq32Nig= +github.com/pion/ice/v2 v2.2.12/go.mod h1:z2KXVFyRkmjetRlaVRgjO9U3ShKwzhlUylvxKfHfd5A= github.com/pion/interceptor v0.1.11/go.mod h1:tbtKjZY14awXd7Bq0mmWvgtHB5MDaRN7HV3OZ/uy7s8= github.com/pion/interceptor v0.1.12 h1:CslaNriCFUItiXS5o+hh5lpL0t0ytQkFnUcbbCs2Zq8= github.com/pion/interceptor v0.1.12/go.mod h1:bDtgAD9dRkBZpWHGKaoKb42FhDHTG2rX8Ii9LRALLVA= @@ -296,10 +300,8 @@ github.com/pion/rtcp v1.2.10 h1:nkr3uj+8Sp97zyItdN60tE/S6vk4al5CPRR6Gejsdjc= github.com/pion/rtcp v1.2.10/go.mod h1:ztfEwXZNLGyF1oQDttz/ZKIBaeeg/oWbRYqzBM9TL1I= github.com/pion/rtp v1.7.13 h1:qcHwlmtiI50t1XivvoawdCGTP4Uiypzfrsap+bijcoA= github.com/pion/rtp v1.7.13/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= -github.com/pion/sctp v1.8.0/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= -github.com/pion/sctp v1.8.2 h1:yBBCIrUMJ4yFICL3RIvR4eh/H2BTTvlligmSTy+3kiA= -github.com/pion/sctp v1.8.2/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= -github.com/pion/sdp/v3 v3.0.5/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw= +github.com/pion/sctp v1.8.5 h1:JCc25nghnXWOlSn3OVtEnA9PjQ2JsxQbG+CXZ1UkJKQ= +github.com/pion/sctp v1.8.5/go.mod h1:SUFFfDpViyKejTAdwD1d/HQsCu+V/40cCs2nZIvC3s0= github.com/pion/sdp/v3 v3.0.6 h1:WuDLhtuFUUVpTfus9ILC4HRyHsW6TdugjEX/QY9OiUw= github.com/pion/sdp/v3 v3.0.6/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw= github.com/pion/srtp/v2 v2.0.10 h1:b8ZvEuI+mrL8hbr/f1YiJFB34UMrOac3R3N1yq2UN0w= @@ -307,16 +309,17 @@ github.com/pion/srtp/v2 v2.0.10/go.mod h1:XEeSWaK9PfuMs7zxXyiN252AHPbH12NX5q/CFD github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg= github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= -github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= github.com/pion/transport v0.13.0/go.mod h1:yxm9uXpK9bpBBWkITk13cLo1y5/ur5VQpG22ny6EP7g= -github.com/pion/transport v0.13.1 h1:/UH5yLeQtwm2VZIPjxwnNFxjS4DFhyLfS4GlfuKUzfA= github.com/pion/transport v0.13.1/go.mod h1:EBxbqzyv+ZrmDb82XswEE0BjfQFtuw1Nu6sjnjWCsGg= -github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= +github.com/pion/transport v0.14.1 h1:XSM6olwW+o8J4SCmOBb/BpwZypkHeyM0PGFCxNQBr40= +github.com/pion/transport v0.14.1/go.mod h1:4tGmbk00NeYA3rUa9+n+dzCCoKkcy3YlYb99Jn2fNnI= github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= +github.com/pion/turn/v2 v2.0.9 h1:jcDPw0Vfd5I4iTc7s0Upfc2aMnyu2lgJ9vV0SUrNC1o= +github.com/pion/turn/v2 v2.0.9/go.mod h1:DQlwUwx7hL8Xya6TTAabbd9DdKXTNR96Xf5g5Qqso/M= github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o= github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= -github.com/pion/webrtc/v3 v3.1.44 h1:uY11C9cOupY36bS3Q16NI298c/XKhl5S9EMCo/TxH3Y= -github.com/pion/webrtc/v3 v3.1.44/go.mod h1:G/J8k0+grVsjC/rjCZ24AKoCCxcFFODgh7zThNZGs0M= +github.com/pion/webrtc/v3 v3.1.50 h1:wLMo1+re4WMZ9Kun9qcGcY+XoHkE3i0CXrrc0sjhVCk= +github.com/pion/webrtc/v3 v3.1.50/go.mod h1:y9n09weIXB+sjb9mi0GBBewNxo4TKUQm5qdtT5v3/X4= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -345,7 +348,8 @@ github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4 github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs= github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA= github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8= @@ -360,6 +364,7 @@ github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:K github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -368,49 +373,53 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/tidwall/btree v1.4.3 h1:Lf5U/66bk0ftNppOBjVoy/AIPBrLMkheBp4NnSNiYOo= -github.com/tidwall/btree v1.4.3/go.mod h1:LGm8L/DZjPLmeWGjv5kFrY8dL4uVhMmzmmLYmsObdKE= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= +github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/ugorji/go/codec v1.2.8 h1:sgBJS6COt0b/P40VouWKdseidkDgHxYGm0SAglUHfP0= +github.com/ugorji/go/codec v1.2.8/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4= -go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ= -go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E= -go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM= +go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= +go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= +go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= +go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= +golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b h1:SCE/18RnFsLrjydh/R/s5EVvHoZprqEQUuoxK8q2Pc4= -golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp v0.0.0-20221227203929-1b447090c38c h1:Govq2W3bnHJimHT2ium65kXcI7ZzTniZHcFATnLJM0Q= +golang.org/x/exp v0.0.0-20221227203929-1b447090c38c/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -431,14 +440,14 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220401154927-543a649e0bdd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220524220425-1d687d428aca/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220531201128-c960675eff93/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220630215102-69896b714898/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591 h1:D0B/7al0LLrVC8aWF4+oxpv/m8bc7ViFfVS8/gXGdqI= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -448,8 +457,9 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220907140024-f12130a52804 h1:0SH2R3f1b1VmIMG7BXbEZCBUu2dKmHschSmjqGUrW8A= -golang.org/x/sync v0.0.0-20220907140024-f12130a52804/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -479,19 +489,26 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41 h1:ohgcoMbSofXygzo6AD2I1kz3BFmW1QArPYTtwEM3UXc= -golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -500,6 +517,7 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 10371d5112aecc399e3bf09a0faeede378ab7cbf Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 29 Dec 2022 18:24:48 +0300 Subject: [PATCH 05/41] update static web --- server/web/pages/template/pages/asset-manifest.json | 6 +++--- server/web/pages/template/pages/index.html | 2 +- .../pages/template/pages/static/js/main.46ee0fc8.chunk.js | 2 ++ .../template/pages/static/js/main.46ee0fc8.chunk.js.map | 1 + .../pages/template/pages/static/js/main.604c45f6.chunk.js | 2 -- .../template/pages/static/js/main.604c45f6.chunk.js.map | 1 - server/web/pages/template/route.go | 8 ++++---- 7 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js create mode 100644 server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js.map delete mode 100644 server/web/pages/template/pages/static/js/main.604c45f6.chunk.js delete mode 100644 server/web/pages/template/pages/static/js/main.604c45f6.chunk.js.map diff --git a/server/web/pages/template/pages/asset-manifest.json b/server/web/pages/template/pages/asset-manifest.json index 8d7c810..907d624 100644 --- a/server/web/pages/template/pages/asset-manifest.json +++ b/server/web/pages/template/pages/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.js": "/static/js/main.604c45f6.chunk.js", - "main.js.map": "/static/js/main.604c45f6.chunk.js.map", + "main.js": "/static/js/main.46ee0fc8.chunk.js", + "main.js.map": "/static/js/main.46ee0fc8.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.64d07802.js", "runtime-main.js.map": "/static/js/runtime-main.64d07802.js.map", "static/js/2.0f998e59.chunk.js": "/static/js/2.0f998e59.chunk.js", @@ -12,6 +12,6 @@ "entrypoints": [ "static/js/runtime-main.64d07802.js", "static/js/2.0f998e59.chunk.js", - "static/js/main.604c45f6.chunk.js" + "static/js/main.46ee0fc8.chunk.js" ] } \ No newline at end of file diff --git a/server/web/pages/template/pages/index.html b/server/web/pages/template/pages/index.html index 115153c..9c0c74b 100644 --- a/server/web/pages/template/pages/index.html +++ b/server/web/pages/template/pages/index.html @@ -1 +1 @@ -TorrServer MatriX
\ No newline at end of file +TorrServer MatriX
\ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js b/server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js new file mode 100644 index 0000000..2081b7f --- /dev/null +++ b/server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[]).push([[0],{192:function(e){e.exports=JSON.parse('{"About":"About","Actions":"Actions","Add":"Add","AddDialog":{"AddPosterLinkInput":"Poster link","AddTorrentSourceNotification":"First add your torrent source","AppendFile":{"Or":"OR","ClickOrDrag":"CLICK / DRAG & DROP (.torrent)"},"CustomTorrentTitle":"Custom title (optional)","CustomTorrentTitleHelperText":"Write custom title to find poster","HashExists":"This torrent is already in database","OriginalTorrentTitle":"Original torrent title","TitleBlank":"Title (blank for orig. torrent title)","TorrentSourceLink":"Torrent source","TorrentSourceOptions":"magnet / hash / .torrent file link","WrongTorrentSource":"Wrong torrent source"},"AddFromLink":"Add Torrent","AddNewTorrent":"Add new torrent","B":"B","bps":"bps","Buffer":"Preload Buffer / Cache","BufferNote":"Set Preload Cache Before Play > 32 MB in settings to change preload size","Cache":"Cache","Cancel":"Cancel","Clear":"Clear","Close":"Close","CloseServer?":"Do you want to turn off server?","CloseServer":"Turn Off","CopyHash":"Copy Hash","CopyLink":"Copy link","Data":"Data","DebugMode":"Download priorities","Delete":"Delete","DeleteTorrent?":"Delete Torrent?","DeleteTorrents?":"Delete All Torrents?","DetailedCacheView":{"button":"Cache Details View","header":"$t(DetailedCacheView.button)"},"Details":"Details","Donate?":"Want to donate?","Donate":"Donate","DownloadPlaylist":"Download Playlist","DownloadSpeed":"Download speed","Drop":"Drop","DropTorrent":"Reset Torrent","Edit":"Edit","EditTorrent":"Edit torrent","Episode":"Episode","FromLatestFile":"From Latest File","Full":"Full","GB":"GB","Gbps":"Gbps","Host":"Host","Info":"Info","KB":"KB","kbps":"kbps","Kilobytes":"Kilobytes","LatestFilePlayed":"Latest file played:","Links":"Links","MB":"MB","Mbps":"Mbps","Name":"Name","NoTorrentsAdded":"No torrents added","Offline":"Offline","OK":"OK","OpenLink":"Open link","Peers":"Peers","PiecesCount":"Pieces count","PiecesLength":"Pieces length","Playlist":"Playlist","Preload":"Preload","ProjectSource":"Project page","PWAGuide":{"Header":"Install application","Description":"Install the app on your device to easily access it anytime. No app store. No download.","VLC":"VLC button will be added to open video instantly on the phone","FirstStep":"Tap on","SecondStep":{"Select":"Select","AddToHomeScreen":"Add to Home Screen"}},"Releases":"TorrServer Releases","RemoveAll":"Remove All","RemoveViews":"Remove View States","Resolution":"Resolution","Save":"Save","ScrollDown":"scroll down","Season":"Season","Sec":"s","Seconds":"Seconds","SelectSeason":"Select Season","SettingsDialog":{"AddRetrackers":"Add retrackers","AdditionalSettings":"Additional Settings","MobileAppSettings":"Mobile app settings","CacheBeforeReaderDesc":"from cache will be saved before currently played frame","CacheAfterReaderDesc":"from cache will be loaded after currently played frame","CacheSize":"Cache Size","CacheSettings":"Cache Settings","CacheStorageLocation":"Cache Storage Location","ConnectionsLimit":"Connections Limit","ConnectionsLimitHint":"20-25 recommended","DHT":"DHT (Distributed Hash Table)","Disk":"Disk","DLNA":"DLNA Media Server","DontAddRetrackers":"Don`t add retrackers","DownloadRateLimit":"Download Rate Limit","EnableDebug":"Enable Debug Server Log","ForceEncrypt":"Force Encrypt Headers","FriendlyName":"DLNA Server Name","FriendlyNameHint":"Leave blank to use default","PeersListenPort":"Peers Listen Port","PeersListenPortHint":"1024 - 65535, 0 - auto","PreloadCache":"Preload Cache Before Play","ProMode":"PRO mode","RAM":"RAM","ReaderReadAHead":"Readahead Cache (5-100%, rec. 95%)","RemoveCacheOnDrop":"Remove Cache from Disk on Drop Torrent","RemoveCacheOnDropDesc":"If disabled, cache removed on delete torrent.","RemoveRetrackers":"Remove retrackers","ReplaceRetrackers":"Replace retrackers","RetrackersMode":"Retrackers Mode","ResetToDefault":"Reset to default","Settings":"Settings","TorrentDisconnectTimeout":"Torrent Disconnect Timeout","TorrentsSavePath":"Torrents Save Path","Upload":"Upload (not recommended to disable)","UploadRateLimit":"Upload Rate Limit","UseDiskDesc":"Better use RAM or external storage on flash-based devices","Tabs":{"Main":"Main","Additional":"Additional","AdditionalDisabled":"(enable PRO mode)","App":"App"},"UseVLC":"Prompt to open video in VLC"},"Size":"Size","SpecialThanks":"Special Thanks","Speed":"Speed","Support":"Support","TB":"TB","Tbps":"Tbps","ThanksToEveryone":"Thanks to everyone who tested and helped.","TorrentAdded":"Added","TorrentClosed":"\u0421losed","TorrentContent":"Torrent Content","TorrentDetails":"Torrent Details","TorrentGettingInfo":"Getting Info","TorrentInDb":"In DB","TorrentPreload":"Preload","TorrentSize":"Torrent size","TorrentState":"Torrent State","TorrentStatus":"Torrent Status","TorrentWorking":"Active","TurnOff":"Turn Off","UploadFile":"Upload File","UploadSpeed":"Upload speed","Viewed":"Viewed"}')},193:function(e){e.exports=JSON.parse('{"About":"\u041e \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Actions":"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddDialog":{"AddPosterLinkInput":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u0435\u0440","AddTorrentSourceNotification":"\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a","AppendFile":{"Or":"\u0418\u041b\u0418","ClickOrDrag":"\u041d\u0410\u0416\u041c\u0418\u0422\u0415 / \u041f\u0415\u0420\u0415\u0422\u0410\u0429\u0418\u0422\u0415 \u0424\u0410\u0419\u041b (.torrent)"},"CustomTorrentTitle":"C\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)","CustomTorrentTitleHelperText":"\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0441\u0442\u0435\u0440","HashExists":"\u042d\u0442\u043e\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445","OriginalTorrentTitle":"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TitleBlank":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043f\u0443\u0441\u0442\u043e\u0435 - \u043e\u0440\u0438\u0433. \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430)","TorrentSourceLink":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentSourceOptions":"magnet-\u0441\u0441\u044b\u043b\u043a\u0430 / \u0445\u0435\u0448 / \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b","WrongTorrentSource":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a"},"AddFromLink":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddNewTorrent":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0442\u043e\u0440\u0440\u0435\u043d\u0442","B":"\u0411","bps":"\u0431\u0438\u0442/c","Buffer":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 / \u041a\u0435\u0448","BufferNote":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 > 32 \u041c\u0411 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Cache":"\u041a\u0435\u0448","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","CloseServer?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440?","CloseServer":"\u0412\u044b\u043a\u043b. \u0441\u0435\u0440\u0432\u0435\u0440","CopyHash":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u0435\u0448","CopyLink":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c","Data":"\u0414\u0430\u043d\u043d\u044b\u0435","DebugMode":"\u041c\u0435\u0442\u043a\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","DeleteTorrent?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442?","DeleteTorrents?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u044b?","DetailedCacheView":{"button":"\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u0435\u0448\u0430","header":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u0435\u0448\u0435"},"Details":"\u0418\u043d\u0444\u043e","Donate?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442?","Donate":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430","DownloadPlaylist":"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","DownloadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Drop":"\u0421\u0431\u0440\u043e\u0441","DropTorrent":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Edit":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c","EditTorrent":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Episode":"\u0421\u0435\u0440\u0438\u044f","FromLatestFile":"C \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430","Full":"\u041f\u043e\u043b\u043d\u044b\u0439","GB":"\u0413\u0411","Gbps":"\u0413\u0431\u0438\u0442/c","Host":"\u0425\u043e\u0441\u0442","Info":"\u0418\u043d\u0444\u043e","KB":"\u041a\u0411","kbps":"\u043a\u0431\u0438\u0442/\u0441","Kilobytes":"\u041a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u044b","LatestFilePlayed":"\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:","Links":"\u0421\u0441\u044b\u043b\u043a\u0438","MB":"\u041c\u0411","Mbps":"\u041c\u0431\u0438\u0442/c","Name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","NoTorrentsAdded":"\u041d\u0435\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u043e\u0432","Offline":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d","OK":"OK","OpenLink":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c","Peers":"\u041f\u0438\u0440\u044b","PiecesCount":"\u041a\u043e\u043b-\u0432\u043e \u0431\u043b\u043e\u043a\u043e\u0432","PiecesLength":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430","Playlist":"\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","Preload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440.","ProjectSource":"\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430","PWAGuide":{"Header":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435","Description":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0411\u0435\u0437 AppStore. \u0411\u0435\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.","VLC":"VLC \u043a\u043d\u043e\u043f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435","FirstStep":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430","SecondStep":{"Select":"\u0412\u044b\u0431\u0438\u0440\u0438\u0442\u0435","AddToHomeScreen":"\u041d\u0430 \u044d\u043a\u0440\u0430\u043d \xab\u0414\u043e\u043c\u043e\u0439\xbb"}},"Releases":"\u0420\u0435\u043b\u0438\u0437\u044b TorrServer","RemoveAll":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435","RemoveViews":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b","Resolution":"\u0420\u0430\u0437\u0440\u0435\u0448.","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","ScrollDown":"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u0437","Season":"\u0421\u0435\u0437\u043e\u043d","Sec":"c","Seconds":"\u0421\u0435\u043a\u0443\u043d\u0434\u044b","SelectSeason":"\u0412\u044b\u0431\u043e\u0440 \u0441\u0435\u0437\u043e\u043d\u0430","SettingsDialog":{"AddRetrackers":"\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c","AdditionalSettings":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","MobileAppSettings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0431. \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","CacheBeforeReaderDesc":"\u043e\u0442 \u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheAfterReaderDesc":"\u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0435\u0440\u0435\u0434\u0438 \u043e\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0435\u0448\u0430","CacheSettings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0435\u0448\u0430","CacheStorageLocation":"\u041c\u0435\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","ConnectionsLimit":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","ConnectionsLimitHint":"\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f 20-25","DHT":"DHT (Distributed Hash Table)","Disk":"\u041f\u0417\u0423 / \u041d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c","DLNA":"DLNA-\u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440","DontAddRetrackers":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c","DownloadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","EnableDebug":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b \u0441\u0435\u0440\u0432\u0435\u0440\u0430","ForceEncrypt":"\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432","FriendlyName":"\u0418\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DLNA","FriendlyNameHint":"\u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.","PeersListenPort":"\u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439","PeersListenPortHint":"1024 - 65535, 0 - \u0430\u0432\u0442\u043e","PreloadCache":"\u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","ProMode":"\u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c","RAM":"\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c","ReaderReadAHead":"\u041e\u043f\u0435\u0440\u0435\u0436\u0430\u044e\u0449\u0438\u0439 \u043a\u0435\u0448 (5-100%, \u0440\u0435\u043a. 95%)","RemoveCacheOnDrop":"\u041e\u0447\u0438\u0449\u0430\u0442\u044c \u043a\u0435\u0448 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","RemoveCacheOnDropDesc":"\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u043a\u0435\u0448 \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430.","RemoveRetrackers":"\u0423\u0434\u0430\u043b\u044f\u0442\u044c","ReplaceRetrackers":"\u0417\u0430\u043c\u0435\u043d\u044f\u0442\u044c","RetrackersMode":"\u0420\u0435\u0442\u0440\u0435\u043a\u0435\u0440\u044b","ResetToDefault":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","TorrentDisconnectTimeout":"\u0422\u0430\u0439\u043c-\u0430\u0443\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentsSavePath":"\u041f\u0443\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","Upload":"\u041e\u0442\u0434\u0430\u0447\u0430 (\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c)","UploadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u0434\u0430\u0447\u0438","UseDiskDesc":"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 flash-\u043f\u0430\u043c\u044f\u0442\u044c\u044e","Tabs":{"Main":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435","Additional":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435","AdditionalDisabled":"(\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c)","App":"\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435"},"UseVLC":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0432 VLC"},"Size":"\u0420\u0430\u0437\u043c\u0435\u0440","SpecialThanks":"\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e","Speed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c","Support":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c","TB":"\u0422\u0411","Tbps":"\u0422\u0431\u0438\u0442/\u0441","ThanksToEveryone":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u043b!","TorrentAdded":"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d","TorrentClosed":"\u0417\u0430\u043a\u0440\u044b\u0442","TorrentContent":"\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentDetails":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0435","TorrentGettingInfo":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e","TorrentInDb":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442 \u0432 \u0411\u0414","TorrentPreload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430","TorrentSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentState":"\u0414\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentStatus":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentWorking":"\u0410\u043a\u0442\u0438\u0432\u0435\u043d","TurnOff":"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c","UploadFile":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b","UploadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0430\u0447\u0438","Viewed":"\u041f\u0440\u043e\u0441\u043c."}')},194:function(e){e.exports=JSON.parse('{"About":"\u041f\u0440\u043e \u0441\u0435\u0440\u0432\u0435\u0440","Actions":"\u0414\u0456\u0457","Add":"\u0414\u043e\u0434\u0430\u0442\u0438","AddDialog":{"AddPosterLinkInput":"\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u043f\u043b\u0430\u043a\u0430\u0442","AddTorrentSourceNotification":"\u0421\u043f\u043e\u0447\u0430\u0442\u043a\u0443 \u0434\u043e\u0434\u0430\u0439\u0442\u0435 torrent-\u0434\u0436\u0435\u0440\u0435\u043b\u043e","AppendFile":{"Or":"\u0427\u0418","ClickOrDrag":"\u041d\u0410\u0422\u0418\u0421\u041d\u0406\u0422\u042c / \u041f\u0415\u0420\u0415\u0422\u042f\u0413\u041d\u0406\u0422\u042c \u0424\u0410\u0419\u041b (.torrent)"},"CustomTorrentTitle":"\u0412\u043b\u0430\u0441\u043d\u0430 \u043d\u0430\u0437\u0432\u0430 (\u043e\u043f\u0446\u0456\u0439\u043d\u043e)","CustomTorrentTitleHelperText":"\u041d\u0430\u043f\u0438\u0448\u0456\u0442\u044c \u0432\u043b\u0430\u0441\u043d\u0443 \u043d\u0430\u0437\u0432\u0443, \u0449\u043e\u0431 \u0437\u043d\u0430\u0439\u0442\u0438 \u043f\u043b\u0430\u043a\u0430\u0442","HashExists":"\u0414\u0430\u043d\u0438\u0439 \u0442\u043e\u0440\u0435\u043d\u0442 \u0432\u0436\u0435 \u0454 \u0443 \u0431\u0430\u0437\u0456 \u0434\u0430\u043d\u0438\u0445","OriginalTorrentTitle":"\u041e\u0440\u0438\u0433\u0456\u043d\u0430\u043b\u044c\u043d\u0430 \u043d\u0430\u0437\u0432\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TitleBlank":"\u041d\u0430\u0437\u0432\u0430 (\u043f\u043e\u0440\u043e\u0436\u043d\u0454 - \u043e\u0440\u0438\u0433. \u043d\u0430\u0437\u0432\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0443)","TorrentSourceLink":"\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0434\u0436\u0435\u0440\u0435\u043b\u043e \u0442\u0435\u0440\u0435\u043d\u0442\u0430","TorrentSourceOptions":"magnet-\u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f / \u0445\u0435\u0448 / \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 .torrent \u0444\u0430\u0439\u043b","WrongTorrentSource":"\u0425\u0438\u0431\u043d\u0435 torrent-\u0434\u0436\u0435\u0440\u0435\u043b\u043e"},"AddFromLink":"\u0414\u043e\u0434\u0430\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442","AddNewTorrent":"\u0414\u043e\u0434\u0430\u0442\u0438 \u043d\u043e\u0432\u0438\u0439 \u0442\u043e\u0440\u0435\u043d\u0442","B":"\u0411","bps":"\u0431\u0456\u0442/c","Buffer":"\u0411\u0443\u0444\u0435\u0440","BufferNote":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u0431\u0443\u0444\u0435\u0440 \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0433\u043e \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f > 32 \u041c\u0411 \u0432 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f\u0445, \u0449\u043e\u0431 \u0439\u043e\u0433\u043e \u0437\u043c\u0456\u043d\u0438\u0442\u0438.","Cache":"\u041a\u0435\u0448","Cancel":"\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438","Clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438","Close":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438","CloseServer?":"\u0425\u043e\u0447\u0435\u0442\u0435 \u0432\u0438\u043c\u043a\u043d\u0443\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440?","CloseServer":"\u0412\u0438\u043c\u043a. \u0441\u0435\u0440\u0432\u0435\u0440","CopyHash":"\u0421\u043a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0445\u0435\u0448","CopyLink":"\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438","Data":"\u0414\u0430\u043d\u0456","DebugMode":"\u041c\u0456\u0442\u043a\u0438 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442\u0456\u0432","Delete":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","DeleteTorrent?":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442?","DeleteTorrents?":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0456 \u0442\u043e\u0440\u0435\u043d\u0442\u0438?","DetailedCacheView":{"button":"\u0417\u0430\u043f\u043e\u0432\u043d\u0435\u043d\u043d\u044f \u043a\u0435\u0448\u0430","header":"\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u043a\u0435\u0448"},"Details":"\u0414\u0435\u0442\u0430\u043b\u0456","Donate?":"\u0411\u0430\u0436\u0430\u0454\u0442\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u043f\u0440\u043e\u0454\u043a\u0442?","Donate":"\u041f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0430","DownloadPlaylist":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f","DownloadSpeed":"\u0428\u0432\u0438\u0434\u043a\u0456\u0441\u0442\u044c \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","Drop":"\u0421\u043a\u0438\u043d\u0443\u0442\u0438","DropTorrent":"\u0421\u043a\u0438\u043d\u0443\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442","Edit":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438","EditTorrent":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442","Episode":"\u0421\u0435\u0440\u0456\u044f","FromLatestFile":"\u0417 \u043e\u0441\u0442\u0430\u043d\u043d\u044c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0443","Full":"\u041f\u043e\u0432\u043d\u0438\u0439","GB":"\u0413\u0411","Gbps":"\u0413\u0431\u0456\u0442/c","Host":"\u0425\u043e\u0441\u0442","Info":"\u0406\u043d\u0444\u043e","KB":"\u041a\u0411","kbps":"\u043a\u0431\u0456\u0442/\u0441","Kilobytes":"\u041a\u0456\u043b\u043e\u0431\u0430\u0439\u0442","LatestFilePlayed":"\u041e\u0441\u0442\u0430\u043d\u043d\u0456\u0439 \u0444\u0430\u0439\u043b, \u0449\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u0432\u0430\u0432\u0441\u044f:","Links":"\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f","MB":"\u041c\u0411","Mbps":"\u041c\u0431\u0456\u0442/c","Name":"\u041d\u0430\u0437\u0432\u0430","NoTorrentsAdded":"\u041d\u0435\u043c\u0430\u0454 \u0442\u043e\u0440\u0435\u043d\u0442\u0456\u0432","Offline":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439","OK":"OK","OpenLink":"\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438","Peers":"\u041f\u0456\u0440\u0438","PiecesCount":"\u041a-\u0441\u0442\u044c \u0431\u043b\u043e\u043a\u0456\u0432","PiecesLength":"\u0420\u043e\u0437\u043c\u0456\u0440 \u0431\u043b\u043e\u043a\u0443","Playlist":"\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","Preload":"\u041f\u0435\u0440\u0435\u0434\u0437\u0430\u0432.","ProjectSource":"\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0443","PWAGuide":{"Header":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0434\u043e\u0434\u0430\u0442\u043e\u043a","Description":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0443 \u043d\u0430 \u0441\u0432\u0456\u0439 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439, \u0449\u043e\u0431 \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u0434\u043e \u043d\u0435\u0457 \u0434\u043e\u0441\u0442\u0443\u043f \u0443 \u0431\u0443\u0434\u044c-\u044f\u043a\u0438\u0439 \u0447\u0430\u0441. \u041d\u0435\u043c\u0430\u0454 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0443 \u0434\u043e\u0434\u0430\u0442\u043a\u0456\u0432. \u041d\u0435\u043c\u0430\u0454 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f.","VLC":"\u041a\u043d\u043e\u043f\u043a\u0430 VLC \u0431\u0443\u0434\u0435 \u0434\u043e\u0434\u0430\u043d\u0430, \u0449\u043e\u0431 \u043c\u0438\u0442\u0442\u0454\u0432\u043e \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u0435\u043e \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0456","FirstStep":"\u0422\u043e\u0440\u043a\u043d\u0456\u0442\u044c\u0441\u044f","SecondStep":{"Select":"\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c","AddToHomeScreen":"\u0414\u043e\u0434\u0430\u0442\u0438 \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0438\u0439 \u0435\u043a\u0440\u0430\u043d"}},"Releases":"\u0420\u0435\u043b\u0456\u0437\u0438 TorrServer","RemoveAll":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0435","RemoveViews":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0438","Resolution":"\u0414\u043e\u0437\u0432\u043e\u043b\u0438","Save":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438","ScrollDown":"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0456\u0442\u044c \u0432\u043d\u0438\u0445","Season":"\u0421\u0435\u0437\u043e\u043d","Sec":"c","Seconds":"\u0421\u0435\u043a\u0443\u043d\u0434\u0438","SelectSeason":"\u0412\u0438\u0431\u0456\u0440 \u0441\u0435\u0437\u043e\u043d\u0443","SettingsDialog":{"AddRetrackers":"\u0414\u043e\u0434\u0430\u0432\u0430\u0442\u0438","AdditionalSettings":"\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f","MobileAppSettings":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0431. \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438","CacheBeforeReaderDesc":"\u0437 \u043a\u0435\u0448\u0443 \u0431\u0443\u0434\u0435 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043e \u0434\u043e \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u044e\u0432\u0430\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0443","CacheAfterReaderDesc":"\u0437 \u043a\u0435\u0448\u0443 \u0431\u0443\u0434\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043e \u043f\u0456\u0441\u043b\u044f \u043f\u043e\u0442\u043e\u0447\u043d\u043e \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0443","CacheSize":"\u0420\u0430\u0437\u043c\u0456\u0440 \u043a\u0435\u0448\u0443","CacheSettings":"\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043a\u0435\u0448\u0443","CacheStorageLocation":"\u041c\u0456\u0441\u0446\u0435 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u043a\u0435\u0448\u0443","ConnectionsLimit":"\u041e\u0431\u043c\u0435\u0436\u0435\u043d\u043d\u044f \u0437\'\u0454\u0434\u0430\u043d\u044c","ConnectionsLimitHint":"\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043e 20-25","DHT":"DHT (Distributed Hash Table)","Disk":"\u041f\u0417\u041f / \u041d\u043e\u0441\u0456\u0439","DLNA":"DLNA-\u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440","DontAddRetrackers":"\u041d\u0456\u0447\u043e\u0433\u043e \u043d\u0435 \u0440\u043e\u0431\u0438\u0442\u0438","DownloadRateLimit":"\u041e\u0431\u043c\u0435\u0436\u0435\u043d\u043d\u044f \u0448\u0432\u0438\u0434\u043a\u043e\u0441\u0442\u0456 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","EnableDebug":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b \u043d\u0430\u043b\u0430\u0433\u043e\u0434\u0436\u0435\u043d\u043d\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430","ForceEncrypt":"\u041f\u0440\u0438\u043c\u0443\u0441\u043e\u0432\u043e \u0448\u0438\u0444\u0440\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438","FriendlyName":"\u0406\u043c\'\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DLNA","FriendlyNameHint":"\u0417\u0430\u043b\u0438\u0448\u0442\u0435 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u043c, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u043f\u0440\u043e\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f\u043c.","PeersListenPort":"\u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u0456\u0434\u043d\u0438\u0445 \u0437\'\u0454\u0434\u043d\u0430\u043d\u044c","PeersListenPortHint":"1024 - 65535, 0 - \u0430\u0432\u0442\u043e","PreloadCache":"\u0411\u0443\u0444\u0435\u0440 \u043f\u043e\u043f\u0435\u0440. \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","ProMode":"\u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c","RAM":"\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430 \u043f\u0430\u043c\'\u044f\u0442\u044c","ReaderReadAHead":"\u041a\u0430\u0447\u0430\u0442\u0438 \u043a\u0435\u0448 \u0437\u0430\u0437\u0434\u0435\u043b\u0435\u0433\u0456\u0434\u044c (5-100%, \u0440\u0435\u043a. 95%)","RemoveCacheOnDrop":"\u0412\u0438\u0434\u0430\u043b\u044f\u0442\u0438 \u043a\u0435\u0448 \u043f\u0440\u0438 \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0456 \u0432\u0456\u0434 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","RemoveCacheOnDropDesc":"\u042f\u043a\u0449\u043e \u0432\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u0442\u043e\u0434\u0456 \u043a\u0435\u0448 \u0432\u0438\u0434\u0430\u043b\u044f\u0454\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u0456 \u0442\u043e\u0440\u0435\u043d\u0442\u0443.","RemoveRetrackers":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","ReplaceRetrackers":"\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438","RetrackersMode":"\u0420\u0435\u0442\u0440\u0435\u043a\u0435\u0440\u0438","ResetToDefault":"\u0411\u0430\u0437\u043e\u0432\u0456 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f","Settings":"\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f","TorrentDisconnectTimeout":"\u0427\u0430\u0441 \u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentsSavePath":"\u0428\u043b\u044f\u0445 \u0434\u043b\u044f \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u043a\u0435\u0448\u0443","Upload":"\u0412\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f (\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0454\u0442\u044c\u0441\u044f \u0432\u0438\u043c\u0438\u043a\u0430\u0442\u0438)","UploadRateLimit":"\u041e\u0431\u043c\u0435\u0436\u0435\u043d\u043d\u044f \u0448\u0432\u0438\u0434\u043a\u043e\u0441\u0442\u0456 \u0432\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","UseDiskDesc":"\u041a\u0440\u0430\u0449\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443 \u043f\u0430\u043c\'\u044f\u0442\u044c \u0430\u0431\u043e \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u044e \u043f\u0430\u043c\'\u044f\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044f\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0456 flash-\u043f\u0430\u043c\'\u044f\u0442\u0442\u044e","Tabs":{"Main":"\u041e\u0441\u043d\u043e\u0432\u043d\u0456","Additional":"\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456","AdditionalDisabled":"(\u0432\u043a\u043b\u044e\u0447\u0456\u0442\u044c \u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c)","App":"\u0414\u043e\u0434\u0430\u0442\u043e\u043a"},"UseVLC":"\u041f\u0440\u043e\u043f\u043e\u043d\u0443\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e \u0443 VLC"},"Size":"\u0420\u043e\u0437\u043c\u0456\u0440","SpecialThanks":"\u041e\u043a\u0440\u0435\u043c\u0430 \u043f\u043e\u0434\u044f\u043a\u0430","Speed":"\u0428\u0432\u0438\u0434\u043a\u0456\u0441\u0442\u044c","Support":"\u041f\u0456\u0434\u0442\u0440\u0438\u043c\u0430\u0442\u0438","TB":"\u0422\u0411","Tbps":"\u0422\u0431\u0456\u0442/\u0441","ThanksToEveryone":"\u0414\u044f\u043a\u0443\u0454\u043c\u043e \u0432\u0441\u0456\u043c, \u0445\u0442\u043e \u0442\u0435\u0441\u0442\u0443\u0432\u0430\u0432 \u0456 \u0434\u043e\u043f\u043e\u043c\u0430\u0433\u0430\u0432!","TorrentAdded":"\u0414\u043e\u0434\u0430\u043d\u0438\u0439","TorrentClosed":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438\u0439","TorrentContent":"\u0412\u043c\u0456\u0441\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentDetails":"\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u0442\u043e\u0440\u0435\u043d\u0442","TorrentGettingInfo":"\u041e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0457","TorrentInDb":"\u0422\u043e\u0440\u0435\u043d\u0442 \u0432 \u0411\u0414","TorrentPreload":"\u041f\u0435\u0440\u0435\u0434\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","TorrentSize":"\u0420\u043e\u0437\u043c\u0456\u0440 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentState":"\u0414\u0430\u043d\u0456 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentStatus":"\u0421\u0442\u0430\u0442\u0443\u0441 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentWorking":"\u0410\u043a\u0442\u0438\u0432\u043d\u0438\u0439","TurnOff":"\u0412\u0438\u043a\u043b\u044e\u0447\u0438\u0442\u0438","UploadFile":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0444\u0430\u0439\u043b","UploadSpeed":"\u0428\u0432\u0438\u0434\u043a\u0456\u0441\u0442\u044c \u0432\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","Viewed":"\u041f\u0435\u0440\u0435\u0433\u043b."}')},342:function(e,t){},345:function(e,t){},347:function(e,t){},349:function(e,t){},395:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n(17),i=n.n(r),o=n(63),c=n(9),s=n(484),l=n(66),d=n(469),p=n(485),b=n(486),j=n(487),u=n(488),h=window.location,x=h.protocol,O=h.hostname,g=h.port,m="".concat(x,"//").concat(O).concat(g?":".concat(g):""),f=function(){return"".concat(m,"/torrents")},C=function(){return"".concat(m,"/viewed")},v=function(){return"".concat(m,"/settings")},y=function(){return"".concat(m,"/stream")},w=function(){return"".concat(m,"/echo")},S=function(){return"".concat(m,"/stream")},D=n(189),k=n(23),T=n.n(k),P=n(22),M=n(467),L=n(468),B=n(470),A=n(75),R=n(105),F=n(33),N=n(133),z=n(89),E=n(191),G=n(192),I=n(193),H=n(194);N.a.use(E.a).use(z.e).init({fallbackLng:"en",interpolation:{escapeValue:!1},resources:{en:{translation:G},ru:{translation:I},ua:{translation:H}}});var U=N.a;function V(e){if(!e)return"";var t=Math.floor(Math.log(e)/Math.log(1024));return"".concat(1*(e/Math.pow(1024,t)).toFixed(2)," ").concat([U.t("B"),U.t("KB"),U.t("MB"),U.t("GB"),U.t("TB")][t])}function W(e){if(!e)return"";var t=Math.floor(Math.log(8*e)/Math.log(1e3));return"".concat(1*(8*e/Math.pow(1e3,t)).toFixed(0)," ").concat([U.t("bps"),U.t("kbps"),U.t("Mbps"),U.t("Gbps"),U.t("Tbps")][t])}function _(e){return e&&e.connected_seeders?"".concat(e.connected_seeders," \xb7 ").concat(e.active_peers," / ").concat(e.total_peers):null}var Z=function(e){var t=e;[["(",")"],["[","]"],["{","}"]].forEach((function(e){var n="\\".concat(e[0]),a=new RegExp(n,"g"),r=Object(F.a)(t.matchAll(a)).length,i="\\".concat(e[1]),o=new RegExp(i,"g");if(r!==Object(F.a)(t.matchAll(o)).length){var c="(\\".concat(e[0],")(?!.*\\1).*"),s=new RegExp(c,"g");t=t.replace(s,"")}}));var n=!!t.match(/\.{3}$/g),a=t.replace(/[\\.| ]+$/g,"").trim();return n?"".concat(a,".."):a},K=function(){var e=Object(R.a)(Object(A.a)().mark((function e(){var t,n;return Object(A.a)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,T.a.post(f(),{action:"list"});case 3:return t=e.sent,n=t.data,e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),new Error(null);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(){return e.apply(this,arguments)}}(),J=window.matchMedia("screen and (display-mode: standalone)").matches,Y=n(36),$=n(1),X=function(e){var t=e.color,n=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"80px",width:"80px",fill:t||n,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100",enableBackground:"new 0 0 100 100",xmlSpace:"preserve",children:Object($.jsxs)("g",{children:[Object($.jsx)("path",{d:"M18.293,93.801c0.066,0.376,0.284,0.718,0.597,0.937c0.313,0.219,0.708,0.307,1.085,0.241l70.058-12.353 c0.376-0.066,0.718-0.284,0.937-0.597c0.219-0.313,0.307-0.708,0.24-1.085l-9.502-53.891c-0.139-0.79-0.892-1.317-1.682-1.178 l-19.402,3.421L47.997,14.16c0.241-0.706,0.375-1.456,0.375-2.229c0-0.399-0.035-0.804-0.106-1.209C47.671,7.363,44.757,5,41.455,5 c-0.4,0-0.804,0.035-1.209,0.106h0c-3.359,0.595-5.723,3.509-5.723,6.812c0,0.4,0.035,0.804,0.106,1.209 c0.178,1.005,0.567,1.918,1.109,2.709l-6.875,19.061L9.968,38.228c-0.79,0.139-1.317,0.892-1.177,1.682L18.293,93.801z M40.75,7.966L40.75,7.966c0.239-0.042,0.474-0.062,0.705-0.062c1.909,0,3.612,1.373,3.953,3.324v0 c0.042,0.238,0.062,0.473,0.062,0.704c0,1.908-1.373,3.612-3.323,3.953h0.001c-0.238,0.042-0.473,0.062-0.705,0.062 c-1.908,0-3.612-1.373-3.953-3.323c-0.042-0.238-0.062-0.473-0.062-0.705C37.427,10.01,38.799,8.306,40.75,7.966z M38.059,17.96 c1.012,0.569,2.17,0.89,3.383,0.89c0.399,0,0.804-0.034,1.208-0.106h0.001c1.48-0.263,2.766-0.976,3.743-1.974l10.935,13.108 L32.16,34.315L38.059,17.96z M29.978,37.648c0.136-0.004,0.268-0.029,0.396-0.07l29.75-5.246c0.134-0.006,0.266-0.027,0.395-0.07 l18.582-3.277l8.998,51.031L20.9,91.867l-8.998-51.032L29.978,37.648z"}),Object($.jsx)("path",{d:"M49.984,75.561c0.809,0,1.627-0.065,2.449-0.199l0.001,0c7.425-1.213,12.701-7.627,12.701-14.919 c0-0.809-0.065-1.627-0.199-2.449c-1.213-7.425-7.626-12.701-14.919-12.701c-0.808,0-1.627,0.065-2.45,0.199 c-7.425,1.213-12.701,7.626-12.701,14.918c0,0.808,0.065,1.627,0.199,2.449C36.278,70.284,42.692,75.561,49.984,75.561z M51.967,72.496c-0.668,0.109-1.33,0.161-1.983,0.161c-5.883,0-11.079-4.265-12.053-10.265c-0.109-0.668-0.161-1.33-0.161-1.983 c0-2.108,0.555-4.123,1.534-5.892l19.693,14.176C57.206,70.645,54.782,72.039,51.967,72.496z M48.034,48.357L48.034,48.357 c0.668-0.109,1.329-0.161,1.983-0.161c5.882,0,11.079,4.265,12.053,10.265c0.109,0.667,0.161,1.329,0.161,1.983 c0,2.109-0.556,4.127-1.536,5.897L41.001,52.163C42.791,50.21,45.217,48.814,48.034,48.357z"}),Object($.jsx)("polygon",{points:"47.567,45.492 47.567,45.492 47.568,45.491 "})]})})},q=function(){var e=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"100px",width:"100px",fill:e,viewBox:"0 0 452 452",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:Object($.jsxs)("g",{id:"#000000",children:[Object($.jsx)("path",{opacity:"1.00",d:" M 210.49 18.69 C 244.92 16.12 280.02 22.13 311.46 36.47 C 344.90 51.54 374.16 75.69 395.41 105.58 C 415.62 133.87 428.55 167.34 432.48 201.89 C 438.07 248.86 427.02 297.61 401.45 337.43 C 382.92 366.59 357.02 391.04 326.80 407.80 C 300.81 422.31 271.64 431.08 241.96 433.26 C 207.37 435.97 172.14 429.83 140.54 415.51 C 109.95 401.69 82.82 380.33 62.16 353.86 C 39.25 324.67 24.38 289.21 19.78 252.38 C 14.94 214.51 20.65 175.31 36.47 140.54 C 54.11 101.38 84.24 67.99 121.37 46.39 C 148.44 30.52 179.19 20.98 210.49 18.69 M 213.46 36.60 C 178.91 38.80 145.03 50.71 116.76 70.72 C 84.67 93.21 59.84 125.88 46.91 162.88 C 34.87 196.99 32.96 234.54 41.25 269.73 C 48.89 302.45 65.53 332.98 88.79 357.21 C 113.91 383.56 146.78 402.45 182.25 410.72 C 216.67 418.86 253.37 417.21 286.87 405.85 C 329.85 391.49 367.13 361.01 389.89 321.85 C 406.02 294.41 414.96 262.84 415.73 231.03 C 416.71 196.59 408.11 161.91 390.97 132.00 C 372.31 99.13 343.57 72.09 309.61 55.49 C 279.95 40.89 246.43 34.40 213.46 36.60 Z"}),Object($.jsx)("path",{opacity:"1.00",d:" M 217.02 117.63 C 223.01 117.45 228.99 117.45 234.98 117.63 C 235.16 150.72 234.93 183.81 235.09 216.89 C 268.18 217.03 301.28 216.82 334.38 216.99 C 334.57 222.99 334.57 229.00 334.38 235.01 C 301.28 235.18 268.18 234.97 235.09 235.11 C 234.93 268.19 235.16 301.28 234.98 334.37 C 228.99 334.55 223.00 334.55 217.02 334.37 C 216.84 301.28 217.07 268.19 216.92 235.11 C 183.82 234.97 150.72 235.17 117.62 235.01 C 117.43 229.00 117.43 222.99 117.62 216.99 C 150.72 216.82 183.82 217.03 216.91 216.89 C 217.07 183.81 216.84 150.72 217.02 117.63 Z"})]})})},Q=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"96.96632385253906 377.9800109863281 873.03369140625 310.9999694824219",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 603.05 378.50 C 648.01 378.10 692.99 378.30 737.96 378.24 C 746.80 377.82 755.66 378.04 764.51 378.02 C 764.49 396.01 764.50 414.00 764.50 432.00 C 833.00 432.01 901.50 431.99 970.00 432.00 C 970.00 499.67 970.00 567.33 970.00 635.00 C 941.01 635.01 912.02 634.98 883.04 635.01 C 868.37 635.70 853.70 634.86 839.03 635.00 C 814.19 635.00 789.35 634.99 764.50 635.00 C 764.50 652.99 764.49 670.99 764.51 688.98 C 722.02 688.64 679.51 688.76 637.01 688.76 C 610.36 688.24 583.70 688.61 557.04 688.50 C 535.36 688.64 513.69 688.06 492.00 688.25 C 467.01 688.45 442.03 687.89 417.04 688.00 C 393.35 688.06 369.67 687.54 345.97 687.76 C 331.65 687.28 317.32 687.58 303.00 687.51 C 287.69 686.89 272.35 687.61 257.03 686.99 C 244.25 687.26 231.37 686.92 218.84 684.09 C 183.39 676.56 151.36 655.48 129.16 627.00 C 110.45 603.11 98.57 573.55 97.40 543.09 C 95.46 518.81 100.09 494.17 110.06 471.99 C 126.89 434.21 159.00 403.08 198.12 389.13 C 227.91 377.22 260.63 379.63 292.01 379.76 C 308.00 379.13 324.02 379.87 340.01 379.25 C 355.65 379.17 371.30 379.41 386.95 379.13 C 409.62 378.70 432.32 379.37 455.00 378.74 C 504.35 378.92 553.69 378.31 603.05 378.50 M 348.01 411.51 C 320.98 411.52 293.95 411.45 266.93 411.54 C 256.91 412.17 246.82 411.10 236.84 412.46 C 208.12 415.88 181.14 430.38 161.51 451.48 C 144.71 469.43 133.29 492.57 130.42 517.07 C 124.64 554.31 138.80 593.31 165.32 619.73 C 177.83 632.43 193.39 641.88 210.05 648.05 C 228.40 654.56 248.11 655.87 267.42 655.59 C 319.94 655.19 372.45 655.94 424.97 655.75 C 450.32 655.57 475.67 656.17 501.02 656.00 C 525.32 656.12 549.63 655.73 573.92 656.26 C 626.62 656.05 679.30 656.63 732.00 656.50 C 732.00 574.50 732.00 492.50 732.00 410.51 C 689.66 410.38 647.34 410.94 605.01 410.75 C 587.68 410.55 570.37 411.13 553.05 411.00 C 526.36 411.00 499.67 411.01 472.98 411.00 C 431.33 411.69 389.65 410.81 348.01 411.51 M 764.49 464.27 C 764.51 510.42 764.51 556.58 764.49 602.73 C 822.24 602.77 879.99 602.74 937.74 602.75 C 938.25 556.59 937.90 510.41 937.99 464.25 C 880.16 464.27 822.32 464.23 764.49 464.27 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.49 484.02 C 853.57 483.79 864.63 484.32 875.71 484.25 C 876.25 495.35 875.68 506.46 875.04 517.54 C 864.40 517.59 853.77 516.92 843.13 517.38 C 842.74 516.32 842.40 515.20 842.48 514.06 C 842.50 504.04 842.50 494.03 842.49 484.02 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 287.02 517.49 C 345.02 517.51 403.02 517.49 461.02 517.50 C 499.18 517.57 537.34 517.29 575.49 517.75 C 575.51 528.25 575.51 538.75 575.49 549.25 C 531.01 549.74 486.52 549.41 442.04 549.50 C 390.37 549.51 338.69 549.49 287.02 549.51 C 286.99 538.84 286.99 528.16 287.02 517.49 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.78 549.74 C 853.53 549.91 864.26 549.51 875.01 549.44 C 875.73 560.52 876.27 571.65 875.71 582.75 C 864.63 582.80 853.57 583.17 842.49 582.99 C 842.69 571.91 842.12 560.80 842.78 549.74 Z"})]})},ee=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"13.928732872009277 69.97769927978516 172.15252685546875 60.067893981933594",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 18.20 70.32 C 19.46 70.07 20.73 69.96 22.01 69.98 C 74.36 70.03 126.72 69.97 179.08 70.01 C 182.16 69.72 185.50 71.74 185.82 74.99 C 186.15 79.61 186.20 84.29 185.78 88.91 C 183.66 90.31 179.87 90.73 180.00 93.99 C 179.86 97.27 183.68 97.69 185.79 99.12 C 186.27 107.07 185.91 115.06 185.99 123.03 C 186.29 126.14 184.25 129.52 180.97 129.83 C 175.33 130.27 169.65 129.88 164.00 130.00 C 147.71 129.85 131.39 130.31 115.12 129.78 C 112.92 127.53 114.51 123.74 113.95 120.86 C 114.67 118.55 111.27 116.64 110.24 119.19 C 109.73 122.42 110.24 125.71 109.79 128.95 C 108.65 130.43 106.57 129.83 104.96 130.03 C 76.94 129.95 48.93 130.04 20.91 129.99 C 17.47 130.37 13.95 127.70 14.07 124.10 C 14.02 115.76 13.75 107.39 14.22 99.07 C 16.33 97.68 20.10 97.27 20.00 94.03 C 20.17 90.71 16.28 90.35 14.20 88.85 C 13.80 84.56 13.92 80.24 14.07 75.94 C 14.03 73.43 15.75 70.97 18.20 70.32 M 18.23 75.15 C 17.73 78.78 18.05 82.46 18.02 86.11 C 21.05 87.67 24.20 90.21 23.99 94.00 C 24.20 97.79 21.03 100.31 18.01 101.89 C 18.15 109.55 17.67 117.24 18.22 124.87 C 18.45 125.10 18.90 125.56 19.13 125.78 C 26.06 126.33 33.03 125.84 39.98 126.00 C 39.99 123.36 40.01 120.72 40.09 118.08 C 62.07 117.87 84.05 118.10 106.03 117.96 C 107.62 116.17 109.32 113.83 112.02 114.00 C 114.70 113.85 116.37 116.19 117.96 117.96 C 131.94 118.09 145.93 117.88 159.91 118.08 C 159.98 120.72 160.01 123.36 160.02 126.00 C 166.94 125.83 173.90 126.34 180.80 125.78 C 181.05 125.57 181.54 125.14 181.78 124.93 C 182.32 117.28 181.85 109.57 181.99 101.90 C 178.96 100.31 175.78 97.79 176.01 93.99 C 175.79 90.20 178.94 87.66 181.98 86.11 C 181.94 82.47 182.27 78.80 181.77 75.19 C 181.16 73.66 179.34 74.17 178.06 73.99 C 126.04 74.00 74.01 74.01 21.99 73.99 C 20.69 74.16 18.91 73.67 18.23 75.15 M 42.00 120.00 C 42.00 122.00 42.00 124.00 42.00 126.00 C 43.33 126.00 44.67 126.00 46.00 126.00 C 46.00 124.00 46.00 122.00 46.00 120.00 C 44.67 120.00 43.33 120.00 42.00 120.00 M 48.00 120.00 C 48.00 122.00 48.00 124.00 48.00 126.00 C 49.33 126.00 50.67 126.00 52.00 126.00 C 52.00 124.00 52.00 122.00 52.00 120.00 C 50.67 120.00 49.33 120.00 48.00 120.00 M 54.00 120.00 C 54.00 122.00 54.00 124.00 54.00 126.00 C 55.33 126.00 56.67 126.00 58.00 126.00 C 58.00 124.00 58.00 122.00 58.00 120.00 C 56.67 120.00 55.33 120.00 54.00 120.00 M 60.00 120.00 C 60.00 122.00 60.00 124.00 60.00 126.00 C 61.33 126.00 62.67 126.00 64.00 126.00 C 64.00 124.00 64.00 122.00 64.00 120.00 C 62.67 120.00 61.33 120.00 60.00 120.00 M 66.00 120.00 C 66.00 122.00 66.00 124.00 66.00 126.00 C 67.33 126.00 68.67 126.00 70.00 126.00 C 70.00 124.00 70.00 122.00 70.00 120.00 C 68.67 120.00 67.33 120.00 66.00 120.00 M 72.00 120.00 C 72.00 122.00 72.00 124.00 72.00 126.00 C 73.33 126.00 74.67 126.00 76.00 126.00 C 76.00 124.00 76.00 122.00 76.00 120.00 C 74.67 120.00 73.33 120.00 72.00 120.00 M 78.00 120.00 C 78.00 122.00 78.00 124.00 78.00 126.00 C 79.33 126.00 80.67 126.00 82.00 126.00 C 82.00 124.00 82.00 122.00 82.00 120.00 C 80.67 120.00 79.33 120.00 78.00 120.00 M 84.00 120.00 C 84.00 122.00 84.00 124.00 84.00 126.00 C 85.33 126.00 86.67 126.00 88.00 126.00 C 88.00 124.00 88.00 122.00 88.00 120.00 C 86.67 120.00 85.33 120.00 84.00 120.00 M 90.00 120.00 C 90.00 122.00 90.00 124.00 90.00 126.00 C 91.33 126.00 92.67 126.00 94.00 126.00 C 94.00 124.00 94.00 122.00 94.00 120.00 C 92.67 120.00 91.33 120.00 90.00 120.00 M 96.00 120.00 C 96.00 122.00 96.00 124.00 96.00 126.00 C 97.33 126.00 98.67 126.00 100.00 126.00 C 100.00 124.00 100.00 122.00 100.00 120.00 C 98.67 120.00 97.33 120.00 96.00 120.00 M 102.00 120.00 C 102.00 122.00 102.00 124.00 102.00 126.00 C 103.33 126.00 104.67 126.00 106.00 126.00 C 106.00 124.00 106.00 122.00 106.00 120.00 C 104.67 120.00 103.33 120.00 102.00 120.00 M 118.00 120.00 C 118.00 122.00 118.00 124.00 118.00 126.00 C 119.33 126.00 120.67 126.00 122.00 126.00 C 122.00 124.00 122.00 122.00 122.00 120.00 C 120.67 120.00 119.33 120.00 118.00 120.00 M 124.00 120.00 C 124.00 122.00 124.00 124.00 124.00 126.00 C 125.33 126.00 126.67 126.00 128.00 126.00 C 128.00 124.00 128.00 122.00 128.00 120.00 C 126.67 120.00 125.33 120.00 124.00 120.00 M 130.00 120.00 C 130.00 122.00 130.00 124.00 130.00 126.00 C 131.33 126.00 132.67 126.00 134.00 126.00 C 134.00 124.00 134.00 122.00 134.00 120.00 C 132.67 120.00 131.33 120.00 130.00 120.00 M 136.00 120.00 C 136.00 122.00 136.00 124.00 136.00 126.00 C 137.33 126.00 138.67 126.00 140.00 126.00 C 140.00 124.00 140.00 122.00 140.00 120.00 C 138.67 120.00 137.33 120.00 136.00 120.00 M 142.00 120.00 C 142.00 122.00 142.00 124.00 142.00 126.00 C 143.33 126.00 144.66 126.00 146.00 126.00 C 146.00 124.00 146.00 122.00 146.00 120.00 C 144.67 120.00 143.33 120.00 142.00 120.00 M 148.00 120.00 C 148.00 122.00 148.00 124.00 148.00 126.00 C 149.33 126.00 150.66 126.00 152.00 126.00 C 152.00 124.00 152.00 122.00 152.00 120.00 C 150.67 120.00 149.33 120.00 148.00 120.00 M 154.00 120.00 C 154.00 122.00 154.00 124.00 154.00 126.00 C 155.33 126.00 156.66 126.00 158.00 126.00 C 158.00 124.00 158.00 122.00 158.00 120.00 C 156.67 120.00 155.33 120.00 154.00 120.00 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 30.03 81.93 C 29.85 80.12 30.82 77.95 32.93 78.11 C 37.91 77.93 42.93 77.74 47.89 78.25 C 50.98 79.21 49.68 83.33 50.10 85.77 C 49.59 85.78 48.57 85.80 48.06 85.80 C 48.01 83.89 47.96 81.98 47.90 80.08 C 42.62 79.96 37.35 79.96 32.08 80.08 C 31.95 89.36 31.95 98.64 32.08 107.91 C 37.36 108.05 42.64 108.05 47.92 107.91 C 48.02 104.01 48.01 100.11 48.02 96.21 C 48.51 96.21 49.48 96.21 49.97 96.20 C 49.93 100.09 50.29 104.01 49.76 107.87 C 49.40 110.05 46.77 109.95 45.09 110.01 C 40.74 109.96 36.36 110.29 32.04 109.74 C 29.91 109.31 30.07 106.74 29.99 105.08 C 30.02 97.37 29.93 89.65 30.03 81.93 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 56.08 78.25 C 61.33 77.80 66.67 77.79 71.92 78.25 C 74.45 78.84 73.88 82.03 74.03 83.96 C 73.88 91.66 74.20 99.37 73.89 107.07 C 73.99 110.35 68.80 111.17 67.40 108.44 C 68.91 108.19 70.43 107.96 71.95 107.75 C 72.01 98.53 72.08 89.30 71.91 80.08 C 66.64 79.96 61.36 79.96 56.08 80.08 C 55.95 89.35 55.95 98.63 56.08 107.90 C 58.65 107.98 61.23 108.01 63.80 108.04 C 63.80 108.54 63.78 109.52 63.78 110.02 C 60.75 109.51 55.74 111.45 54.25 107.89 C 53.63 99.96 54.19 91.96 53.97 84.00 C 54.13 82.06 53.53 78.84 56.08 78.25 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 79.38 78.49 C 84.51 77.49 89.88 78.03 95.10 78.12 C 97.17 77.98 98.14 80.11 97.97 81.89 C 98.04 89.96 98.04 98.04 97.97 106.11 C 98.13 107.87 97.20 109.99 95.14 109.88 C 90.11 110.08 85.02 110.27 80.01 109.73 C 77.91 109.26 78.05 106.71 77.99 105.04 C 77.99 97.70 77.99 90.35 77.99 83.01 C 78.12 81.47 77.82 79.41 79.38 78.49 M 80.08 80.08 C 79.95 89.36 79.95 98.64 80.08 107.92 C 85.36 108.04 90.64 108.04 95.92 107.92 C 96.05 98.64 96.05 89.36 95.92 80.08 C 90.64 79.96 85.36 79.96 80.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 103.34 78.52 C 108.47 77.46 113.88 78.05 119.12 78.12 C 121.20 77.99 122.14 80.13 121.97 81.91 C 122.04 89.97 122.04 98.04 121.97 106.10 C 122.14 107.87 121.19 110.00 119.12 109.88 C 114.37 110.13 109.59 110.13 104.85 109.88 C 102.80 109.99 101.86 107.88 102.03 106.13 C 101.92 98.40 102.03 90.66 101.99 82.93 C 102.13 81.44 101.84 79.43 103.34 78.52 M 104.08 80.08 C 103.95 89.36 103.95 98.64 104.08 107.92 C 109.36 108.05 114.64 108.04 119.92 107.92 C 120.06 98.64 120.05 89.36 119.92 80.08 C 114.64 79.96 109.36 79.95 104.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 127.43 78.45 C 131.88 77.51 136.52 78.12 141.04 77.99 C 143.01 77.87 145.98 78.22 145.88 80.86 C 146.19 88.89 145.92 96.94 146.01 104.98 C 145.93 106.67 146.12 109.28 143.96 109.74 C 141.40 110.19 138.79 109.99 136.21 110.02 C 136.21 109.52 136.21 108.53 136.21 108.04 C 138.78 108.01 141.35 107.98 143.92 107.91 C 144.05 98.63 144.06 89.35 143.92 80.08 C 138.64 79.96 133.36 79.96 128.09 80.08 C 128.02 82.64 127.99 85.21 127.96 87.78 C 127.47 87.79 126.48 87.79 125.99 87.79 C 126.38 84.77 124.90 80.72 127.43 78.45 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 151.38 78.48 C 155.82 77.48 160.48 78.14 165.01 77.99 C 167.01 77.85 170.02 78.25 169.89 80.92 C 170.18 88.94 169.92 96.98 170.01 105.01 C 170.13 107.00 169.77 109.99 167.12 109.88 C 162.10 110.07 157.02 110.27 152.02 109.74 C 149.89 109.27 150.05 106.67 149.99 104.99 C 149.99 97.64 149.99 90.30 149.99 82.95 C 150.12 81.43 149.84 79.39 151.38 78.48 M 152.08 80.08 C 151.95 89.36 151.95 98.64 152.08 107.92 C 157.36 108.04 162.64 108.04 167.92 107.92 C 168.05 98.64 168.05 89.36 167.92 80.08 C 162.64 79.96 157.36 79.96 152.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 48.01 88.19 C 48.50 88.19 49.49 88.19 49.99 88.19 C 49.98 90.06 49.98 91.92 49.99 93.78 C 49.49 93.79 48.51 93.79 48.01 93.79 C 48.01 91.92 48.01 90.06 48.01 88.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 126.01 92.19 C 126.51 92.19 127.49 92.19 127.99 92.19 C 127.98 94.06 127.98 95.93 127.98 97.80 C 127.49 97.79 126.50 97.78 126.01 97.78 C 126.01 95.91 126.01 94.05 126.01 92.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 125.98 100.19 C 126.48 100.19 127.47 100.19 127.96 100.19 C 127.99 102.75 128.02 105.32 128.08 107.88 C 129.98 107.95 131.89 108.01 133.81 108.07 C 133.80 108.57 133.78 109.59 133.77 110.10 C 131.39 109.71 128.07 110.79 126.45 108.53 C 125.66 105.83 126.07 102.96 125.98 100.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 24.41 112.66 C 27.59 110.67 32.28 113.20 32.00 117.04 C 32.18 120.52 28.24 123.02 25.11 121.66 C 21.33 120.42 20.93 114.50 24.41 112.66 M 26.15 114.12 C 24.25 114.47 23.50 116.93 24.38 118.50 C 25.45 120.81 29.45 120.37 29.89 117.81 C 30.58 115.59 28.37 113.39 26.15 114.12 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 170.48 112.62 C 173.67 110.70 178.29 113.25 178.00 117.06 C 178.16 120.55 174.19 123.04 171.06 121.64 C 167.28 120.35 166.95 114.41 170.48 112.62 M 172.11 114.13 C 169.72 114.60 169.28 118.30 171.30 119.51 C 173.13 120.90 176.17 119.39 175.97 117.02 C 176.16 114.97 173.98 113.54 172.11 114.13 Z"})]})},te=function(){var e=Object(Y.a)().palette.primary.main,t="#00a572"===e?"#74c39c":"#4a5255";return Object($.jsxs)("svg",{width:"150px",height:"150px",viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsxs)("g",{id:e,children:[Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 102.41 0.00 L 319.87 0.00 C 320.21 29.68 319.87 59.37 320.04 89.05 C 320.29 97.32 323.88 105.47 329.94 111.12 C 336.01 117.07 344.56 120.18 353.01 120.01 C 382.02 119.87 411.04 120.22 440.05 119.83 C 439.94 236.88 440.04 353.93 440.00 470.98 C 440.01 478.16 440.50 485.68 437.47 492.41 C 432.79 503.85 421.05 511.80 408.71 512.00 L 103.28 512.00 C 90.95 511.79 79.20 503.84 74.53 492.42 C 72.06 486.96 71.87 480.87 71.99 474.97 C 72.01 327.63 71.99 180.30 72.00 32.96 C 71.95 27.61 73.03 22.22 75.52 17.46 C 80.55 7.39 91.19 0.57 102.41 0.00 M 360.00 382.07 C 358.69 383.73 359.01 385.99 358.90 387.97 C 358.95 396.36 358.91 404.75 358.93 413.14 C 352.50 403.51 346.13 393.83 339.77 384.16 C 338.65 382.47 337.13 380.65 334.92 380.63 C 331.97 380.41 329.13 382.87 329.22 385.89 C 328.94 396.58 329.24 407.28 329.08 417.98 C 329.14 420.43 328.85 422.98 329.54 425.38 C 330.75 429.14 337.11 428.63 337.54 424.63 C 338.19 415.09 337.55 405.51 337.83 395.95 C 343.71 404.78 349.41 413.73 355.26 422.58 C 356.92 424.93 358.74 427.96 362.00 428.00 C 365.02 428.51 367.54 425.83 367.40 422.90 C 367.55 411.27 367.39 399.62 367.48 387.99 C 367.40 386.11 367.63 384.06 366.61 382.38 C 365.24 380.16 361.58 380.00 360.00 382.07 M 100.79 382.81 C 98.94 384.82 100.19 388.63 103.01 388.89 C 106.91 389.29 110.85 388.97 114.77 389.07 C 114.77 399.73 114.78 410.39 114.75 421.05 C 114.76 423.37 114.89 426.34 117.28 427.52 C 119.95 429.02 123.67 427.14 123.86 424.04 C 124.22 412.40 123.84 400.72 124.04 389.07 C 128.25 388.87 132.57 389.54 136.71 388.62 C 140.15 387.40 139.25 381.72 135.61 381.56 C 126.10 381.14 116.55 381.57 107.03 381.37 C 104.95 381.53 102.34 381.06 100.79 382.81 M 156.46 381.58 C 150.26 383.15 145.11 388.05 143.12 394.11 C 140.49 401.86 140.79 410.83 144.81 418.06 C 151.07 429.05 167.20 430.79 177.27 424.26 C 183.48 420.06 186.24 412.28 186.28 405.03 C 186.43 398.11 184.59 390.56 179.19 385.85 C 173.03 380.52 164.12 379.62 156.46 381.58 M 197.74 381.67 C 195.24 381.99 194.12 384.61 194.23 386.87 C 194.06 397.92 194.27 408.97 194.15 420.02 C 194.24 422.43 193.92 425.36 195.97 427.11 C 198.62 429.25 203.28 427.47 203.31 423.89 C 203.66 418.45 203.32 412.99 203.49 407.54 C 206.76 407.72 210.68 407.24 213.15 409.89 C 217.60 414.61 220.01 420.80 223.85 425.97 C 225.63 428.66 230.20 428.72 231.83 425.86 C 232.87 424.27 231.80 422.43 231.24 420.89 C 228.63 415.38 225.17 409.99 220.02 406.56 C 223.42 405.53 227.11 404.31 229.29 401.31 C 233.14 395.94 231.83 387.34 226.14 383.76 C 221.99 381.01 216.77 381.52 212.04 381.39 C 207.28 381.52 202.48 381.08 197.74 381.67 M 240.23 386.91 C 240.19 398.28 240.20 409.66 240.22 421.03 C 240.25 423.12 240.14 425.65 241.97 427.09 C 244.58 429.23 249.25 427.52 249.33 423.98 C 249.76 418.50 249.34 413.00 249.49 407.51 C 252.77 407.64 256.62 407.29 259.13 409.85 C 263.88 414.69 266.10 421.38 270.41 426.55 C 272.74 429.20 278.48 428.00 278.28 424.04 C 276.28 417.09 271.87 410.81 266.09 406.46 C 269.75 405.55 273.64 404.05 275.74 400.71 C 278.91 395.49 277.81 387.82 272.73 384.18 C 268.85 381.14 263.64 381.44 259.00 381.41 C 254.02 381.52 249.02 381.13 244.05 381.58 C 241.41 381.77 240.05 384.51 240.23 386.91 M 286.38 386.01 C 286.17 397.35 286.39 408.70 286.27 420.04 C 286.31 422.30 286.17 425.31 288.52 426.53 C 291.20 427.60 294.20 427.07 297.03 427.21 C 304.36 427.04 311.73 427.52 319.04 426.95 C 322.44 426.37 322.43 420.75 319.05 420.15 C 311.25 419.44 303.38 420.13 295.56 419.82 C 295.59 415.47 295.58 411.12 295.58 406.78 C 302.60 406.71 309.65 407.09 316.66 406.54 C 320.07 405.84 319.57 399.91 315.98 399.96 C 309.20 399.54 302.39 399.95 295.59 399.80 C 295.57 396.05 295.57 392.30 295.58 388.55 C 303.03 388.43 310.50 388.74 317.94 388.37 C 321.67 388.25 321.80 381.95 318.11 381.66 C 309.41 381.03 300.65 381.57 291.93 381.42 C 289.16 381.15 286.27 383.00 286.38 386.01 M 375.06 381.95 C 372.19 383.34 372.77 388.27 375.95 388.84 C 379.96 389.33 384.02 388.96 388.05 389.08 C 387.92 400.08 388.05 411.07 387.99 422.07 C 387.75 424.61 389.07 427.71 391.95 427.92 C 394.85 428.51 397.33 425.86 397.14 423.05 C 397.37 411.73 397.16 400.40 397.23 389.08 C 401.42 388.89 405.69 389.52 409.82 388.64 C 413.41 387.46 412.48 381.48 408.64 381.52 C 400.79 381.23 392.93 381.50 385.08 381.39 C 381.74 381.50 378.31 381.05 375.06 381.95 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 160.39 388.45 C 164.79 387.33 170.01 388.38 173.03 391.97 C 176.12 395.52 177.00 400.46 176.87 405.04 C 176.76 409.47 175.56 414.16 172.29 417.34 C 167.50 421.98 158.82 421.68 154.58 416.43 C 150.59 411.44 150.26 404.45 151.51 398.43 C 152.46 393.85 155.68 389.57 160.39 388.45 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 203.47 388.42 C 208.28 388.55 213.18 387.93 217.93 388.93 C 222.82 390.10 223.71 398.14 218.81 399.89 C 213.88 401.57 208.52 400.89 203.40 400.90 C 203.44 396.73 203.45 392.57 203.47 388.42 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 249.45 388.38 C 254.29 388.56 259.22 387.96 264.00 388.94 C 268.52 390.07 269.67 397.04 265.66 399.44 C 260.63 401.83 254.85 400.80 249.47 400.94 C 249.51 396.75 249.48 392.57 249.45 388.38 Z"})]}),Object($.jsx)("g",{id:t,children:Object($.jsx)("path",{fill:t,opacity:"1.00",d:" M 319.87 0.00 L 320.20 0.00 C 360.20 39.89 400.19 79.79 440.05 119.83 C 411.04 120.22 382.02 119.87 353.01 120.01 C 344.56 120.18 336.01 117.07 329.94 111.12 C 323.88 105.47 320.29 97.32 320.04 89.05 C 319.87 59.37 320.21 29.68 319.87 0.00 Z"})}),Object($.jsxs)("g",{id:"#fdfdfd",children:[Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 360.00 382.07 C 361.58 380.00 365.24 380.16 366.61 382.38 C 367.63 384.06 367.40 386.11 367.48 387.99 C 367.39 399.62 367.55 411.27 367.40 422.90 C 367.54 425.83 365.02 428.51 362.00 428.00 C 358.74 427.96 356.92 424.93 355.26 422.58 C 349.41 413.73 343.71 404.78 337.83 395.95 C 337.55 405.51 338.19 415.09 337.54 424.63 C 337.11 428.63 330.75 429.14 329.54 425.38 C 328.85 422.98 329.14 420.43 329.08 417.98 C 329.24 407.28 328.94 396.58 329.22 385.89 C 329.13 382.87 331.97 380.41 334.92 380.63 C 337.13 380.65 338.65 382.47 339.77 384.16 C 346.13 393.83 352.50 403.51 358.93 413.14 C 358.91 404.75 358.95 396.36 358.90 387.97 C 359.01 385.99 358.69 383.73 360.00 382.07 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 100.79 382.81 C 102.34 381.06 104.95 381.53 107.03 381.37 C 116.55 381.57 126.10 381.14 135.61 381.56 C 139.25 381.72 140.15 387.40 136.71 388.62 C 132.57 389.54 128.25 388.87 124.04 389.07 C 123.84 400.72 124.22 412.40 123.86 424.04 C 123.67 427.14 119.95 429.02 117.28 427.52 C 114.89 426.34 114.76 423.37 114.75 421.05 C 114.78 410.39 114.77 399.73 114.77 389.07 C 110.85 388.97 106.91 389.29 103.01 388.89 C 100.19 388.63 98.94 384.82 100.79 382.81 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 156.46 381.58 C 164.12 379.62 173.03 380.52 179.19 385.85 C 184.59 390.56 186.43 398.11 186.28 405.03 C 186.24 412.28 183.48 420.06 177.27 424.26 C 167.20 430.79 151.07 429.05 144.81 418.06 C 140.79 410.83 140.49 401.86 143.12 394.11 C 145.11 388.05 150.26 383.15 156.46 381.58 M 160.39 388.45 C 155.68 389.57 152.46 393.85 151.51 398.43 C 150.26 404.45 150.59 411.44 154.58 416.43 C 158.82 421.68 167.50 421.98 172.29 417.34 C 175.56 414.16 176.76 409.47 176.87 405.04 C 177.00 400.46 176.12 395.52 173.03 391.97 C 170.01 388.38 164.79 387.33 160.39 388.45 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 197.74 381.67 C 202.48 381.08 207.28 381.52 212.04 381.39 C 216.77 381.52 221.99 381.01 226.14 383.76 C 231.83 387.34 233.14 395.94 229.29 401.31 C 227.11 404.31 223.42 405.53 220.02 406.56 C 225.17 409.99 228.63 415.38 231.24 420.89 C 231.80 422.43 232.87 424.27 231.83 425.86 C 230.20 428.72 225.63 428.66 223.85 425.97 C 220.01 420.80 217.60 414.61 213.15 409.89 C 210.68 407.24 206.76 407.72 203.49 407.54 C 203.32 412.99 203.66 418.45 203.31 423.89 C 203.28 427.47 198.62 429.25 195.97 427.11 C 193.92 425.36 194.24 422.43 194.15 420.02 C 194.27 408.97 194.06 397.92 194.23 386.87 C 194.12 384.61 195.24 381.99 197.74 381.67 M 203.47 388.42 C 203.45 392.57 203.44 396.73 203.40 400.90 C 208.52 400.89 213.88 401.57 218.81 399.89 C 223.71 398.14 222.82 390.10 217.93 388.93 C 213.18 387.93 208.28 388.55 203.47 388.42 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 240.23 386.91 C 240.05 384.51 241.41 381.77 244.05 381.58 C 249.02 381.13 254.02 381.52 259.00 381.41 C 263.64 381.44 268.85 381.14 272.73 384.18 C 277.81 387.82 278.91 395.49 275.74 400.71 C 273.64 404.05 269.75 405.55 266.09 406.46 C 271.87 410.81 276.28 417.09 278.28 424.04 C 278.48 428.00 272.74 429.20 270.41 426.55 C 266.10 421.38 263.88 414.69 259.13 409.85 C 256.62 407.29 252.77 407.64 249.49 407.51 C 249.34 413.00 249.76 418.50 249.33 423.98 C 249.25 427.52 244.58 429.23 241.97 427.09 C 240.14 425.65 240.25 423.12 240.22 421.03 C 240.20 409.66 240.19 398.28 240.23 386.91 M 249.45 388.38 C 249.48 392.57 249.51 396.75 249.47 400.94 C 254.85 400.80 260.63 401.83 265.66 399.44 C 269.67 397.04 268.52 390.07 264.00 388.94 C 259.22 387.96 254.29 388.56 249.45 388.38 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 286.38 386.01 C 286.27 383.00 289.16 381.15 291.93 381.42 C 300.65 381.57 309.41 381.03 318.11 381.66 C 321.80 381.95 321.67 388.25 317.94 388.37 C 310.50 388.74 303.03 388.43 295.58 388.55 C 295.57 392.30 295.57 396.05 295.59 399.80 C 302.39 399.95 309.20 399.54 315.98 399.96 C 319.57 399.91 320.07 405.84 316.66 406.54 C 309.65 407.09 302.60 406.71 295.58 406.78 C 295.58 411.12 295.59 415.47 295.56 419.82 C 303.38 420.13 311.25 419.44 319.05 420.15 C 322.43 420.75 322.44 426.37 319.04 426.95 C 311.73 427.52 304.36 427.04 297.03 427.21 C 294.20 427.07 291.20 427.60 288.52 426.53 C 286.17 425.31 286.31 422.30 286.27 420.04 C 286.39 408.70 286.17 397.35 286.38 386.01 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 375.06 381.95 C 378.31 381.05 381.74 381.50 385.08 381.39 C 392.93 381.50 400.79 381.23 408.64 381.52 C 412.48 381.48 413.41 387.46 409.82 388.64 C 405.69 389.52 401.42 388.89 397.23 389.08 C 397.16 400.40 397.37 411.73 397.14 423.05 C 397.33 425.86 394.85 428.51 391.95 427.92 C 389.07 427.71 387.75 424.61 387.99 422.07 C 388.05 411.07 387.92 400.08 388.05 389.08 C 384.02 388.96 379.96 389.33 375.95 388.84 C 372.77 388.27 372.19 383.34 375.06 381.95 Z"})]})]})},ne=n(402),ae=n(457),re=n(25),ie=n.n(re),oe=n(456),ce=n(496),se=function(e){var t=Object(a.useState)({}),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useRef)(!0),s=Object(a.useRef)(null);return Object(a.useEffect)((function(){return function(){o.current=!1}}),[]),Object(a.useEffect)((function(){return e?s.current=setInterval((function(){var t=function(e){return o.current&&i(e)};T.a.post("".concat(m,"/cache"),{action:"get",hash:e}).then((function(e){var n=e.data;return t(n)})).catch((function(){return t({})}))}),100):clearInterval(s.current),function(){return clearInterval(s.current)}}),[e]),r},le=n(442),de=n(444),pe=n(445),be=n(401),je=n(74),ue=n.n(je),he=n(446),xe=Object(le.a)({appBar:Object(P.a)({position:"relative"},J&&{paddingTop:"30px"}),title:{marginLeft:"5px",flex:1}});function Oe(e){var t=e.title,n=e.onClose,a=e.onBack,r=xe();return Object($.jsx)(de.a,{className:r.appBar,children:Object($.jsxs)(pe.a,{children:[a&&Object($.jsx)(be.a,{edge:"start",color:"inherit",onClick:a,"aria-label":"back",children:Object($.jsx)(he.a,{})}),Object($.jsx)(l.a,{variant:"h6",className:r.title,children:t}),Object($.jsx)(be.a,{autoFocus:!0,color:"inherit",onClick:n,"aria-label":"close",style:{marginRight:"-10px"},children:Object($.jsx)(ue.a,{})})]})})}var ge,me,fe,Ce,ve,ye,we,Se,De,ke,Te,Pe=n(195),Me=n(87),Le=n.n(Me),Be=n(206),Ae=n(447),Re=n(26),Fe={light:{app:{headerToggleColor:"#4db380",appSecondaryColor:"#cbe8d9",sidebarBGColor:"#575757",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#337a57",buttonBGColor:Object(Re.a)("#337a57",.5),cardPrimaryColor:"#00a572",cardSecondaryColor:"#74c39c"},dialogTorrentDetailsContent:{posterBGColor:"#74c39c",gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",chacheSectionBGColor:"#88cdaa",widgetFontColor:"#fff",titleFontColor:"#000",subNameFontColor:"#7c7b7c",torrentFilesSectionBGColor:"#f1eff3"},detailedView:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",cacheSectionBGColor:"#fff"},addDialog:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",fontColor:"#000",notificationErrorBGColor:"#cda184",notificationSuccessBGColor:"#88cdaa",languageSwitchBGColor:"#74c39c",languageSwitchFontColor:"#e4f6ed",posterBGColor:"#74c39c"},torrentFunctions:{fontColor:"#000"},table:{defaultPrimaryColor:"#009879",defaultSecondaryColor:"#00a383",defaultTertiaryColor:"#03aa89"},settingsDialog:{contentBG:"#f1eff3",footerBG:"#fff"}},dark:{app:{headerToggleColor:"#545a5e",appSecondaryColor:"#545a5e",sidebarBGColor:"#323637",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#323637",buttonBGColor:Object(Re.a)("#323637",.5),cardPrimaryColor:"#545a5e",cardSecondaryColor:Object(Re.a)("#dee3e5",.4)},dialogTorrentDetailsContent:{posterBGColor:Object(Re.a)("#dee3e5",.4),gradientStartColor:"#656f76",gradientEndColor:"#545a5e",chacheSectionBGColor:"#3c4244",widgetFontColor:Object(Re.a)("#fff",.8),titleFontColor:"#f1eff3",subNameFontColor:"#dee3e5",torrentFilesSectionBGColor:Object(Re.a)("#545a5e",.9)},detailedView:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",cacheSectionBGColor:"#949ca0"},addDialog:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",fontColor:"#fff",notificationErrorBGColor:"#c82e3f",notificationSuccessBGColor:"#323637",languageSwitchBGColor:"#545a5e",languageSwitchFontColor:"#dee3e5",posterBGColor:"#dee3e5"},torrentFunctions:{fontColor:"#f1eff3"},table:{defaultPrimaryColor:"#323637",defaultSecondaryColor:Object(Re.a)("#545a5e",.9),defaultTertiaryColor:"#545a5e"},settingsDialog:{contentBG:"#5a6166",footerBG:"#323637"}}},Ne={light:{primary:"#00a572",secondary:"#00a572",labels:Object(Re.a)("#000",.9)},dark:{primary:"#323637",secondary:"#dee3e5",labels:Object(Re.a)("#fff",.9)}},ze="light",Ee="dark",Ge="auto",Ie={fontFamily:"Open Sans, sans-serif"},He=(Object(Be.a)({typography:Ie,palette:{type:Ee,primary:{main:Ne.dark.primary},secondary:{main:Ne.dark.secondary}}}),Object(Be.a)({typography:Ie,palette:{type:ze,primary:{main:Ne.light.primary},secondary:{main:Ne.light.secondary}}})),Ue=n(4),Ve=n(3),We={dark:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:Object(Re.a)("#fff",.2),completeColor:Object(Re.a)(Ne.dark.primary,.5),backgroundColor:"#949ca0",progressColor:Object(Re.a)("#fff",.2),readerColor:"#8f0405",rangeColor:"#cda184"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#5c6469",completeColor:"#5c6469",backgroundColor:"#949ca0",progressColor:"#949ca0",readerColor:"#ccc",rangeColor:"#cda184"}},light:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:"#dbf2e8",completeColor:Ne.light.primary,backgroundColor:"#fff",progressColor:"#b3dfc9",readerColor:"#000",rangeColor:"#afa6e3"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#4db380",completeColor:"#4db380",backgroundColor:"#dbf2e8",progressColor:"#dbf2e8",readerColor:"#0a0a0a",rangeColor:"#afa6e3"}}},_e=Ve.d.div(ge||(ge=Object(Ue.a)(["\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n"]))),Ze=Ve.d.div(me||(me=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isMini,n=e.themeType;return Object(Ve.c)(fe||(fe=Object(Ue.a)(["\n ","\n\n canvas {\n display: block;\n }\n "])),t&&Object(Ve.c)(Ce||(Ce=Object(Ue.a)(["\n display: grid;\n justify-content: center;\n max-height: ","px;\n overflow: auto;\n "])),We[n].mini.cacheMaxHeight))})),Ke=function(e){var t,n=e.cache,r=e.isMini,i=e.isSnakeDebugMode,o=Object(ce.a)().t,s=Object(a.useState)({width:0,height:0}),l=Object(c.a)(s,2),d=l[0],p=l[1],b=d.width,j=Object(a.useRef)(null),u=Object(a.useRef)(null),h=function(e){var t=Object(a.useState)([]),n=Object(c.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){for(var t=e.PiecesCount,n=e.Pieces,a=e.Readers,r=[],o=function(e){var t=n[e]||{},i=t.Size,o=t.Length,c=t.Priority,s={id:e,percentage:i/o*100||0,priority:c||0};a.forEach((function(t){e===t.Reader&&(s.isReader=!0),e>=t.Start&&e<=t.End&&(s.isReaderRange=!0)})),r.push(s)},c=0;c0})),i=function(e){return e%a===0?e-1:e+a-e%a-1||0},o=i(n),c=i(r.length),s=Math.max(c,o)-r.length+1,l=s?new Array(s).fill({}):[];return[].concat(Object(F.a)(r),Object(F.a)(l))}({cacheMap:h,preloadPiecesAmount:Math.round(n.Capacity/n.PiecesLength-1),piecesInOneRow:M}));var L=r?t:h,B=Math.ceil((T-P*M)/2),A=Math.ceil(L.length/M)*P;return Object(a.useEffect)((function(){if(T&&A){var e=j.current;e.width=T,e.height=A,u.current=e.getContext("2d")}}),[j,A,T]),Object(a.useEffect)((function(){var e=u.current;e&&(e.clearRect(0,0,T,A),L.forEach((function(t,n){var a=t.percentage,o=t.priority,c=t.isReader,s=t.isReaderRange,l=a>0&&a<100,d=100===a,p=n%M,b=Math.floor(n/M),j=C%2===0?0:.5,u=Math.ceil(C/2)+1+j,h=p*v+p*y+B+u,g=b*v+b*y+u;if(e.lineWidth=C,e.fillStyle=l?function(e,t,n,a){var r=We[n][a],i=r.pieceSize,o=r.completeColor,c=r.progressColor,s=e.createLinearGradient(0,i,0,0);return s.addColorStop(0,o),s.addColorStop(t/100,o),s.addColorStop(t/100,c),s.addColorStop(1,c),s}(e,a,O,x):d?k:w,e.strokeStyle=c?m:l||d?k:s?f:S,e.translate(h,g),e.fillRect(0,0,v,v),e.strokeRect(0,0,v,v),e.setTransform(1,0,0,1,0,0),i&&o>0){var D="";1===o?D="":2===o?D="H":3===o?D="R":4===o?D="N":5===o&&(D="A"),e.font=r?"13px monospace":"10px monospace";var T=r?.35*v:.29*v,P=r?.69*v:.78*v;e.fillStyle="black",e.fillText(D,h+T,g+P)}})))}),[h,A,T,M,B,v,y,L,w,S,C,x,k,m,f,r,O,i]),Object($.jsx)(Pe.a,{bounds:!0,onResize:function(e){var t=e.bounds;return p(t)},children:function(e){var t=e.measureRef;return Object($.jsxs)("div",{style:{display:"flex",flexDirection:"column"},ref:t,children:[Object($.jsx)(Ze,{themeType:O,isMini:r,children:Object($.jsx)("canvas",{ref:j})}),r&&A>=D&&Object($.jsx)(_e,{children:o("ScrollDown")})]})}})},Je=Object(a.memo)(Ke,(function(e,t){return Le()(e.cache.Pieces,t.cache.Pieces)&&Le()(e.cache.Readers,t.cache.Readers)})),Ye=n(88),$e=n.n(Ye),Xe="#858c90",qe=Object(Ve.c)(ve||(ve=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(Ve.c)(ye||(ye=Object(Ue.a)(["\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ",";\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "])),t)})),Qe=Ve.d.table(we||(we=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(Ve.c)(Se||(Se=Object(Ue.a)(["\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ",";\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ",";\n background: ",";\n\n :last-of-type {\n border-bottom: 2px solid ",";\n }\n\n &.viewed-file-row {\n background: ",";\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ","\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n "])),t,"#d2d2d2","#f3f3f3",t,"#ddd",qe)})),et=Ve.d.div(De||(De=Object(Ue.a)(["\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n"]))),tt=Ve.d.div(ke||(ke=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isViewed,n=e.theme.table,a=n.defaultPrimaryColor,r=n.defaultSecondaryColor,i=n.defaultTertiaryColor;return Object(Ve.c)(Te||(Te=Object(Ue.a)(["\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ",";\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ",";\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ",";\n }\n\n &-name {\n background: ",";\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ",";\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ","\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ",";\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #f3f3f3;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n "])),t?Xe:a,t?"max-content":"1fr",t?Xe:a,t?"#8c9498":r,t?"#949ca0":i,t&&qe,t?Xe:a)})),nt=n(0).memo;ie.a.addHandler("episode",/(\d{1,4})[- |. ]\u0441\u0435\u0440\u0438\u044f|\u0441\u0435\u0440\u0438\u044f[- |. ](\d{1,4})/i,{type:"integer"}),ie.a.addHandler("season",/sezon[- |. ](\d{1,3})|(\d{1,3})[- |. ]sezon/i,{type:"integer"}),ie.a.addHandler("season",/\u0441\u0435\u0437\u043e\u043d[- |. ](\d{1,3})|(\d{1,3})[- |. ]\u0441\u0435\u0437\u043e\u043d/i,{type:"integer"});var at,rt,it,ot,ct,st,lt,dt,pt,bt,jt,ut,ht,xt,Ot,gt,mt,ft,Ct,vt,yt,wt,St,Dt,kt,Tt,Pt,Mt,Lt,Bt,At,Rt,Ft,Nt,zt,Et,Gt,It=nt((function(e){var t,n=e.playableFileList,a=e.viewedFileList,r=e.selectedSeason,i=e.seasonAmount,o=e.hash,c=Object(ce.a)().t,s=function(e){return fetch("".concat(y(),"?link=").concat(o,"&index=").concat(e,"&preload"))},l=function(e,t){return"".concat(y(),"/").concat(encodeURIComponent(e.split("\\").pop().split("/").pop()),"?link=").concat(o,"&index=").concat(t,"&play")},d=!(null===n||void 0===n||!n.find((function(e){var t=e.path;return ie.a.parse(t).episode}))),p=!(null===n||void 0===n||!n.find((function(e){var t=e.path;return ie.a.parse(t).season}))),b=!(null===n||void 0===n||!n.find((function(e){var t=e.path;return ie.a.parse(t).resolution}))),j=(null===n||void 0===n?void 0:n.length)>1&&!d,u=null!==(t=JSON.parse(localStorage.getItem("isVlcUsed")))&&void 0!==t&&t;return null!==n&&void 0!==n&&n.length?Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(Qe,{children:[Object($.jsx)("thead",{children:Object($.jsxs)("tr",{children:[Object($.jsx)("th",{style:{width:"0"},children:c("Viewed")}),Object($.jsx)("th",{children:c("Name")}),p&&1===(null===i||void 0===i?void 0:i.length)&&Object($.jsx)("th",{style:{width:"0"},children:c("Season")}),d&&Object($.jsx)("th",{style:{width:"0"},children:c("Episode")}),b&&Object($.jsx)("th",{style:{width:"0"},children:c("Resolution")}),Object($.jsx)("th",{style:{width:"100px"},children:c("Size")}),Object($.jsx)("th",{style:{width:"400px"},children:c("Actions")})]})}),Object($.jsx)("tbody",{children:n.map((function(e){var t=e.id,n=e.path,o=e.length,u=ie.a.parse(n),h=u.title,x=u.resolution,O=u.episode,g=u.season,m=null===a||void 0===a?void 0:a.includes(t),f=l(n,t);return(g===r||!(null!==i&&void 0!==i&&i.length))&&Object($.jsxs)("tr",{className:m?"viewed-file-row":null,children:[Object($.jsx)("td",{"data-label":"viewed",className:m?"viewed-file-indicator":null}),Object($.jsx)("td",{"data-label":"name",children:j?n:h}),p&&1===(null===i||void 0===i?void 0:i.length)&&Object($.jsx)("td",{"data-label":"season",children:g}),d&&Object($.jsx)("td",{"data-label":"episode",children:O}),b&&Object($.jsx)("td",{"data-label":"resolution",children:x}),Object($.jsx)("td",{"data-label":"size",children:V(o)}),Object($.jsx)("td",{children:Object($.jsxs)("div",{className:"button-cell",children:[Object($.jsx)(ne.a,{onClick:function(){return s(t)},variant:"outlined",color:"primary",size:"small",children:c("Preload")}),Object($.jsx)("a",{style:{textDecoration:"none"},href:f,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:c("OpenLink")})}),Object($.jsx)($e.a,{text:f,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:c("CopyLink")})})]})})]},t)}))})]}),Object($.jsx)(et,{children:n.map((function(e){var t=e.id,n=e.path,o=e.length,h=ie.a.parse(n),x=h.title,O=h.resolution,g=h.episode,m=h.season,f=null===a||void 0===a?void 0:a.includes(t),C=l(n,t);return(m===r||!(null!==i&&void 0!==i&&i.length))&&Object($.jsxs)(tt,{isViewed:f,children:[Object($.jsx)("div",{className:"short-table-name",children:j?n:x}),Object($.jsxs)("div",{className:"short-table-data",children:[f&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Viewed")}),Object($.jsx)("div",{className:"short-table-field-value",children:Object($.jsx)("div",{className:"short-table-viewed-indicator"})})]}),p&&1===(null===i||void 0===i?void 0:i.length)&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Season")}),Object($.jsx)("div",{className:"short-table-field-value",children:m})]}),d&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Episode")}),Object($.jsx)("div",{className:"short-table-field-value",children:g})]}),b&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Resolution")}),Object($.jsx)("div",{className:"short-table-field-value",children:O})]}),Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Size")}),Object($.jsx)("div",{className:"short-table-field-value",children:V(o)})]})]}),Object($.jsxs)("div",{className:"short-table-buttons",children:[Object($.jsx)(ne.a,{onClick:function(){return s(t)},variant:"outlined",color:"primary",size:"small",children:c("Preload")}),u&&J?Object($.jsx)("a",{style:{textDecoration:"none"},href:"vlc://".concat(C),children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:"VLC"})}):Object($.jsx)("a",{style:{textDecoration:"none"},href:C,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:c("OpenLink")})}),Object($.jsx)($e.a,{text:C,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:c("CopyLink")})})]})]},t)}))})]}):"No playable files in this torrent"}),(function(e,t){return Le()(e,t)})),Ht=n(455),Ut=n(492),Vt=Ve.d.div(at||(at=Object(Ue.a)(["\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n"]))),Wt=Ve.d.div(rt||(rt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.dialogTorrentDetailsContent.posterBGColor;return Object(Ve.c)(it||(it=Object(Ue.a)(["\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ","\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ","\n }\n "])),t?Object(Ve.c)(ot||(ot=Object(Ue.a)(["\n img {\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(Ve.c)(ct||(ct=Object(Ue.a)(["\n width: 300px;\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n "])),n),t?Object(Ve.c)(st||(st=Object(Ue.a)(["\n height: 200px;\n "]))):Object(Ve.c)(lt||(lt=Object(Ue.a)(["\n display: none;\n "]))))})),_t=Ve.d.section(dt||(dt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent,n=t.gradientStartColor,a=t.gradientEndColor;return Object(Ve.c)(pt||(pt=Object(Ue.a)(["\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),Zt=Ve.d.section(bt||(bt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.chacheSectionBGColor;return Object(Ve.c)(jt||(jt=Object(Ue.a)(["\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Kt=Ve.d.section(ut||(ut=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.torrentFilesSectionBGColor;return Object(Ve.c)(ht||(ht=Object(Ue.a)(["\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Jt=Ve.d.div(xt||(xt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.subNameFontColor;return Object(Ve.c)(Ot||(Ot=Object(Ue.a)(["\n ","\n "])),(function(e){var n=e.mb;return Object(Ve.c)(gt||(gt=Object(Ue.a)(["\n ",";\n ",";\n line-height: 1.2;\n color: ",";\n\n @media (max-width: 800px) {\n ",";\n ",";\n font-size: 14px;\n }\n "])),n&&"margin-top: ".concat(n/3,"px"),n&&"margin-bottom: ".concat(n,"px"),t,n&&"margin-top: ".concat(n/4,"px"),n&&"margin-bottom: ".concat(n/2,"px"))}))})),Yt=Ve.d.div(mt||(mt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.color,n=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(Ve.c)(ft||(ft=Object(Ue.a)(["\n ","\n "])),(function(e){var a=e.mb;return Object(Ve.c)(Ct||(Ct=Object(Ue.a)(["\n ",";\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ",";\n }\n "])),a&&"margin-bottom: ".concat(a,"px"),t||n,a&&"margin-bottom: ".concat(a/2,"px"))}))})),$t=Ve.d.div(vt||(vt=Object(Ue.a)(["\n margin-bottom: 20px;\n"]))),Xt=Ve.d.div(yt||(yt=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ","\n"])),(function(e){return e.detailedView?Object(Ve.c)(wt||(wt=Object(Ue.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n "]))):Object(Ve.c)(St||(St=Object(Ue.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n "])))})),qt=Ve.d.div(Dt||(Dt=Object(Ue.a)(["\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n"]))),Qt=Ve.d.div(kt||(kt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(Ve.c)(Tt||(Tt=Object(Ue.a)(["\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ",";\n "])),t)})),en=Ve.d.div(Pt||(Pt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.bgColor;return Object(Ve.c)(Mt||(Mt=Object(Ue.a)(["\n grid-area: icon;\n color: ",";\n background: ",";\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n "])),Object(Re.a)("#fff",.8),t)})),tn=Ve.d.div(Lt||(Lt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.bgColor,n=e.theme.dialogTorrentDetailsContent.widgetFontColor;return Object(Ve.c)(Bt||(Bt=Object(Ue.a)(["\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ",";\n background: ",";\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n "])),n,t)})),nn=Ve.d.div.attrs((function(e){var t=e.value,n=e.fullAmount,a=e.theme.dialogTorrentDetailsContent,r=a.gradientStartColor,i=a.gradientEndColor,o=Math.min(100,100*t/n);return{style:{background:"linear-gradient(to right, ".concat(r," 0%, ").concat(i," ").concat(o,"%, #eee ").concat(o,"%, #fff 100%)")}}}))(At||(At=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.label;return Object(Ve.c)(Rt||(Rt=Object(Ue.a)(["\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n "])),t)})),an=Ve.d.div(Ft||(Ft=Object(Ue.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),rn=Ve.d.section(Nt||(Nt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView,n=t.gradientStartColor,a=t.gradientEndColor;return Object(Ve.c)(zt||(zt=Object(Ue.a)(["\n padding: 40px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),on=Ve.d.section(Et||(Et=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView.cacheSectionBGColor;return Object(Ve.c)(Gt||(Gt=Object(Ue.a)(["\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),cn=n(12),sn=n(448),ln=n(449),dn=n(450),pn=n(451),bn=n(452),jn=n(453),un=n(454);function hn(e){var t=e.icon,n=e.title,a=e.value,r=e.iconBg,i=e.valueBg;return Object($.jsxs)(qt,{children:[Object($.jsx)(Qt,{children:n}),Object($.jsx)(en,{bgColor:r,children:Object($.jsx)(t,{})}),Object($.jsx)(tn,{bgColor:i,children:a})]})}var xn=ze,On=Ee,gn={light:{downloadSpeed:{iconBGColor:"#118f00",valueBGColor:"#13a300"},uploadSpeed:{iconBGColor:"#0146ad",valueBGColor:"#0058db"},peers:{iconBGColor:"#cdc118",valueBGColor:"#d8cb18"},piecesCount:{iconBGColor:"#b6c95e",valueBGColor:"#c0d076"},piecesLength:{iconBGColor:"#0982c8",valueBGColor:"#098cd7"},status:{iconBGColor:"#aea25b",valueBGColor:"#b4aa6e"},size:{iconBGColor:"#9b01ad",valueBGColor:"#ac03bf"}},dark:{downloadSpeed:{iconBGColor:"#0c6600",valueBGColor:"#0d7000"},uploadSpeed:{iconBGColor:"#003f9e",valueBGColor:"#0047b3"},peers:{iconBGColor:"#a69c11",valueBGColor:"#b4a913"},piecesCount:{iconBGColor:"#8da136",valueBGColor:"#99ae3d"},piecesLength:{iconBGColor:"#07659c",valueBGColor:"#0872af"},status:{iconBGColor:"#938948",valueBGColor:"#9f9450"},size:{iconBGColor:"#81008f",valueBGColor:"#9102a1"}}};function mn(e){var t=Object(a.useContext)(Mc).isDarkMode;return gn[t?On:xn][e]}var fn,Cn,vn,yn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("downloadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("DownloadSpeed"),value:W(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:sn.a})},wn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("uploadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("UploadSpeed"),value:W(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:ln.a})},Sn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("peers"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("Peers"),value:_(t)||"0 \xb7 0 / 0",iconBg:r,valueBg:i,icon:dn.a})},Dn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("piecesCount"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("PiecesCount"),value:t,iconBg:r,valueBg:i,icon:pn.a})},kn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("piecesLength"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("PiecesLength"),value:V(t),iconBg:r,valueBg:i,icon:bn.a})},Tn=function(e){var t,n=e.stat,a=Object(ce.a)().t,r=(t={},Object(cn.a)(t,1,a("TorrentGettingInfo")),Object(cn.a)(t,2,a("TorrentPreload")),Object(cn.a)(t,3,a("TorrentWorking")),Object(cn.a)(t,4,a("TorrentClosed")),Object(cn.a)(t,5,a("TorrentInDb")),t),i=mn("status"),o=i.iconBGColor,c=i.valueBGColor;return Object($.jsx)(hn,{title:a("TorrentStatus"),value:r[n],iconBg:o,valueBg:c,icon:jn.a})},Pn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("size"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("TorrentSize"),value:V(t),iconBg:r,valueBg:i,icon:un.a})};function Mn(e){var t=e.downloadSpeed,n=e.uploadSpeed,r=e.torrent,i=e.torrentSize,o=e.PiecesCount,s=e.PiecesLength,l=e.stat,d=e.cache,p=Object(ce.a)().t,b=Object(a.useState)(JSON.parse(localStorage.getItem("isSnakeDebugMode"))||!1),j=Object(c.a)(b,2),u=j[0],h=j[1];return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(rn,{children:[Object($.jsx)(Yt,{mb:20,children:p("Data")}),Object($.jsxs)(Xt,{detailedView:!0,children:[Object($.jsx)(yn,{data:t}),Object($.jsx)(wn,{data:n}),Object($.jsx)(Sn,{data:r}),Object($.jsx)(Pn,{data:i}),Object($.jsx)(Dn,{data:o}),Object($.jsx)(kn,{data:s}),Object($.jsx)(Tn,{stat:l})]})]}),Object($.jsxs)(on,{children:[Object($.jsx)(Yt,{color:"#000",mb:20,children:Object($.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[Object($.jsx)("span",{children:p("Cache")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(Ut.a,{color:"primary",checked:u,disableRipple:!0,onChange:function(e){var t=e.target.checked;h(t),localStorage.setItem("isSnakeDebugMode",t)}}),label:p("DebugMode"),labelPlacement:"start"})]})}),Object($.jsx)(Je,{cache:d,isSnakeDebugMode:u})]})]})}var Ln=Ve.d.div(fn||(fn=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n"]))),Bn=Ve.d.div(Cn||(Cn=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.mb,n=e.theme.torrentFunctions.fontColor;return Object(Ve.c)(vn||(vn=Object(Ue.a)(["\n ",";\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 18px;\n ",";\n }\n "])),t&&"margin-bottom: ".concat(t,"px"),n,t&&"margin-bottom: ".concat(t/1.5,"px"))})),An=Object(a.memo)((function(e){var t,n=e.hash,a=e.viewedFileList,r=e.playableFileList,i=e.name,o=e.title,c=e.setViewedFileList,s=Object(ce.a)().t,l=null===a||void 0===a?void 0:a[(null===a||void 0===a?void 0:a.length)-1],d=null===r||void 0===r||null===(t=r.find((function(e){return e.id===l})))||void 0===t?void 0:t.path,p=1===(null===r||void 0===r?void 0:r.length),b=d&&ie.a.parse(d),j="".concat(S(),"/").concat(encodeURIComponent(i||o||"file"),".m3u?link=").concat(n,"&m3u"),u="".concat(j,"&fromlast");return Object($.jsxs)($.Fragment,{children:[!p&&!(null===a||void 0===a||!a.length)&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Bn,{children:s("DownloadPlaylist")}),Object($.jsxs)(Jt,{mb:10,children:[s("LatestFilePlayed")," ",Object($.jsxs)("strong",{children:[null===b||void 0===b?void 0:b.title,".",(null===b||void 0===b?void 0:b.season)&&Object($.jsxs)($.Fragment,{children:[" ",s("Season"),": ",null===b||void 0===b?void 0:b.season,". ",s("Episode"),": ",null===b||void 0===b?void 0:b.episode,"."]})]})]}),Object($.jsxs)(Ln,{children:[Object($.jsx)("a",{style:{textDecoration:"none"},href:j,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:s("Full")})}),Object($.jsx)("a",{style:{textDecoration:"none"},href:u,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:s("FromLatestFile")})})]})]}),Object($.jsx)(Bn,{mb:10,children:s("TorrentState")}),Object($.jsxs)(Ln,{children:[Object($.jsx)(ne.a,{onClick:function(){return T.a.post(C(),{action:"rem",hash:n,file_index:-1}).then((function(){return c()}))},variant:"contained",color:"primary",size:"large",children:s("RemoveViews")}),Object($.jsx)(ne.a,{onClick:function(){return T.a.post(f(),{action:"drop",hash:n})},variant:"contained",color:"primary",size:"large",children:s("DropTorrent")})]}),Object($.jsx)(Bn,{mb:10,children:s("Info")}),Object($.jsxs)(Ln,{children:[(p||!(null!==a&&void 0!==a&&a.length))&&Object($.jsx)("a",{style:{textDecoration:"none"},href:j,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:s("DownloadPlaylist")})}),Object($.jsx)(Ye.CopyToClipboard,{text:n,children:Object($.jsx)(ne.a,{variant:"contained",color:"primary",size:"large",children:s("CopyHash")})})]})]})}),(function(){return!0})),Rn=["3g2","3gp","aaf","asf","avchd","avi","drc","flv","iso","m2v","m2ts","m4p","m4v","mkv","mng","mov","mp2","mp4","mpe","mpeg","mpg","mpv","mxf","nsv","ogg","ogv","ts","qt","rm","rmvb","roq","svi","vob","webm","wmv","yuv","aac","aiff","ape","au","flac","gsm","it","m3u","m4a","mid","mod","mp3","mpa","pls","ra","s3m","sid","wav","wma","xm"],Fn=function(){return Object($.jsx)("div",{style:{minHeight:"80vh",display:"grid",placeItems:"center"},children:Object($.jsx)(oe.a,{color:"secondary"})})};function Nn(e){var t,n=e.closeDialog,r=e.torrent,i=Object(ce.a)().t,o=Object(a.useState)(!0),s=Object(c.a)(o,2),l=s[0],d=s[1],p=Object(a.useState)(!1),b=Object(c.a)(p,2),j=b[0],u=b[1],h=Object(a.useState)(),x=Object(c.a)(h,2),O=x[0],g=x[1],m=Object(a.useState)(),f=Object(c.a)(m,2),y=f[0],w=f[1],S=Object(a.useState)(null),D=Object(c.a)(S,2),k=D[0],M=D[1],L=Object(a.useState)(),B=Object(c.a)(L,2),A=B[0],R=B[1],F=Object(a.useState)(JSON.parse(localStorage.getItem("isSnakeDebugMode"))||!1),N=Object(c.a)(F,1)[0],z=r.poster,E=r.hash,G=r.title,I=r.name,H=r.stat,U=r.download_speed,W=r.upload_speed,_=r.torrent_size,K=r.file_stats,J=se(E),Y=function(e){var t=Object(a.useState)(),n=Object(c.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){T.a.post(v(),{action:"get"}).then((function(e){var t=e.data;return i(t)}))}),[e]),r}(J),q=J.Capacity,Q=J.PiecesCount,ee=J.PiecesLength,te=J.Filled;Object(a.useEffect)((function(){if(y&&null===k){var e=[];y.forEach((function(t){var n=t.path,a=ie.a.parse(n).season;a&&!e.includes(a)&&e.push(a)})),e.length&&R(e[0]),M(e.sort((function(e,t){return e-t})))}}),[y,k]),Object(a.useEffect)((function(){w(null===K||void 0===K?void 0:K.filter((function(e){var t,n=e.path;return t=n,Rn.includes(function(e){var t=e.split(".").pop();return t===e?"":t.toLowerCase()}(t))})))}),[K]),Object(a.useEffect)((function(){var e=!!Object.entries(J).length,t=1!==H&&5!==H;e||l||d(!0),e&&l&&t&&d(!1)}),[H,J,l]),Object(a.useEffect)((function(){T.a.post(C(),{action:"list",hash:E}).then((function(e){var t=e.data;if(t){var n=t.map((function(e){return e.file_index})).sort((function(e,t){return e-t}));g(n)}else g()}))}),[E]);var re=q/100*(null===Y||void 0===Y?void 0:Y.PreloadCache),oe=re>33554432?re:33554432,le=function(){var e=[],t=I&&ie.a.parse(I);G!==I?e.push(Z(G)):null!==t&&void 0!==t&&t.title&&e.push(Z(null===t||void 0===t?void 0:t.title)),null!==t&&void 0!==t&&t.year&&!e[0].includes(null===t||void 0===t?void 0:t.year)&&e.push(null===t||void 0===t?void 0:t.year),null!==t&&void 0!==t&&t.resolution&&!e[0].includes(null===t||void 0===t?void 0:t.resolution)&&e.push(null===t||void 0===t?void 0:t.resolution);var n=e.join(". ");return"."===n[n.length-1]&&"."===n[n.length-2]?"".concat(n,"."):n};return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Oe,Object(P.a)({onClose:n,title:i(j?"DetailedCacheView.header":"TorrentDetails")},j&&{onBack:function(){return u(!1)}})),Object($.jsx)("div",{style:Object(P.a)({minHeight:"80vh",overflow:"auto"},j&&{display:"flex",flexDirection:"column"}),children:l?Object($.jsx)(Fn,{}):j?Object($.jsx)(Mn,{downloadSpeed:U,uploadSpeed:W,torrent:r,torrentSize:_,PiecesCount:Q,PiecesLength:ee,stat:H,cache:J}):Object($.jsxs)(Vt,{children:[Object($.jsxs)(_t,{children:[Object($.jsx)(Wt,{poster:z,children:z?Object($.jsx)("img",{alt:"poster",src:z}):Object($.jsx)(X,{})}),Object($.jsxs)("div",{children:[G&&I!==G?le().length>90?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Yt,{children:ie.a.parse(I).title}),Object($.jsx)(Jt,{mb:20,children:le()})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Yt,{children:le()}),Object($.jsx)(Jt,{mb:20,children:null===(t=ie.a.parse(I||""))||void 0===t?void 0:t.title})]}):Object($.jsx)(Yt,{mb:20,children:le()}),Object($.jsxs)(Xt,{children:[Object($.jsx)(yn,{data:U}),Object($.jsx)(wn,{data:W}),Object($.jsx)(Sn,{data:r}),Object($.jsx)(Pn,{data:_}),Object($.jsx)(Tn,{stat:H})]}),Object($.jsx)(an,{}),Object($.jsx)(An,{hash:E,viewedFileList:O,playableFileList:y,name:I,title:G,setViewedFileList:g})]})]}),Object($.jsxs)(Zt,{children:[Object($.jsxs)($t,{children:[Object($.jsx)(Yt,{mb:20,children:i("Buffer")}),oe<=33554432&&Object($.jsx)(Jt,{children:i("BufferNote")}),Object($.jsx)(nn,{value:te,style:{marginTop:"5px"},fullAmount:oe,label:"".concat(V(oe)," / ").concat(V(te)||"0 ".concat(i("B")))})]}),Object($.jsx)(Je,{isMini:!0,cache:J,isSnakeDebugMode:N}),Object($.jsx)(ne.a,{style:{marginTop:"30px"},variant:"contained",color:"primary",size:"large",onClick:function(){return u(!0)},children:i("DetailedCacheView.button")})]}),Object($.jsxs)(Kt,{children:[Object($.jsx)(Yt,{mb:20,children:i("TorrentContent")}),(null===k||void 0===k?void 0:k.length)>1&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Jt,{mb:7,children:i("SelectSeason")}),Object($.jsx)(ae.a,{style:{marginBottom:"30px"},color:"secondary",children:k.map((function(e){return Object($.jsx)(ne.a,{variant:A===e?"contained":"outlined",onClick:function(){return R(e)},children:e},e)}))}),Object($.jsxs)(Yt,{mb:20,children:[i("Season")," ",A]})]}),Object($.jsx)(It,{hash:E,playableFileList:y,viewedFileList:O,selectedSeason:A,seasonAmount:k})]})]})})]})}var zn=n(494),En=n(466),Gn=n(471),In=n(472),Hn=n(200),Un=n.n(Hn),Vn=function(){var e=Object(ce.a)().i18n;return[e.language.substr(0,2),function(t){return e.changeLanguage(t)}]};function Wn(e){var t=Object(a.useRef)(e);return Object(a.useEffect)((function(){t.current=e}),[e]),t.current}var _n,Zn,Kn,Jn,Yn,$n,Xn,qn,Qn,ea,ta,na,aa=n(111),ra=n.n(aa),ia=Ve.d.div(_n||(_n=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(Ve.c)(Zn||(Zn=Object(Ue.a)(["\n background: ",";\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n "])),t)})),oa=Ve.d.div(Kn||(Kn=Object(Ue.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n"]))),ca=n(458),sa=function(e){return Object(Ve.c)(Jn||(Jn=Object(Ue.a)(["\n @media screen and (display-mode: standalone) {\n ",";\n }\n"])),e)},la=90,da=Ve.d.div(Yn||(Yn=Object(Ue.a)(["\n background: #575757;\n color: #fff;\n position: fixed;\n bottom: 0;\n width: 100%;\n height: ","px;\n\n display: none;\n\n ","\n"])),la,sa(Object(Ve.c)($n||($n=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(5, calc(100% / 5));\n justify-items: center;\n "]))))),pa=Object(Ve.d)(ca.a).attrs({button:!0})(Xn||(Xn=Object(Ue.a)(["\n ","\n"])),sa(Object(Ve.c)(qn||(qn=Object(Ue.a)(["\n width: 100%;\n height: 60px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n "]))))),ba=Object(Ve.d)(zn.a).attrs(Object(P.a)({},J&&{hideBackdrop:!0,transitionDuration:0}))(Qn||(Qn=Object(Ue.a)(["\n ","\n"])),sa(Object(Ve.c)(ea||(ea=Object(Ue.a)(["\n margin-bottom: ","px;\n\n .MuiDialog-container .MuiPaper-root {\n box-shadow: none;\n }\n "])),la))),ja=Object(Ve.d)(ia)(ta||(ta=Object(Ue.a)(["\n ","\n"])),sa(Object(Ve.c)(na||(na=Object(Ue.a)(["\n padding-top: 47px;\n "])))));function ua(e){var t=Object(a.useRef)();return Object(a.useEffect)((function(){if(J){var n=function(n){t.current&&!t.current.contains(n.target)&&e&&e()};return document.addEventListener("click",n,!0),function(){document.removeEventListener("click",n,!0)}}})),t}var ha,xa,Oa,ga,ma,fa,Ca,va,ya,wa,Sa,Da,ka,Ta,Pa,Ma,La,Ba,Aa,Ra,Fa,Na,za,Ea,Ga,Ia,Ha,Ua=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en",n="http://api.themoviedb.org/3/search/multi";return T.a.get(n,{params:{api_key:"45ddf563ac3fb845f2d5c363190d1a33",language:t,include_image_language:"".concat(t,",null,en"),query:e}}).then((function(e){return e.data.results.filter((function(e){return e.poster_path})).map((function(e){return"https://image.tmdb.org/t/p/w300".concat(e.poster_path)}))})).catch((function(){return null}))},Va=function(){var e=Object(R.a)(Object(A.a)().mark((function e(t){return Object(A.a)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.match(/.(jpg|jpeg|png|gif)$/i)){e.next=2;break}return e.abrupt("return",!1);case 2:return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Wa=/^magnet:\?xt=urn:[a-z0-9].*/i,_a=/^\b[0-9a-f]{32}\b$|^\b[0-9a-f]{40}\b$|^\b[0-9a-f]{64}\b$/i,Za=/^.*\.(torrent)$/i,Ka=/^(http(s?)):\/\/.*/i,Ja=Ve.d.div(ha||(ha=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isEditMode,n=e.theme.addDialog,a=n.gradientStartColor,r=n.gradientEndColor,i=n.fontColor;return Object(Ve.c)(xa||(xa=Object(Ue.a)(["\n height: 550px;\n background: linear-gradient(145deg, ",", ",");\n flex: 1;\n display: grid;\n grid-template-columns: repeat(",", 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ",";\n\n @media (max-width: 540px) {\n ","\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n "])),a,r,t?"1":"2",i,"")})),Ya=Ve.d.div(Oa||(Oa=Object(Ue.a)(["\n padding: 0 20px 20px 20px;\n"]))),$a=Ve.d.div(ga||(ga=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isHidden,n=e.notificationMessage,a=e.isError,r=e.theme.addDialog,i=r.notificationErrorBGColor,o=r.notificationSuccessBGColor;return Object(Ve.c)(ma||(ma=Object(Ue.a)(["\n height: 530px;\n\n ",";\n\n ",";\n\n @media (max-width: 500px) {\n height: 170px;\n }\n "])),n&&Object(Ve.c)(fa||(fa=Object(Ue.a)(["\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '","';\n display: grid;\n place-items: center;\n background: ",";\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n "])),n,a?i:o),t&&Object(Ve.c)(Ca||(Ca=Object(Ue.a)(["\n display: none;\n "]))))})),Xa=Ve.d.div(va||(va=Object(Ue.a)(["\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n"]))),qa=Object(Ve.c)(ya||(ya=Object(Ue.a)(["\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n"]))),Qa=Ve.d.div(wa||(wa=Object(Ue.a)(["\n ","\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n outline: none;\n\n ",";\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n"])),qa,(function(e){return e.isDragActive&&"border: 4px dashed green"})),er=Ve.d.div(Sa||(Sa=Object(Ue.a)(["\n ","\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n"])),qa),tr=Ve.d.div(Da||(Da=Object(Ue.a)(["\n position: relative;\n"]))),nr=Ve.d.div(ka||(ka=Object(Ue.a)(["\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n"]))),ar=Ve.d.div(Ta||(Ta=Object(Ue.a)(["\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n"]))),rr=Ve.d.div(Pa||(Pa=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.active,n=e.theme.addDialog.gradientStartColor;return Object(Ve.c)(Ma||(Ma=Object(Ue.a)(["\n background: ",";\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ",";\n "])),n,t&&"box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)")})),ir=Ve.d.div(La||(La=Object(Ue.a)(["\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n"]))),or=Ve.d.div(Ba||(Ba=Object(Ue.a)(["\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n"]))),cr=Ve.d.div(Aa||(Aa=Object(Ue.a)(["\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n"]))),sr=Ve.d.div(Ra||(Ra=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.addDialog.posterBGColor;return Object(Ve.c)(Fa||(Fa=Object(Ue.a)(["\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ","\n "])),t?Object(Ve.c)(Na||(Na=Object(Ue.a)(["\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(Ve.c)(za||(za=Object(Ue.a)(["\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n "])),n))})),lr=Object(Ve.d)(ne.a)(Ea||(Ea=Object(Ue.a)(["\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ",";\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n"])),(function(e){return!e.showbutton&&"display: none"})),dr=Ve.d.div(Ga||(Ga=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.showbutton,n=e.theme.addDialog,a=n.languageSwitchBGColor,r=n.languageSwitchFontColor;return Object(Ve.c)(Ia||(Ia=Object(Ue.a)(["\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ",";\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ",";\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ",";\n\n :hover {\n filter: brightness(1.1);\n }\n "])),a,r,!t&&"display: none")})),pr=Ve.d.div(Ha||(Ha=Object(Ue.a)(["\n border: 2px solid white;\n border-radius: 50%;\n height: 45px;\n width: 45px;\n position: relative;\n\n :before,\n :after {\n content: '';\n background: white;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n :before {\n width: 2px;\n height: 25px;\n }\n :after {\n width: 25px;\n height: 2px;\n }\n"]))),br=n(495),jr=n(463),ur=n(464);function hr(e){var t=e.setTitle,n=e.setPosterUrl,a=e.setIsPosterUrlCorrect,r=e.setIsUserInteractedWithPoster,i=e.setPosterList,o=e.isTorrentSourceCorrect,c=e.isHashAlreadyExists,s=e.title,l=e.parsedTitle,d=e.posterUrl,p=e.isPosterUrlCorrect,b=e.posterList,j=e.currentLang,u=e.posterSearchLanguage,h=e.setPosterSearchLanguage,x=e.posterSearch,O=e.removePoster,g=e.torrentSource,m=e.originalTorrentTitle,f=e.updateTitleFromSource,C=e.isCustomTitleEnabled,v=e.setIsCustomTitleEnabled,y=e.isEditMode,w=Object(ce.a)().t,S=Object(Y.a)().palette.primary.main,D=function(e){var n=e.target.value;return t(n)};return Object($.jsxs)(Ya,{children:[Object($.jsxs)($a,{isHidden:!o||c&&!y,children:[m?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(br.a,{value:m,margin:"dense",label:w("AddDialog.OriginalTorrentTitle"),type:"text",fullWidth:!0,disabled:C,InputProps:{readOnly:!0}}),Object($.jsx)(br.a,{onChange:D,onFocus:function(){return v(!0)},onBlur:function(e){return!e.target.value&&v(!1)},value:s,margin:"dense",label:w("AddDialog.CustomTorrentTitle"),type:"text",fullWidth:!0,helperText:w("AddDialog.CustomTorrentTitleHelperText"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:Object($.jsx)(be.a,{style:{padding:"1px"},onClick:function(){t(""),v(!C),f(),r(!1)},children:Object($.jsx)(ur.a,{style:{color:C?S:Object(Re.a)("#ccc",.5)}})})})}})]}):Object($.jsx)(br.a,{onChange:D,value:s,margin:"dense",label:w("AddDialog.TitleBlank"),type:"text",fullWidth:!0}),Object($.jsx)(br.a,{onChange:function(e){var t=e.target.value;n(t),Va(t).then(a),r(!!t),i()},value:d,margin:"dense",label:w("AddDialog.AddPosterLinkInput"),type:"url",fullWidth:!0}),Object($.jsxs)(ir,{children:[Object($.jsx)(sr,{poster:+p,children:p?Object($.jsx)("img",{src:d,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsx)(or,{children:null===b||void 0===b?void 0:b.filter((function(e){return e!==d})).slice(0,12).map((function(e){return Object($.jsx)(cr,{onClick:function(){return function(e){n(e),Va(e).then(a),r(!0)}(e)},children:Object($.jsx)("img",{src:e,alt:"poster"})},e)}))}),"en"!==j&&Object($.jsx)(dr,{onClick:function(){var e="en"===u?"ru":"en";h(e),x(C?s:m?l:s,e,{shouldRefreshMainPoster:!0})},showbutton:+p,color:"primary",variant:"contained",size:"small",children:"en"===u?"EN":"RU"}),Object($.jsx)(lr,{showbutton:+p,onClick:function(){O(),r(!0)},color:"primary",variant:"contained",size:"small",children:w("Clear")})]})]}),Object($.jsx)($a,{isError:g&&(!o||c),notificationMessage:g?o?c&&w("AddDialog.HashExists"):w("AddDialog.WrongTorrentSource"):w("AddDialog.AddTorrentSourceNotification"),isHidden:y||o&&!c})]})}var xr,Or,gr,mr,fr,Cr,vr,yr,wr,Sr,Dr=n(207),kr=n(465);function Tr(e){var t=e.setIsUserInteractedWithPoster,n=e.setSelectedFile,r=e.torrentSource,i=e.setTorrentSource,o=e.selectedFile,s=Object(ce.a)().t,l=Object(a.useState)(!1),d=Object(c.a)(l,2),p=d[0],b=d[1],j=Object(Dr.a)({onDrop:function(e){var a=Object(c.a)(e,1)[0];a&&(t(!1),n(a),i(a.name))},accept:".torrent"}),u=j.getRootProps,h=j.getInputProps,x=j.isDragActive;return Object($.jsxs)(Xa,{children:[Object($.jsx)(rr,{active:p,children:Object($.jsx)(br.a,{onChange:function(e){var t=e.target.value;return i(t)},value:r,margin:"dense",label:s("AddDialog.TorrentSourceLink"),helperText:s("AddDialog.TorrentSourceOptions"),type:"text",fullWidth:!0,onFocus:function(){return b(!0)},onBlur:function(){return b(!1)},inputProps:{autoComplete:"off"},disabled:!!o})}),o?Object($.jsx)(er,{children:Object($.jsxs)(tr,{children:[Object($.jsx)(te,{}),Object($.jsx)(nr,{onClick:function(){n(),i("")},children:Object($.jsx)(kr.a,{})})]})}):Object($.jsxs)(Qa,Object(P.a)(Object(P.a)({isDragActive:x},u()),{},{children:[Object($.jsx)("input",Object(P.a)({},h())),Object($.jsx)("div",{children:s("AddDialog.AppendFile.Or")}),Object($.jsxs)(ar,{children:[Object($.jsx)(q,{color:"primary"}),Object($.jsx)("div",{children:s("AddDialog.AppendFile.ClickOrDrag")})]})]}))]})}function Pr(e){var t=e.handleClose,n=e.hash,r=e.title,i=e.name,s=e.poster,l=Object(ce.a)().t,d=!!n,p=Object(a.useState)(n||""),b=Object(c.a)(p,2),j=b[0],u=b[1],h=Object(a.useState)(r||""),x=Object(c.a)(h,2),O=x[0],g=x[1],C=Object(a.useState)(""),v=Object(c.a)(C,2),y=v[0],w=v[1],S=Object(a.useState)(""),D=Object(c.a)(S,2),k=D[0],P=D[1],M=Object(a.useState)(s||""),L=Object(c.a)(M,2),B=L[0],A=L[1],R=Object(a.useState)(!1),F=Object(c.a)(R,2),N=F[0],z=F[1],E=Object(a.useState)(!1),G=Object(c.a)(E,2),I=G[0],H=G[1],U=Object(a.useState)(!1),V=Object(c.a)(U,2),W=V[0],_=V[1],Z=Object(a.useState)(),J=Object(c.a)(Z,2),Y=J[0],X=J[1],q=Object(a.useState)(d),Q=Object(c.a)(q,2),ee=Q[0],te=Q[1],ae=Vn(),re=Object(c.a)(ae,1)[0],se=Object(a.useState)(),le=Object(c.a)(se,2),de=le[0],pe=le[1],be=Object(a.useState)("ru"===re?"ru":"en"),je=Object(c.a)(be,2),ue=je[0],he=je[1],xe=Object(a.useState)(!1),Oe=Object(c.a)(xe,2),ge=Oe[0],me=Oe[1],fe=Object(a.useState)(!1),Ce=Object(c.a)(fe,2),ve=Ce[0],ye=Ce[1],we=Object(a.useState)(!1),Se=Object(c.a)(we,2),De=Se[0],ke=Se[1],Te=Object(a.useState)(),Pe=Object(c.a)(Te,2),Me=Pe[0],Le=Pe[1],Be=ua(t),Re=Object(o.useQuery)("torrents",K,{retry:1,refetchInterval:1e3}).data;Object(a.useEffect)((function(){ra.a.remote(de||j,(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.infoHash;return Le(n)}))}),[de,j]),Object(a.useEffect)((function(){if(Le){var e=Re.map((function(e){return e.hash}));_(e.includes(Me))}}),[Me,Re]),Object(a.useEffect)((function(){if(ge){Re.map((function(e){return e.hash})).includes(Me)&&t();null!==j.match(/^(http(s?)):\/\/.*/i)&&t()}}),[ge,Re,j,Me,t]);var Fe=Object(Ae.a)("@media (max-width:930px)"),Ne=Object(a.useCallback)((function(){var e,t;e=de||j,t=function(e){var t=e.parsedTitle,n=e.originalName;n&&(ye(!0),g(""),ke(!1),w(n),P(t))},ra.a.remote(e,(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.name,r=n.files;if(!a||e)return t({parsedTitle:null,originalName:null});var i=ie.a.parse(a).title,o=r?ie.a.parse(r[0].name).title:null,c=i;o&&(c=i.length2&&void 0!==arguments[2]?arguments[2]:{},a=n.shouldRefreshMainPoster,r=void 0!==a&&a;if(!e)return X(),void ze();Ua(e,t).then((function(e){if(e){if(X(e),!r&&ee)return;var t=Object(c.a)(e,1)[0];Va(t).then((function(e){e?(z(!0),A(t)):ze()}))}else{if(X(),ee)return;ze()}}))}}),[ee]),Ge=Object(a.useMemo)((function(){return Un()(Ee,700)}),[Ee]),Ie=Wn(j);Object(a.useEffect)((function(){var e;if(!(null!==(e=j).match(_a)||null!==e.match(Wa)||null!==e.match(Za)||null!==e.match(Ka)))return H(!1);H(!0),j!==Ie&&Ne()}),[Ie,de,j,Ne]);var He=Wn(O);Object(a.useEffect)((function(){(O!==He||k)&&(ve?(Ee(O||k,ue),ye(!1)):O?Ge(O,ue):(Ge.cancel(),k?Ee(k,ue):!ee&&ze()))}),[O,k,He,Ge,Ee,ue,ve,ee]);return Object($.jsxs)(ba,{open:!0,onClose:t,fullScreen:Fe,fullWidth:!0,maxWidth:"md",ref:Be,children:[Object($.jsx)(ja,{children:l(d?"EditTorrent":"AddNewTorrent")}),Object($.jsxs)(Ja,{isEditMode:d,children:[!d&&Object($.jsx)(Tr,{setIsUserInteractedWithPoster:te,selectedFile:de,setSelectedFile:pe,torrentSource:j,setTorrentSource:u}),Object($.jsx)(hr,{originalTorrentTitle:y,setTitle:g,setPosterUrl:A,setIsPosterUrlCorrect:z,setIsUserInteractedWithPoster:te,setPosterList:X,isTorrentSourceCorrect:I,isHashAlreadyExists:W,title:O,parsedTitle:k,posterUrl:B,isPosterUrlCorrect:N,posterList:Y,currentLang:re,posterSearchLanguage:ue,setPosterSearchLanguage:he,posterSearch:Ee,removePoster:ze,updateTitleFromSource:Ne,torrentSource:j,isCustomTitleEnabled:De,setIsCustomTitleEnabled:ke,isEditMode:d})]}),Object($.jsxs)(oa,{children:[Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"outlined",children:l("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",style:{minWidth:"110px"},disabled:!j||W&&!d||!I,onClick:function(){if(me(!0),d)T.a.post(f(),{action:"set",hash:n,title:O||i,poster:B}).finally(t);else if(de){var e=new FormData;e.append("save","true"),e.append("file",de),O&&e.append("title",O),B&&e.append("poster",B),T.a.post("".concat(m,"/torrent/upload"),e).catch(t)}else T.a.post(f(),{action:"add",link:j,title:O,poster:B,save_to_db:!0}).catch(t)},color:"secondary",children:ge?Object($.jsx)(oe.a,{style:{color:"white"},size:20}):l(d?"Save":"Add")})]})]})}var Mr,Lr,Br,Ar,Rr,Fr,Nr,zr,Er,Gr,Ir,Hr,Ur,Vr,Wr,_r,Zr,Kr,Jr,Yr,$r=Ve.d.div(xr||(xr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard.cardPrimaryColor;return Object(Ve.c)(Or||(Or=Object(Ue.a)(["\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ",";\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n "])),t)})),Xr=Ve.d.div(gr||(gr=Object(Ue.a)(["\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n cursor: pointer;\n transition: 0.2s;\n position: relative;\n\n :hover {\n filter: brightness(0.7);\n }\n\n ",";\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n"])),(function(e){var t=e.isPoster,n=e.theme.torrentCard,a=n.cardSecondaryColor,r=n.accentCardColor;return t?Object(Ve.c)(mr||(mr=Object(Ue.a)(["\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n "]))):Object(Ve.c)(fr||(fr=Object(Ue.a)(["\n display: grid;\n place-items: center;\n background: ",";\n border: 1px solid ",";\n\n svg {\n transform: translateY(-3px);\n }\n "])),a,r)})),qr=Ve.d.div(Cr||(Cr=Object(Ue.a)(["\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n"]))),Qr=Ve.d.div(vr||(vr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.cardSecondaryColor,a=t.accentCardColor;return Object(Ve.c)(yr||(yr=Object(Ue.a)(["\n grid-area: description;\n background: ",";\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ",";\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n "])),n,a)})),ei=Ve.d.button(wr||(wr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.buttonBGColor,a=t.accentCardColor;return Object(Ve.c)(Sr||(Sr=Object(Ue.a)(["\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ",";\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ",";\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n "])),n,a)})),ti=Object(a.forwardRef)((function(e,t){return Object($.jsx)(En.a,Object(P.a)({direction:"up",ref:t},e))})),ni=function(e){var t=e.torrent,n=Object(ce.a)().t,r=Object(a.useState)(!1),i=Object(c.a)(r,2),o=i[0],s=i[1],l=Object(a.useState)(!1),p=Object(c.a)(l,2),b=p[0],j=p[1],u=Object(Y.a)(),h=Object(Ae.a)(u.breakpoints.down("md")),x=function(){return s(!1)},O=function(){return j(!1)},g=t.title,m=t.name,C=t.poster,v=t.torrent_size,y=t.download_speed,w=t.hash,D=function(){var e=function(e){var t,n;return(null===(t=ie.a.parse(g||""))||void 0===t?void 0:t[e])||(null===(n=ie.a.parse(m||""))||void 0===n?void 0:n[e])},t=[],n=Z(e("title")),a=e("year"),r=e("resolution");return n&&t.push(n),a&&t.push("(".concat(a,")")),r&&t.push("[".concat(r,"]")),{parsedTitle:n=t.join(" ")}}(),k=D.parsedTitle,P=Object(a.useState)(!1),A=Object(c.a)(P,2),R=A[0],F=A[1],N="".concat(S(),"/").concat(encodeURIComponent(k||"file"),".m3u?link=").concat(w,"&m3u"),z=ua(x);return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)($r,{children:[Object($.jsx)(Xr,{isPoster:C,onClick:function(){return F(!0)},children:C?Object($.jsx)("img",{src:C,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsxs)(qr,{children:[Object($.jsxs)(ei,{onClick:function(){return s(!0)},children:[Object($.jsx)(M.a,{}),Object($.jsx)("span",{children:n("Details")})]}),Object($.jsxs)(ei,{onClick:function(){window.open(N,"_blank")},children:[Object($.jsx)(L.a,{}),Object($.jsx)("span",{children:n("Playlist")})]}),Object($.jsxs)(ei,{onClick:function(){return T.a.post(f(),{action:"drop",hash:w})},children:[Object($.jsx)(d.a,{}),Object($.jsx)("span",{children:n("Drop")})]}),Object($.jsxs)(ei,{onClick:function(){return j(!0)},children:[Object($.jsx)(B.a,{}),Object($.jsx)("span",{children:n("Delete")})]})]}),Object($.jsxs)(Qr,{children:[Object($.jsxs)("div",{className:"description-title-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Name")}),Object($.jsx)("div",{className:"description-torrent-title",children:k})]}),Object($.jsxs)("div",{className:"description-statistics-wrapper",children:[Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Size")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:v>0&&V(v)})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Speed")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:y>0?W(y):"---"})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Peers")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:_(t)||"---"})]})]})]})]}),Object($.jsx)(ba,{open:o,onClose:x,fullScreen:h,fullWidth:!0,maxWidth:"xl",TransitionComponent:ti,ref:z,children:Object($.jsx)(Nn,{closeDialog:x,torrent:t})}),Object($.jsxs)(zn.a,{open:b,onClose:O,children:[Object($.jsx)(Gn.a,{children:n("DeleteTorrent?")}),Object($.jsxs)(In.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:O,color:"secondary",children:n("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){T.a.post(f(),{action:"rem",hash:w}),O()},color:"secondary",autoFocus:!0,children:n("OK")})]})]}),R&&Object($.jsx)(Pr,{hash:w,title:g,name:m,poster:C,handleClose:function(){return F(!1)}})]})},ai=Object(a.memo)(ni),ri=Ve.d.div(Mr||(Mr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.app.appSecondaryColor;return Object(Ve.c)(Lr||(Lr=Object(Ue.a)(["\n height: 100%;\n background: ",";\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n\n ","\n "])),Object(Re.a)(t,.8),sa(Object(Ve.c)(Br||(Br=Object(Ue.a)(["\n grid-template-columns: 0 1fr;\n grid-template-rows: ","px 1fr ","px;\n height: 100vh;\n "])),la,la)))})),ii=Ve.d.div(Ar||(Ar=Object(Ue.a)(["\n display: grid;\n place-items: center;\n\n ","\n"])),sa(Object(Ve.c)(Rr||(Rr=Object(Ue.a)(["\n height: 100vh;\n width: 100vw;\n "]))))),oi=Ve.d.div(Fr||(Fr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(Ve.c)(Nr||(Nr=Object(Ue.a)(["\n background: ",";\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n\n ","\n "])),t,sa(Object(Ve.c)(zr||(zr=Object(Ue.a)(["\n grid-template-columns: max-content 1fr;\n align-items: end;\n padding: 7px 16px;\n position: fixed;\n width: 100%;\n height: ","px;\n "])),la)))})),ci=Ve.d.div(Er||(Er=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isDrawerOpen,n=e.theme.app,a=n.appSecondaryColor,r=n.sidebarBGColor,i=n.sidebarFillColor;return Object(Ve.c)(Gr||(Gr=Object(Ue.a)(["\n grid-area: side;\n width: ",";\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ",";\n background: ",";\n color: ",";\n white-space: nowrap;\n\n svg {\n fill: ",";\n }\n\n ","\n "])),t?"400%":"100%",Object(Re.a)(a,.12),r,i,i,sa(Object(Ve.c)(Ir||(Ir=Object(Ue.a)(["\n display: none;\n "])))))})),si=Ve.d.div(Hr||(Hr=Object(Ue.a)(["\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n\n ","\n"])),sa(Object(Ve.c)(Ur||(Ur=Object(Ue.a)(["\n height: calc(100vh - ","px);\n padding-bottom: 105px;\n "])),la))),li=Ve.d.div(Vr||(Vr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.app.headerToggleColor;return Object(Ve.c)(Wr||(Wr=Object(Ue.a)(["\n cursor: pointer;\n border-radius: 50%;\n background: ",";\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ",";\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n "])),t,Object(Re.a)(t,.7))})),di=Object(Ve.d)(be.a)(_r||(_r=Object(Ue.a)(["\n margin-right: 6px;\n\n ","\n"])),sa(Object(Ve.c)(Zr||(Zr=Object(Ue.a)(["\n display: none;\n "]))))),pi=Ve.d.div(Kr||(Kr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isButton,n=e.theme.addDialog,a=n.notificationSuccessBGColor,r=n.languageSwitchBGColor;return Object(Ve.c)(Jr||(Jr=Object(Ue.a)(["\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ","\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n "])),t&&Object(Ve.c)(Yr||(Yr=Object(Ue.a)(["\n background: ",";\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: ",";\n }\n "])),a,r))}));function bi(){var e=Object(ce.a)().t,t=Object(Y.a)().palette.primary.main;return Object($.jsxs)(pi,{children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/wrprwmwt.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(t),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("Offline")})]})}function ji(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(Y.a)().palette.primary.main;return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(pi,{onClick:function(){return i(!0)},isButton:!0,children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/bbnkwdur.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(o),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("NoTorrentsAdded")})]}),r&&Object($.jsx)(Pr,{handleClose:function(){return i(!1)}})]})}function ui(e){var t=e.isOffline,n=e.isLoading,a=e.torrents;return n||t||!a.length?Object($.jsx)(ii,{children:t?Object($.jsx)(bi,{}):n?Object($.jsx)(oe.a,{color:"secondary"}):!a.length&&Object($.jsx)(ji,{})}):Object($.jsx)(si,{children:a.map((function(e){return Object($.jsx)(ai,{torrent:e},e.hash)}))})}var hi,xi=n(493),Oi=n(202),gi=n.n(Oi),mi=n(473),fi=n(462);function Ci(e){var t=e.onClose,n=Object(ce.a)().t,a=ua(t);return Object($.jsxs)(ba,{open:!0,onClose:t,"aria-labelledby":"form-dialog-title",fullWidth:!0,maxWidth:"xs",ref:a,children:[Object($.jsx)(Gn.a,{id:"form-dialog-title",children:n("Donate")}),Object($.jsx)(mi.a,{children:Object($.jsxs)(fi.a,{children:[Object($.jsx)(ca.a,{children:Object($.jsxs)(ae.a,{variant:"outlined",color:"primary","aria-label":"contained primary button group",children:[Object($.jsx)(ne.a,{onClick:function(){return window.open("https://boosty.to/yourok","_blank")},children:"Boosty"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://yoomoney.ru/to/410013733697114","_blank")},children:"IO.Money"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://qiwi.com/n/YOUROK85","_blank")},children:"QIWI"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://www.paypal.com/paypalme/yourok","_blank")},children:"PayPal"})]})},"DonateLinks"),Object($.jsx)(ca.a,{children:Object($.jsx)("div",{dangerouslySetInnerHTML:{__html:''}})},"DonateForm")]})}),Object($.jsx)(In.a,{children:Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"contained",children:"Ok"})})]})}var vi=Object(Ve.d)(xi.a)(hi||(hi=Object(Ue.a)(["\n ",";\n"])),sa("margin-bottom: 90px"));function yi(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!0),s=Object(c.a)(o,2),l=s[0],d=s[1],p=function(){d(!1),localStorage.setItem("snackbarIsClosed",!0)};return Object($.jsxs)($.Fragment,{children:[r&&Object($.jsx)(Ci,{onClose:function(){return i(!1)}}),Object($.jsx)(vi,{anchorOrigin:{vertical:"bottom",horizontal:"center"},open:l,onClose:p,message:e("Donate?"),action:Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(ne.a,{style:{marginRight:"10px"},color:"secondary",size:"small",onClick:function(){i(!0),p()},children:[Object($.jsx)(gi.a,{style:{marginRight:"10px"},fontSize:"small"}),e("Support")]}),Object($.jsx)(be.a,{size:"small","aria-label":"close",color:"inherit",onClick:p,children:Object($.jsx)(ue.a,{fontSize:"small"})})]})})]})}var wi,Si,Di=n(483),ki=Object(Ve.b)(wi||(wi=Object(Ue.a)(['\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: "Open Sans", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n -webkit-tap-highlight-color: transparent;\n\n\n ','\n }\n\n button {\n font-family: "Open Sans", sans-serif;\n letter-spacing: -0.1px;\n }\n'])),sa(Object(Ve.c)(Si||(Si=Object(Ue.a)(["\n height: 100vh;\n "]))))),Ti=n(481),Pi=n(474),Mi=n(475),Li=n(482),Bi=n(203),Ai=n.n(Bi);function Ri(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1];return Object($.jsxs)("div",{children:[Object($.jsx)(pa,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:J?Object($.jsx)(pr,{}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(Ai.a,{})}),Object($.jsx)(Mi.a,{primary:r("AddFromLink")})]})}),s&&Object($.jsx)(Pr,{handleClose:function(){return l(!1)}})]})}var Fi,Ni,zi,Ei,Gi,Ii,Hi,Ui,Vi,Wi,_i,Zi,Ki,Ji,Yi,$i,Xi,qi,Qi,eo,to,no,ao=n(131),ro=n.n(ao),io=n(490),oo=n(478),co=n(204),so=n.n(co),lo="#b3dfc9",po=Ne.light.primary,bo=Object(Ve.d)(ja)(Fi||(Fi=Object(Ue.a)(["\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n"]))),jo=Ve.d.div(Ni||(Ni=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.settingsDialog.footerBG;return Object(Ve.c)(zi||(zi=Object(Ue.a)(["\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ",";\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n "])),t)})),uo=(Ve.d.div(Ei||(Ei=Object(Ue.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),Ve.d.div(Gi||(Gi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isLoading,n=e.theme.settingsDialog.contentBG;return Object(Ve.c)(Ii||(Ii=Object(Ue.a)(["\n background: ",";\n overflow: auto;\n flex: 1;\n\n ","\n "])),n,t&&Object(Ve.c)(Hi||(Hi=Object(Ue.a)(["\n min-height: 500px;\n display: grid;\n place-items: center;\n "]))))}))),ho=Ve.d.div(Ui||(Ui=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.color;return Object(Ve.c)(Vi||(Vi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ",";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n "])),t)})),xo=Ve.d.div(Wi||(Wi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n"]))),Oo=Ve.d.div(_i||(_i=Object(Ue.a)(["\n padding: 20px;\n"]))),go=Ve.d.div(Zi||(Zi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.small,n=e.selected;return Object(Ve.c)(Ki||(Ki=Object(Ue.a)(["\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ","\n\n ","\n "])),!n&&Object(Ve.c)(Ji||(Ji=Object(Ue.a)(["\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n "]))),t?Object(Ve.c)(Yi||(Yi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n "]))):Object(Ve.c)($i||($i=Object(Ue.a)(["\n display: grid;\n place-items: center;\n gap: 10px;\n "]))))})),mo=Ve.d.div(Xi||(Xi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.selected,n=e.small;return Object(Ve.c)(qi||(qi=Object(Ue.a)(["\n width: ",";\n height: ",";\n border-radius: 50%;\n background: ",";\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ",";\n height: ",";\n }\n "])),n?"60px":"150px",n?"60px":"150px",t?"#323637":"#dee3e5",n?"50px":"90px",n?"50px":"90px")})),fo=Ve.d.div(Qi||(Qi=Object(Ue.a)(["\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n"]))),Co=Ve.d.div(eo||(eo=Object(Ue.a)(["\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n"]))),vo=Ve.d.div.attrs((function(e){var t=e.value;return{style:{background:"linear-gradient(to right, ".concat(lo," 0%, ").concat(lo," ").concat(t,"%, ").concat(po," ").concat(t,"%, ").concat(po," 100%)")}}}))(to||(to=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.label,n=e.preloadCachePercentage;return Object(Ve.c)(no||(no=Object(Ue.a)(["\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ","%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n "])),t,n)})),yo={CacheSize:64,ReaderReadAHead:95,UseDisk:!1,UploadRateLimit:0,TorrentsSavePath:"",ConnectionsLimit:25,DisableDHT:!1,DisablePEX:!1,DisableTCP:!1,DisableUPNP:!1,DisableUTP:!1,DisableUpload:!1,DownloadRateLimit:0,EnableDebug:!1,EnableIPv6:!1,FriendlyName:"",ForceEncrypt:!1,PeersListenPort:0,PreloadCache:50,RemoveCacheOnDrop:!1,RetrackersMode:1,TorrentDisconnectTimeout:30},wo=n(5),So=["children","value","index"],Do=function(e){return{id:"full-width-tab-".concat(e),"aria-controls":"full-width-tabpanel-".concat(e)}},ko=function(e){var t=e.children,n=e.value,a=e.index,r=Object(wo.a)(e,So);return Object($.jsx)("div",Object(P.a)(Object(P.a)({role:"tabpanel",hidden:n!==a,id:"full-width-tabpanel-".concat(a)},r),{},{children:n===a&&Object($.jsx)($.Fragment,{children:t})}))},To=n(477),Po=n(476),Mo=n(499),Lo=n(497);function Bo(e){var t=e.isProMode,n=e.title,a=e.value,r=e.setValue,i=e.sliderMin,o=e.sliderMax,c=e.inputMin,s=e.inputMax,l=e.step,d=void 0===l?1:l,p=e.onBlurCallback;return Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:n}),Object($.jsxs)(Po.a,{container:!0,spacing:2,alignItems:"center",children:[Object($.jsx)(Po.a,{item:!0,xs:!0,children:Object($.jsx)(Mo.a,{min:i,max:o,value:a,onChange:function(e,t){return r(t)},step:d,color:"secondary"})}),t&&Object($.jsx)(Po.a,{item:!0,children:Object($.jsx)(Lo.a,{value:a,margin:"dense",onChange:function(e){var t=e.target.value;return r(""===t?"":Number(t))},onBlur:function(e){var t=e.target.value;return ts?r(s):void(p&&p(t))},style:{width:"91px",marginTop:"-6px"},inputProps:{step:d,min:c,max:s,type:"number"}})})]})]})}var Ao=function(e){var t=e.style,n=Object(ce.a)().t;return Object($.jsxs)(Co,{style:t,children:[n("SettingsDialog.CacheStorageLocation"),Object($.jsx)("small",{children:n("SettingsDialog.UseDiskDesc")})]})};function Ro(e){var t=e.settings,n=e.inputForm,a=e.cachePercentage,r=e.preloadCachePercentage,i=e.cacheSize,o=e.isProMode,c=e.setCacheSize,s=e.setCachePercentage,l=e.setPreloadCachePercentage,d=e.updateSettings,p=Object(ce.a)().t,b=t||{},j=b.UseDisk,u=b.TorrentsSavePath,h=b.RemoveCacheOnDrop,x=Math.round(i/100*r);return Object($.jsxs)(xo,{children:[Object($.jsxs)("div",{children:[Object($.jsx)(Co,{children:p("SettingsDialog.CacheSettings")}),Object($.jsx)(vo,{value:100-a,label:"".concat(p("Cache")," ").concat(i," ").concat(p("MB")),preloadCachePercentage:r}),Object($.jsxs)(ho,{color:lo,children:[Object($.jsxs)("div",{children:[100-a,"% (",Math.round(i/100*(100-a))," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheBeforeReaderDesc")})]}),Object($.jsxs)(ho,{color:po,children:[Object($.jsxs)("div",{children:[a,"% (",Math.round(i/100*a)," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheAfterReaderDesc")})]}),Object($.jsx)("br",{}),Object($.jsx)(Bo,{isProMode:o,title:p("SettingsDialog.CacheSize"),value:i,setValue:c,sliderMin:32,sliderMax:1024,inputMin:32,inputMax:999999,step:4,onBlurCallback:function(e){return c(4*Math.round(e/4))}}),Object($.jsx)(Bo,{isProMode:o,title:p("SettingsDialog.ReaderReadAHead"),value:a,setValue:s,sliderMin:40,sliderMax:95,inputMin:0,inputMax:100}),Object($.jsx)(Bo,{isProMode:o,title:"".concat(p("SettingsDialog.PreloadCache")," - ").concat(r,"% (").concat(x," ").concat(p("MB"),")"),value:r,setValue:l,sliderMin:0,sliderMax:100,inputMin:0,inputMax:100})]}),j?Object($.jsxs)("div",{children:[Object($.jsx)(Ao,{}),Object($.jsxs)("div",{style:{display:"grid",gridAutoFlow:"column"},children:[Object($.jsxs)(go,{small:!0,onClick:function(){return d({UseDisk:!1})},children:[Object($.jsx)(mo,{small:!0,children:Object($.jsx)(ee,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(go,{small:!0,selected:!0,children:[Object($.jsx)(mo,{small:!0,selected:!0,children:Object($.jsx)(Q,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:h,onChange:n,id:"RemoveCacheOnDrop",color:"secondary"}),label:p("SettingsDialog.RemoveCacheOnDrop"),labelPlacement:"start"}),Object($.jsx)("div",{children:Object($.jsx)("small",{children:p("SettingsDialog.RemoveCacheOnDropDesc")})}),Object($.jsx)("br",{}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"TorrentsSavePath",label:p("SettingsDialog.TorrentsSavePath"),value:u,type:"url",variant:"outlined",fullWidth:!0})]}):Object($.jsxs)(fo,{children:[Object($.jsx)(Ao,{style:{placeSelf:"start",gridArea:"label"}}),Object($.jsxs)(go,{selected:!0,children:[Object($.jsx)(mo,{selected:!0,children:Object($.jsx)(ee,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(go,{onClick:function(){return d({UseDisk:!0})},children:[Object($.jsx)(mo,{children:Object($.jsx)(Q,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]})]})}var Fo=n(498),No=n(489);function zo(e){var t=e.settings,n=e.inputForm,a=Object(ce.a)().t,r=t||{},i=r.RetrackersMode,o=r.TorrentDisconnectTimeout,c=r.EnableDebug,s=r.EnableDLNA,l=r.EnableIPv6,d=r.FriendlyName,p=r.ForceEncrypt,b=r.DisableTCP,j=r.DisableUTP,u=r.DisableUPNP,h=r.DisableDHT,x=r.DisablePEX,O=r.DisableUpload,g=r.DownloadRateLimit,m=r.UploadRateLimit,f=r.ConnectionsLimit,C=r.PeersListenPort;return Object($.jsxs)(Oo,{children:[Object($.jsx)(Co,{children:a("SettingsDialog.AdditionalSettings")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:l,onChange:n,id:"EnableIPv6",color:"secondary"}),label:"IPv6",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!b,onChange:n,id:"DisableTCP",color:"secondary"}),label:"TCP (Transmission Control Protocol)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!j,onChange:n,id:"DisableUTP",color:"secondary"}),label:"\u03bcTP (Micro Transport Protocol)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!x,onChange:n,id:"DisablePEX",color:"secondary"}),label:"PEX (Peer Exchange)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:p,onChange:n,id:"ForceEncrypt",color:"secondary"}),label:a("SettingsDialog.ForceEncrypt"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"TorrentDisconnectTimeout",label:a("SettingsDialog.TorrentDisconnectTimeout"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:a("Seconds")})},value:o,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"ConnectionsLimit",label:a("SettingsDialog.ConnectionsLimit"),helperText:a("SettingsDialog.ConnectionsLimitHint"),value:f,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!h,onChange:n,id:"DisableDHT",color:"secondary"}),label:a("SettingsDialog.DHT"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"DownloadRateLimit",label:a("SettingsDialog.DownloadRateLimit"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:a("Kilobytes")})},value:g,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!O,onChange:n,id:"DisableUpload",color:"secondary"}),label:a("SettingsDialog.Upload"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"UploadRateLimit",label:a("SettingsDialog.UploadRateLimit"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:a("Kilobytes")})},value:m,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"PeersListenPort",label:a("SettingsDialog.PeersListenPort"),helperText:a("SettingsDialog.PeersListenPortHint"),value:C,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!u,onChange:n,id:"DisableUPNP",color:"secondary"}),label:"UPnP (Universal Plug and Play)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:s,onChange:n,id:"EnableDLNA",color:"secondary"}),label:a("SettingsDialog.DLNA"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"FriendlyName",label:a("SettingsDialog.FriendlyName"),helperText:a("SettingsDialog.FriendlyNameHint"),value:d,type:"text",variant:"outlined",fullWidth:!0}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:c,onChange:n,id:"EnableDebug",color:"secondary"}),label:a("SettingsDialog.EnableDebug"),labelPlacement:"start"}),Object($.jsx)("br",{}),Object($.jsx)(Fo.a,{htmlFor:"RetrackersMode",children:a("SettingsDialog.RetrackersMode")}),Object($.jsxs)(No.a,{onChange:n,margin:"normal",type:"number",native:!0,id:"RetrackersMode",value:i,variant:"outlined",children:[Object($.jsx)("option",{value:0,children:a("SettingsDialog.DontAddRetrackers")}),Object($.jsx)("option",{value:1,children:a("SettingsDialog.AddRetrackers")}),Object($.jsx)("option",{value:2,children:a("SettingsDialog.RemoveRetrackers")}),Object($.jsx)("option",{value:3,children:a("SettingsDialog.ReplaceRetrackers")})]}),Object($.jsx)("br",{})]})}function Eo(e){var t=e.isVlcUsed,n=e.setIsVlcUsed,a=Object(ce.a)().t;return Object($.jsxs)(Oo,{children:[Object($.jsx)(Co,{children:a("SettingsDialog.MobileAppSettings")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:t,onChange:function(){return n((function(e){return!e}))},color:"secondary"}),label:a("SettingsDialog.UseVLC"),labelPlacement:"start"})]})}function Go(e){var t,n=e.handleClose,r=Object(ce.a)().t,i=Object(Ae.a)("@media (max-width:930px)"),o=Object(Y.a)().direction,s=Object(a.useState)(),l=Object(c.a)(s,2),d=l[0],p=l[1],b=Object(a.useState)(0),j=Object(c.a)(b,2),u=j[0],h=j[1],x=Object(a.useState)(32),O=Object(c.a)(x,2),g=O[0],m=O[1],f=Object(a.useState)(40),C=Object(c.a)(f,2),y=C[0],w=C[1],S=Object(a.useState)(0),D=Object(c.a)(S,2),k=D[0],M=D[1],L=Object(a.useState)(JSON.parse(localStorage.getItem("isProMode"))||!1),B=Object(c.a)(L,2),A=B[0],R=B[1],F=Object(a.useState)(null!==(t=JSON.parse(localStorage.getItem("isVlcUsed")))&&void 0!==t&&t),N=Object(c.a)(F,2),z=N[0],E=N[1];Object(a.useEffect)((function(){T.a.post(v(),{action:"get"}).then((function(e){var t=e.data;p(Object(P.a)(Object(P.a)({},t),{},{CacheSize:t.CacheSize/1048576}))}))}),[]);var G=ua(n),I=function(e){var t=e.target,n=t.type,a=t.value,r=t.checked,i=t.id,o=JSON.parse(JSON.stringify(d));"number"===n||"select-one"===n?o[i]=Number(a):"checkbox"===n?o[i]="DisableTCP"===i||"DisableUTP"===i||"DisableUPNP"===i||"DisableDHT"===i||"DisablePEX"===i||"DisableUpload"===i?Boolean(!r):Boolean(r):"url"!==n&&"text"!==n||(o[i]=a),p(o)},H=d||{},U=H.CacheSize,V=H.ReaderReadAHead,W=H.PreloadCache;Object(a.useEffect)((function(){isNaN(U)||isNaN(V)||isNaN(W)||(m(U),w(V),M(W))}),[U,V,W]);var _=function(e){return p(Object(P.a)(Object(P.a)({},d),e))};return Object($.jsxs)(ba,{open:!0,onClose:n,fullScreen:i,fullWidth:!0,maxWidth:"md",ref:G,children:[Object($.jsxs)(bo,{children:[Object($.jsx)("div",{children:r("SettingsDialog.Settings")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(Ut.a,{checked:A,onChange:function(e){var t=e.target.checked;R(t),localStorage.setItem("isProMode",t),t||h(0)},style:{color:"white"}}),label:r("SettingsDialog.ProMode")})]}),Object($.jsx)(de.a,{position:"static",color:"default",children:Object($.jsxs)(io.a,{value:u,onChange:function(e,t){return h(t)},indicatorColor:"secondary",textColor:"secondary",variant:"fullWidth",children:[Object($.jsx)(oo.a,Object(P.a)({label:r("SettingsDialog.Tabs.Main")},Do(0))),Object($.jsx)(oo.a,Object(P.a)({disabled:!A,label:Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:r("SettingsDialog.Tabs.Additional")}),!A&&Object($.jsx)("div",{style:{fontSize:"9px"},children:r("SettingsDialog.Tabs.AdditionalDisabled")})]})},Do(1))),J&&Object($.jsx)(oo.a,Object(P.a)({label:r("SettingsDialog.Tabs.App")},Do(2)))]})}),Object($.jsx)(uo,{isLoading:!d,children:d?Object($.jsx)($.Fragment,{children:Object($.jsxs)(so.a,{axis:"rtl"===o?"x-reverse":"x",index:u,onChangeIndex:function(e){return h(e)},children:[Object($.jsx)(ko,{value:u,index:0,dir:o,children:Object($.jsx)(Ro,{settings:d,inputForm:I,cachePercentage:y,preloadCachePercentage:k,cacheSize:g,isProMode:A,setCacheSize:m,setCachePercentage:w,setPreloadCachePercentage:M,updateSettings:_})}),Object($.jsx)(ko,{value:u,index:1,dir:o,children:Object($.jsx)(zo,{settings:d,inputForm:I})}),J&&Object($.jsx)(ko,{value:u,index:2,dir:o,children:Object($.jsx)(Eo,{isVlcUsed:z,setIsVlcUsed:E})})]})}):Object($.jsx)(oe.a,{color:"secondary"})}),Object($.jsxs)(jo,{children:[Object($.jsx)(ne.a,{onClick:n,color:"secondary",variant:"outlined",children:r("Cancel")}),Object($.jsx)(ne.a,{onClick:function(){m(yo.CacheSize),w(yo.ReaderReadAHead),M(yo.PreloadCache),_(yo)},color:"secondary",variant:"outlined",children:r("SettingsDialog.ResetToDefault")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){n();var e=JSON.parse(JSON.stringify(d));e.CacheSize=1024*g*1024,e.ReaderReadAHead=y,e.PreloadCache=k,T.a.post(v(),{action:"set",sets:e}),localStorage.setItem("isVlcUsed",z)},color:"secondary",children:r("Save")})]})]})}function Io(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1];return Object($.jsxs)("div",{children:[Object($.jsx)(pa,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:J?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(ro.a,{}),Object($.jsx)("div",{children:r("SettingsDialog.Settings")})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(ro.a,{})}),Object($.jsx)(Mi.a,{primary:r("SettingsDialog.Settings")})]})}),s&&Object($.jsx)(Go,{handleClose:function(){return l(!1)}})]})}var Ho=n(205),Uo=n.n(Ho);function Vo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1],d=function(){return l(!1)};return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(ca.a,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(Uo.a,{})}),Object($.jsx)(Mi.a,{primary:r("RemoveAll")})]},r("RemoveAll")),Object($.jsxs)(zn.a,{open:s,onClose:d,children:[Object($.jsx)(Gn.a,{children:r("DeleteTorrents?")}),Object($.jsxs)(In.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch(f(),{method:"post",body:JSON.stringify({action:"list"}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(e){e.forEach((function(e){fetch(f(),{method:"post",body:JSON.stringify({action:"rem",hash:e.hash}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}})}))})),d()},color:"secondary",autoFocus:!0,children:r("OK")})]})]})]})}var Wo,_o,Zo,Ko,Jo,Yo,$o,Xo,qo,Qo,ec,tc=n(132),nc=n.n(tc),ac=n(479),rc=Ve.d.div(Wo||(Wo=Object(Ue.a)(["\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n"]))),ic=Ve.d.section(_o||(_o=Object(Ue.a)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n\n ","\n"])),sa(Object(Ve.c)(Zo||(Zo=Object(Ue.a)(["\n padding-top: 30px;\n "]))))),oc=Ve.d.section(Ko||(Ko=Object(Ue.a)(["\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n"]))),cc=Ve.d.section(Jo||(Jo=Object(Ue.a)(["\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n"]))),sc=Ve.d.div(Yo||(Yo=Object(Ue.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n"]))),lc=Ve.d.a($o||($o=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isLink;return Object(Ve.c)(Xo||(Xo=Object(Ue.a)(["\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ","\n "])),t?Object(Ve.c)(qo||(qo=Object(Ue.a)(["\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n "]))):Object(Ve.c)(Qo||(Qo=Object(Ue.a)(["\n cursor: default;\n "]))))})),dc=Ve.d.div(ec||(ec=Object(Ue.a)(["\n display: grid;\n margin-right: 10px;\n"])));function pc(e){var t=e.name,n=e.link;return Object($.jsxs)(lc,{isLink:!!n,href:n,target:"_blank",rel:"noreferrer",children:[n&&Object($.jsx)(dc,{children:Object($.jsx)(ac.a,{})}),Object($.jsx)("div",{children:t})]})}function bc(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),s=Object(c.a)(o,2),l=s[0],d=s[1],p=Object(Ae.a)("@media (max-width:930px)");Object(a.useEffect)((function(){T.a.get(w()).then((function(e){var t=e.data;return d(t)}))}),[]);var b=function(){return i(!1)},j=ua(b);return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(pa,{button:!0,onClick:function(){return i(!0)},children:J?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(nc.a,{}),Object($.jsx)("div",{children:e("Details")})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(nc.a,{})}),Object($.jsx)(Mi.a,{primary:e("About")})]})},"Settings"),Object($.jsx)(ba,{open:r,onClose:b,"aria-labelledby":"form-dialog-title",fullScreen:p,maxWidth:"xl",ref:j,children:Object($.jsxs)(rc,{children:[Object($.jsxs)(ic,{children:[Object($.jsx)("div",{children:e("About")}),l,Object($.jsx)("img",{src:"/apple-touch-icon.png",alt:"ts-icon"})]}),Object($.jsxs)("div",{style:{overflow:"auto"},children:[Object($.jsx)(oc,{children:e("ThanksToEveryone")}),Object($.jsxs)(cc,{children:[Object($.jsx)("span",{children:e("Links")}),Object($.jsxs)("div",{children:[Object($.jsx)(pc,{name:e("ProjectSource"),link:"https://github.com/YouROK/TorrServer"}),Object($.jsx)(pc,{name:e("Releases"),link:"https://github.com/YouROK/TorrServer/releases"})]})]}),Object($.jsxs)(cc,{children:[Object($.jsx)("span",{children:e("SpecialThanks")}),Object($.jsxs)("div",{children:[Object($.jsx)(pc,{name:"Daniel Shleifman",link:"https://github.com/dancheskus"}),Object($.jsx)(pc,{name:"Matt Joiner",link:"https://github.com/anacrolix"}),Object($.jsx)(pc,{name:"nikk",link:"https://github.com/tsynik"}),Object($.jsx)(pc,{name:"kolsys",link:"https://github.com/kolsys"}),Object($.jsx)(pc,{name:"tw1cker \u0420\u0443\u0441\u043b\u0430\u043d \u041f\u0430\u0445\u043d\u0435\u0432",link:"https://github.com/Nemiroff"}),Object($.jsx)(pc,{name:"SpAwN_LMG",link:"https://github.com/spawnlmg"})]})]})]}),Object($.jsx)(sc,{children:Object($.jsx)(ne.a,{onClick:b,color:"primary",variant:"contained",children:e("Close")})})]})})]})}var jc=n(480);function uc(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1],d=function(){return l(!1)},p=ua(d);return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(pa,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:J?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(jc.a,{}),Object($.jsx)("div",{children:r("TurnOff")})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(jc.a,{})}),Object($.jsx)(Mi.a,{primary:r("CloseServer")})]})},r("CloseServer")),Object($.jsxs)(ba,{open:s,onClose:d,ref:p,children:[Object($.jsx)(Gn.a,{children:r("CloseServer?")}),Object($.jsxs)(In.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch("".concat(m,"/shutdown")),d()},color:"secondary",autoFocus:!0,children:r("TurnOff")})]})]})]})}var hc,xc,Oc,gc,mc,fc,Cc=function(e){var t=e.isDrawerOpen,n=e.setIsDonationDialogOpen,a=e.isOffline,r=e.isLoading,i=Object(ce.a)().t;return Object($.jsxs)(ci,{isDrawerOpen:t,children:[Object($.jsxs)(fi.a,{children:[Object($.jsx)(Ri,{isOffline:a,isLoading:r}),Object($.jsx)(Vo,{isOffline:a,isLoading:r})]}),Object($.jsx)(Ti.a,{}),Object($.jsxs)(fi.a,{children:[Object($.jsx)(Io,{isOffline:a,isLoading:r}),Object($.jsx)(bc,{}),Object($.jsxs)(ca.a,{button:!0,onClick:function(){return n(!0)},children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(Li.a,{})}),Object($.jsx)(Mi.a,{primary:i("Donate")})]}),Object($.jsx)(uc,{isOffline:a,isLoading:r})]})]})},vc=Object(a.memo)(Cc);function yc(e){var t=e.setIsDonationDialogOpen,n=e.isOffline,a=e.isLoading,r=Object(ce.a)().t;return Object($.jsxs)(da,{children:[Object($.jsx)(uc,{isOffline:n,isLoading:a}),Object($.jsxs)(pa,{onClick:function(){return t(!0)},children:[Object($.jsx)(Li.a,{}),Object($.jsx)("div",{children:r("Donate")})]}),Object($.jsx)(Ri,{isOffline:n,isLoading:a}),Object($.jsx)(bc,{}),Object($.jsx)(Io,{isOffline:n,isLoading:a})]})}function wc(){return Object($.jsxs)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:23,x:"0px",y:"0px",viewBox:"0 0 1000 1000",enableBackground:"new 0 0 1000 1000",xmlSpace:"preserve",fill:"#005FF2",children:[Object($.jsx)("metadata",{children:" Svg Vector Icons : http://www.onlinewebfonts.com/icon "}),Object($.jsx)("g",{children:Object($.jsx)("path",{d:"M780,290H640v35h140c19.3,0,35,15.7,35,35v560c0,19.3-15.7,35-35,35H220c-19.2,0-35-15.7-35-35V360c0-19.2,15.7-35,35-35h140v-35H220c-38.7,0-70,31.3-70,70v560c0,38.7,31.3,70,70,70h560c38.7,0,70-31.3,70-70V360C850,321.3,818.7,290,780,290z M372.5,180l110-110.2v552.7c0,9.6,7.9,17.5,17.5,17.5c9.6,0,17.5-7.9,17.5-17.5V69.8l110,110c3.5,3.5,7.9,5,12.5,5s9-1.7,12.5-5c6.8-6.8,6.8-17.9,0-24.7l-140-140c-6.8-6.8-17.9-6.8-24.7,0l-140,140c-6.8,6.8-6.8,17.9,0,24.7C354.5,186.8,365.5,186.8,372.5,180z"})})]})}var Sc=Ve.d.div(hc||(hc=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isOpen;return Object(Ve.c)(xc||(xc=Object(Ue.a)(["\n position: absolute;\n bottom: 10px;\n left: 50%;\n background: #eeeef0;\n width: calc(100% - 20px);\n z-index: 9999;\n border-radius: 10px;\n transition: all 0.3s;\n color: #000;\n\n ","\n\n > :not(:last-child) {\n border-bottom: 1px solid #dadadc;\n }\n\n > * {\n padding: 20px;\n }\n "])),t?Object(Ve.c)(Oc||(Oc=Object(Ue.a)(["\n opacity: 1;\n transform: translate(-50%, 0);\n "]))):Object(Ve.c)(gc||(gc=Object(Ue.a)(["\n transform: translate(-50%, 150%);\n opacity: 0;\n pointer-events: none;\n "]))))})),Dc=Ve.d.div(mc||(mc=Object(Ue.a)(["\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: min-content 1fr;\n gap: 20px;\n align-items: center;\n font-weight: 700;\n\n img {\n border-radius: 5px;\n }\n"]))),kc=Ve.d.div(fc||(fc=Object(Ue.a)(["\n > :not(:last-child) {\n margin-bottom: 25px;\n }\n\n span {\n background: #fefcfd;\n padding: 5px;\n border-radius: 5px;\n }\n"])));function Tc(){var e=JSON.parse(localStorage.getItem("pwaNotificationIsClosed")),t=Object(a.useState)(!e),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!e),s=Object(c.a)(o,2),l=s[0],d=s[1],p=Object(ce.a)().t;return r?Object($.jsxs)(Sc,{isOpen:l,children:[Object($.jsxs)(Dc,{children:[Object($.jsx)("img",{src:"/apple-touch-icon.png",width:50,alt:"ts-icon"}),p("PWAGuide.Header"),Object($.jsx)(be.a,{size:"small","aria-label":"close",color:"inherit",onClick:function(){d(!1),setTimeout((function(){i(!1),localStorage.setItem("pwaNotificationIsClosed",!0)}),300)},children:Object($.jsx)(ue.a,{fontSize:"small"})})]}),Object($.jsxs)(kc,{children:[Object($.jsx)("p",{children:p("PWAGuide.Description")}),Object($.jsx)("p",{children:p("PWAGuide.VLC")}),Object($.jsxs)("p",{children:["1. ",p("PWAGuide.FirstStep")," ",Object($.jsx)(wc,{})]}),Object($.jsxs)("p",{children:["2. ",p("PWAGuide.SecondStep.Select")," ",Object($.jsx)("span",{children:p("PWAGuide.SecondStep.AddToHomeScreen")})]})]})]}):null}var Pc=JSON.parse(localStorage.getItem("snackbarIsClosed")),Mc=Object(a.createContext)();function Lc(){var e,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],h=Object(a.useState)(!1),x=Object(c.a)(h,2),O=x[0],g=x[1],m=Object(a.useState)(""),f=Object(c.a)(m,2),C=f[0],v=f[1],y=function(){var e=localStorage.getItem("themeMode"),t=Object(Ae.a)("(prefers-color-scheme: dark)"),n=Object(a.useState)("dark"===e||t),r=Object(c.a)(n,2),i=r[0],o=r[1],s=Object(a.useState)(e||ze),l=Object(c.a)(s,2),d=l[0],p=l[1];Object(a.useEffect)((function(){d===ze&&o(!1),d===Ee&&o(!0),d===Ge&&o(t)}),[t,d]);var b=i?Ee:ze,j=Object(a.useMemo)((function(){return Object(Be.a)({typography:Ie,palette:{type:b,primary:{main:Ne[b].primary},secondary:{main:Ne[b].secondary}},overrides:{MuiInputBase:{input:{color:Ne[b].labels}},MuiFormControlLabel:{labelPlacementStart:{display:"flex",justifyContent:"space-between",marginStart:0,marginTop:6,marginBottom:2}},MuiInputLabel:{root:{color:Ne[b].labels,marginBottom:8,"&$focused":{color:Ne[b].labels}}}}})}),[b]);return[i,d,function(e){p(e),localStorage.setItem("themeMode",e)},j]}(),S=Object(c.a)(y,4),k=S[0],M=S[1],L=S[2],B=S[3],A=Vn(),R=Object(c.a)(A,2),F=R[0],N=R[1],z=Object(a.useState)(!1),E=Object(c.a)(z,2),G=E[0],I=E[1],H=Object(o.useQuery)("torrents",K,{retry:1,refetchInterval:1e3,onError:function(){return I(!0)},onSuccess:function(){return I(!1)}}),U=H.data,V=H.isLoading;return Object(a.useEffect)((function(){T.a.get(w()).then((function(e){var t=e.data;return v(t)}))}),[]),Object($.jsxs)($.Fragment,{children:[Object($.jsx)(ki,{}),Object($.jsx)(Mc.Provider,{value:{isDarkMode:k},children:Object($.jsx)(Di.a,{theme:B,children:Object($.jsxs)(Ve.a,{theme:(e=k?Ee:ze,Object(P.a)(Object(P.a)({},Fe[e]),Ne[e])),children:[Object($.jsx)(s.a,{}),Object($.jsx)(D.a,{children:Object($.jsxs)(ri,{children:[Object($.jsxs)(oi,{children:[Object($.jsx)(di,{edge:"start",color:"inherit",onClick:function(){return i(!r)},children:r?Object($.jsx)(d.a,{}):Object($.jsx)(p.a,{})}),Object($.jsxs)(l.a,{variant:"h6",noWrap:!0,children:["TorrServer ",C]}),Object($.jsxs)("div",{style:{justifySelf:"end",display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:"10px"},children:[Object($.jsx)(li,{onClick:function(){M===ze&&L(Ee),M===Ee&&L(Ge),M===Ge&&L(ze)},children:M===ze?Object($.jsx)(b.a,{}):M===Ee?Object($.jsx)(j.a,{}):Object($.jsx)(u.a,{})}),Object($.jsx)(li,{onClick:function(){return N("en"===F?"ru":"ru"===F?"ua":"en")},children:F.toUpperCase()})]})]}),Object($.jsx)(vc,{isOffline:G,isLoading:V,isDrawerOpen:r,setIsDonationDialogOpen:g}),Object($.jsx)(ui,{isOffline:G,torrents:U,isLoading:V}),Object($.jsx)(yc,{isOffline:G,isLoading:V,setIsDonationDialogOpen:g}),Object($.jsx)(Di.a,{theme:He,children:O&&Object($.jsx)(Ci,{onClose:function(){return g(!1)}})}),Pc?"undefined"!==typeof window&&"undefined"!==typeof navigator&&/iPhone|iPad|iPod/i.test(navigator.userAgent||navigator.vendor)&&!J&&Object($.jsx)(Tc,{}):Object($.jsx)(yi,{})]})})]})})})]})}var Bc=new o.QueryClient;i.a.render(Object($.jsx)(a.StrictMode,{children:Object($.jsx)(o.QueryClientProvider,{client:Bc,children:Object($.jsx)(Lc,{})})}),document.getElementById("root"))}},[[395,1,2]]]); +//# sourceMappingURL=main.46ee0fc8.chunk.js.map \ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js.map b/server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js.map new file mode 100644 index 0000000..429e27f --- /dev/null +++ b/server/web/pages/template/pages/static/js/main.46ee0fc8.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["utils/Hosts.js","i18n.js","utils/Utils.js","icons/index.jsx","components/DialogTorrentDetailsContent/customHooks.jsx","components/DialogTorrentDetailsContent/DialogHeader.jsx","style/colors.js","style/materialUISetup.js","components/DialogTorrentDetailsContent/TorrentCache/snakeSettings.js","components/DialogTorrentDetailsContent/TorrentCache/style.js","components/DialogTorrentDetailsContent/TorrentCache/index.jsx","components/DialogTorrentDetailsContent/TorrentCache/getShortCacheMap.js","components/DialogTorrentDetailsContent/Table/style.js","components/DialogTorrentDetailsContent/Table/index.jsx","components/DialogTorrentDetailsContent/style.js","components/DialogTorrentDetailsContent/DetailedView/style.js","components/DialogTorrentDetailsContent/StatisticsField.jsx","components/DialogTorrentDetailsContent/widgets/useGetWidgetColors.jsx","components/DialogTorrentDetailsContent/widgets/index.jsx","torrentStates.js","components/DialogTorrentDetailsContent/DetailedView/index.jsx","components/DialogTorrentDetailsContent/TorrentFunctions/style.js","components/DialogTorrentDetailsContent/TorrentFunctions/index.jsx","components/DialogTorrentDetailsContent/helpers.js","components/DialogTorrentDetailsContent/index.jsx","utils/useChangeLanguage.js","utils/usePreviousState.js","style/DialogStyles.js","style/standaloneMedia.js","components/App/PWAFooter/style.js","style/CustomMaterialUiStyles.js","utils/useOnStandaloneAppOutsideClick.jsx","components/Add/helpers.js","components/Add/style.js","components/Add/RightSideComponent.jsx","components/Add/LeftSideComponent.jsx","components/Add/AddDialog.jsx","components/TorrentCard/style.js","components/TorrentCard/index.jsx","components/App/style.js","components/TorrentList/style.js","components/TorrentList/NoServerConnection.jsx","components/TorrentList/AddFirstTorrent.jsx","components/TorrentList/index.jsx","components/Donate/DonateDialog.jsx","components/Donate/index.jsx","style/GlobalStyle.js","components/Add/index.jsx","components/Settings/style.js","components/Settings/defaultSettings.js","components/Settings/tabComponents.jsx","components/Settings/SliderInput.jsx","components/Settings/PrimarySettingsComponent.jsx","components/Settings/SecondarySettingsComponent.jsx","components/Settings/MobileAppSettings.jsx","components/Settings/SettingsDialog.jsx","components/Settings/index.jsx","components/RemoveAll.jsx","components/About/style.js","components/About/LinkComponent.jsx","components/About/index.jsx","components/CloseServer.jsx","components/App/Sidebar.jsx","components/App/PWAFooter/index.jsx","components/App/PWAInstallationGuide/IOSShareIcon.jsx","components/App/PWAInstallationGuide/style.jsx","components/App/PWAInstallationGuide/index.jsx","components/App/index.jsx","style/getStyledComponentsTheme.js","utils/checkIsIOS.jsx","index.jsx"],"names":["window","location","protocol","hostname","port","torrserverHost","torrentsHost","viewedHost","settingsHost","streamHost","echoHost","playlistTorrHost","i18n","use","LanguageDetector","initReactI18next","init","fallbackLng","interpolation","escapeValue","resources","en","translation","translationEN","ru","translationRU","ua","translationUA","humanizeSize","size","i","Math","floor","log","pow","toFixed","t","humanizeSpeed","speed","getPeerString","torrent","connected_seeders","active_peers","total_peers","removeRedundantCharacters","string","newString","forEach","el","leftBracketRegexFormula","leftBracketRegex","RegExp","leftBracketAmount","matchAll","length","rightBracketRegexFormula","rightBracketRegex","removeFormula","removeRegex","replace","hasThreeDotsAtTheEnd","match","trimmedString","trim","getTorrents","axios","post","action","data","Error","isStandaloneApp","matchMedia","matches","NoImageIcon","color","primary","useTheme","palette","main","height","width","fill","xmlns","xmlnsXlink","version","x","y","viewBox","enableBackground","xmlSpace","d","points","AddItemIcon","id","opacity","USBIcon","RAMIcon","TorrentIcon","secondaryColor","useUpdateCache","hash","useState","cache","setCache","componentIsMounted","useRef","timerID","useEffect","current","setInterval","updateCache","newCache","then","catch","clearInterval","useStyles","makeStyles","appBar","position","paddingTop","title","marginLeft","flex","DialogHeader","onClose","onBack","classes","AppBar","className","Toolbar","IconButton","edge","onClick","ArrowBack","Typography","variant","autoFocus","style","marginRight","themeColors","light","app","headerToggleColor","appSecondaryColor","sidebarBGColor","sidebarFillColor","torrentCard","accentCardColor","buttonBGColor","rgba","cardPrimaryColor","cardSecondaryColor","dialogTorrentDetailsContent","posterBGColor","gradientStartColor","gradientEndColor","chacheSectionBGColor","widgetFontColor","titleFontColor","subNameFontColor","torrentFilesSectionBGColor","detailedView","cacheSectionBGColor","addDialog","fontColor","notificationErrorBGColor","notificationSuccessBGColor","languageSwitchBGColor","languageSwitchFontColor","torrentFunctions","table","defaultPrimaryColor","defaultSecondaryColor","defaultTertiaryColor","settingsDialog","contentBG","footerBG","dark","mainColors","secondary","labels","THEME_MODES","typography","fontFamily","lightTheme","createTheme","type","snakeSettings","default","borderWidth","pieceSize","gapBetweenPieces","borderColor","completeColor","backgroundColor","progressColor","readerColor","rangeColor","mini","cacheMaxHeight","ScrollNotification","styled","div","SnakeWrapper","isMini","themeType","css","TorrentCache","shotCacheMap","isSnakeDebugMode","useTranslation","dimensions","setDimensions","canvasRef","ctxRef","cacheMap","setCacheMap","PiecesCount","Pieces","Readers","map","Size","Length","Priority","newPiece","percentage","priority","r","Reader","isReader","Start","End","isReaderRange","push","useCreateCacheMap","settingsTarget","theme","useContext","DarkModeContext","isDarkMode","canvasWidth","pieceSizeWithGap","piecesInOneRow","preloadPiecesAmount","cacheMapWithoutEmptyBlocks","filter","getFullAmountOfBlocks","amountOfBlocks","amountOfBlocksToRenderInShortView","scalableAmountOfBlocksToRenderInShortView","extraBlocksAmount","max","extraEmptyBlocksForFillingLine","Array","getShortCacheMap","round","Capacity","PiecesLength","source","startingXPoint","ceil","canvas","getContext","ctx","clearRect","inProgress","isCompleted","currentRow","currentColumn","fixBlurStroke","requiredFix","lineWidth","fillStyle","snakeType","gradient","createLinearGradient","addColorStop","createGradient","strokeStyle","translate","fillRect","strokeRect","setTransform","info","font","xpad","ypad","fillText","bounds","onResize","measureRef","display","flexDirection","ref","memo","prev","next","isEqual","viewedPrimaryColor","viewedIndicator","TableStyle","ShortTableWrapper","ShortTable","isViewed","require","ptt","addHandler","Table","playableFileList","viewedFileList","selectedSeason","seasonAmount","preloadBuffer","fileId","fetch","getFileLink","path","encodeURIComponent","split","pop","fileHasEpisodeText","find","parse","episode","fileHasSeasonText","season","fileHasResolutionText","resolution","shouldDisplayFullFileName","isVlcUsed","JSON","localStorage","getItem","includes","link","Button","textDecoration","href","target","rel","text","DialogContentGrid","Poster","poster","MainSection","section","CacheSection","TorrentFilesSection","SectionSubName","mb","SectionTitle","SectionHeader","WidgetWrapper","WidgetFieldWrapper","WidgetFieldTitle","WidgetFieldIcon","bgColor","WidgetFieldValue","LoadingProgress","attrs","value","fullAmount","min","background","label","Divider","DetailedViewWidgetSection","DetailedViewCacheSection","StatisticsField","Icon","icon","iconBg","valueBg","LIGHT","DARK","colors","downloadSpeed","iconBGColor","valueBGColor","uploadSpeed","peers","piecesCount","piecesLength","status","useGetWidgetColors","widgetName","DownlodSpeedWidget","ArrowDownwardIcon","UploadSpeedWidget","ArrowUpwardIcon","PeersWidget","SwapVerticalCircleIcon","PiecesCountWidget","WidgetsIcon","PiecesLengthWidget","PhotoSizeSelectSmallIcon","StatusWidget","stat","values","BuildIcon","SizeWidget","ViewAgendaIcon","DetailedView","torrentSize","setIsSnakeDebugMode","justifyContent","alignItems","FormControlLabel","control","Checkbox","checked","disableRipple","onChange","setItem","labelPlacement","MainSectionButtonGroup","SmallLabel","TorrentFunctions","name","setViewedFileList","latestViewedFileId","latestViewedFile","isOnlyOnePlayableFile","latestViewedFileData","fullPlaylistLink","partialPlaylistLink","file_index","playableExtList","Loader","minHeight","placeItems","CircularProgress","DialogTorrentDetailsContent","closeDialog","isLoading","setIsLoading","isDetailedCacheView","setIsDetailedCacheView","setPlayableFileList","setSeasonAmount","setSelectedSeason","download_speed","upload_speed","torrent_size","torrentFileList","file_stats","settings","setSettings","useGetSettings","Filled","seasons","currentSeason","sort","a","b","fileName","filename","ext","toLowerCase","getExt","cacheLoaded","Object","entries","torrentLoaded","lst","itm","preloadSize","PreloadCache","bufferSize","getParsedTitle","newNameStringArr","torrentParsedName","year","newNameString","join","overflow","alt","src","marginTop","ButtonGroup","marginBottom","language","substr","lang","changeLanguage","usePreviousState","Header","ButtonWrapper","standaloneMedia","styles","pwaFooterHeight","StyledMenuButtonWrapper","ListItem","button","StyledDialog","Dialog","hideBackdrop","transitionDuration","StyledHeader","useOnStandaloneAppOutsideClick","onClickOutside","handleClickOutside","event","contains","document","addEventListener","removeEventListener","getMoviePosters","movieName","url","get","params","api_key","process","include_image_language","query","results","poster_path","checkImageURL","magnetRegex","hashRegex","torrentRegex","linkRegex","Content","isEditMode","RightSide","RightSideContainer","isHidden","notificationMessage","isError","LeftSide","LeftSideBottomSectionBasicStyles","LeftSideBottomSectionNoFile","isDragActive","LeftSideBottomSectionFileSelected","TorrentIconWrapper","CancelIconWrapper","IconWrapper","LeftSideTopSection","active","PosterWrapper","PosterSuggestions","PosterSuggestionsItem","ClearPosterButton","showbutton","PosterLanguageSwitch","StyledPWAAddButton","RightSideComponent","setTitle","setPosterUrl","setIsPosterUrlCorrect","setIsUserInteractedWithPoster","setPosterList","isTorrentSourceCorrect","isHashAlreadyExists","parsedTitle","posterUrl","isPosterUrlCorrect","posterList","currentLang","posterSearchLanguage","setPosterSearchLanguage","posterSearch","removePoster","torrentSource","originalTorrentTitle","updateTitleFromSource","isCustomTitleEnabled","setIsCustomTitleEnabled","handleTitleChange","TextField","margin","fullWidth","disabled","InputProps","readOnly","onFocus","onBlur","helperText","endAdornment","InputAdornment","padding","HighlightOff","slice","userChangesPosterUrl","newLanguage","shouldRefreshMainPoster","LeftSideComponent","setSelectedFile","setTorrentSource","selectedFile","isTorrentSourceActive","setIsTorrentSourceActive","useDropzone","onDrop","files","file","accept","getRootProps","getInputProps","inputProps","autoComplete","Cancel","AddDialog","handleClose","originalHash","originalTitle","originalName","originalPoster","setOriginalTorrentTitle","setParsedTitle","setIsTorrentSourceCorrect","setIsHashAlreadyExists","isUserInteractedWithPoster","useChangeLanguage","isSaving","setIsSaving","skipDebounce","setSkipDebounce","currentSourceHash","setCurrentSourceHash","torrents","useQuery","retry","refetchInterval","parseTorrent","remote","_","infoHash","allHashes","fullScreen","useMediaQuery","useCallback","parsingSource","callback","err","torrentName","nameOfFileInsideTorrent","newTitle","correctImage","useMemo","urlList","firstPoster","delayedPosterSearch","debounce","prevTorrentSourceState","prevTitleState","cancel","open","maxWidth","minWidth","finally","FormData","append","save_to_db","TorrentCard","TorrentCardPoster","isPoster","TorrentCardButtons","TorrentCardDescription","StyledButton","Transition","forwardRef","props","Slide","direction","Torrent","isDetailedInfoOpened","setIsDetailedInfoOpened","isDeleteTorrentOpened","setIsDeleteTorrentOpened","breakpoints","down","closeDetailedInfo","closeDeleteTorrentAlert","key","titleStrings","parsedYear","parsedResolution","isEditDialogOpen","setIsEditDialogOpen","detailedInfoDialogRef","UnfoldMore","PlayArrow","Close","Delete","TransitionComponent","DialogTitle","DialogActions","AppWrapper","CenteredGrid","AppHeader","AppSidebarStyle","isDrawerOpen","TorrentListWrapper","HeaderToggle","StyledIconButton","isButton","NoServerConnection","trigger","stroke","scale","AddFirstTorrent","isDialogOpen","setIsDialogOpen","TorrentList","isOffline","DonateDialog","DialogContent","List","dangerouslySetInnerHTML","__html","StyledSnackbar","Snackbar","DonateSnackbar","setOpen","snackbarOpen","setSnackbarOpen","disableSnackbar","anchorOrigin","vertical","horizontal","message","fontSize","createGlobalStyle","AddDialogButton","ListItemIcon","ListItemText","cacheBeforeReaderColor","cacheAfterReaderColor","SettingsHeader","FooterSection","PreloadCacheValue","MainSettingsContent","SecondarySettingsContent","StorageButton","small","selected","StorageIconWrapper","CacheStorageSelector","SettingSectionLabel","PreloadCachePercentage","preloadCachePercentage","CacheSize","ReaderReadAHead","UseDisk","UploadRateLimit","TorrentsSavePath","ConnectionsLimit","DisableDHT","DisablePEX","DisableTCP","DisableUPNP","DisableUTP","DisableUpload","DownloadRateLimit","EnableDebug","EnableIPv6","FriendlyName","ForceEncrypt","PeersListenPort","RemoveCacheOnDrop","RetrackersMode","TorrentDisconnectTimeout","a11yProps","index","TabPanel","children","other","role","hidden","SliderInput","isProMode","setValue","sliderMin","sliderMax","inputMin","inputMax","step","onBlurCallback","Grid","container","spacing","item","xs","Slider","newValue","OutlinedInput","Number","CacheStorageLocationLabel","PrimarySettingsComponent","inputForm","cachePercentage","cacheSize","setCacheSize","setCachePercentage","setPreloadCachePercentage","updateSettings","preloadCacheSize","gridAutoFlow","Switch","placeSelf","gridArea","SecondarySettingsComponent","EnableDLNA","InputLabel","htmlFor","Select","native","MobileAppSettings","setIsVlcUsed","SettingsDialog","selectedTab","setSelectedTab","setIsProMode","sets","stringify","Boolean","isNaN","newProps","Tabs","indicatorColor","textColor","Tab","axis","onChangeIndex","dir","defaultSettings","SettingsDialogButton","RemoveAll","method","body","headers","Accept","res","json","torr","DialogWrapper","HeaderSection","ThanksSection","Section","LinkWrapper","isLink","LinkIcon","LinkComponent","GitHub","AboutDialog","torrServerVersion","setTorrServerVersion","CloseServer","PowerSettingsNew","Sidebar","setIsDonationDialogOpen","PWAFooter","IOSShareIcon","StyledWrapper","isOpen","StyledContent","PWAInstallationGuide","pwaNotificationIsClosed","setIsOpen","shouldBeOpened","setShouldBeOpened","setTimeout","snackbarIsClosed","createContext","App","setIsDrawerOpen","isDonationDialogOpen","savedThemeMode","isSystemModeDark","setIsDarkMode","currentThemeMode","setCurrentThemeMode","muiTheme","overrides","MuiInputBase","input","MuiFormControlLabel","labelPlacementStart","marginStart","MuiInputLabel","root","mode","useMaterialUITheme","updateThemeMode","changeLang","setIsOffline","onError","onSuccess","GlobalStyle","Provider","CssBaseline","Menu","noWrap","justifySelf","gridTemplateColumns","gap","Brightness5","Brightness4","BrightnessAuto","toUpperCase","navigator","test","userAgent","vendor","queryClient","QueryClient","ReactDOM","render","client","getElementById"],"mappings":"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","file":"static/js/main.46ee0fc8.chunk.js","sourcesContent":["const { protocol, hostname, port } = window.location\n\nlet torrserverHost = process.env.REACT_APP_SERVER_HOST || `${protocol}//${hostname}${port ? `:${port}` : ''}`\n\nexport const torrentsHost = () => `${torrserverHost}/torrents`\nexport const viewedHost = () => `${torrserverHost}/viewed`\nexport const cacheHost = () => `${torrserverHost}/cache`\nexport const torrentUploadHost = () => `${torrserverHost}/torrent/upload`\nexport const settingsHost = () => `${torrserverHost}/settings`\nexport const streamHost = () => `${torrserverHost}/stream`\nexport const shutdownHost = () => `${torrserverHost}/shutdown`\nexport const echoHost = () => `${torrserverHost}/echo`\nexport const playlistTorrHost = () => `${torrserverHost}/stream`\n\nexport const getTorrServerHost = () => torrserverHost\nexport const setTorrServerHost = host => {\n torrserverHost = host\n}\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport translationEN from 'locales/en/translation.json'\nimport translationRU from 'locales/ru/translation.json'\nimport translationUA from 'locales/ua/translation.json'\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en', // default language will be used if none of declared lanuages detected (en, ru)\n interpolation: { escapeValue: false }, // react already safes from xss\n resources: {\n en: { translation: translationEN },\n ru: { translation: translationRU },\n ua: { translation: translationUA },\n },\n })\n\nexport default i18n\n","import axios from 'axios'\n\nimport i18n from '../i18n'\nimport { torrentsHost } from './Hosts'\n\nexport function humanizeSize(size) {\n if (!size) return ''\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / Math.pow(1024, i)).toFixed(2) * 1} ${\n [i18n.t('B'), i18n.t('KB'), i18n.t('MB'), i18n.t('GB'), i18n.t('TB')][i]\n }`\n}\n\nexport function humanizeSpeed(speed) {\n if (!speed) return ''\n const i = Math.floor(Math.log(speed * 8) / Math.log(1000))\n return `${((speed * 8) / Math.pow(1000, i)).toFixed(0) * 1} ${\n [i18n.t('bps'), i18n.t('kbps'), i18n.t('Mbps'), i18n.t('Gbps'), i18n.t('Tbps')][i]\n }`\n}\n\nexport function getPeerString(torrent) {\n if (!torrent || !torrent.connected_seeders) return null\n return `${torrent.connected_seeders} · ${torrent.active_peers} / ${torrent.total_peers}`\n}\n\nexport const shortenText = (text, sympolAmount) =>\n text ? text.slice(0, sympolAmount) + (text.length > sympolAmount ? '…' : '') : ''\n\nexport const removeRedundantCharacters = string => {\n let newString = string\n const brackets = [\n ['(', ')'],\n ['[', ']'],\n ['{', '}'],\n ]\n\n brackets.forEach(el => {\n const leftBracketRegexFormula = `\\\\${el[0]}`\n const leftBracketRegex = new RegExp(leftBracketRegexFormula, 'g')\n const leftBracketAmount = [...newString.matchAll(leftBracketRegex)].length\n const rightBracketRegexFormula = `\\\\${el[1]}`\n const rightBracketRegex = new RegExp(rightBracketRegexFormula, 'g')\n const rightBracketAmount = [...newString.matchAll(rightBracketRegex)].length\n\n if (leftBracketAmount !== rightBracketAmount) {\n const removeFormula = `(\\\\${el[0]})(?!.*\\\\1).*`\n const removeRegex = new RegExp(removeFormula, 'g')\n newString = newString.replace(removeRegex, '')\n }\n })\n\n const hasThreeDotsAtTheEnd = !!newString.match(/\\.{3}$/g)\n\n const trimmedString = newString.replace(/[\\\\.| ]+$/g, '').trim()\n\n return hasThreeDotsAtTheEnd ? `${trimmedString}..` : trimmedString\n}\n\nexport const getTorrents = async () => {\n try {\n const { data } = await axios.post(torrentsHost(), { action: 'list' })\n return data\n } catch (error) {\n throw new Error(null)\n }\n}\n\nexport const isStandaloneApp = window.matchMedia('screen and (display-mode: standalone)').matches\n","import { useTheme } from '@material-ui/core'\n\nexport const NoImageIcon = ({ color }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport const AddItemIcon = () => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const USBIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const RAMIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport const TorrentIcon = () => {\n const primary = useTheme().palette.primary.main\n const secondaryColor = primary === '#00a572' ? '#74c39c' : '#4a5255'\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { cacheHost, settingsHost } from 'utils/Hosts'\nimport axios from 'axios'\n\nexport const useUpdateCache = hash => {\n const [cache, setCache] = useState({})\n const componentIsMounted = useRef(true)\n const timerID = useRef(null)\n\n useEffect(\n () => () => {\n // this function is required to notify \"updateCache\" when NOT to make state update\n componentIsMounted.current = false\n },\n [],\n )\n\n useEffect(() => {\n if (hash) {\n timerID.current = setInterval(() => {\n const updateCache = newCache => componentIsMounted.current && setCache(newCache)\n\n axios\n .post(cacheHost(), { action: 'get', hash })\n .then(({ data }) => updateCache(data))\n // empty cache if error\n .catch(() => updateCache({}))\n }, 100)\n } else clearInterval(timerID.current)\n\n return () => clearInterval(timerID.current)\n }, [hash])\n\n return cache\n}\n\nexport const useCreateCacheMap = cache => {\n const [cacheMap, setCacheMap] = useState([])\n\n useEffect(() => {\n const { PiecesCount, Pieces, Readers } = cache\n\n const map = []\n\n for (let i = 0; i < PiecesCount; i++) {\n const { Size, Length, Priority } = Pieces[i] || {}\n\n const newPiece = { id: i, percentage: (Size / Length) * 100 || 0, priority: Priority || 0 }\n\n Readers.forEach(r => {\n if (i === r.Reader) newPiece.isReader = true\n if (i >= r.Start && i <= r.End) newPiece.isReaderRange = true\n })\n\n map.push(newPiece)\n }\n setCacheMap(map)\n }, [cache])\n\n return cacheMap\n}\n\nexport const useGetSettings = cache => {\n const [settings, setSettings] = useState()\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => setSettings(data))\n }, [cache])\n\n return settings\n}\n","import { AppBar, IconButton, makeStyles, Toolbar, Typography } from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { ArrowBack } from '@material-ui/icons'\nimport { isStandaloneApp } from 'utils/Utils'\n\nconst useStyles = makeStyles({\n appBar: { position: 'relative', ...(isStandaloneApp && { paddingTop: '30px' }) },\n title: { marginLeft: '5px', flex: 1 },\n})\n\nexport default function DialogHeader({ title, onClose, onBack }) {\n const classes = useStyles()\n\n return (\n \n \n {onBack && (\n \n \n \n )}\n\n \n {title}\n \n\n \n \n \n \n \n )\n}\n","import { rgba } from 'polished'\n\nexport const themeColors = {\n light: {\n app: {\n headerToggleColor: '#4db380',\n appSecondaryColor: '#cbe8d9',\n sidebarBGColor: '#575757',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#337a57',\n buttonBGColor: rgba('#337a57', 0.5),\n cardPrimaryColor: '#00a572',\n cardSecondaryColor: '#74c39c',\n },\n dialogTorrentDetailsContent: {\n posterBGColor: '#74c39c',\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n chacheSectionBGColor: '#88cdaa',\n widgetFontColor: '#fff',\n titleFontColor: '#000',\n subNameFontColor: '#7c7b7c',\n torrentFilesSectionBGColor: '#f1eff3',\n },\n detailedView: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n cacheSectionBGColor: '#fff',\n },\n addDialog: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n fontColor: '#000',\n notificationErrorBGColor: '#cda184',\n notificationSuccessBGColor: '#88cdaa',\n languageSwitchBGColor: '#74c39c',\n languageSwitchFontColor: '#e4f6ed',\n posterBGColor: '#74c39c',\n },\n torrentFunctions: {\n fontColor: '#000',\n },\n table: {\n defaultPrimaryColor: '#009879',\n defaultSecondaryColor: '#00a383',\n defaultTertiaryColor: '#03aa89',\n },\n settingsDialog: {\n contentBG: '#f1eff3',\n footerBG: '#fff',\n },\n },\n dark: {\n app: {\n headerToggleColor: '#545a5e',\n appSecondaryColor: '#545a5e',\n sidebarBGColor: '#323637',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#323637',\n buttonBGColor: rgba('#323637', 0.5),\n cardPrimaryColor: '#545a5e',\n cardSecondaryColor: rgba('#dee3e5', 0.4),\n },\n dialogTorrentDetailsContent: {\n posterBGColor: rgba('#dee3e5', 0.4),\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n chacheSectionBGColor: '#3c4244',\n widgetFontColor: rgba('#fff', 0.8),\n titleFontColor: '#f1eff3',\n subNameFontColor: '#dee3e5',\n torrentFilesSectionBGColor: rgba('#545a5e', 0.9),\n },\n detailedView: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n cacheSectionBGColor: '#949ca0',\n },\n addDialog: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n fontColor: '#fff',\n notificationErrorBGColor: '#c82e3f',\n notificationSuccessBGColor: '#323637',\n languageSwitchBGColor: '#545a5e',\n languageSwitchFontColor: '#dee3e5',\n posterBGColor: '#dee3e5',\n },\n torrentFunctions: {\n fontColor: '#f1eff3',\n },\n table: {\n defaultPrimaryColor: '#323637',\n defaultSecondaryColor: rgba('#545a5e', 0.9),\n defaultTertiaryColor: '#545a5e',\n },\n settingsDialog: {\n contentBG: '#5a6166',\n footerBG: '#323637',\n },\n },\n}\n\nexport const mainColors = {\n light: {\n primary: '#00a572',\n secondary: '#00a572',\n labels: rgba('#000', 0.9),\n },\n dark: {\n primary: '#323637',\n secondary: '#dee3e5',\n labels: rgba('#fff', 0.9),\n },\n}\n","import { createTheme, useMediaQuery } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { mainColors } from './colors'\n\nexport const THEME_MODES = { LIGHT: 'light', DARK: 'dark', AUTO: 'auto' }\n\nconst typography = { fontFamily: 'Open Sans, sans-serif' }\n\nexport const darkTheme = createTheme({\n typography,\n palette: {\n type: THEME_MODES.DARK,\n primary: { main: mainColors.dark.primary },\n secondary: { main: mainColors.dark.secondary },\n },\n})\nexport const lightTheme = createTheme({\n typography,\n palette: {\n type: THEME_MODES.LIGHT,\n primary: { main: mainColors.light.primary },\n secondary: { main: mainColors.light.secondary },\n },\n})\n\nexport const useMaterialUITheme = () => {\n const savedThemeMode = localStorage.getItem('themeMode')\n const isSystemModeDark = useMediaQuery('(prefers-color-scheme: dark)')\n const [isDarkMode, setIsDarkMode] = useState(savedThemeMode === 'dark' || isSystemModeDark)\n const [currentThemeMode, setCurrentThemeMode] = useState(savedThemeMode || THEME_MODES.LIGHT)\n\n const updateThemeMode = mode => {\n setCurrentThemeMode(mode)\n localStorage.setItem('themeMode', mode)\n }\n\n useEffect(() => {\n currentThemeMode === THEME_MODES.LIGHT && setIsDarkMode(false)\n currentThemeMode === THEME_MODES.DARK && setIsDarkMode(true)\n currentThemeMode === THEME_MODES.AUTO && setIsDarkMode(isSystemModeDark)\n }, [isSystemModeDark, currentThemeMode])\n\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const muiTheme = useMemo(\n () =>\n createTheme({\n typography,\n palette: {\n type: theme,\n primary: { main: mainColors[theme].primary },\n secondary: { main: mainColors[theme].secondary },\n },\n overrides: {\n MuiInputBase: {\n input: {\n color: mainColors[theme].labels,\n },\n },\n // https://material-ui.com/ru/api/form-control-label/\n MuiFormControlLabel: {\n labelPlacementStart: {\n display: 'flex',\n justifyContent: 'space-between',\n marginStart: 0,\n marginTop: 6,\n marginBottom: 2,\n },\n },\n MuiInputLabel: {\n root: {\n color: mainColors[theme].labels,\n marginBottom: 8,\n '&$focused': {\n color: mainColors[theme].labels,\n },\n },\n },\n },\n }),\n [theme],\n )\n\n return [isDarkMode, currentThemeMode, updateThemeMode, muiTheme]\n}\n","import { rgba } from 'polished'\nimport { mainColors } from 'style/colors'\n\nexport const snakeSettings = {\n dark: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: rgba('#fff', 0.2),\n completeColor: rgba(mainColors.dark.primary, 0.5),\n backgroundColor: '#949ca0',\n progressColor: rgba('#fff', 0.2),\n readerColor: '#8f0405',\n rangeColor: '#cda184',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#5c6469',\n completeColor: '#5c6469',\n backgroundColor: '#949ca0',\n progressColor: '#949ca0',\n readerColor: '#ccc',\n rangeColor: '#cda184',\n },\n },\n light: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: '#dbf2e8',\n completeColor: mainColors.light.primary,\n backgroundColor: '#fff',\n progressColor: '#b3dfc9',\n readerColor: '#000',\n rangeColor: '#afa6e3',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#4db380',\n completeColor: '#4db380',\n backgroundColor: '#dbf2e8',\n progressColor: '#dbf2e8',\n readerColor: '#0a0a0a',\n rangeColor: '#afa6e3',\n },\n },\n}\n\nexport const createGradient = (ctx, percentage, theme, snakeType) => {\n const { pieceSize, completeColor, progressColor } = snakeSettings[theme][snakeType]\n\n const gradient = ctx.createLinearGradient(0, pieceSize, 0, 0)\n gradient.addColorStop(0, completeColor)\n gradient.addColorStop(percentage / 100, completeColor)\n gradient.addColorStop(percentage / 100, progressColor)\n gradient.addColorStop(1, progressColor)\n\n return gradient\n}\n","import styled, { css } from 'styled-components'\n\nimport { snakeSettings } from './snakeSettings'\n\nexport const ScrollNotification = styled.div`\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n`\n\nexport const SnakeWrapper = styled.div`\n ${({ isMini, themeType }) => css`\n ${isMini &&\n css`\n display: grid;\n justify-content: center;\n max-height: ${snakeSettings[themeType].mini.cacheMaxHeight}px;\n overflow: auto;\n `}\n\n canvas {\n display: block;\n }\n `}\n`\n","import Measure from 'react-measure'\nimport { useState, memo, useRef, useEffect, useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport isEqual from 'lodash/isEqual'\nimport { DarkModeContext } from 'components/App'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nimport { useCreateCacheMap } from '../customHooks'\nimport getShortCacheMap from './getShortCacheMap'\nimport { SnakeWrapper, ScrollNotification } from './style'\nimport { createGradient, snakeSettings } from './snakeSettings'\n\nconst TorrentCache = ({ cache, isMini, isSnakeDebugMode }) => {\n const { t } = useTranslation()\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n const { width } = dimensions\n const canvasRef = useRef(null)\n const ctxRef = useRef(null)\n const cacheMap = useCreateCacheMap(cache)\n const settingsTarget = isMini ? 'mini' : 'default'\n const { isDarkMode } = useContext(DarkModeContext)\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const {\n readerColor,\n rangeColor,\n borderWidth,\n pieceSize,\n gapBetweenPieces,\n backgroundColor,\n borderColor,\n cacheMaxHeight,\n completeColor,\n } = snakeSettings[theme][settingsTarget]\n\n const canvasWidth = isMini ? width * 0.93 : width\n\n const pieceSizeWithGap = pieceSize + gapBetweenPieces\n const piecesInOneRow = Math.floor(canvasWidth / pieceSizeWithGap)\n\n let shotCacheMap\n if (isMini) {\n const preloadPiecesAmount = Math.round(cache.Capacity / cache.PiecesLength - 1)\n shotCacheMap = getShortCacheMap({ cacheMap, preloadPiecesAmount, piecesInOneRow })\n }\n const source = isMini ? shotCacheMap : cacheMap\n const startingXPoint = Math.ceil((canvasWidth - pieceSizeWithGap * piecesInOneRow) / 2) // needed to center grid\n const height = Math.ceil(source.length / piecesInOneRow) * pieceSizeWithGap\n\n useEffect(() => {\n if (!canvasWidth || !height) return\n\n const canvas = canvasRef.current\n canvas.width = canvasWidth\n canvas.height = height\n ctxRef.current = canvas.getContext('2d')\n }, [canvasRef, height, canvasWidth])\n\n useEffect(() => {\n const ctx = ctxRef.current\n if (!ctx) return\n\n ctx.clearRect(0, 0, canvasWidth, height)\n\n source.forEach(({ percentage, priority, isReader, isReaderRange }, i) => {\n const inProgress = percentage > 0 && percentage < 100\n const isCompleted = percentage === 100\n const currentRow = i % piecesInOneRow\n const currentColumn = Math.floor(i / piecesInOneRow)\n const fixBlurStroke = borderWidth % 2 === 0 ? 0 : 0.5\n const requiredFix = Math.ceil(borderWidth / 2) + 1 + fixBlurStroke\n const x = currentRow * pieceSize + currentRow * gapBetweenPieces + startingXPoint + requiredFix\n const y = currentColumn * pieceSize + currentColumn * gapBetweenPieces + requiredFix\n\n ctx.lineWidth = borderWidth\n ctx.fillStyle = inProgress\n ? createGradient(ctx, percentage, theme, settingsTarget)\n : isCompleted\n ? completeColor\n : backgroundColor\n ctx.strokeStyle = isReader\n ? readerColor\n : inProgress || isCompleted\n ? completeColor\n : isReaderRange\n ? rangeColor\n : borderColor\n\n ctx.translate(x, y)\n ctx.fillRect(0, 0, pieceSize, pieceSize)\n ctx.strokeRect(0, 0, pieceSize, pieceSize)\n ctx.setTransform(1, 0, 0, 1, 0, 0)\n\n if (isSnakeDebugMode && priority > 0) {\n let info = ''\n if (priority === 1) info = ''\n else if (priority === 2) info = 'H'\n else if (priority === 3) info = 'R'\n else if (priority === 4) info = 'N'\n else if (priority === 5) info = 'A'\n ctx.font = isMini ? '13px monospace' : '10px monospace'\n const xpad = isMini ? pieceSize * 0.35 : pieceSize * 0.29\n const ypad = isMini ? pieceSize * 0.69 : pieceSize * 0.78\n ctx.fillStyle = 'black'\n ctx.fillText(info, x + xpad, y + ypad)\n }\n })\n }, [\n cacheMap,\n height,\n canvasWidth,\n piecesInOneRow,\n startingXPoint,\n pieceSize,\n gapBetweenPieces,\n source,\n backgroundColor,\n borderColor,\n borderWidth,\n settingsTarget,\n completeColor,\n readerColor,\n rangeColor,\n isMini,\n theme,\n isSnakeDebugMode,\n ])\n\n return (\n setDimensions(bounds)}>\n {({ measureRef }) => (\n
\n \n \n \n\n {isMini && height >= cacheMaxHeight && {t('ScrollDown')}}\n
\n )}\n
\n )\n}\n\nexport default memo(\n TorrentCache,\n (prev, next) => isEqual(prev.cache.Pieces, next.cache.Pieces) && isEqual(prev.cache.Readers, next.cache.Readers),\n)\n","export default ({ cacheMap, preloadPiecesAmount, piecesInOneRow }) => {\n const cacheMapWithoutEmptyBlocks = cacheMap.filter(({ percentage }) => percentage > 0)\n\n const getFullAmountOfBlocks = amountOfBlocks =>\n // this function counts existed amount of blocks with extra \"empty blocks\" to fill the row till the end\n amountOfBlocks % piecesInOneRow === 0\n ? amountOfBlocks - 1\n : amountOfBlocks + piecesInOneRow - (amountOfBlocks % piecesInOneRow) - 1 || 0\n\n const amountOfBlocksToRenderInShortView = getFullAmountOfBlocks(preloadPiecesAmount)\n // preloadPiecesAmount is counted from \"cache.Capacity / cache.PiecesLength\". We always show at least this amount of blocks\n const scalableAmountOfBlocksToRenderInShortView = getFullAmountOfBlocks(cacheMapWithoutEmptyBlocks.length)\n // cacheMap can become bigger than preloadPiecesAmount counted before. In that case we count blocks dynamically\n\n const finalAmountOfBlocksToRenderInShortView = Math.max(\n // this check is needed to decide which is the biggest amount of blocks and take it to render\n scalableAmountOfBlocksToRenderInShortView,\n amountOfBlocksToRenderInShortView,\n )\n\n const extraBlocksAmount = finalAmountOfBlocksToRenderInShortView - cacheMapWithoutEmptyBlocks.length + 1\n // amount of blocks needed to fill the line till the end\n\n const extraEmptyBlocksForFillingLine = extraBlocksAmount ? new Array(extraBlocksAmount).fill({}) : []\n\n return [...cacheMapWithoutEmptyBlocks, ...extraEmptyBlocksForFillingLine]\n}\n","import styled, { css } from 'styled-components'\n\nconst viewedPrimaryColor = '#858c90'\nconst viewedSecondaryColor = '#8c9498'\nconst viewedTertiaryColor = '#949ca0'\nconst bigTableDividerColor = '#d2d2d2'\nconst bigTableDefaultRowColor = '#f3f3f3'\nconst bigTableViewedRowColor = '#ddd'\n\nconst viewedIndicator = css`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ${defaultPrimaryColor};\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n `}\n`\nexport const TableStyle = styled.table`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ${defaultPrimaryColor};\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ${bigTableDividerColor};\n background: ${bigTableDefaultRowColor};\n\n :last-of-type {\n border-bottom: 2px solid ${defaultPrimaryColor};\n }\n\n &.viewed-file-row {\n background: ${bigTableViewedRowColor};\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ${viewedIndicator}\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n `}\n`\n\nexport const ShortTableWrapper = styled.div`\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n`\n\nexport const ShortTable = styled.div`\n ${({\n isViewed,\n theme: {\n table: { defaultPrimaryColor, defaultSecondaryColor, defaultTertiaryColor },\n },\n }) => css`\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ${isViewed ? 'max-content' : '1fr'};\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n }\n\n &-name {\n background: ${isViewed ? viewedSecondaryColor : defaultSecondaryColor};\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ${isViewed ? viewedTertiaryColor : defaultTertiaryColor};\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ${isViewed && viewedIndicator}\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #f3f3f3;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n `}\n`\n","import { streamHost } from 'utils/Hosts'\nimport isEqual from 'lodash/isEqual'\nimport { humanizeSize, isStandaloneApp } from 'utils/Utils'\nimport ptt from 'parse-torrent-title'\nimport { Button } from '@material-ui/core'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { useTranslation } from 'react-i18next'\n\nimport { TableStyle, ShortTableWrapper, ShortTable } from './style'\n\nconst { memo } = require('react')\n\n// russian episode detection support\nptt.addHandler('episode', /(\\d{1,4})[- |. ]серия|серия[- |. ](\\d{1,4})/i, { type: 'integer' })\nptt.addHandler('season', /sezon[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]sezon/i, { type: 'integer' })\nptt.addHandler('season', /сезон[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]сезон/i, { type: 'integer' })\n\nconst Table = memo(\n ({ playableFileList, viewedFileList, selectedSeason, seasonAmount, hash }) => {\n const { t } = useTranslation()\n const preloadBuffer = fileId => fetch(`${streamHost()}?link=${hash}&index=${fileId}&preload`)\n const getFileLink = (path, id) =>\n `${streamHost()}/${encodeURIComponent(path.split('\\\\').pop().split('/').pop())}?link=${hash}&index=${id}&play`\n const fileHasEpisodeText = !!playableFileList?.find(({ path }) => ptt.parse(path).episode)\n const fileHasSeasonText = !!playableFileList?.find(({ path }) => ptt.parse(path).season)\n const fileHasResolutionText = !!playableFileList?.find(({ path }) => ptt.parse(path).resolution)\n\n // if files in list is more then 1 and no season text detected by ptt.parse, show full name\n const shouldDisplayFullFileName = playableFileList?.length > 1 && !fileHasEpisodeText\n\n const isVlcUsed = JSON.parse(localStorage.getItem('isVlcUsed')) ?? false\n\n return !playableFileList?.length ? (\n 'No playable files in this torrent'\n ) : (\n <>\n \n \n \n {t('Viewed')}\n {t('Name')}\n {fileHasSeasonText && seasonAmount?.length === 1 && {t('Season')}}\n {fileHasEpisodeText && {t('Episode')}}\n {fileHasResolutionText && {t('Resolution')}}\n {t('Size')}\n {t('Actions')}\n \n \n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n \n {shouldDisplayFullFileName ? path : title}\n {fileHasSeasonText && seasonAmount?.length === 1 && {season}}\n {fileHasEpisodeText && {episode}}\n {fileHasResolutionText && {resolution}}\n {humanizeSize(length)}\n \n
\n \n\n \n \n \n\n \n \n \n
\n \n \n )\n )\n })}\n \n
\n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n
{shouldDisplayFullFileName ? path : title}
\n
\n {isViewed && (\n
\n
{t('Viewed')}
\n
\n
\n
\n
\n )}\n {fileHasSeasonText && seasonAmount?.length === 1 && (\n
\n
{t('Season')}
\n
{season}
\n
\n )}\n {fileHasEpisodeText && (\n
\n
{t('Episode')}
\n
{episode}
\n
\n )}\n {fileHasResolutionText && (\n
\n
{t('Resolution')}
\n
{resolution}
\n
\n )}\n
\n
{t('Size')}
\n
{humanizeSize(length)}
\n
\n
\n
\n \n\n {isVlcUsed && isStandaloneApp ? (\n \n \n \n ) : (\n \n \n \n )}\n\n \n \n \n
\n \n )\n )\n })}\n \n \n )\n },\n (prev, next) => isEqual(prev, next),\n)\n\nexport default Table\n","import { rgba } from 'polished'\nimport styled, { css } from 'styled-components'\n\nexport const DialogContentGrid = styled.div`\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n`\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n dialogTorrentDetailsContent: { posterBGColor },\n },\n }) => css`\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ${poster\n ? css`\n img {\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n width: 300px;\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n `}\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ${poster\n ? css`\n height: 200px;\n `\n : css`\n display: none;\n `}\n }\n `}\n`\nexport const MainSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const CacheSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { chacheSectionBGColor },\n },\n }) => css`\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ${chacheSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const TorrentFilesSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { torrentFilesSectionBGColor },\n },\n }) => css`\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${torrentFilesSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const SectionSubName = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { subNameFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-top: ${mb / 3}px`};\n ${mb && `margin-bottom: ${mb}px`};\n line-height: 1.2;\n color: ${subNameFontColor};\n\n @media (max-width: 800px) {\n ${mb && `margin-top: ${mb / 4}px`};\n ${mb && `margin-bottom: ${mb / 2}px`};\n font-size: 14px;\n }\n `}\n `}\n`\n\nexport const SectionTitle = styled.div`\n ${({\n color,\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ${color || titleFontColor};\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ${mb && `margin-bottom: ${mb / 2}px`};\n }\n `}\n `}\n`\n\nexport const SectionHeader = styled.div`\n margin-bottom: 20px;\n`\n\nexport const WidgetWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ${({ detailedView }) =>\n detailedView\n ? css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n `\n : css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n `}\n`\n\nexport const WidgetFieldWrapper = styled.div`\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n`\nexport const WidgetFieldTitle = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ${titleFontColor};\n `}\n`\n\nexport const WidgetFieldIcon = styled.div`\n ${({ bgColor }) => css`\n grid-area: icon;\n color: ${rgba('#fff', 0.8)};\n background: ${bgColor};\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n `}\n`\nexport const WidgetFieldValue = styled.div`\n ${({\n bgColor,\n theme: {\n dialogTorrentDetailsContent: { widgetFontColor },\n },\n }) => css`\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ${widgetFontColor};\n background: ${bgColor};\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n `}\n`\n\nexport const LoadingProgress = styled.div.attrs(\n ({\n value,\n fullAmount,\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => {\n const percentage = Math.min(100, (value * 100) / fullAmount)\n\n return {\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${gradientStartColor} 0%, ${gradientEndColor} ${percentage}%, #eee ${percentage}%, #fff 100%)`,\n },\n }\n },\n)`\n ${({ label }) => css`\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n `}\n`\n\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n","import styled, { css } from 'styled-components'\n\nexport const DetailedViewWidgetSection = styled.section`\n ${({\n theme: {\n detailedView: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n padding: 40px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const DetailedViewCacheSection = styled.section`\n ${({\n theme: {\n detailedView: { cacheSectionBGColor },\n },\n }) => css`\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${cacheSectionBGColor};\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n","import { WidgetFieldWrapper, WidgetFieldIcon, WidgetFieldValue, WidgetFieldTitle } from './style'\n\nexport default function StatisticsField({ icon: Icon, title, value, iconBg, valueBg }) {\n return (\n \n {title}\n \n \n \n\n {value}\n \n )\n}\n","import { DarkModeContext } from 'components/App'\nimport { useContext } from 'react'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nconst { LIGHT, DARK } = THEME_MODES\n\nconst colors = {\n light: {\n downloadSpeed: { iconBGColor: '#118f00', valueBGColor: '#13a300' },\n uploadSpeed: { iconBGColor: '#0146ad', valueBGColor: '#0058db' },\n peers: { iconBGColor: '#cdc118', valueBGColor: '#d8cb18' },\n piecesCount: { iconBGColor: '#b6c95e', valueBGColor: '#c0d076' },\n piecesLength: { iconBGColor: '#0982c8', valueBGColor: '#098cd7' },\n status: { iconBGColor: '#aea25b', valueBGColor: '#b4aa6e' },\n size: { iconBGColor: '#9b01ad', valueBGColor: '#ac03bf' },\n },\n dark: {\n downloadSpeed: { iconBGColor: '#0c6600', valueBGColor: '#0d7000' },\n uploadSpeed: { iconBGColor: '#003f9e', valueBGColor: '#0047b3' },\n peers: { iconBGColor: '#a69c11', valueBGColor: '#b4a913' },\n piecesCount: { iconBGColor: '#8da136', valueBGColor: '#99ae3d' },\n piecesLength: { iconBGColor: '#07659c', valueBGColor: '#0872af' },\n status: { iconBGColor: '#938948', valueBGColor: '#9f9450' },\n size: { iconBGColor: '#81008f', valueBGColor: '#9102a1' },\n },\n}\n\nexport default function useGetWidgetColors(widgetName) {\n const { isDarkMode } = useContext(DarkModeContext)\n const widgetColors = colors[isDarkMode ? DARK : LIGHT][widgetName]\n\n return widgetColors\n}\n","import {\n ArrowDownward as ArrowDownwardIcon,\n ArrowUpward as ArrowUpwardIcon,\n SwapVerticalCircle as SwapVerticalCircleIcon,\n ViewAgenda as ViewAgendaIcon,\n Widgets as WidgetsIcon,\n PhotoSizeSelectSmall as PhotoSizeSelectSmallIcon,\n Build as BuildIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed } from 'utils/Utils'\nimport { useTranslation } from 'react-i18next'\nimport { GETTING_INFO, IN_DB, CLOSED, PRELOAD, WORKING } from 'torrentStates'\n\nimport StatisticsField from '../StatisticsField'\nimport useGetWidgetColors from './useGetWidgetColors'\n\nexport const DownlodSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('downloadSpeed')\n\n return (\n \n )\n}\n\nexport const UploadSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('uploadSpeed')\n\n return (\n \n )\n}\n\nexport const PeersWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('peers')\n\n return (\n \n )\n}\n\nexport const PiecesCountWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesCount')\n\n return (\n \n )\n}\n\nexport const PiecesLengthWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesLength')\n\n return (\n \n )\n}\n\nexport const StatusWidget = ({ stat }) => {\n const { t } = useTranslation()\n\n const values = {\n [GETTING_INFO]: t('TorrentGettingInfo'),\n [PRELOAD]: t('TorrentPreload'),\n [WORKING]: t('TorrentWorking'),\n [CLOSED]: t('TorrentClosed'),\n [IN_DB]: t('TorrentInDb'),\n }\n const { iconBGColor, valueBGColor } = useGetWidgetColors('status')\n\n return (\n \n )\n}\n\nexport const SizeWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('size')\n\n return (\n \n )\n}\n","export const [GETTING_INFO, PRELOAD, WORKING, CLOSED, IN_DB] = [1, 2, 3, 4, 5]\n","import { useTranslation } from 'react-i18next'\nimport { Checkbox, FormControlLabel } from '@material-ui/core'\nimport { useState } from 'react'\n\nimport { SectionTitle, WidgetWrapper } from '../style'\nimport { DetailedViewCacheSection, DetailedViewWidgetSection } from './style'\nimport TorrentCache from '../TorrentCache'\nimport {\n SizeWidget,\n PiecesLengthWidget,\n StatusWidget,\n PiecesCountWidget,\n PeersWidget,\n UploadSpeedWidget,\n DownlodSpeedWidget,\n} from '../widgets'\n\nexport default function DetailedView({\n downloadSpeed,\n uploadSpeed,\n torrent,\n torrentSize,\n PiecesCount,\n PiecesLength,\n stat,\n cache,\n}) {\n const { t } = useTranslation()\n const [isSnakeDebugMode, setIsSnakeDebugMode] = useState(\n JSON.parse(localStorage.getItem('isSnakeDebugMode')) || false,\n )\n\n return (\n <>\n \n {t('Data')}\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n {t('Cache')}\n\n {\n setIsSnakeDebugMode(checked)\n localStorage.setItem('isSnakeDebugMode', checked)\n }}\n />\n }\n label={t('DebugMode')}\n labelPlacement='start'\n />\n
\n
\n\n \n
\n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const MainSectionButtonGroup = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n`\n\nexport const SmallLabel = styled.div`\n ${({\n mb,\n theme: {\n torrentFunctions: { fontColor },\n },\n }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ${fontColor};\n\n @media (max-width: 800px) {\n font-size: 18px;\n ${mb && `margin-bottom: ${mb / 1.5}px`};\n }\n `}\n`\n","import axios from 'axios'\nimport { memo } from 'react'\nimport { playlistTorrHost, torrentsHost, viewedHost } from 'utils/Hosts'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\nimport { Button } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\n\nimport { SmallLabel, MainSectionButtonGroup } from './style'\nimport { SectionSubName } from '../style'\n\nconst TorrentFunctions = memo(\n ({ hash, viewedFileList, playableFileList, name, title, setViewedFileList }) => {\n const { t } = useTranslation()\n const latestViewedFileId = viewedFileList?.[viewedFileList?.length - 1]\n const latestViewedFile = playableFileList?.find(({ id }) => id === latestViewedFileId)?.path\n const isOnlyOnePlayableFile = playableFileList?.length === 1\n const latestViewedFileData = latestViewedFile && ptt.parse(latestViewedFile)\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const removeTorrentViews = () =>\n axios.post(viewedHost(), { action: 'rem', hash, file_index: -1 }).then(() => setViewedFileList())\n const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(name || title || 'file')}.m3u?link=${hash}&m3u`\n const partialPlaylistLink = `${fullPlaylistLink}&fromlast`\n\n return (\n <>\n {!isOnlyOnePlayableFile && !!viewedFileList?.length && (\n <>\n {t('DownloadPlaylist')}\n \n {t('LatestFilePlayed')}{' '}\n \n {latestViewedFileData?.title}.\n {latestViewedFileData?.season && (\n <>\n {' '}\n {t('Season')}: {latestViewedFileData?.season}. {t('Episode')}: {latestViewedFileData?.episode}.\n \n )}\n \n \n\n \n \n \n \n\n \n \n \n \n \n )}\n {t('TorrentState')}\n \n \n \n \n {t('Info')}\n \n {(isOnlyOnePlayableFile || !viewedFileList?.length) && (\n \n \n \n )}\n \n \n \n \n \n )\n },\n () => true,\n)\n\nexport default TorrentFunctions\n","const getExt = filename => {\n const ext = filename.split('.').pop()\n if (ext === filename) return ''\n return ext.toLowerCase()\n}\nconst playableExtList = [\n // video\n '3g2',\n '3gp',\n 'aaf',\n 'asf',\n 'avchd',\n 'avi',\n 'drc',\n 'flv',\n 'iso',\n 'm2v',\n 'm2ts',\n 'm4p',\n 'm4v',\n 'mkv',\n 'mng',\n 'mov',\n 'mp2',\n 'mp4',\n 'mpe',\n 'mpeg',\n 'mpg',\n 'mpv',\n 'mxf',\n 'nsv',\n 'ogg',\n 'ogv',\n 'ts',\n 'qt',\n 'rm',\n 'rmvb',\n 'roq',\n 'svi',\n 'vob',\n 'webm',\n 'wmv',\n 'yuv',\n // audio\n 'aac',\n 'aiff',\n 'ape',\n 'au',\n 'flac',\n 'gsm',\n 'it',\n 'm3u',\n 'm4a',\n 'mid',\n 'mod',\n 'mp3',\n 'mpa',\n 'pls',\n 'ra',\n 's3m',\n 'sid',\n 'wav',\n 'wma',\n 'xm',\n]\n\n// eslint-disable-next-line import/prefer-default-export\nexport const isFilePlayable = fileName => playableExtList.includes(getExt(fileName))\n","import { NoImageIcon } from 'icons'\nimport { humanizeSize, removeRedundantCharacters } from 'utils/Utils'\nimport { useEffect, useState } from 'react'\nimport { Button, ButtonGroup } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport axios from 'axios'\nimport { viewedHost } from 'utils/Hosts'\nimport { GETTING_INFO, IN_DB } from 'torrentStates'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { useTranslation } from 'react-i18next'\n\nimport { useUpdateCache, useGetSettings } from './customHooks'\nimport DialogHeader from './DialogHeader'\nimport TorrentCache from './TorrentCache'\nimport Table from './Table'\nimport DetailedView from './DetailedView'\nimport {\n DialogContentGrid,\n MainSection,\n Poster,\n SectionTitle,\n SectionSubName,\n WidgetWrapper,\n LoadingProgress,\n SectionHeader,\n CacheSection,\n TorrentFilesSection,\n Divider,\n} from './style'\nimport { DownlodSpeedWidget, UploadSpeedWidget, PeersWidget, SizeWidget, StatusWidget } from './widgets'\nimport TorrentFunctions from './TorrentFunctions'\nimport { isFilePlayable } from './helpers'\n\nconst Loader = () => (\n
\n \n
\n)\n\nexport default function DialogTorrentDetailsContent({ closeDialog, torrent }) {\n const { t } = useTranslation()\n const [isLoading, setIsLoading] = useState(true)\n const [isDetailedCacheView, setIsDetailedCacheView] = useState(false)\n const [viewedFileList, setViewedFileList] = useState()\n const [playableFileList, setPlayableFileList] = useState()\n const [seasonAmount, setSeasonAmount] = useState(null)\n const [selectedSeason, setSelectedSeason] = useState()\n const [isSnakeDebugMode] = useState(JSON.parse(localStorage.getItem('isSnakeDebugMode')) || false)\n\n const {\n poster,\n hash,\n title,\n name,\n stat,\n download_speed: downloadSpeed,\n upload_speed: uploadSpeed,\n torrent_size: torrentSize,\n file_stats: torrentFileList,\n } = torrent\n\n const cache = useUpdateCache(hash)\n const settings = useGetSettings(cache)\n\n const { Capacity, PiecesCount, PiecesLength, Filled } = cache\n\n useEffect(() => {\n if (playableFileList && seasonAmount === null) {\n const seasons = []\n playableFileList.forEach(({ path }) => {\n const currentSeason = ptt.parse(path).season\n if (currentSeason) {\n !seasons.includes(currentSeason) && seasons.push(currentSeason)\n }\n })\n seasons.length && setSelectedSeason(seasons[0])\n setSeasonAmount(seasons.sort((a, b) => a - b))\n }\n }, [playableFileList, seasonAmount])\n\n useEffect(() => {\n setPlayableFileList(torrentFileList?.filter(({ path }) => isFilePlayable(path)))\n }, [torrentFileList])\n\n useEffect(() => {\n const cacheLoaded = !!Object.entries(cache).length\n const torrentLoaded = stat !== GETTING_INFO && stat !== IN_DB\n\n if (!cacheLoaded && !isLoading) setIsLoading(true)\n if (cacheLoaded && isLoading && torrentLoaded) setIsLoading(false)\n }, [stat, cache, isLoading])\n\n useEffect(() => {\n // getting viewed file list\n axios.post(viewedHost(), { action: 'list', hash }).then(({ data }) => {\n if (data) {\n const lst = data.map(itm => itm.file_index).sort((a, b) => a - b)\n setViewedFileList(lst)\n } else setViewedFileList()\n })\n }, [hash])\n\n const preloadPerc = settings?.PreloadCache\n const preloadSize = (Capacity / 100) * preloadPerc\n const bufferSize = preloadSize > 33554432 ? preloadSize : 33554432 // Not less than 32MB\n\n const getParsedTitle = () => {\n const newNameStringArr = []\n\n const torrentParsedName = name && ptt.parse(name)\n\n if (title !== name) {\n newNameStringArr.push(removeRedundantCharacters(title))\n } else if (torrentParsedName?.title) newNameStringArr.push(removeRedundantCharacters(torrentParsedName?.title))\n\n // These 2 checks are needed to get year and resolution from torrent name if title does not have this info\n if (torrentParsedName?.year && !newNameStringArr[0].includes(torrentParsedName?.year))\n newNameStringArr.push(torrentParsedName?.year)\n if (torrentParsedName?.resolution && !newNameStringArr[0].includes(torrentParsedName?.resolution))\n newNameStringArr.push(torrentParsedName?.resolution)\n\n const newNameString = newNameStringArr.join('. ')\n\n // removeRedundantCharacters is returning \"..\" if it was \"...\"\n const lastDotShouldBeAdded =\n newNameString[newNameString.length - 1] === '.' && newNameString[newNameString.length - 2] === '.'\n\n return lastDotShouldBeAdded ? `${newNameString}.` : newNameString\n }\n\n return (\n <>\n setIsDetailedCacheView(false) })}\n />\n\n \n {isLoading ? (\n \n ) : isDetailedCacheView ? (\n \n ) : (\n \n \n {poster ? poster : }\n\n
\n {title && name !== title ? (\n getParsedTitle().length > 90 ? (\n <>\n {ptt.parse(name).title}\n {getParsedTitle()}\n \n ) : (\n <>\n {getParsedTitle()}\n {ptt.parse(name || '')?.title}\n \n )\n ) : (\n {getParsedTitle()}\n )}\n\n \n \n \n \n \n \n \n\n \n\n \n
\n
\n\n \n \n {t('Buffer')}\n {bufferSize <= 33554432 && {t('BufferNote')}}\n \n \n\n \n setIsDetailedCacheView(true)}\n >\n {t('DetailedCacheView.button')}\n \n \n\n \n {t('TorrentContent')}\n\n {seasonAmount?.length > 1 && (\n <>\n {t('SelectSeason')}\n \n {seasonAmount.map(season => (\n setSelectedSeason(season)}\n >\n {season}\n \n ))}\n \n\n \n {t('Season')} {selectedSeason}\n \n \n )}\n\n \n \n
\n )}\n
\n \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nexport default () => {\n const { i18n } = useTranslation()\n const currentLanguage = i18n.language.substr(0, 2)\n\n return [currentLanguage, lang => i18n.changeLanguage(lang)]\n}\n","import { useEffect, useRef } from 'react'\n\nexport default function usePreviousState(value) {\n const ref = useRef(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n","import styled, { css } from 'styled-components'\n\nexport const Header = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n `}\n`\n\nexport const ButtonWrapper = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n`\n","import { css } from 'styled-components'\n\nexport const standaloneMedia = styles => css`\n @media screen and (display-mode: standalone) {\n ${styles};\n }\n`\n","import { standaloneMedia } from 'style/standaloneMedia'\nimport styled, { css } from 'styled-components'\n\nexport const pwaFooterHeight = 90\n\nexport default styled.div`\n background: #575757;\n color: #fff;\n position: fixed;\n bottom: 0;\n width: 100%;\n height: ${pwaFooterHeight}px;\n\n display: none;\n\n ${standaloneMedia(css`\n display: grid;\n grid-template-columns: repeat(5, calc(100% / 5));\n justify-items: center;\n `)}\n`\n","import { ListItem } from '@material-ui/core'\nimport Dialog from '@material-ui/core/Dialog'\nimport { pwaFooterHeight } from 'components/App/PWAFooter/style'\nimport styled, { css } from 'styled-components'\nimport { Header } from 'style/DialogStyles'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport { standaloneMedia } from './standaloneMedia'\n\nexport const StyledMenuButtonWrapper = styled(ListItem).attrs({ button: true })`\n ${standaloneMedia(css`\n width: 100%;\n height: 60px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n `)}\n`\n\nexport const StyledDialog = styled(Dialog).attrs({\n ...(isStandaloneApp && { hideBackdrop: true, transitionDuration: 0 }),\n})`\n ${standaloneMedia(css`\n margin-bottom: ${pwaFooterHeight}px;\n\n .MuiDialog-container .MuiPaper-root {\n box-shadow: none;\n }\n `)}\n`\n\nexport const StyledHeader = styled(Header)`\n ${standaloneMedia(css`\n padding-top: 47px;\n `)}\n`\n","import { useEffect, useRef } from 'react'\nimport { isStandaloneApp } from 'utils/Utils'\n\nexport default function useOnStandaloneAppOutsideClick(onClickOutside) {\n const ref = useRef()\n\n useEffect(() => {\n if (!isStandaloneApp) return\n\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n onClickOutside && onClickOutside()\n }\n }\n\n document.addEventListener('click', handleClickOutside, true)\n\n return () => {\n document.removeEventListener('click', handleClickOutside, true)\n }\n })\n\n return ref\n}\n","import axios from 'axios'\nimport parseTorrent from 'parse-torrent'\nimport ptt from 'parse-torrent-title'\n\nexport const getMoviePosters = (movieName, language = 'en') => {\n const url = 'http://api.themoviedb.org/3/search/multi'\n\n return axios\n .get(url, {\n params: {\n api_key: process.env.REACT_APP_TMDB_API_KEY,\n language,\n include_image_language: `${language},null,en`,\n query: movieName,\n },\n })\n .then(({ data: { results } }) =>\n results.filter(el => el.poster_path).map(el => `https://image.tmdb.org/t/p/w300${el.poster_path}`),\n )\n .catch(() => null)\n}\n\nexport const checkImageURL = async url => {\n if (!url || !url.match(/.(jpg|jpeg|png|gif)$/i)) return false\n return true\n}\n\nconst magnetRegex = /^magnet:\\?xt=urn:[a-z0-9].*/i\nexport const hashRegex = /^\\b[0-9a-f]{32}\\b$|^\\b[0-9a-f]{40}\\b$|^\\b[0-9a-f]{64}\\b$/i\nconst torrentRegex = /^.*\\.(torrent)$/i\nconst linkRegex = /^(http(s?)):\\/\\/.*/i\n\nexport const checkTorrentSource = source =>\n source.match(hashRegex) !== null ||\n source.match(magnetRegex) !== null ||\n source.match(torrentRegex) !== null ||\n source.match(linkRegex) !== null\n\nexport const parseTorrentTitle = (parsingSource, callback) => {\n parseTorrent.remote(parsingSource, (err, { name, files } = {}) => {\n if (!name || err) return callback({ parsedTitle: null, originalName: null })\n\n const torrentName = ptt.parse(name).title\n const nameOfFileInsideTorrent = files ? ptt.parse(files[0].name).title : null\n\n let newTitle = torrentName\n if (nameOfFileInsideTorrent) {\n // taking shorter title because in most cases it is more accurate\n newTitle = torrentName.length < nameOfFileInsideTorrent.length ? torrentName : nameOfFileInsideTorrent\n }\n\n callback({ parsedTitle: newTitle, originalName: name })\n })\n}\n","import { Button } from '@material-ui/core'\nimport styled, { css } from 'styled-components'\n\nexport const Content = styled.div`\n ${({\n isEditMode,\n theme: {\n addDialog: { gradientStartColor, gradientEndColor, fontColor },\n },\n }) => css`\n height: 550px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n flex: 1;\n display: grid;\n grid-template-columns: repeat(${isEditMode ? '1' : '2'}, 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ${fontColor};\n\n @media (max-width: 540px) {\n ${'' /* Just for bug fixing on small screens */}\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n `}\n`\n\nexport const RightSide = styled.div`\n padding: 0 20px 20px 20px;\n`\n\nexport const RightSideContainer = styled.div`\n ${({\n isHidden,\n notificationMessage,\n isError,\n theme: {\n addDialog: { notificationErrorBGColor, notificationSuccessBGColor },\n },\n }) => css`\n height: 530px;\n\n ${notificationMessage &&\n css`\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '${notificationMessage}';\n display: grid;\n place-items: center;\n background: ${isError ? notificationErrorBGColor : notificationSuccessBGColor};\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n `};\n\n ${isHidden &&\n css`\n display: none;\n `};\n\n @media (max-width: 500px) {\n height: 170px;\n }\n `}\n`\nexport const LeftSide = styled.div`\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n`\n\nexport const LeftSideBottomSectionBasicStyles = css`\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n`\n\nexport const LeftSideBottomSectionNoFile = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n outline: none;\n\n ${({ isDragActive }) => isDragActive && `border: 4px dashed green`};\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n`\n\nexport const LeftSideBottomSectionFileSelected = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n`\n\nexport const TorrentIconWrapper = styled.div`\n position: relative;\n`\n\nexport const CancelIconWrapper = styled.div`\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n`\n\nexport const IconWrapper = styled.div`\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n`\n\nexport const LeftSideTopSection = styled.div`\n ${({\n active,\n theme: {\n addDialog: { gradientStartColor },\n },\n }) => css`\n background: ${gradientStartColor};\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ${active && 'box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)'};\n `}\n`\n\nexport const PosterWrapper = styled.div`\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n`\n\nexport const PosterSuggestions = styled.div`\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n`\n\nexport const PosterSuggestionsItem = styled.div`\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n`\n\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n addDialog: { posterBGColor },\n },\n }) => css`\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ${poster\n ? css`\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n `}\n `}\n`\n\nexport const ClearPosterButton = styled(Button)`\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ${({ showbutton }) => !showbutton && 'display: none'};\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n`\n\nexport const PosterLanguageSwitch = styled.div`\n ${({\n showbutton,\n theme: {\n addDialog: { languageSwitchBGColor, languageSwitchFontColor },\n },\n }) => css`\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ${languageSwitchBGColor};\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ${languageSwitchFontColor};\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ${!showbutton && 'display: none'};\n\n :hover {\n filter: brightness(1.1);\n }\n `}\n`\n\nexport const StyledPWAAddButton = styled.div`\n border: 2px solid white;\n border-radius: 50%;\n height: 45px;\n width: 45px;\n position: relative;\n\n :before,\n :after {\n content: '';\n background: white;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n :before {\n width: 2px;\n height: 25px;\n }\n :after {\n width: 25px;\n height: 2px;\n }\n`\n","import { useTranslation } from 'react-i18next'\nimport { rgba } from 'polished'\nimport { NoImageIcon } from 'icons'\nimport { IconButton, InputAdornment, TextField, useTheme } from '@material-ui/core'\nimport { HighlightOff as HighlightOffIcon } from '@material-ui/icons'\n\nimport {\n ClearPosterButton,\n PosterLanguageSwitch,\n RightSide,\n Poster,\n PosterSuggestions,\n PosterSuggestionsItem,\n PosterWrapper,\n RightSideContainer,\n} from './style'\nimport { checkImageURL } from './helpers'\n\nexport default function RightSideComponent({\n setTitle,\n setPosterUrl,\n setIsPosterUrlCorrect,\n setIsUserInteractedWithPoster,\n setPosterList,\n isTorrentSourceCorrect,\n isHashAlreadyExists,\n title,\n parsedTitle,\n posterUrl,\n isPosterUrlCorrect,\n posterList,\n currentLang,\n posterSearchLanguage,\n setPosterSearchLanguage,\n posterSearch,\n removePoster,\n torrentSource,\n originalTorrentTitle,\n updateTitleFromSource,\n isCustomTitleEnabled,\n setIsCustomTitleEnabled,\n isEditMode,\n}) {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n const handleTitleChange = ({ target: { value } }) => setTitle(value)\n const handlePosterUrlChange = ({ target: { value } }) => {\n setPosterUrl(value)\n checkImageURL(value).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(!!value)\n setPosterList()\n }\n const userChangesPosterUrl = url => {\n setPosterUrl(url)\n checkImageURL(url).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(true)\n }\n\n return (\n \n \n {originalTorrentTitle ? (\n <>\n \n setIsCustomTitleEnabled(true)}\n onBlur={({ target: { value } }) => !value && setIsCustomTitleEnabled(false)}\n value={title}\n margin='dense'\n label={t('AddDialog.CustomTorrentTitle')}\n type='text'\n fullWidth\n helperText={t('AddDialog.CustomTorrentTitleHelperText')}\n InputProps={{\n endAdornment: (\n \n {\n setTitle('')\n setIsCustomTitleEnabled(!isCustomTitleEnabled)\n updateTitleFromSource()\n setIsUserInteractedWithPoster(false)\n }}\n >\n \n \n \n ),\n }}\n />\n \n ) : (\n \n )}\n \n\n \n \n {isPosterUrlCorrect ? poster : }\n \n\n \n {posterList\n ?.filter(url => url !== posterUrl)\n .slice(0, 12)\n .map(url => (\n userChangesPosterUrl(url)} key={url}>\n poster\n \n ))}\n \n\n {currentLang !== 'en' && (\n {\n const newLanguage = posterSearchLanguage === 'en' ? 'ru' : 'en'\n setPosterSearchLanguage(newLanguage)\n posterSearch(isCustomTitleEnabled ? title : originalTorrentTitle ? parsedTitle : title, newLanguage, {\n shouldRefreshMainPoster: true,\n })\n }}\n showbutton={+isPosterUrlCorrect}\n color='primary'\n variant='contained'\n size='small'\n >\n {posterSearchLanguage === 'en' ? 'EN' : 'RU'}\n \n )}\n\n {\n removePoster()\n setIsUserInteractedWithPoster(true)\n }}\n color='primary'\n variant='contained'\n size='small'\n >\n {t('Clear')}\n \n \n \n\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { useDropzone } from 'react-dropzone'\nimport { AddItemIcon, TorrentIcon } from 'icons'\nimport TextField from '@material-ui/core/TextField'\nimport { Cancel as CancelIcon } from '@material-ui/icons'\nimport { useState } from 'react'\n\nimport {\n CancelIconWrapper,\n IconWrapper,\n LeftSide,\n LeftSideBottomSectionFileSelected,\n LeftSideBottomSectionNoFile,\n LeftSideTopSection,\n TorrentIconWrapper,\n} from './style'\n\nexport default function LeftSideComponent({\n setIsUserInteractedWithPoster,\n setSelectedFile,\n torrentSource,\n setTorrentSource,\n selectedFile,\n}) {\n const { t } = useTranslation()\n\n const handleCapture = files => {\n const [file] = files\n if (!file) return\n\n setIsUserInteractedWithPoster(false)\n setSelectedFile(file)\n setTorrentSource(file.name)\n }\n\n const clearSelectedFile = () => {\n setSelectedFile()\n setTorrentSource('')\n }\n\n const [isTorrentSourceActive, setIsTorrentSourceActive] = useState(false)\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop: handleCapture, accept: '.torrent' })\n\n const handleTorrentSourceChange = ({ target: { value } }) => setTorrentSource(value)\n\n return (\n \n \n setIsTorrentSourceActive(true)}\n onBlur={() => setIsTorrentSourceActive(false)}\n inputProps={{ autoComplete: 'off' }}\n disabled={!!selectedFile}\n />\n \n\n {selectedFile ? (\n \n \n \n\n \n \n \n \n \n ) : (\n \n \n
{t('AddDialog.AppendFile.Or')}
\n\n \n \n
{t('AddDialog.AppendFile.ClickOrDrag')}
\n
\n
\n )}\n
\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport { torrentsHost, torrentUploadHost } from 'utils/Hosts'\nimport axios from 'axios'\nimport { useTranslation } from 'react-i18next'\nimport debounce from 'lodash/debounce'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { useMediaQuery } from '@material-ui/core'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport usePreviousState from 'utils/usePreviousState'\nimport { useQuery } from 'react-query'\nimport { getTorrents } from 'utils/Utils'\nimport parseTorrent from 'parse-torrent'\nimport { ButtonWrapper } from 'style/DialogStyles'\nimport { StyledDialog, StyledHeader } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nimport { checkImageURL, getMoviePosters, checkTorrentSource, parseTorrentTitle } from './helpers'\nimport { Content } from './style'\nimport RightSideComponent from './RightSideComponent'\nimport LeftSideComponent from './LeftSideComponent'\n\nexport default function AddDialog({\n handleClose,\n hash: originalHash,\n title: originalTitle,\n name: originalName,\n poster: originalPoster,\n}) {\n const { t } = useTranslation()\n const isEditMode = !!originalHash\n const [torrentSource, setTorrentSource] = useState(originalHash || '')\n const [title, setTitle] = useState(originalTitle || '')\n const [originalTorrentTitle, setOriginalTorrentTitle] = useState('')\n const [parsedTitle, setParsedTitle] = useState('')\n const [posterUrl, setPosterUrl] = useState(originalPoster || '')\n const [isPosterUrlCorrect, setIsPosterUrlCorrect] = useState(false)\n const [isTorrentSourceCorrect, setIsTorrentSourceCorrect] = useState(false)\n const [isHashAlreadyExists, setIsHashAlreadyExists] = useState(false)\n const [posterList, setPosterList] = useState()\n const [isUserInteractedWithPoster, setIsUserInteractedWithPoster] = useState(isEditMode)\n const [currentLang] = useChangeLanguage()\n const [selectedFile, setSelectedFile] = useState()\n const [posterSearchLanguage, setPosterSearchLanguage] = useState(currentLang === 'ru' ? 'ru' : 'en')\n const [isSaving, setIsSaving] = useState(false)\n const [skipDebounce, setSkipDebounce] = useState(false)\n const [isCustomTitleEnabled, setIsCustomTitleEnabled] = useState(false)\n const [currentSourceHash, setCurrentSourceHash] = useState()\n\n const ref = useOnStandaloneAppOutsideClick(handleClose)\n\n const { data: torrents } = useQuery('torrents', getTorrents, { retry: 1, refetchInterval: 1000 })\n\n useEffect(() => {\n // getting hash from added torrent source\n parseTorrent.remote(selectedFile || torrentSource, (_, { infoHash } = {}) => setCurrentSourceHash(infoHash))\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n // checking if torrent already exists in DB\n if (!setCurrentSourceHash) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n setIsHashAlreadyExists(allHashes.includes(currentSourceHash))\n }, [currentSourceHash, torrents])\n\n useEffect(() => {\n // closing dialog when torrent successfully added in DB\n if (!isSaving) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n allHashes.includes(currentSourceHash) && handleClose()\n // FIXME! check api reply on add links\n const linkRegex = /^(http(s?)):\\/\\/.*/i\n torrentSource.match(linkRegex) !== null && handleClose()\n }, [isSaving, torrents, torrentSource, currentSourceHash, handleClose])\n\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n\n const updateTitleFromSource = useCallback(() => {\n parseTorrentTitle(selectedFile || torrentSource, ({ parsedTitle, originalName }) => {\n if (!originalName) return\n\n setSkipDebounce(true)\n setTitle('')\n setIsCustomTitleEnabled(false)\n setOriginalTorrentTitle(originalName)\n setParsedTitle(parsedTitle)\n })\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n if (!selectedFile && !torrentSource) {\n setTitle('')\n setOriginalTorrentTitle('')\n setParsedTitle('')\n setIsCustomTitleEnabled(false)\n setPosterList()\n removePoster()\n setIsUserInteractedWithPoster(false)\n }\n }, [selectedFile, torrentSource])\n\n const removePoster = () => {\n setIsPosterUrlCorrect(false)\n setPosterUrl('')\n }\n\n useEffect(() => {\n if (originalHash) {\n checkImageURL(posterUrl).then(correctImage => {\n correctImage ? setIsPosterUrlCorrect(true) : removePoster()\n })\n }\n // This is needed only on mount. Do not remove line below\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const posterSearch = useMemo(\n () =>\n (movieName, language, { shouldRefreshMainPoster = false } = {}) => {\n if (!movieName) {\n setPosterList()\n removePoster()\n return\n }\n\n getMoviePosters(movieName, language).then(urlList => {\n if (urlList) {\n setPosterList(urlList)\n if (!shouldRefreshMainPoster && isUserInteractedWithPoster) return\n\n const [firstPoster] = urlList\n checkImageURL(firstPoster).then(correctImage => {\n if (correctImage) {\n setIsPosterUrlCorrect(true)\n setPosterUrl(firstPoster)\n } else removePoster()\n })\n } else {\n setPosterList()\n if (isUserInteractedWithPoster) return\n\n removePoster()\n }\n })\n },\n [isUserInteractedWithPoster],\n )\n\n const delayedPosterSearch = useMemo(() => debounce(posterSearch, 700), [posterSearch])\n\n const prevTorrentSourceState = usePreviousState(torrentSource)\n\n useEffect(() => {\n const isCorrectSource = checkTorrentSource(torrentSource)\n if (!isCorrectSource) return setIsTorrentSourceCorrect(false)\n\n setIsTorrentSourceCorrect(true)\n\n // if torrentSource is updated then we are getting title from the source\n const torrentSourceChanged = torrentSource !== prevTorrentSourceState\n if (!torrentSourceChanged) return\n\n updateTitleFromSource()\n }, [prevTorrentSourceState, selectedFile, torrentSource, updateTitleFromSource])\n\n const prevTitleState = usePreviousState(title)\n\n useEffect(() => {\n // if title exists and title was changed then search poster.\n const titleChanged = title !== prevTitleState\n if (!titleChanged && !parsedTitle) return\n\n if (skipDebounce) {\n posterSearch(title || parsedTitle, posterSearchLanguage)\n setSkipDebounce(false)\n } else if (!title) {\n delayedPosterSearch.cancel()\n\n if (parsedTitle) {\n posterSearch(parsedTitle, posterSearchLanguage)\n } else {\n !isUserInteractedWithPoster && removePoster()\n }\n } else {\n delayedPosterSearch(title, posterSearchLanguage)\n }\n }, [\n title,\n parsedTitle,\n prevTitleState,\n delayedPosterSearch,\n posterSearch,\n posterSearchLanguage,\n skipDebounce,\n isUserInteractedWithPoster,\n ])\n\n const handleSave = () => {\n setIsSaving(true)\n\n if (isEditMode) {\n axios\n .post(torrentsHost(), {\n action: 'set',\n hash: originalHash,\n title: title || originalName,\n poster: posterUrl,\n })\n .finally(handleClose)\n } else if (selectedFile) {\n // file save\n const data = new FormData()\n data.append('save', 'true')\n data.append('file', selectedFile)\n title && data.append('title', title)\n posterUrl && data.append('poster', posterUrl)\n axios.post(torrentUploadHost(), data).catch(handleClose)\n } else {\n // link save\n axios\n .post(torrentsHost(), { action: 'add', link: torrentSource, title, poster: posterUrl, save_to_db: true })\n .catch(handleClose)\n }\n }\n\n return (\n \n {t(isEditMode ? 'EditTorrent' : 'AddNewTorrent')}\n\n \n {!isEditMode && (\n \n )}\n\n \n \n\n \n \n\n \n {isSaving ? : t(isEditMode ? 'Save' : 'Add')}\n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const TorrentCard = styled.div`\n ${({\n theme: {\n torrentCard: { cardPrimaryColor },\n },\n }) => css`\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ${cardPrimaryColor};\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n `}\n`\n\nexport const TorrentCardPoster = styled.div`\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n cursor: pointer;\n transition: 0.2s;\n position: relative;\n\n :hover {\n filter: brightness(0.7);\n }\n\n ${({\n isPoster,\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) =>\n isPoster\n ? css`\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${cardSecondaryColor};\n border: 1px solid ${accentCardColor};\n\n svg {\n transform: translateY(-3px);\n }\n `};\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n`\n\nexport const TorrentCardButtons = styled.div`\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n`\nexport const TorrentCardDescription = styled.div`\n ${({\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) => css`\n grid-area: description;\n background: ${cardSecondaryColor};\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ${accentCardColor};\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n `}\n`\n\nexport const StyledButton = styled.button`\n ${({\n theme: {\n torrentCard: { buttonBGColor, accentCardColor },\n },\n }) => css`\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ${buttonBGColor};\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ${accentCardColor};\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n `}\n`\n","import { forwardRef, memo, useState } from 'react'\nimport {\n UnfoldMore as UnfoldMoreIcon,\n PlayArrow as PlayArrowIcon,\n Close as CloseIcon,\n Delete as DeleteIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed, removeRedundantCharacters } from 'utils/Utils'\nimport { playlistTorrHost, torrentsHost } from 'utils/Hosts'\nimport { NoImageIcon } from 'icons'\nimport DialogTorrentDetailsContent from 'components/DialogTorrentDetailsContent'\nimport Dialog from '@material-ui/core/Dialog'\nimport Slide from '@material-ui/core/Slide'\nimport { Button, DialogActions, DialogTitle, useMediaQuery, useTheme } from '@material-ui/core'\nimport axios from 'axios'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\nimport AddDialog from 'components/Add/AddDialog'\nimport { StyledDialog } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nimport { StyledButton, TorrentCard, TorrentCardButtons, TorrentCardDescription, TorrentCardPoster } from './style'\n\nconst Transition = forwardRef((props, ref) => )\n\nconst Torrent = ({ torrent }) => {\n const { t } = useTranslation()\n const [isDetailedInfoOpened, setIsDetailedInfoOpened] = useState(false)\n const [isDeleteTorrentOpened, setIsDeleteTorrentOpened] = useState(false)\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('md'))\n\n const openDetailedInfo = () => setIsDetailedInfoOpened(true)\n const closeDetailedInfo = () => setIsDetailedInfoOpened(false)\n const openDeleteTorrentAlert = () => setIsDeleteTorrentOpened(true)\n const closeDeleteTorrentAlert = () => setIsDeleteTorrentOpened(false)\n\n const { title, name, poster, torrent_size: torrentSize, download_speed: downloadSpeed, hash } = torrent\n\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const deleteTorrent = () => axios.post(torrentsHost(), { action: 'rem', hash })\n\n const getParsedTitle = () => {\n const parse = key => ptt.parse(title || '')?.[key] || ptt.parse(name || '')?.[key]\n\n const titleStrings = []\n\n let parsedTitle = removeRedundantCharacters(parse('title'))\n const parsedYear = parse('year')\n const parsedResolution = parse('resolution')\n if (parsedTitle) titleStrings.push(parsedTitle)\n if (parsedYear) titleStrings.push(`(${parsedYear})`)\n if (parsedResolution) titleStrings.push(`[${parsedResolution}]`)\n parsedTitle = titleStrings.join(' ')\n return { parsedTitle }\n }\n const { parsedTitle } = getParsedTitle()\n\n const [isEditDialogOpen, setIsEditDialogOpen] = useState(false)\n const handleClickOpenEditDialog = () => setIsEditDialogOpen(true)\n const handleCloseEditDialog = () => setIsEditDialogOpen(false)\n\n const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(parsedTitle || 'file')}.m3u?link=${hash}&m3u`\n\n const detailedInfoDialogRef = useOnStandaloneAppOutsideClick(closeDetailedInfo)\n\n return (\n <>\n \n \n {poster ? poster : }\n \n\n \n \n \n {t('Details')}\n \n\n {\n window.open(fullPlaylistLink, '_blank')\n }}\n >\n \n {t('Playlist')}\n \n\n dropTorrent(torrent)}>\n \n {t('Drop')}\n \n\n \n \n {t('Delete')}\n \n \n\n \n
\n
{t('Name')}
\n
{parsedTitle}
\n
\n\n
\n
\n
{t('Size')}
\n
{torrentSize > 0 && humanizeSize(torrentSize)}
\n
\n\n
\n
{t('Speed')}
\n
\n {downloadSpeed > 0 ? humanizeSpeed(downloadSpeed) : '---'}\n
\n
\n\n
\n
{t('Peers')}
\n
{getPeerString(torrent) || '---'}
\n
\n
\n
\n
\n\n \n \n \n\n \n {t('DeleteTorrent?')}\n \n \n\n {\n deleteTorrent(torrent)\n closeDeleteTorrentAlert()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n\n {isEditDialogOpen && (\n \n )}\n \n )\n}\n\nexport default memo(Torrent)\n","import { IconButton } from '@material-ui/core'\nimport { rgba } from 'polished'\nimport { standaloneMedia } from 'style/standaloneMedia'\nimport styled, { css } from 'styled-components'\n\nimport { pwaFooterHeight } from './PWAFooter/style'\n\nexport const AppWrapper = styled.div`\n ${({\n theme: {\n app: { appSecondaryColor },\n },\n }) => css`\n height: 100%;\n background: ${rgba(appSecondaryColor, 0.8)};\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n\n ${standaloneMedia(css`\n grid-template-columns: 0 1fr;\n grid-template-rows: ${pwaFooterHeight}px 1fr ${pwaFooterHeight}px;\n height: 100vh;\n `)}\n `}\n`\n\nexport const CenteredGrid = styled.div`\n display: grid;\n place-items: center;\n\n ${standaloneMedia(css`\n height: 100vh;\n width: 100vw;\n `)}\n`\n\nexport const AppHeader = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n\n ${standaloneMedia(css`\n grid-template-columns: max-content 1fr;\n align-items: end;\n padding: 7px 16px;\n position: fixed;\n width: 100%;\n height: ${pwaFooterHeight}px;\n `)}\n `}\n`\nexport const AppSidebarStyle = styled.div`\n ${({\n isDrawerOpen,\n theme: {\n app: { appSecondaryColor, sidebarBGColor, sidebarFillColor },\n },\n }) => css`\n grid-area: side;\n width: ${isDrawerOpen ? '400%' : '100%'};\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ${rgba(appSecondaryColor, 0.12)};\n background: ${sidebarBGColor};\n color: ${sidebarFillColor};\n white-space: nowrap;\n\n svg {\n fill: ${sidebarFillColor};\n }\n\n ${standaloneMedia(css`\n display: none;\n `)}\n `}\n`\nexport const TorrentListWrapper = styled.div`\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n\n ${standaloneMedia(css`\n height: calc(100vh - ${pwaFooterHeight}px);\n padding-bottom: 105px;\n `)}\n`\n\nexport const HeaderToggle = styled.div`\n ${({\n theme: {\n app: { headerToggleColor },\n },\n }) => css`\n cursor: pointer;\n border-radius: 50%;\n background: ${headerToggleColor};\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ${rgba(headerToggleColor, 0.7)};\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n `}\n`\n\nexport const StyledIconButton = styled(IconButton)`\n margin-right: 6px;\n\n ${standaloneMedia(css`\n display: none;\n `)}\n`\n","import styled, { css } from 'styled-components'\n\nexport default styled.div`\n ${({\n isButton,\n theme: {\n addDialog: { notificationSuccessBGColor, languageSwitchBGColor },\n },\n }) => css`\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ${isButton &&\n css`\n background: ${notificationSuccessBGColor};\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: ${languageSwitchBGColor};\n }\n `}\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n `}\n`\n","import { useTheme } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nimport IconWrapper from './style'\n\nexport default function NoServerConnection() {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n
{t('Offline')}
\n
\n )\n}\n","import { useTheme } from '@material-ui/core'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport AddDialog from '../Add/AddDialog'\nimport IconWrapper from './style'\n\nexport default function AddFirstTorrent() {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n const primary = useTheme().palette.primary.main\n\n return (\n <>\n handleClickOpen(true)} isButton>\n \n
{t('NoTorrentsAdded')}
\n
\n\n {isDialogOpen && }\n \n )\n}\n","import TorrentCard from 'components/TorrentCard'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { TorrentListWrapper, CenteredGrid } from 'components/App/style'\n\nimport NoServerConnection from './NoServerConnection'\nimport AddFirstTorrent from './AddFirstTorrent'\n\nexport default function TorrentList({ isOffline, isLoading, torrents }) {\n if (isLoading || isOffline || !torrents.length) {\n return (\n \n {isOffline ? (\n \n ) : isLoading ? (\n \n ) : (\n !torrents.length && \n )}\n \n )\n }\n\n return (\n \n {torrents.map(torrent => (\n \n ))}\n \n )\n}\n","import ListItem from '@material-ui/core/ListItem'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport List from '@material-ui/core/List'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport { useTranslation } from 'react-i18next'\nimport { StyledDialog } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nconst donateFrame =\n ''\n\nexport default function DonateDialog({ onClose }) {\n const { t } = useTranslation()\n const ref = useOnStandaloneAppOutsideClick(onClose)\n\n return (\n \n {t('Donate')}\n \n \n \n \n \n \n \n \n \n \n \n {/* eslint-disable-next-line react/no-danger */}\n
\n \n \n \n \n \n \n \n )\n}\n","import { useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Snackbar from '@material-ui/core/Snackbar'\nimport IconButton from '@material-ui/core/IconButton'\nimport CreditCardIcon from '@material-ui/icons/CreditCard'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useTranslation } from 'react-i18next'\nimport styled from 'styled-components'\nimport { standaloneMedia } from 'style/standaloneMedia'\n\nimport DonateDialog from './DonateDialog'\n\nconst StyledSnackbar = styled(Snackbar)`\n ${standaloneMedia('margin-bottom: 90px')};\n`\n\nexport default function DonateSnackbar() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [snackbarOpen, setSnackbarOpen] = useState(true)\n\n const disableSnackbar = () => {\n setSnackbarOpen(false)\n localStorage.setItem('snackbarIsClosed', true)\n }\n\n return (\n <>\n {open && setOpen(false)} />}\n\n \n {\n setOpen(true)\n disableSnackbar()\n }}\n >\n \n {t('Support')}\n \n\n \n \n \n \n }\n />\n \n )\n}\n","import { createGlobalStyle, css } from 'styled-components'\n\nimport { standaloneMedia } from './standaloneMedia'\n\nexport default createGlobalStyle`\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: \"Open Sans\", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n -webkit-tap-highlight-color: transparent;\n\n\n ${standaloneMedia(css`\n height: 100vh;\n `)}\n }\n\n button {\n font-family: \"Open Sans\", sans-serif;\n letter-spacing: -0.1px;\n }\n`\n","import { useState } from 'react'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport LibraryAddIcon from '@material-ui/icons/LibraryAdd'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useTranslation } from 'react-i18next'\nimport { StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport AddDialog from './AddDialog'\nimport { StyledPWAAddButton } from './style'\n\nexport default function AddDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n {isStandaloneApp ? (\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n \n\n {isDialogOpen && }\n
\n )\n}\n","import styled, { css } from 'styled-components'\nimport { mainColors } from 'style/colors'\nimport { StyledHeader } from 'style/CustomMaterialUiStyles'\n\nexport const cacheBeforeReaderColor = '#b3dfc9'\nexport const cacheAfterReaderColor = mainColors.light.primary\n\nexport const SettingsHeader = styled(StyledHeader)`\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n`\n\nexport const FooterSection = styled.div`\n ${({\n theme: {\n settingsDialog: { footerBG },\n },\n }) => css`\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ${footerBG};\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n `}\n`\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n\nexport const Content = styled.div`\n ${({\n isLoading,\n theme: {\n settingsDialog: { contentBG },\n },\n }) => css`\n background: ${contentBG};\n overflow: auto;\n flex: 1;\n\n ${isLoading &&\n css`\n min-height: 500px;\n display: grid;\n place-items: center;\n `}\n `}\n`\n\nexport const PreloadCacheValue = styled.div`\n ${({ color }) => css`\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ${color};\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n `}\n`\n\nexport const MainSettingsContent = styled.div`\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n`\nexport const SecondarySettingsContent = styled.div`\n padding: 20px;\n`\n\nexport const StorageButton = styled.div`\n ${({ small, selected }) => css`\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ${!selected &&\n css`\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n `}\n\n ${small\n ? css`\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n `\n : css`\n display: grid;\n place-items: center;\n gap: 10px;\n `}\n `}\n`\n\nexport const StorageIconWrapper = styled.div`\n ${({ selected, small }) => css`\n width: ${small ? '60px' : '150px'};\n height: ${small ? '60px' : '150px'};\n border-radius: 50%;\n background: ${selected ? '#323637' : '#dee3e5'};\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ${small ? '50px' : '90px'};\n height: ${small ? '50px' : '90px'};\n }\n `}\n`\n\nexport const CacheStorageSelector = styled.div`\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n`\n\nexport const SettingSectionLabel = styled.div`\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n`\n\nexport const PreloadCachePercentage = styled.div.attrs(({ value }) => ({\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${cacheBeforeReaderColor} 0%, ${cacheBeforeReaderColor} ${value}%, ${cacheAfterReaderColor} ${value}%, ${cacheAfterReaderColor} 100%)`,\n },\n}))`\n ${({ label, preloadCachePercentage }) => css`\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ${preloadCachePercentage}%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n `}\n`\n","export default {\n CacheSize: 64,\n ReaderReadAHead: 95,\n UseDisk: false,\n UploadRateLimit: 0,\n TorrentsSavePath: '',\n ConnectionsLimit: 25,\n DisableDHT: false,\n DisablePEX: false,\n DisableTCP: false,\n DisableUPNP: false,\n DisableUTP: false,\n DisableUpload: false,\n DownloadRateLimit: 0,\n EnableDebug: false,\n EnableIPv6: false,\n FriendlyName: '',\n ForceEncrypt: false,\n PeersListenPort: 0,\n PreloadCache: 50,\n RemoveCacheOnDrop: false,\n RetrackersMode: 1,\n TorrentDisconnectTimeout: 30,\n}\n","export const a11yProps = index => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nexport const TabPanel = ({ children, value, index, ...other }) => (\n \n)\n","import { Grid, OutlinedInput, Slider } from '@material-ui/core'\n\nexport default function SliderInput({\n isProMode,\n title,\n value,\n setValue,\n sliderMin,\n sliderMax,\n inputMin,\n inputMax,\n step = 1,\n onBlurCallback,\n}) {\n const onBlur = ({ target: { value } }) => {\n if (value < inputMin) return setValue(inputMin)\n if (value > inputMax) return setValue(inputMax)\n\n onBlurCallback && onBlurCallback(value)\n }\n\n const onInputChange = ({ target: { value } }) => setValue(value === '' ? '' : Number(value))\n const onSliderChange = (_, newValue) => setValue(newValue)\n\n return (\n <>\n
{title}
\n\n \n \n \n \n\n {isProMode && (\n \n \n \n )}\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { USBIcon, RAMIcon } from 'icons'\nimport { FormControlLabel, Switch } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\n\nimport {\n PreloadCacheValue,\n MainSettingsContent,\n StorageButton,\n StorageIconWrapper,\n CacheStorageSelector,\n SettingSectionLabel,\n PreloadCachePercentage,\n cacheBeforeReaderColor,\n cacheAfterReaderColor,\n} from './style'\nimport SliderInput from './SliderInput'\n\nconst CacheStorageLocationLabel = ({ style }) => {\n const { t } = useTranslation()\n\n return (\n \n {t('SettingsDialog.CacheStorageLocation')}\n {t('SettingsDialog.UseDiskDesc')}\n \n )\n}\n\nexport default function PrimarySettingsComponent({\n settings,\n inputForm,\n cachePercentage,\n preloadCachePercentage,\n cacheSize,\n isProMode,\n setCacheSize,\n setCachePercentage,\n setPreloadCachePercentage,\n updateSettings,\n}) {\n const { t } = useTranslation()\n const { UseDisk, TorrentsSavePath, RemoveCacheOnDrop } = settings || {}\n const preloadCacheSize = Math.round((cacheSize / 100) * preloadCachePercentage)\n\n return (\n \n
\n {t('SettingsDialog.CacheSettings')}\n\n \n\n \n
\n {100 - cachePercentage}% ({Math.round((cacheSize / 100) * (100 - cachePercentage))} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheBeforeReaderDesc')}
\n
\n\n \n
\n {cachePercentage}% ({Math.round((cacheSize / 100) * cachePercentage)} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheAfterReaderDesc')}
\n
\n\n
\n\n setCacheSize(Math.round(value / 4) * 4)}\n />\n\n \n\n \n
\n\n {UseDisk ? (\n
\n \n\n
\n updateSettings({ UseDisk: false })}>\n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n \n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n\n \n }\n label={t('SettingsDialog.RemoveCacheOnDrop')}\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RemoveCacheOnDropDesc')}\n
\n
\n \n
\n ) : (\n \n \n\n \n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n updateSettings({ UseDisk: true })}>\n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n )}\n
\n )\n}\n","import { useTranslation } from 'react-i18next'\nimport TextField from '@material-ui/core/TextField'\nimport { FormControlLabel, InputAdornment, InputLabel, Select, Switch } from '@material-ui/core'\n\nimport { SecondarySettingsContent, SettingSectionLabel } from './style'\n\nexport default function SecondarySettingsComponent({ settings, inputForm }) {\n const { t } = useTranslation()\n\n const {\n RetrackersMode,\n TorrentDisconnectTimeout,\n EnableDebug,\n EnableDLNA,\n EnableIPv6,\n FriendlyName,\n ForceEncrypt,\n DisableTCP,\n DisableUTP,\n DisableUPNP,\n DisableDHT,\n DisablePEX,\n DisableUpload,\n DownloadRateLimit,\n UploadRateLimit,\n ConnectionsLimit,\n PeersListenPort,\n } = settings || {}\n\n return (\n \n {t('SettingsDialog.AdditionalSettings')}\n\n }\n label='IPv6'\n labelPlacement='start'\n />\n }\n label='TCP (Transmission Control Protocol)'\n labelPlacement='start'\n />\n }\n label='μTP (Micro Transport Protocol)'\n labelPlacement='start'\n />\n }\n label='PEX (Peer Exchange)'\n labelPlacement='start'\n />\n }\n label={t('SettingsDialog.ForceEncrypt')}\n labelPlacement='start'\n />\n {t('Seconds')},\n }}\n value={TorrentDisconnectTimeout}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n
\n }\n label={t('SettingsDialog.DHT')}\n labelPlacement='start'\n />\n {t('Kilobytes')},\n }}\n value={DownloadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n }\n label={t('SettingsDialog.Upload')}\n labelPlacement='start'\n />\n {t('Kilobytes')},\n }}\n value={UploadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n }\n label='UPnP (Universal Plug and Play)'\n labelPlacement='start'\n />\n }\n label={t('SettingsDialog.DLNA')}\n labelPlacement='start'\n />\n \n }\n label={t('SettingsDialog.EnableDebug')}\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RetrackersMode')}\n \n \n \n \n \n \n
\n
\n )\n}\n","import { FormControlLabel, Switch } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nimport { SecondarySettingsContent, SettingSectionLabel } from './style'\n\nexport default function MobileAppSettings({ isVlcUsed, setIsVlcUsed }) {\n const { t } = useTranslation()\n\n return (\n \n {t('SettingsDialog.MobileAppSettings')}\n\n setIsVlcUsed(prev => !prev)} color='secondary' />}\n label={t('SettingsDialog.UseVLC')}\n labelPlacement='start'\n />\n \n )\n}\n","import axios from 'axios'\nimport Button from '@material-ui/core/Button'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport { FormControlLabel, useMediaQuery, useTheme } from '@material-ui/core'\nimport { settingsHost } from 'utils/Hosts'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport AppBar from '@material-ui/core/AppBar'\nimport Tabs from '@material-ui/core/Tabs'\nimport Tab from '@material-ui/core/Tab'\nimport SwipeableViews from 'react-swipeable-views'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { StyledDialog } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport { SettingsHeader, FooterSection, Content } from './style'\nimport defaultSettings from './defaultSettings'\nimport { a11yProps, TabPanel } from './tabComponents'\nimport PrimarySettingsComponent from './PrimarySettingsComponent'\nimport SecondarySettingsComponent from './SecondarySettingsComponent'\nimport MobileAppSettings from './MobileAppSettings'\n\nexport default function SettingsDialog({ handleClose }) {\n const { t } = useTranslation()\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n const { direction } = useTheme()\n\n const [settings, setSettings] = useState()\n const [selectedTab, setSelectedTab] = useState(0)\n const [cacheSize, setCacheSize] = useState(32)\n const [cachePercentage, setCachePercentage] = useState(40)\n const [preloadCachePercentage, setPreloadCachePercentage] = useState(0)\n const [isProMode, setIsProMode] = useState(JSON.parse(localStorage.getItem('isProMode')) || false)\n const [isVlcUsed, setIsVlcUsed] = useState(JSON.parse(localStorage.getItem('isVlcUsed')) ?? false)\n\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => {\n setSettings({ ...data, CacheSize: data.CacheSize / (1024 * 1024) })\n })\n }, [])\n\n const ref = useOnStandaloneAppOutsideClick(handleClose)\n\n const handleSave = () => {\n handleClose()\n const sets = JSON.parse(JSON.stringify(settings))\n sets.CacheSize = cacheSize * 1024 * 1024\n sets.ReaderReadAHead = cachePercentage\n sets.PreloadCache = preloadCachePercentage\n axios.post(settingsHost(), { action: 'set', sets })\n localStorage.setItem('isVlcUsed', isVlcUsed)\n }\n\n const inputForm = ({ target: { type, value, checked, id } }) => {\n const sets = JSON.parse(JSON.stringify(settings))\n\n if (type === 'number' || type === 'select-one') {\n sets[id] = Number(value)\n } else if (type === 'checkbox') {\n if (\n id === 'DisableTCP' ||\n id === 'DisableUTP' ||\n id === 'DisableUPNP' ||\n id === 'DisableDHT' ||\n id === 'DisablePEX' ||\n id === 'DisableUpload'\n )\n sets[id] = Boolean(!checked)\n else sets[id] = Boolean(checked)\n } else if (type === 'url' || type === 'text') {\n sets[id] = value\n }\n setSettings(sets)\n }\n\n const { CacheSize, ReaderReadAHead, PreloadCache } = settings || {}\n\n useEffect(() => {\n if (isNaN(CacheSize) || isNaN(ReaderReadAHead) || isNaN(PreloadCache)) return\n\n setCacheSize(CacheSize)\n setCachePercentage(ReaderReadAHead)\n setPreloadCachePercentage(PreloadCache)\n }, [CacheSize, ReaderReadAHead, PreloadCache])\n\n const updateSettings = newProps => setSettings({ ...settings, ...newProps })\n const handleChange = (_, newValue) => setSelectedTab(newValue)\n const handleChangeIndex = index => setSelectedTab(index)\n\n return (\n \n \n
{t('SettingsDialog.Settings')}
\n {\n setIsProMode(checked)\n localStorage.setItem('isProMode', checked)\n if (!checked) setSelectedTab(0)\n }}\n style={{ color: 'white' }}\n />\n }\n label={t('SettingsDialog.ProMode')}\n />\n
\n\n \n \n \n\n \n
{t('SettingsDialog.Tabs.Additional')}
\n {!isProMode &&
{t('SettingsDialog.Tabs.AdditionalDisabled')}
}\n \n }\n {...a11yProps(1)}\n />\n\n {isStandaloneApp && }\n \n
\n\n \n {settings ? (\n <>\n \n \n \n \n\n \n \n \n\n {isStandaloneApp && (\n \n \n \n )}\n \n \n ) : (\n \n )}\n \n\n \n \n\n {\n setCacheSize(defaultSettings.CacheSize)\n setCachePercentage(defaultSettings.ReaderReadAHead)\n setPreloadCachePercentage(defaultSettings.PreloadCache)\n updateSettings(defaultSettings)\n }}\n color='secondary'\n variant='outlined'\n >\n {t('SettingsDialog.ResetToDefault')}\n \n\n \n \n
\n )\n}\n","import ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useState } from 'react'\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport { useTranslation } from 'react-i18next'\nimport { StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport SettingsDialog from './SettingsDialog'\n\nexport default function SettingsDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n {isStandaloneApp ? (\n <>\n \n
{t('SettingsDialog.Settings')}
\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n
\n\n {isDialogOpen && }\n
\n )\n}\n","import { Button, Dialog, DialogActions, DialogTitle } from '@material-ui/core'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport { useState } from 'react'\nimport { torrentsHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\n\nconst fnRemoveAll = () => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'list' }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n .then(res => res.json())\n .then(json => {\n json.forEach(torr => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'rem', hash: torr.hash }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n })\n })\n}\n\nexport default function RemoveAll({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n return (\n <>\n \n \n \n \n\n \n \n\n \n {t('DeleteTorrents?')}\n \n \n\n {\n fnRemoveAll()\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\nimport { standaloneMedia } from 'style/standaloneMedia'\n\nexport const DialogWrapper = styled.div`\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n`\n\nexport const HeaderSection = styled.section`\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n\n ${standaloneMedia(css`\n padding-top: 30px;\n `)}\n`\n\nexport const ThanksSection = styled.section`\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n`\n\nexport const Section = styled.section`\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n`\n\nexport const FooterSection = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n`\n\nexport const LinkWrapper = styled.a`\n ${({ isLink }) => css`\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ${isLink\n ? css`\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n `\n : css`\n cursor: default;\n `}\n `}\n`\n\nexport const LinkIcon = styled.div`\n display: grid;\n margin-right: 10px;\n`\n","import { GitHub as GitHubIcon } from '@material-ui/icons'\n\nimport { LinkWrapper, LinkIcon } from './style'\n\nexport default function LinkComponent({ name, link }) {\n return (\n \n {link && (\n \n \n \n )}\n\n
{name}
\n
\n )\n}\n","import axios from 'axios'\nimport { useEffect, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport InfoIcon from '@material-ui/icons/Info'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useTranslation } from 'react-i18next'\nimport { useMediaQuery } from '@material-ui/core'\nimport { echoHost } from 'utils/Hosts'\nimport { StyledDialog, StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { isStandaloneApp } from 'utils/Utils'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nimport LinkComponent from './LinkComponent'\nimport { DialogWrapper, HeaderSection, ThanksSection, Section, FooterSection } from './style'\n\nexport default function AboutDialog() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n const onClose = () => setOpen(false)\n const ref = useOnStandaloneAppOutsideClick(onClose)\n\n return (\n <>\n setOpen(true)}>\n {isStandaloneApp ? (\n <>\n \n
{t('Details')}
\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n
\n\n \n \n \n
{t('About')}
\n {torrServerVersion}\n ts-icon\n
\n\n
\n {t('ThanksToEveryone')}\n\n
\n {t('Links')}\n\n
\n \n \n
\n
\n\n
\n {t('SpecialThanks')}\n\n
\n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n \n )\n}\n","import { useState } from 'react'\nimport { Button, DialogActions, DialogTitle, ListItemIcon, ListItemText } from '@material-ui/core'\nimport { StyledDialog, StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { PowerSettingsNew as PowerSettingsNewIcon } from '@material-ui/icons'\nimport { shutdownHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\nimport { isStandaloneApp } from 'utils/Utils'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nexport default function CloseServer({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n const ref = useOnStandaloneAppOutsideClick(closeDialog)\n\n return (\n <>\n \n {isStandaloneApp ? (\n <>\n \n
{t('TurnOff')}
\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n
\n\n \n {t('CloseServer?')}\n \n \n\n {\n fetch(shutdownHost())\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('TurnOff')}\n \n \n \n \n )\n}\n","import Divider from '@material-ui/core/Divider'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { CreditCard as CreditCardIcon } from '@material-ui/icons'\nimport List from '@material-ui/core/List'\nimport { useTranslation } from 'react-i18next'\nimport AddDialogButton from 'components/Add'\nimport SettingsDialog from 'components/Settings'\nimport RemoveAll from 'components/RemoveAll'\nimport AboutDialog from 'components/About'\nimport CloseServer from 'components/CloseServer'\nimport { memo } from 'react'\n\nimport { AppSidebarStyle } from './style'\n\nconst Sidebar = ({ isDrawerOpen, setIsDonationDialogOpen, isOffline, isLoading }) => {\n const { t } = useTranslation()\n\n return (\n \n \n \n\n \n \n\n \n\n \n \n\n \n\n setIsDonationDialogOpen(true)}>\n \n \n \n\n \n \n\n \n \n \n )\n}\n\nexport default memo(Sidebar)\n","import { CreditCard as CreditCardIcon } from '@material-ui/icons'\nimport { useTranslation } from 'react-i18next'\nimport CloseServer from 'components/CloseServer'\nimport { StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport AddDialogButton from 'components/Add'\nimport AboutDialog from 'components/About'\nimport SettingsDialogButton from 'components/Settings'\n\nimport StyledPWAFooter from './style'\n\nexport default function PWAFooter({ setIsDonationDialogOpen, isOffline, isLoading }) {\n const { t } = useTranslation()\n\n return (\n \n \n\n setIsDonationDialogOpen(true)}>\n \n\n
{t('Donate')}
\n
\n\n \n\n \n\n \n
\n )\n}\n","export default function IOSShareIcon() {\n return (\n \n Svg Vector Icons : http://www.onlinewebfonts.com/icon \n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const StyledWrapper = styled.div`\n ${({ isOpen }) => css`\n position: absolute;\n bottom: 10px;\n left: 50%;\n background: #eeeef0;\n width: calc(100% - 20px);\n z-index: 9999;\n border-radius: 10px;\n transition: all 0.3s;\n color: #000;\n\n ${isOpen\n ? css`\n opacity: 1;\n transform: translate(-50%, 0);\n `\n : css`\n transform: translate(-50%, 150%);\n opacity: 0;\n pointer-events: none;\n `}\n\n > :not(:last-child) {\n border-bottom: 1px solid #dadadc;\n }\n\n > * {\n padding: 20px;\n }\n `}\n`\n\nexport const StyledHeader = styled.div`\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: min-content 1fr;\n gap: 20px;\n align-items: center;\n font-weight: 700;\n\n img {\n border-radius: 5px;\n }\n`\n\nexport const StyledContent = styled.div`\n > :not(:last-child) {\n margin-bottom: 25px;\n }\n\n span {\n background: #fefcfd;\n padding: 5px;\n border-radius: 5px;\n }\n`\n","import IconButton from '@material-ui/core/IconButton'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport IOSShareIcon from './IOSShareIcon'\nimport { StyledWrapper, StyledHeader, StyledContent } from './style'\n\nexport function PWAInstallationGuide() {\n const pwaNotificationIsClosed = JSON.parse(localStorage.getItem('pwaNotificationIsClosed'))\n const [isOpen, setIsOpen] = useState(!pwaNotificationIsClosed)\n const [shouldBeOpened, setShouldBeOpened] = useState(!pwaNotificationIsClosed)\n\n const { t } = useTranslation()\n\n if (!isOpen) return null\n\n return (\n \n \n ts-icon\n\n {t('PWAGuide.Header')}\n\n {\n setShouldBeOpened(false)\n\n setTimeout(() => {\n setIsOpen(false)\n localStorage.setItem('pwaNotificationIsClosed', true)\n }, 300)\n }}\n >\n \n \n \n\n \n

{t('PWAGuide.Description')}

\n\n

{t('PWAGuide.VLC')}

\n\n

\n 1. {t('PWAGuide.FirstStep')} \n

\n\n

\n 2. {t('PWAGuide.SecondStep.Select')} {t('PWAGuide.SecondStep.AddToHomeScreen')}\n

\n
\n
\n )\n}\n","import CssBaseline from '@material-ui/core/CssBaseline'\nimport { createContext, useEffect, useState } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport {\n Menu as MenuIcon,\n Close as CloseIcon,\n Brightness4 as Brightness4Icon,\n Brightness5 as Brightness5Icon,\n BrightnessAuto as BrightnessAutoIcon,\n} from '@material-ui/icons'\nimport { echoHost } from 'utils/Hosts'\nimport Div100vh from 'react-div-100vh'\nimport axios from 'axios'\nimport TorrentList from 'components/TorrentList'\nimport DonateSnackbar from 'components/Donate'\nimport DonateDialog from 'components/Donate/DonateDialog'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { ThemeProvider as MuiThemeProvider } from '@material-ui/core/styles'\nimport { ThemeProvider as StyledComponentsThemeProvider } from 'styled-components'\nimport { useQuery } from 'react-query'\nimport { getTorrents, isStandaloneApp } from 'utils/Utils'\nimport GlobalStyle from 'style/GlobalStyle'\nimport { lightTheme, THEME_MODES, useMaterialUITheme } from 'style/materialUISetup'\nimport getStyledComponentsTheme from 'style/getStyledComponentsTheme'\nimport checkIsIOS from 'utils/checkIsIOS'\n\nimport { AppWrapper, AppHeader, HeaderToggle, StyledIconButton } from './style'\nimport Sidebar from './Sidebar'\nimport PWAFooter from './PWAFooter'\nimport { PWAInstallationGuide } from './PWAInstallationGuide'\n\nconst snackbarIsClosed = JSON.parse(localStorage.getItem('snackbarIsClosed'))\n\nexport const DarkModeContext = createContext()\n\nexport default function App() {\n const [isDrawerOpen, setIsDrawerOpen] = useState(false)\n const [isDonationDialogOpen, setIsDonationDialogOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n\n const [isDarkMode, currentThemeMode, updateThemeMode, muiTheme] = useMaterialUITheme()\n const [currentLang, changeLang] = useChangeLanguage()\n const [isOffline, setIsOffline] = useState(false)\n const { data: torrents, isLoading } = useQuery('torrents', getTorrents, {\n retry: 1,\n refetchInterval: 1000,\n onError: () => setIsOffline(true),\n onSuccess: () => setIsOffline(false),\n })\n\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n return (\n <>\n \n\n \n \n \n \n\n {/* Div100vh - iOS WebKit fix */}\n \n \n \n setIsDrawerOpen(!isDrawerOpen)}>\n {isDrawerOpen ? : }\n \n\n \n TorrServer {torrServerVersion}\n \n\n \n {\n if (currentThemeMode === THEME_MODES.LIGHT) updateThemeMode(THEME_MODES.DARK)\n if (currentThemeMode === THEME_MODES.DARK) updateThemeMode(THEME_MODES.AUTO)\n if (currentThemeMode === THEME_MODES.AUTO) updateThemeMode(THEME_MODES.LIGHT)\n }}\n >\n {currentThemeMode === THEME_MODES.LIGHT ? (\n \n ) : currentThemeMode === THEME_MODES.DARK ? (\n \n ) : (\n \n )}\n \n\n \n currentLang === 'en'\n ? changeLang('ru')\n : currentLang === 'ru'\n ? changeLang('ua')\n : changeLang('en')\n }\n >\n {currentLang.toUpperCase()}\n \n
\n \n\n \n\n \n\n \n\n \n {isDonationDialogOpen && setIsDonationDialogOpen(false)} />}\n \n\n {snackbarIsClosed ? checkIsIOS() && !isStandaloneApp && : }\n \n \n \n \n \n \n )\n}\n","import { mainColors, themeColors } from './colors'\n\nexport default type => ({ ...themeColors[type], ...mainColors[type] })\n","export default () => {\n if (typeof window === `undefined` || typeof navigator === `undefined`) return false\n\n return /iPhone|iPad|iPod/i.test(navigator.userAgent || navigator.vendor)\n}\n","import { StrictMode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { QueryClientProvider, QueryClient } from 'react-query'\n\nimport App from './components/App'\nimport 'i18n'\n\nconst queryClient = new QueryClient()\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'),\n)\n"],"sourceRoot":""} \ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.604c45f6.chunk.js b/server/web/pages/template/pages/static/js/main.604c45f6.chunk.js deleted file mode 100644 index 9cc32eb..0000000 --- a/server/web/pages/template/pages/static/js/main.604c45f6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[]).push([[0],{192:function(e){e.exports=JSON.parse('{"About":"About","Actions":"Actions","Add":"Add","AddDialog":{"AddPosterLinkInput":"Poster link","AddTorrentSourceNotification":"First add your torrent source","AppendFile":{"Or":"OR","ClickOrDrag":"CLICK / DRAG & DROP (.torrent)"},"CustomTorrentTitle":"Custom title (optional)","CustomTorrentTitleHelperText":"Write custom title to find poster","HashExists":"This torrent is already in database","OriginalTorrentTitle":"Original torrent title","TitleBlank":"Title (blank for orig. torrent title)","TorrentSourceLink":"Torrent source","TorrentSourceOptions":"magnet / hash / .torrent file link","WrongTorrentSource":"Wrong torrent source"},"AddFromLink":"Add Torrent","AddNewTorrent":"Add new torrent","B":"B","bps":"bps","Buffer":"Preload Buffer / Cache","BufferNote":"Set Preload Cache Before Play > 32 MB in settings to change preload size","Cache":"Cache","Cancel":"Cancel","Clear":"Clear","Close":"Close","CloseServer?":"Do you want to turn off server?","CloseServer":"Turn Off","CopyHash":"Copy Hash","CopyLink":"Copy link","Data":"Data","DebugMode":"Download priorities","Delete":"Delete","DeleteTorrent?":"Delete Torrent?","DeleteTorrents?":"Delete All Torrents?","DetailedCacheView":{"button":"Cache Details View","header":"$t(DetailedCacheView.button)"},"Details":"Details","Donate?":"Want to donate?","Donate":"Donate","DownloadPlaylist":"Download Playlist","DownloadSpeed":"Download speed","Drop":"Drop","DropTorrent":"Reset Torrent","Edit":"Edit","EditTorrent":"Edit torrent","Episode":"Episode","FromLatestFile":"From Latest File","Full":"Full","GB":"GB","Gbps":"Gbps","Host":"Host","Info":"Info","KB":"KB","kbps":"kbps","Kilobytes":"Kilobytes","LatestFilePlayed":"Latest file played:","Links":"Links","MB":"MB","Mbps":"Mbps","Name":"Name","NoTorrentsAdded":"No torrents added","Offline":"Offline","OK":"OK","OpenLink":"Open link","Peers":"Peers","PiecesCount":"Pieces count","PiecesLength":"Pieces length","Playlist":"Playlist","Preload":"Preload","ProjectSource":"Project page","PWAGuide":{"Header":"Install application","Description":"Install the app on your device to easily access it anytime. No app store. No download.","VLC":"VLC button will be added to open video instantly on the phone","FirstStep":"Tap on","SecondStep":{"Select":"Select","AddToHomeScreen":"Add to Home Screen"}},"Releases":"TorrServer Releases","RemoveAll":"Remove All","RemoveViews":"Remove View States","Resolution":"Resolution","Save":"Save","ScrollDown":"scroll down","Season":"Season","Sec":"s","Seconds":"Seconds","SelectSeason":"Select Season","SettingsDialog":{"AddRetrackers":"Add retrackers","AdditionalSettings":"Additional Settings","MobileAppSettings":"Mobile app settings","CacheBeforeReaderDesc":"from cache will be saved before currently played frame","CacheAfterReaderDesc":"from cache will be loaded after currently played frame","CacheSize":"Cache Size","CacheSettings":"Cache Settings","CacheStorageLocation":"Cache Storage Location","ConnectionsLimit":"Connections Limit","ConnectionsLimitHint":"20-25 recommended","DHT":"DHT (Distributed Hash Table)","Disk":"Disk","DLNA":"DLNA Media Server","DontAddRetrackers":"Don`t add retrackers","DownloadRateLimit":"Download Rate Limit","EnableDebug":"Enable Debug Server Log","ForceEncrypt":"Force Encrypt Headers","FriendlyName":"DLNA Server Name","FriendlyNameHint":"Leave blank to use default","PeersListenPort":"Peers Listen Port","PeersListenPortHint":"1024 - 65535, 0 - auto","PreloadCache":"Preload Cache Before Play","ProMode":"PRO mode","RAM":"RAM","ReaderReadAHead":"Readahead Cache (5-100%, rec. 95%)","RemoveCacheOnDrop":"Remove Cache from Disk on Drop Torrent","RemoveCacheOnDropDesc":"If disabled, cache removed on delete torrent.","RemoveRetrackers":"Remove retrackers","ReplaceRetrackers":"Replace retrackers","RetrackersMode":"Retrackers Mode","ResetToDefault":"Reset to default","Settings":"Settings","TorrentDisconnectTimeout":"Torrent Disconnect Timeout","TorrentsSavePath":"Torrents Save Path","Upload":"Upload (not recommended to disable)","UploadRateLimit":"Upload Rate Limit","UseDiskDesc":"Better use RAM or external storage on flash-based devices","Tabs":{"Main":"Main","Additional":"Additional","AdditionalDisabled":"(enable PRO mode)","App":"App"},"UseVLC":"Prompt to open video in VLC"},"Size":"Size","SpecialThanks":"Special Thanks","Speed":"Speed","Support":"Support","TB":"TB","Tbps":"Tbps","ThanksToEveryone":"Thanks to everyone who tested and helped.","TorrentAdded":"Added","TorrentClosed":"\u0421losed","TorrentContent":"Torrent Content","TorrentDetails":"Torrent Details","TorrentGettingInfo":"Getting Info","TorrentInDb":"In DB","TorrentPreload":"Preload","TorrentSize":"Torrent size","TorrentState":"Torrent State","TorrentStatus":"Torrent Status","TorrentWorking":"Active","TurnOff":"Turn Off","UploadFile":"Upload File","UploadSpeed":"Upload speed","Viewed":"Viewed"}')},193:function(e){e.exports=JSON.parse('{"About":"\u041e \u0441\u0435\u0440\u0432\u0435\u0440\u0435","Actions":"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f","Add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddDialog":{"AddPosterLinkInput":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u043e\u0441\u0442\u0435\u0440","AddTorrentSourceNotification":"\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a","AppendFile":{"Or":"\u0418\u041b\u0418","ClickOrDrag":"\u041d\u0410\u0416\u041c\u0418\u0422\u0415 / \u041f\u0415\u0420\u0415\u0422\u0410\u0429\u0418\u0422\u0415 \u0424\u0410\u0419\u041b (.torrent)"},"CustomTorrentTitle":"C\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)","CustomTorrentTitleHelperText":"\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0441\u0442\u0435\u0440","HashExists":"\u042d\u0442\u043e\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445","OriginalTorrentTitle":"\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TitleBlank":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 (\u043f\u0443\u0441\u0442\u043e\u0435 - \u043e\u0440\u0438\u0433. \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430)","TorrentSourceLink":"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentSourceOptions":"magnet-\u0441\u0441\u044b\u043b\u043a\u0430 / \u0445\u0435\u0448 / \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 .torrent \u0444\u0430\u0439\u043b","WrongTorrentSource":"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 torrent-\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a"},"AddFromLink":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c","AddNewTorrent":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0442\u043e\u0440\u0440\u0435\u043d\u0442","B":"\u0411","bps":"\u0431\u0438\u0442/c","Buffer":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 / \u041a\u0435\u0448","BufferNote":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 > 32 \u041c\u0411 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Cache":"\u041a\u0435\u0448","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","CloseServer?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440?","CloseServer":"\u0412\u044b\u043a\u043b. \u0441\u0435\u0440\u0432\u0435\u0440","CopyHash":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0445\u0435\u0448","CopyLink":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c","Data":"\u0414\u0430\u043d\u043d\u044b\u0435","DebugMode":"\u041c\u0435\u0442\u043a\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432","Delete":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c","DeleteTorrent?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442?","DeleteTorrents?":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u044b?","DetailedCacheView":{"button":"\u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u0435\u0448\u0430","header":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u0435\u0448\u0435"},"Details":"\u0418\u043d\u0444\u043e","Donate?":"\u0425\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442?","Donate":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430","DownloadPlaylist":"\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","DownloadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","Drop":"\u0421\u0431\u0440\u043e\u0441","DropTorrent":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Edit":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c","EditTorrent":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u0440\u0440\u0435\u043d\u0442","Episode":"\u0421\u0435\u0440\u0438\u044f","FromLatestFile":"C \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430","Full":"\u041f\u043e\u043b\u043d\u044b\u0439","GB":"\u0413\u0411","Gbps":"\u0413\u0431\u0438\u0442/c","Host":"\u0425\u043e\u0441\u0442","Info":"\u0418\u043d\u0444\u043e","KB":"\u041a\u0411","kbps":"\u043a\u0431\u0438\u0442/\u0441","Kilobytes":"\u041a\u0438\u043b\u043e\u0431\u0430\u0439\u0442\u044b","LatestFilePlayed":"\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b:","Links":"\u0421\u0441\u044b\u043b\u043a\u0438","MB":"\u041c\u0411","Mbps":"\u041c\u0431\u0438\u0442/c","Name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","NoTorrentsAdded":"\u041d\u0435\u0442 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u043e\u0432","Offline":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d","OK":"OK","OpenLink":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c","Peers":"\u041f\u0438\u0440\u044b","PiecesCount":"\u041a\u043e\u043b-\u0432\u043e \u0431\u043b\u043e\u043a\u043e\u0432","PiecesLength":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u043b\u043e\u043a\u0430","Playlist":"\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","Preload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440.","ProjectSource":"\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430","PWAGuide":{"Header":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435","Description":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u0411\u0435\u0437 AppStore. \u0411\u0435\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.","VLC":"VLC \u043a\u043d\u043e\u043f\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435","FirstStep":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430","SecondStep":{"Select":"\u0412\u044b\u0431\u0438\u0440\u0438\u0442\u0435","AddToHomeScreen":"\u041d\u0430 \u044d\u043a\u0440\u0430\u043d \xab\u0414\u043e\u043c\u043e\u0439\xbb"}},"Releases":"\u0420\u0435\u043b\u0438\u0437\u044b TorrServer","RemoveAll":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435","RemoveViews":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b","Resolution":"\u0420\u0430\u0437\u0440\u0435\u0448.","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","ScrollDown":"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u0437","Season":"\u0421\u0435\u0437\u043e\u043d","Sec":"c","Seconds":"\u0421\u0435\u043a\u0443\u043d\u0434\u044b","SelectSeason":"\u0412\u044b\u0431\u043e\u0440 \u0441\u0435\u0437\u043e\u043d\u0430","SettingsDialog":{"AddRetrackers":"\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c","AdditionalSettings":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","MobileAppSettings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0431. \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","CacheBeforeReaderDesc":"\u043e\u0442 \u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0437\u0430\u0434\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheAfterReaderDesc":"\u043a\u0435\u0448\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0435\u0440\u0435\u0434\u0438 \u043e\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430","CacheSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0435\u0448\u0430","CacheSettings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u0435\u0448\u0430","CacheStorageLocation":"\u041c\u0435\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","ConnectionsLimit":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","ConnectionsLimitHint":"\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f 20-25","DHT":"DHT (Distributed Hash Table)","Disk":"\u041f\u0417\u0423 / \u041d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c","DLNA":"DLNA-\u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440","DontAddRetrackers":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c","DownloadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","EnableDebug":"\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b \u0441\u0435\u0440\u0432\u0435\u0440\u0430","ForceEncrypt":"\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432","FriendlyName":"\u0418\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DLNA","FriendlyNameHint":"\u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.","PeersListenPort":"\u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439","PeersListenPortHint":"1024 - 65535, 0 - \u0430\u0432\u0442\u043e","PreloadCache":"\u0411\u0443\u0444\u0435\u0440 \u043f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438","ProMode":"\u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c","RAM":"\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c","ReaderReadAHead":"\u041e\u043f\u0435\u0440\u0435\u0436\u0430\u044e\u0449\u0438\u0439 \u043a\u0435\u0448 (5-100%, \u0440\u0435\u043a. 95%)","RemoveCacheOnDrop":"\u041e\u0447\u0438\u0449\u0430\u0442\u044c \u043a\u0435\u0448 \u043f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","RemoveCacheOnDropDesc":"\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u043a\u0435\u0448 \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430.","RemoveRetrackers":"\u0423\u0434\u0430\u043b\u044f\u0442\u044c","ReplaceRetrackers":"\u0417\u0430\u043c\u0435\u043d\u044f\u0442\u044c","RetrackersMode":"\u0420\u0435\u0442\u0440\u0435\u043a\u0435\u0440\u044b","ResetToDefault":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","TorrentDisconnectTimeout":"\u0422\u0430\u0439\u043c-\u0430\u0443\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentsSavePath":"\u041f\u0443\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u0435\u0448\u0430","Upload":"\u041e\u0442\u0434\u0430\u0447\u0430 (\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c)","UploadRateLimit":"\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u0434\u0430\u0447\u0438","UseDiskDesc":"\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441 flash-\u043f\u0430\u043c\u044f\u0442\u044c\u044e","Tabs":{"Main":"\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435","Additional":"\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435","AdditionalDisabled":"(\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c)","App":"\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435"},"UseVLC":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0432 VLC"},"Size":"\u0420\u0430\u0437\u043c\u0435\u0440","SpecialThanks":"\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e","Speed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c","Support":"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c","TB":"\u0422\u0411","Tbps":"\u0422\u0431\u0438\u0442/\u0441","ThanksToEveryone":"\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u043b!","TorrentAdded":"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d","TorrentClosed":"\u0417\u0430\u043a\u0440\u044b\u0442","TorrentContent":"\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentDetails":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0435","TorrentGettingInfo":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e","TorrentInDb":"\u0422\u043e\u0440\u0440\u0435\u043d\u0442 \u0432 \u0411\u0414","TorrentPreload":"\u041f\u0440\u0435\u0434\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430","TorrentSize":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentState":"\u0414\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentStatus":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentWorking":"\u0410\u043a\u0442\u0438\u0432\u0435\u043d","TurnOff":"\u0412\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c","UploadFile":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b","UploadSpeed":"\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0430\u0447\u0438","Viewed":"\u041f\u0440\u043e\u0441\u043c."}')},194:function(e){e.exports=JSON.parse('{"About":"\u041f\u0440\u043e \u0441\u0435\u0440\u0432\u0435\u0440","Actions":"\u0414\u0456\u0457","Add":"\u0414\u043e\u0434\u0430\u0442\u0438","AddDialog":{"AddPosterLinkInput":"\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u043f\u043b\u0430\u043a\u0430\u0442","AddTorrentSourceNotification":"\u0421\u043f\u043e\u0447\u0430\u0442\u043a\u0443 \u0434\u043e\u0434\u0430\u0439\u0442\u0435 torrent-\u0434\u0436\u0435\u0440\u0435\u043b\u043e","AppendFile":{"Or":"\u0427\u0418","ClickOrDrag":"\u041d\u0410\u0422\u0418\u0421\u041d\u0406\u0422\u042c / \u041f\u0415\u0420\u0415\u0422\u042f\u0413\u041d\u0406\u0422\u042c \u0424\u0410\u0419\u041b (.torrent)"},"CustomTorrentTitle":"\u0412\u043b\u0430\u0441\u043d\u0430 \u043d\u0430\u0437\u0432\u0430 (\u043e\u043f\u0446\u0456\u0439\u043d\u043e)","CustomTorrentTitleHelperText":"\u041d\u0430\u043f\u0438\u0448\u0456\u0442\u044c \u0432\u043b\u0430\u0441\u043d\u0443 \u043d\u0430\u0437\u0432\u0443, \u0449\u043e\u0431 \u0437\u043d\u0430\u0439\u0442\u0438 \u043f\u043b\u0430\u043a\u0430\u0442","HashExists":"\u0414\u0430\u043d\u0438\u0439 \u0442\u043e\u0440\u0435\u043d\u0442 \u0432\u0436\u0435 \u0454 \u0443 \u0431\u0430\u0437\u0456 \u0434\u0430\u043d\u0438\u0445","OriginalTorrentTitle":"\u041e\u0440\u0438\u0433\u0456\u043d\u0430\u043b\u044c\u043d\u0430 \u043d\u0430\u0437\u0432\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TitleBlank":"\u041d\u0430\u0437\u0432\u0430 (\u043f\u043e\u0440\u043e\u0436\u043d\u0454 - \u043e\u0440\u0438\u0433. \u043d\u0430\u0437\u0432\u0430 \u0442\u043e\u0440\u0435\u043d\u0442\u0443)","TorrentSourceLink":"\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0434\u0436\u0435\u0440\u0435\u043b\u043e \u0442\u0435\u0440\u0435\u043d\u0442\u0430","TorrentSourceOptions":"magnet-\u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f / \u0445\u0435\u0448 / \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 .torrent \u0444\u0430\u0439\u043b","WrongTorrentSource":"\u0425\u0438\u0431\u043d\u0435 torrent-\u0434\u0436\u0435\u0440\u0435\u043b\u043e"},"AddFromLink":"\u0414\u043e\u0434\u0430\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442","AddNewTorrent":"\u0414\u043e\u0434\u0430\u0442\u0438 \u043d\u043e\u0432\u0438\u0439 \u0442\u043e\u0440\u0435\u043d\u0442","B":"\u0411","bps":"\u0431\u0456\u0442/c","Buffer":"\u0411\u0443\u0444\u0435\u0440","BufferNote":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u0431\u0443\u0444\u0435\u0440 \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0433\u043e \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f > 32 \u041c\u0411 \u0432 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f\u0445, \u0449\u043e\u0431 \u0439\u043e\u0433\u043e \u0437\u043c\u0456\u043d\u0438\u0442\u0438.","Cache":"\u041a\u0435\u0448","Cancel":"\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438","Clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438","Close":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438","CloseServer?":"\u0425\u043e\u0447\u0435\u0442\u0435 \u0432\u0438\u043c\u043a\u043d\u0443\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440?","CloseServer":"\u0412\u0438\u043c\u043a. \u0441\u0435\u0440\u0432\u0435\u0440","CopyHash":"\u0421\u043a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0445\u0435\u0448","CopyLink":"\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438","Data":"\u0414\u0430\u043d\u0456","DebugMode":"\u041c\u0456\u0442\u043a\u0438 \u043f\u0440\u0456\u043e\u0440\u0438\u0442\u0435\u0442\u0456\u0432","Delete":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","DeleteTorrent?":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442?","DeleteTorrents?":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0456 \u0442\u043e\u0440\u0435\u043d\u0442\u0438?","DetailedCacheView":{"button":"\u0417\u0430\u043f\u043e\u0432\u043d\u0435\u043d\u043d\u044f \u043a\u0435\u0448\u0430","header":"\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u043a\u0435\u0448"},"Details":"\u0414\u0435\u0442\u0430\u043b\u0456","Donate?":"\u0411\u0430\u0436\u0430\u0454\u0442\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u043f\u0440\u043e\u0454\u043a\u0442?","Donate":"\u041f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0430","DownloadPlaylist":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f","DownloadSpeed":"\u0428\u0432\u0438\u0434\u043a\u0456\u0441\u0442\u044c \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","Drop":"\u0421\u043a\u0438\u043d\u0443\u0442\u0438","DropTorrent":"\u0421\u043a\u0438\u043d\u0443\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442","Edit":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438","EditTorrent":"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0442\u043e\u0440\u0435\u043d\u0442","Episode":"\u0421\u0435\u0440\u0456\u044f","FromLatestFile":"\u0417 \u043e\u0441\u0442\u0430\u043d\u043d\u044c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0443","Full":"\u041f\u043e\u0432\u043d\u0438\u0439","GB":"\u0413\u0411","Gbps":"\u0413\u0431\u0456\u0442/c","Host":"\u0425\u043e\u0441\u0442","Info":"\u0406\u043d\u0444\u043e","KB":"\u041a\u0411","kbps":"\u043a\u0431\u0456\u0442/\u0441","Kilobytes":"\u041a\u0456\u043b\u043e\u0431\u0430\u0439\u0442","LatestFilePlayed":"\u041e\u0441\u0442\u0430\u043d\u043d\u0456\u0439 \u0444\u0430\u0439\u043b, \u0449\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u0432\u0430\u0432\u0441\u044f:","Links":"\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f","MB":"\u041c\u0411","Mbps":"\u041c\u0431\u0456\u0442/c","Name":"\u041d\u0430\u0437\u0432\u0430","NoTorrentsAdded":"\u041d\u0435\u043c\u0430\u0454 \u0442\u043e\u0440\u0435\u043d\u0442\u0456\u0432","Offline":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0439","OK":"OK","OpenLink":"\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438","Peers":"\u041f\u0456\u0440\u0438","PiecesCount":"\u041a-\u0441\u0442\u044c \u0431\u043b\u043e\u043a\u0456\u0432","PiecesLength":"\u0420\u043e\u0437\u043c\u0456\u0440 \u0431\u043b\u043e\u043a\u0443","Playlist":"\u041f\u043b\u0435\u0439\u043b\u0438\u0441\u0442","Preload":"\u041f\u0435\u0440\u0435\u0434\u0437\u0430\u0432.","ProjectSource":"\u0421\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0443","PWAGuide":{"Header":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0438 \u0434\u043e\u0434\u0430\u0442\u043e\u043a","Description":"\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u0456\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0443 \u043d\u0430 \u0441\u0432\u0456\u0439 \u043f\u0440\u0438\u0441\u0442\u0440\u0456\u0439, \u0449\u043e\u0431 \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u0434\u043e \u043d\u0435\u0457 \u0434\u043e\u0441\u0442\u0443\u043f \u0443 \u0431\u0443\u0434\u044c-\u044f\u043a\u0438\u0439 \u0447\u0430\u0441. \u041d\u0435\u043c\u0430\u0454 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0443 \u0434\u043e\u0434\u0430\u0442\u043a\u0456\u0432. \u041d\u0435\u043c\u0430\u0454 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f.","VLC":"\u041a\u043d\u043e\u043f\u043a\u0430 VLC \u0431\u0443\u0434\u0435 \u0434\u043e\u0434\u0430\u043d\u0430, \u0449\u043e\u0431 \u043c\u0438\u0442\u0442\u0454\u0432\u043e \u0432\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u0435\u043e \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0456","FirstStep":"\u0422\u043e\u0440\u043a\u043d\u0456\u0442\u044c\u0441\u044f","SecondStep":{"Select":"\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c","AddToHomeScreen":"\u0414\u043e\u0434\u0430\u0442\u0438 \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043d\u0438\u0439 \u0435\u043a\u0440\u0430\u043d"}},"Releases":"\u0420\u0435\u043b\u0456\u0437\u0438 TorrServer","RemoveAll":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0432\u0441\u0435","RemoveViews":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\u0438","Resolution":"\u0414\u043e\u0437\u0432\u043e\u043b\u0438","Save":"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438","ScrollDown":"\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0456\u0442\u044c \u0432\u043d\u0438\u0445","Season":"\u0421\u0435\u0437\u043e\u043d","Sec":"c","Seconds":"\u0421\u0435\u043a\u0443\u043d\u0434\u0438","SelectSeason":"\u0412\u0438\u0431\u0456\u0440 \u0441\u0435\u0437\u043e\u043d\u0443","SettingsDialog":{"AddRetrackers":"\u0414\u043e\u0434\u0430\u0432\u0430\u0442\u0438","AdditionalSettings":"\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f","MobileAppSettings":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0431. \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438","CacheBeforeReaderDesc":"\u0437 \u043a\u0435\u0448\u0443 \u0431\u0443\u0434\u0435 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043e \u0434\u043e \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u044e\u0432\u0430\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0443","CacheAfterReaderDesc":"\u0437 \u043a\u0435\u0448\u0443 \u0431\u0443\u0434\u0435 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043e \u043f\u0456\u0441\u043b\u044f \u043f\u043e\u0442\u043e\u0447\u043d\u043e \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0435\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0443","CacheSize":"\u0420\u0430\u0437\u043c\u0456\u0440 \u043a\u0435\u0448\u0443","CacheSettings":"\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043a\u0435\u0448\u0443","CacheStorageLocation":"\u041c\u0456\u0441\u0446\u0435 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u043a\u0435\u0448\u0443","ConnectionsLimit":"\u041e\u0431\u043c\u0435\u0436\u0435\u043d\u043d\u044f \u0437\'\u0454\u0434\u0430\u043d\u044c","ConnectionsLimitHint":"\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043e 20-25","DHT":"DHT (Distributed Hash Table)","Disk":"\u041f\u0417\u041f / \u041d\u043e\u0441\u0456\u0439","DLNA":"DLNA-\u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440","DontAddRetrackers":"\u041d\u0456\u0447\u043e\u0433\u043e \u043d\u0435 \u0440\u043e\u0431\u0438\u0442\u0438","DownloadRateLimit":"\u041e\u0431\u043c\u0435\u0436\u0435\u043d\u043d\u044f \u0448\u0432\u0438\u0434\u043a\u043e\u0441\u0442\u0456 \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","EnableDebug":"\u0423\u0432\u0456\u043c\u043a\u043d\u0443\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b \u043d\u0430\u043b\u0430\u0433\u043e\u0434\u0436\u0435\u043d\u043d\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430","ForceEncrypt":"\u041f\u0440\u0438\u043c\u0443\u0441\u043e\u0432\u043e \u0448\u0438\u0444\u0440\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438","FriendlyName":"\u0406\u043c\'\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DLNA","FriendlyNameHint":"\u0417\u0430\u043b\u0438\u0448\u0442\u0435 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u043c, \u0449\u043e\u0431 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u0437\u0430 \u043f\u0440\u043e\u043c\u043e\u0432\u0447\u0430\u043d\u043d\u044f\u043c.","PeersListenPort":"\u041f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u0456\u0434\u043d\u0438\u0445 \u0437\'\u0454\u0434\u043d\u0430\u043d\u044c","PeersListenPortHint":"1024 - 65535, 0 - \u0430\u0432\u0442\u043e","PreloadCache":"\u0411\u0443\u0444\u0435\u0440 \u043f\u043e\u043f\u0435\u0440. \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","ProMode":"\u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c","RAM":"\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430 \u043f\u0430\u043c\'\u044f\u0442\u044c","ReaderReadAHead":"\u041a\u0430\u0447\u0430\u0442\u0438 \u043a\u0435\u0448 \u0437\u0430\u0437\u0434\u0435\u043b\u0435\u0433\u0456\u0434\u044c (5-100%, \u0440\u0435\u043a. 95%)","RemoveCacheOnDrop":"\u0412\u0438\u0434\u0430\u043b\u044f\u0442\u0438 \u043a\u0435\u0448 \u043f\u0440\u0438 \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u0456 \u0432\u0456\u0434 \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","RemoveCacheOnDropDesc":"\u042f\u043a\u0449\u043e \u0432\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u0442\u043e\u0434\u0456 \u043a\u0435\u0448 \u0432\u0438\u0434\u0430\u043b\u044f\u0454\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u0438\u0434\u0430\u043b\u0435\u043d\u0456 \u0442\u043e\u0440\u0435\u043d\u0442\u0443.","RemoveRetrackers":"\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438","ReplaceRetrackers":"\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438","RetrackersMode":"\u0420\u0435\u0442\u0440\u0435\u043a\u0435\u0440\u0438","ResetToDefault":"\u0411\u0430\u0437\u043e\u0432\u0456 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f","Settings":"\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f","TorrentDisconnectTimeout":"\u0427\u0430\u0441 \u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f \u0442\u043e\u0440\u0440\u0435\u043d\u0442\u0430","TorrentsSavePath":"\u0428\u043b\u044f\u0445 \u0434\u043b\u044f \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u043a\u0435\u0448\u0443","Upload":"\u0412\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f (\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0454\u0442\u044c\u0441\u044f \u0432\u0438\u043c\u0438\u043a\u0430\u0442\u0438)","UploadRateLimit":"\u041e\u0431\u043c\u0435\u0436\u0435\u043d\u043d\u044f \u0448\u0432\u0438\u0434\u043a\u043e\u0441\u0442\u0456 \u0432\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","UseDiskDesc":"\u041a\u0440\u0430\u0449\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443 \u043f\u0430\u043c\'\u044f\u0442\u044c \u0430\u0431\u043e \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u044e \u043f\u0430\u043c\'\u044f\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u0441\u0442\u0440\u043e\u044f\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0456 flash-\u043f\u0430\u043c\'\u044f\u0442\u0442\u044e","Tabs":{"Main":"\u041e\u0441\u043d\u043e\u0432\u043d\u0456","Additional":"\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456","AdditionalDisabled":"(\u0432\u043a\u043b\u044e\u0447\u0456\u0442\u044c \u041f\u0420\u041e-\u0440\u0435\u0436\u0438\u043c)","App":"\u0414\u043e\u0434\u0430\u0442\u043e\u043a"},"UseVLC":"\u041f\u0440\u043e\u043f\u043e\u043d\u0443\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e \u0443 VLC"},"Size":"\u0420\u043e\u0437\u043c\u0456\u0440","SpecialThanks":"\u041e\u043a\u0440\u0435\u043c\u0430 \u043f\u043e\u0434\u044f\u043a\u0430","Speed":"\u0428\u0432\u0438\u0434\u043a\u0456\u0441\u0442\u044c","Support":"\u041f\u0456\u0434\u0442\u0440\u0438\u043c\u0430\u0442\u0438","TB":"\u0422\u0411","Tbps":"\u0422\u0431\u0456\u0442/\u0441","ThanksToEveryone":"\u0414\u044f\u043a\u0443\u0454\u043c\u043e \u0432\u0441\u0456\u043c, \u0445\u0442\u043e \u0442\u0435\u0441\u0442\u0443\u0432\u0430\u0432 \u0456 \u0434\u043e\u043f\u043e\u043c\u0430\u0433\u0430\u0432!","TorrentAdded":"\u0414\u043e\u0434\u0430\u043d\u0438\u0439","TorrentClosed":"\u0417\u0430\u043a\u0440\u0438\u0442\u0438\u0439","TorrentContent":"\u0412\u043c\u0456\u0441\u0442 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentDetails":"\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043f\u0440\u043e \u0442\u043e\u0440\u0435\u043d\u0442","TorrentGettingInfo":"\u041e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0457","TorrentInDb":"\u0422\u043e\u0440\u0435\u043d\u0442 \u0432 \u0411\u0414","TorrentPreload":"\u041f\u0435\u0440\u0435\u0434\u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","TorrentSize":"\u0420\u043e\u0437\u043c\u0456\u0440 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentState":"\u0414\u0430\u043d\u0456 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentStatus":"\u0421\u0442\u0430\u0442\u0443\u0441 \u0442\u043e\u0440\u0435\u043d\u0442\u0443","TorrentWorking":"\u0410\u043a\u0442\u0438\u0432\u043d\u0438\u0439","TurnOff":"\u0412\u0438\u043a\u043b\u044e\u0447\u0438\u0442\u0438","UploadFile":"\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0444\u0430\u0439\u043b","UploadSpeed":"\u0428\u0432\u0438\u0434\u043a\u0456\u0441\u0442\u044c \u0432\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f","Viewed":"\u041f\u0435\u0440\u0435\u0433\u043b."}')},342:function(e,t){},345:function(e,t){},347:function(e,t){},349:function(e,t){},395:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n(17),i=n.n(r),o=n(63),c=n(9),s=n(484),l=n(66),d=n(469),p=n(485),b=n(486),j=n(487),u=n(488),h=window.location,x=h.protocol,O=h.hostname,g=h.port,m="".concat(x,"//").concat(O).concat(g?":".concat(g):""),f=function(){return"".concat(m,"/torrents")},C=function(){return"".concat(m,"/viewed")},v=function(){return"".concat(m,"/settings")},y=function(){return"".concat(m,"/stream")},w=function(){return"".concat(m,"/echo")},S=function(){return"".concat(m,"/stream")},D=n(189),k=n(23),T=n.n(k),P=n(22),M=n(467),L=n(468),B=n(470),A=n(75),R=n(105),F=n(33),N=n(133),z=n(89),E=n(191),G=n(192),I=n(193),H=n(194);N.a.use(E.a).use(z.e).init({fallbackLng:"en",interpolation:{escapeValue:!1},resources:{en:{translation:G},ru:{translation:I},ua:{translation:H}}});var U=N.a;function V(e){if(!e)return"";var t=Math.floor(Math.log(e)/Math.log(1024));return"".concat(1*(e/Math.pow(1024,t)).toFixed(2)," ").concat([U.t("B"),U.t("KB"),U.t("MB"),U.t("GB"),U.t("TB")][t])}function W(e){if(!e)return"";var t=Math.floor(Math.log(8*e)/Math.log(1e3));return"".concat(1*(8*e/Math.pow(1e3,t)).toFixed(0)," ").concat([U.t("bps"),U.t("kbps"),U.t("Mbps"),U.t("Gbps"),U.t("Tbps")][t])}function _(e){return e&&e.connected_seeders?"".concat(e.connected_seeders," \xb7 ").concat(e.active_peers," / ").concat(e.total_peers):null}var Z=function(e){var t=e;[["(",")"],["[","]"],["{","}"]].forEach((function(e){var n="\\".concat(e[0]),a=new RegExp(n,"g"),r=Object(F.a)(t.matchAll(a)).length,i="\\".concat(e[1]),o=new RegExp(i,"g");if(r!==Object(F.a)(t.matchAll(o)).length){var c="(\\".concat(e[0],")(?!.*\\1).*"),s=new RegExp(c,"g");t=t.replace(s,"")}}));var n=!!t.match(/\.{3}$/g),a=t.replace(/[\\.| ]+$/g,"").trim();return n?"".concat(a,".."):a},K=function(){var e=Object(R.a)(Object(A.a)().mark((function e(){var t,n;return Object(A.a)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,T.a.post(f(),{action:"list"});case 3:return t=e.sent,n=t.data,e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),new Error(null);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(){return e.apply(this,arguments)}}(),J=window.matchMedia("screen and (display-mode: standalone)").matches,Y=n(36),$=n(1),X=function(e){var t=e.color,n=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"80px",width:"80px",fill:t||n,xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",version:"1.1",x:"0px",y:"0px",viewBox:"0 0 100 100",enableBackground:"new 0 0 100 100",xmlSpace:"preserve",children:Object($.jsxs)("g",{children:[Object($.jsx)("path",{d:"M18.293,93.801c0.066,0.376,0.284,0.718,0.597,0.937c0.313,0.219,0.708,0.307,1.085,0.241l70.058-12.353 c0.376-0.066,0.718-0.284,0.937-0.597c0.219-0.313,0.307-0.708,0.24-1.085l-9.502-53.891c-0.139-0.79-0.892-1.317-1.682-1.178 l-19.402,3.421L47.997,14.16c0.241-0.706,0.375-1.456,0.375-2.229c0-0.399-0.035-0.804-0.106-1.209C47.671,7.363,44.757,5,41.455,5 c-0.4,0-0.804,0.035-1.209,0.106h0c-3.359,0.595-5.723,3.509-5.723,6.812c0,0.4,0.035,0.804,0.106,1.209 c0.178,1.005,0.567,1.918,1.109,2.709l-6.875,19.061L9.968,38.228c-0.79,0.139-1.317,0.892-1.177,1.682L18.293,93.801z M40.75,7.966L40.75,7.966c0.239-0.042,0.474-0.062,0.705-0.062c1.909,0,3.612,1.373,3.953,3.324v0 c0.042,0.238,0.062,0.473,0.062,0.704c0,1.908-1.373,3.612-3.323,3.953h0.001c-0.238,0.042-0.473,0.062-0.705,0.062 c-1.908,0-3.612-1.373-3.953-3.323c-0.042-0.238-0.062-0.473-0.062-0.705C37.427,10.01,38.799,8.306,40.75,7.966z M38.059,17.96 c1.012,0.569,2.17,0.89,3.383,0.89c0.399,0,0.804-0.034,1.208-0.106h0.001c1.48-0.263,2.766-0.976,3.743-1.974l10.935,13.108 L32.16,34.315L38.059,17.96z M29.978,37.648c0.136-0.004,0.268-0.029,0.396-0.07l29.75-5.246c0.134-0.006,0.266-0.027,0.395-0.07 l18.582-3.277l8.998,51.031L20.9,91.867l-8.998-51.032L29.978,37.648z"}),Object($.jsx)("path",{d:"M49.984,75.561c0.809,0,1.627-0.065,2.449-0.199l0.001,0c7.425-1.213,12.701-7.627,12.701-14.919 c0-0.809-0.065-1.627-0.199-2.449c-1.213-7.425-7.626-12.701-14.919-12.701c-0.808,0-1.627,0.065-2.45,0.199 c-7.425,1.213-12.701,7.626-12.701,14.918c0,0.808,0.065,1.627,0.199,2.449C36.278,70.284,42.692,75.561,49.984,75.561z M51.967,72.496c-0.668,0.109-1.33,0.161-1.983,0.161c-5.883,0-11.079-4.265-12.053-10.265c-0.109-0.668-0.161-1.33-0.161-1.983 c0-2.108,0.555-4.123,1.534-5.892l19.693,14.176C57.206,70.645,54.782,72.039,51.967,72.496z M48.034,48.357L48.034,48.357 c0.668-0.109,1.329-0.161,1.983-0.161c5.882,0,11.079,4.265,12.053,10.265c0.109,0.667,0.161,1.329,0.161,1.983 c0,2.109-0.556,4.127-1.536,5.897L41.001,52.163C42.791,50.21,45.217,48.814,48.034,48.357z"}),Object($.jsx)("polygon",{points:"47.567,45.492 47.567,45.492 47.568,45.491 "})]})})},q=function(){var e=Object(Y.a)().palette.primary.main;return Object($.jsx)("svg",{height:"100px",width:"100px",fill:e,viewBox:"0 0 452 452",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:Object($.jsxs)("g",{id:"#000000",children:[Object($.jsx)("path",{opacity:"1.00",d:" M 210.49 18.69 C 244.92 16.12 280.02 22.13 311.46 36.47 C 344.90 51.54 374.16 75.69 395.41 105.58 C 415.62 133.87 428.55 167.34 432.48 201.89 C 438.07 248.86 427.02 297.61 401.45 337.43 C 382.92 366.59 357.02 391.04 326.80 407.80 C 300.81 422.31 271.64 431.08 241.96 433.26 C 207.37 435.97 172.14 429.83 140.54 415.51 C 109.95 401.69 82.82 380.33 62.16 353.86 C 39.25 324.67 24.38 289.21 19.78 252.38 C 14.94 214.51 20.65 175.31 36.47 140.54 C 54.11 101.38 84.24 67.99 121.37 46.39 C 148.44 30.52 179.19 20.98 210.49 18.69 M 213.46 36.60 C 178.91 38.80 145.03 50.71 116.76 70.72 C 84.67 93.21 59.84 125.88 46.91 162.88 C 34.87 196.99 32.96 234.54 41.25 269.73 C 48.89 302.45 65.53 332.98 88.79 357.21 C 113.91 383.56 146.78 402.45 182.25 410.72 C 216.67 418.86 253.37 417.21 286.87 405.85 C 329.85 391.49 367.13 361.01 389.89 321.85 C 406.02 294.41 414.96 262.84 415.73 231.03 C 416.71 196.59 408.11 161.91 390.97 132.00 C 372.31 99.13 343.57 72.09 309.61 55.49 C 279.95 40.89 246.43 34.40 213.46 36.60 Z"}),Object($.jsx)("path",{opacity:"1.00",d:" M 217.02 117.63 C 223.01 117.45 228.99 117.45 234.98 117.63 C 235.16 150.72 234.93 183.81 235.09 216.89 C 268.18 217.03 301.28 216.82 334.38 216.99 C 334.57 222.99 334.57 229.00 334.38 235.01 C 301.28 235.18 268.18 234.97 235.09 235.11 C 234.93 268.19 235.16 301.28 234.98 334.37 C 228.99 334.55 223.00 334.55 217.02 334.37 C 216.84 301.28 217.07 268.19 216.92 235.11 C 183.82 234.97 150.72 235.17 117.62 235.01 C 117.43 229.00 117.43 222.99 117.62 216.99 C 150.72 216.82 183.82 217.03 216.91 216.89 C 217.07 183.81 216.84 150.72 217.02 117.63 Z"})]})})},Q=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"96.96632385253906 377.9800109863281 873.03369140625 310.9999694824219",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 603.05 378.50 C 648.01 378.10 692.99 378.30 737.96 378.24 C 746.80 377.82 755.66 378.04 764.51 378.02 C 764.49 396.01 764.50 414.00 764.50 432.00 C 833.00 432.01 901.50 431.99 970.00 432.00 C 970.00 499.67 970.00 567.33 970.00 635.00 C 941.01 635.01 912.02 634.98 883.04 635.01 C 868.37 635.70 853.70 634.86 839.03 635.00 C 814.19 635.00 789.35 634.99 764.50 635.00 C 764.50 652.99 764.49 670.99 764.51 688.98 C 722.02 688.64 679.51 688.76 637.01 688.76 C 610.36 688.24 583.70 688.61 557.04 688.50 C 535.36 688.64 513.69 688.06 492.00 688.25 C 467.01 688.45 442.03 687.89 417.04 688.00 C 393.35 688.06 369.67 687.54 345.97 687.76 C 331.65 687.28 317.32 687.58 303.00 687.51 C 287.69 686.89 272.35 687.61 257.03 686.99 C 244.25 687.26 231.37 686.92 218.84 684.09 C 183.39 676.56 151.36 655.48 129.16 627.00 C 110.45 603.11 98.57 573.55 97.40 543.09 C 95.46 518.81 100.09 494.17 110.06 471.99 C 126.89 434.21 159.00 403.08 198.12 389.13 C 227.91 377.22 260.63 379.63 292.01 379.76 C 308.00 379.13 324.02 379.87 340.01 379.25 C 355.65 379.17 371.30 379.41 386.95 379.13 C 409.62 378.70 432.32 379.37 455.00 378.74 C 504.35 378.92 553.69 378.31 603.05 378.50 M 348.01 411.51 C 320.98 411.52 293.95 411.45 266.93 411.54 C 256.91 412.17 246.82 411.10 236.84 412.46 C 208.12 415.88 181.14 430.38 161.51 451.48 C 144.71 469.43 133.29 492.57 130.42 517.07 C 124.64 554.31 138.80 593.31 165.32 619.73 C 177.83 632.43 193.39 641.88 210.05 648.05 C 228.40 654.56 248.11 655.87 267.42 655.59 C 319.94 655.19 372.45 655.94 424.97 655.75 C 450.32 655.57 475.67 656.17 501.02 656.00 C 525.32 656.12 549.63 655.73 573.92 656.26 C 626.62 656.05 679.30 656.63 732.00 656.50 C 732.00 574.50 732.00 492.50 732.00 410.51 C 689.66 410.38 647.34 410.94 605.01 410.75 C 587.68 410.55 570.37 411.13 553.05 411.00 C 526.36 411.00 499.67 411.01 472.98 411.00 C 431.33 411.69 389.65 410.81 348.01 411.51 M 764.49 464.27 C 764.51 510.42 764.51 556.58 764.49 602.73 C 822.24 602.77 879.99 602.74 937.74 602.75 C 938.25 556.59 937.90 510.41 937.99 464.25 C 880.16 464.27 822.32 464.23 764.49 464.27 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.49 484.02 C 853.57 483.79 864.63 484.32 875.71 484.25 C 876.25 495.35 875.68 506.46 875.04 517.54 C 864.40 517.59 853.77 516.92 843.13 517.38 C 842.74 516.32 842.40 515.20 842.48 514.06 C 842.50 504.04 842.50 494.03 842.49 484.02 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 287.02 517.49 C 345.02 517.51 403.02 517.49 461.02 517.50 C 499.18 517.57 537.34 517.29 575.49 517.75 C 575.51 528.25 575.51 538.75 575.49 549.25 C 531.01 549.74 486.52 549.41 442.04 549.50 C 390.37 549.51 338.69 549.49 287.02 549.51 C 286.99 538.84 286.99 528.16 287.02 517.49 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 842.78 549.74 C 853.53 549.91 864.26 549.51 875.01 549.44 C 875.73 560.52 876.27 571.65 875.71 582.75 C 864.63 582.80 853.57 583.17 842.49 582.99 C 842.69 571.91 842.12 560.80 842.78 549.74 Z"})]})},ee=function(e){var t=e.color,n=e.width,a=Object(Y.a)().palette.primary.main;return Object($.jsxs)("svg",{width:n||"100%",height:"100%",viewBox:"13.928732872009277 69.97769927978516 172.15252685546875 60.067893981933594",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 18.20 70.32 C 19.46 70.07 20.73 69.96 22.01 69.98 C 74.36 70.03 126.72 69.97 179.08 70.01 C 182.16 69.72 185.50 71.74 185.82 74.99 C 186.15 79.61 186.20 84.29 185.78 88.91 C 183.66 90.31 179.87 90.73 180.00 93.99 C 179.86 97.27 183.68 97.69 185.79 99.12 C 186.27 107.07 185.91 115.06 185.99 123.03 C 186.29 126.14 184.25 129.52 180.97 129.83 C 175.33 130.27 169.65 129.88 164.00 130.00 C 147.71 129.85 131.39 130.31 115.12 129.78 C 112.92 127.53 114.51 123.74 113.95 120.86 C 114.67 118.55 111.27 116.64 110.24 119.19 C 109.73 122.42 110.24 125.71 109.79 128.95 C 108.65 130.43 106.57 129.83 104.96 130.03 C 76.94 129.95 48.93 130.04 20.91 129.99 C 17.47 130.37 13.95 127.70 14.07 124.10 C 14.02 115.76 13.75 107.39 14.22 99.07 C 16.33 97.68 20.10 97.27 20.00 94.03 C 20.17 90.71 16.28 90.35 14.20 88.85 C 13.80 84.56 13.92 80.24 14.07 75.94 C 14.03 73.43 15.75 70.97 18.20 70.32 M 18.23 75.15 C 17.73 78.78 18.05 82.46 18.02 86.11 C 21.05 87.67 24.20 90.21 23.99 94.00 C 24.20 97.79 21.03 100.31 18.01 101.89 C 18.15 109.55 17.67 117.24 18.22 124.87 C 18.45 125.10 18.90 125.56 19.13 125.78 C 26.06 126.33 33.03 125.84 39.98 126.00 C 39.99 123.36 40.01 120.72 40.09 118.08 C 62.07 117.87 84.05 118.10 106.03 117.96 C 107.62 116.17 109.32 113.83 112.02 114.00 C 114.70 113.85 116.37 116.19 117.96 117.96 C 131.94 118.09 145.93 117.88 159.91 118.08 C 159.98 120.72 160.01 123.36 160.02 126.00 C 166.94 125.83 173.90 126.34 180.80 125.78 C 181.05 125.57 181.54 125.14 181.78 124.93 C 182.32 117.28 181.85 109.57 181.99 101.90 C 178.96 100.31 175.78 97.79 176.01 93.99 C 175.79 90.20 178.94 87.66 181.98 86.11 C 181.94 82.47 182.27 78.80 181.77 75.19 C 181.16 73.66 179.34 74.17 178.06 73.99 C 126.04 74.00 74.01 74.01 21.99 73.99 C 20.69 74.16 18.91 73.67 18.23 75.15 M 42.00 120.00 C 42.00 122.00 42.00 124.00 42.00 126.00 C 43.33 126.00 44.67 126.00 46.00 126.00 C 46.00 124.00 46.00 122.00 46.00 120.00 C 44.67 120.00 43.33 120.00 42.00 120.00 M 48.00 120.00 C 48.00 122.00 48.00 124.00 48.00 126.00 C 49.33 126.00 50.67 126.00 52.00 126.00 C 52.00 124.00 52.00 122.00 52.00 120.00 C 50.67 120.00 49.33 120.00 48.00 120.00 M 54.00 120.00 C 54.00 122.00 54.00 124.00 54.00 126.00 C 55.33 126.00 56.67 126.00 58.00 126.00 C 58.00 124.00 58.00 122.00 58.00 120.00 C 56.67 120.00 55.33 120.00 54.00 120.00 M 60.00 120.00 C 60.00 122.00 60.00 124.00 60.00 126.00 C 61.33 126.00 62.67 126.00 64.00 126.00 C 64.00 124.00 64.00 122.00 64.00 120.00 C 62.67 120.00 61.33 120.00 60.00 120.00 M 66.00 120.00 C 66.00 122.00 66.00 124.00 66.00 126.00 C 67.33 126.00 68.67 126.00 70.00 126.00 C 70.00 124.00 70.00 122.00 70.00 120.00 C 68.67 120.00 67.33 120.00 66.00 120.00 M 72.00 120.00 C 72.00 122.00 72.00 124.00 72.00 126.00 C 73.33 126.00 74.67 126.00 76.00 126.00 C 76.00 124.00 76.00 122.00 76.00 120.00 C 74.67 120.00 73.33 120.00 72.00 120.00 M 78.00 120.00 C 78.00 122.00 78.00 124.00 78.00 126.00 C 79.33 126.00 80.67 126.00 82.00 126.00 C 82.00 124.00 82.00 122.00 82.00 120.00 C 80.67 120.00 79.33 120.00 78.00 120.00 M 84.00 120.00 C 84.00 122.00 84.00 124.00 84.00 126.00 C 85.33 126.00 86.67 126.00 88.00 126.00 C 88.00 124.00 88.00 122.00 88.00 120.00 C 86.67 120.00 85.33 120.00 84.00 120.00 M 90.00 120.00 C 90.00 122.00 90.00 124.00 90.00 126.00 C 91.33 126.00 92.67 126.00 94.00 126.00 C 94.00 124.00 94.00 122.00 94.00 120.00 C 92.67 120.00 91.33 120.00 90.00 120.00 M 96.00 120.00 C 96.00 122.00 96.00 124.00 96.00 126.00 C 97.33 126.00 98.67 126.00 100.00 126.00 C 100.00 124.00 100.00 122.00 100.00 120.00 C 98.67 120.00 97.33 120.00 96.00 120.00 M 102.00 120.00 C 102.00 122.00 102.00 124.00 102.00 126.00 C 103.33 126.00 104.67 126.00 106.00 126.00 C 106.00 124.00 106.00 122.00 106.00 120.00 C 104.67 120.00 103.33 120.00 102.00 120.00 M 118.00 120.00 C 118.00 122.00 118.00 124.00 118.00 126.00 C 119.33 126.00 120.67 126.00 122.00 126.00 C 122.00 124.00 122.00 122.00 122.00 120.00 C 120.67 120.00 119.33 120.00 118.00 120.00 M 124.00 120.00 C 124.00 122.00 124.00 124.00 124.00 126.00 C 125.33 126.00 126.67 126.00 128.00 126.00 C 128.00 124.00 128.00 122.00 128.00 120.00 C 126.67 120.00 125.33 120.00 124.00 120.00 M 130.00 120.00 C 130.00 122.00 130.00 124.00 130.00 126.00 C 131.33 126.00 132.67 126.00 134.00 126.00 C 134.00 124.00 134.00 122.00 134.00 120.00 C 132.67 120.00 131.33 120.00 130.00 120.00 M 136.00 120.00 C 136.00 122.00 136.00 124.00 136.00 126.00 C 137.33 126.00 138.67 126.00 140.00 126.00 C 140.00 124.00 140.00 122.00 140.00 120.00 C 138.67 120.00 137.33 120.00 136.00 120.00 M 142.00 120.00 C 142.00 122.00 142.00 124.00 142.00 126.00 C 143.33 126.00 144.66 126.00 146.00 126.00 C 146.00 124.00 146.00 122.00 146.00 120.00 C 144.67 120.00 143.33 120.00 142.00 120.00 M 148.00 120.00 C 148.00 122.00 148.00 124.00 148.00 126.00 C 149.33 126.00 150.66 126.00 152.00 126.00 C 152.00 124.00 152.00 122.00 152.00 120.00 C 150.67 120.00 149.33 120.00 148.00 120.00 M 154.00 120.00 C 154.00 122.00 154.00 124.00 154.00 126.00 C 155.33 126.00 156.66 126.00 158.00 126.00 C 158.00 124.00 158.00 122.00 158.00 120.00 C 156.67 120.00 155.33 120.00 154.00 120.00 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 30.03 81.93 C 29.85 80.12 30.82 77.95 32.93 78.11 C 37.91 77.93 42.93 77.74 47.89 78.25 C 50.98 79.21 49.68 83.33 50.10 85.77 C 49.59 85.78 48.57 85.80 48.06 85.80 C 48.01 83.89 47.96 81.98 47.90 80.08 C 42.62 79.96 37.35 79.96 32.08 80.08 C 31.95 89.36 31.95 98.64 32.08 107.91 C 37.36 108.05 42.64 108.05 47.92 107.91 C 48.02 104.01 48.01 100.11 48.02 96.21 C 48.51 96.21 49.48 96.21 49.97 96.20 C 49.93 100.09 50.29 104.01 49.76 107.87 C 49.40 110.05 46.77 109.95 45.09 110.01 C 40.74 109.96 36.36 110.29 32.04 109.74 C 29.91 109.31 30.07 106.74 29.99 105.08 C 30.02 97.37 29.93 89.65 30.03 81.93 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 56.08 78.25 C 61.33 77.80 66.67 77.79 71.92 78.25 C 74.45 78.84 73.88 82.03 74.03 83.96 C 73.88 91.66 74.20 99.37 73.89 107.07 C 73.99 110.35 68.80 111.17 67.40 108.44 C 68.91 108.19 70.43 107.96 71.95 107.75 C 72.01 98.53 72.08 89.30 71.91 80.08 C 66.64 79.96 61.36 79.96 56.08 80.08 C 55.95 89.35 55.95 98.63 56.08 107.90 C 58.65 107.98 61.23 108.01 63.80 108.04 C 63.80 108.54 63.78 109.52 63.78 110.02 C 60.75 109.51 55.74 111.45 54.25 107.89 C 53.63 99.96 54.19 91.96 53.97 84.00 C 54.13 82.06 53.53 78.84 56.08 78.25 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 79.38 78.49 C 84.51 77.49 89.88 78.03 95.10 78.12 C 97.17 77.98 98.14 80.11 97.97 81.89 C 98.04 89.96 98.04 98.04 97.97 106.11 C 98.13 107.87 97.20 109.99 95.14 109.88 C 90.11 110.08 85.02 110.27 80.01 109.73 C 77.91 109.26 78.05 106.71 77.99 105.04 C 77.99 97.70 77.99 90.35 77.99 83.01 C 78.12 81.47 77.82 79.41 79.38 78.49 M 80.08 80.08 C 79.95 89.36 79.95 98.64 80.08 107.92 C 85.36 108.04 90.64 108.04 95.92 107.92 C 96.05 98.64 96.05 89.36 95.92 80.08 C 90.64 79.96 85.36 79.96 80.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 103.34 78.52 C 108.47 77.46 113.88 78.05 119.12 78.12 C 121.20 77.99 122.14 80.13 121.97 81.91 C 122.04 89.97 122.04 98.04 121.97 106.10 C 122.14 107.87 121.19 110.00 119.12 109.88 C 114.37 110.13 109.59 110.13 104.85 109.88 C 102.80 109.99 101.86 107.88 102.03 106.13 C 101.92 98.40 102.03 90.66 101.99 82.93 C 102.13 81.44 101.84 79.43 103.34 78.52 M 104.08 80.08 C 103.95 89.36 103.95 98.64 104.08 107.92 C 109.36 108.05 114.64 108.04 119.92 107.92 C 120.06 98.64 120.05 89.36 119.92 80.08 C 114.64 79.96 109.36 79.95 104.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 127.43 78.45 C 131.88 77.51 136.52 78.12 141.04 77.99 C 143.01 77.87 145.98 78.22 145.88 80.86 C 146.19 88.89 145.92 96.94 146.01 104.98 C 145.93 106.67 146.12 109.28 143.96 109.74 C 141.40 110.19 138.79 109.99 136.21 110.02 C 136.21 109.52 136.21 108.53 136.21 108.04 C 138.78 108.01 141.35 107.98 143.92 107.91 C 144.05 98.63 144.06 89.35 143.92 80.08 C 138.64 79.96 133.36 79.96 128.09 80.08 C 128.02 82.64 127.99 85.21 127.96 87.78 C 127.47 87.79 126.48 87.79 125.99 87.79 C 126.38 84.77 124.90 80.72 127.43 78.45 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 151.38 78.48 C 155.82 77.48 160.48 78.14 165.01 77.99 C 167.01 77.85 170.02 78.25 169.89 80.92 C 170.18 88.94 169.92 96.98 170.01 105.01 C 170.13 107.00 169.77 109.99 167.12 109.88 C 162.10 110.07 157.02 110.27 152.02 109.74 C 149.89 109.27 150.05 106.67 149.99 104.99 C 149.99 97.64 149.99 90.30 149.99 82.95 C 150.12 81.43 149.84 79.39 151.38 78.48 M 152.08 80.08 C 151.95 89.36 151.95 98.64 152.08 107.92 C 157.36 108.04 162.64 108.04 167.92 107.92 C 168.05 98.64 168.05 89.36 167.92 80.08 C 162.64 79.96 157.36 79.96 152.08 80.08 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 48.01 88.19 C 48.50 88.19 49.49 88.19 49.99 88.19 C 49.98 90.06 49.98 91.92 49.99 93.78 C 49.49 93.79 48.51 93.79 48.01 93.79 C 48.01 91.92 48.01 90.06 48.01 88.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 126.01 92.19 C 126.51 92.19 127.49 92.19 127.99 92.19 C 127.98 94.06 127.98 95.93 127.98 97.80 C 127.49 97.79 126.50 97.78 126.01 97.78 C 126.01 95.91 126.01 94.05 126.01 92.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 125.98 100.19 C 126.48 100.19 127.47 100.19 127.96 100.19 C 127.99 102.75 128.02 105.32 128.08 107.88 C 129.98 107.95 131.89 108.01 133.81 108.07 C 133.80 108.57 133.78 109.59 133.77 110.10 C 131.39 109.71 128.07 110.79 126.45 108.53 C 125.66 105.83 126.07 102.96 125.98 100.19 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 24.41 112.66 C 27.59 110.67 32.28 113.20 32.00 117.04 C 32.18 120.52 28.24 123.02 25.11 121.66 C 21.33 120.42 20.93 114.50 24.41 112.66 M 26.15 114.12 C 24.25 114.47 23.50 116.93 24.38 118.50 C 25.45 120.81 29.45 120.37 29.89 117.81 C 30.58 115.59 28.37 113.39 26.15 114.12 Z"}),Object($.jsx)("path",{fill:t||a,opacity:"1.00",d:" M 170.48 112.62 C 173.67 110.70 178.29 113.25 178.00 117.06 C 178.16 120.55 174.19 123.04 171.06 121.64 C 167.28 120.35 166.95 114.41 170.48 112.62 M 172.11 114.13 C 169.72 114.60 169.28 118.30 171.30 119.51 C 173.13 120.90 176.17 119.39 175.97 117.02 C 176.16 114.97 173.98 113.54 172.11 114.13 Z"})]})},te=function(){var e=Object(Y.a)().palette.primary.main,t="#00a572"===e?"#74c39c":"#4a5255";return Object($.jsxs)("svg",{width:"150px",height:"150px",viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:[Object($.jsxs)("g",{id:e,children:[Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 102.41 0.00 L 319.87 0.00 C 320.21 29.68 319.87 59.37 320.04 89.05 C 320.29 97.32 323.88 105.47 329.94 111.12 C 336.01 117.07 344.56 120.18 353.01 120.01 C 382.02 119.87 411.04 120.22 440.05 119.83 C 439.94 236.88 440.04 353.93 440.00 470.98 C 440.01 478.16 440.50 485.68 437.47 492.41 C 432.79 503.85 421.05 511.80 408.71 512.00 L 103.28 512.00 C 90.95 511.79 79.20 503.84 74.53 492.42 C 72.06 486.96 71.87 480.87 71.99 474.97 C 72.01 327.63 71.99 180.30 72.00 32.96 C 71.95 27.61 73.03 22.22 75.52 17.46 C 80.55 7.39 91.19 0.57 102.41 0.00 M 360.00 382.07 C 358.69 383.73 359.01 385.99 358.90 387.97 C 358.95 396.36 358.91 404.75 358.93 413.14 C 352.50 403.51 346.13 393.83 339.77 384.16 C 338.65 382.47 337.13 380.65 334.92 380.63 C 331.97 380.41 329.13 382.87 329.22 385.89 C 328.94 396.58 329.24 407.28 329.08 417.98 C 329.14 420.43 328.85 422.98 329.54 425.38 C 330.75 429.14 337.11 428.63 337.54 424.63 C 338.19 415.09 337.55 405.51 337.83 395.95 C 343.71 404.78 349.41 413.73 355.26 422.58 C 356.92 424.93 358.74 427.96 362.00 428.00 C 365.02 428.51 367.54 425.83 367.40 422.90 C 367.55 411.27 367.39 399.62 367.48 387.99 C 367.40 386.11 367.63 384.06 366.61 382.38 C 365.24 380.16 361.58 380.00 360.00 382.07 M 100.79 382.81 C 98.94 384.82 100.19 388.63 103.01 388.89 C 106.91 389.29 110.85 388.97 114.77 389.07 C 114.77 399.73 114.78 410.39 114.75 421.05 C 114.76 423.37 114.89 426.34 117.28 427.52 C 119.95 429.02 123.67 427.14 123.86 424.04 C 124.22 412.40 123.84 400.72 124.04 389.07 C 128.25 388.87 132.57 389.54 136.71 388.62 C 140.15 387.40 139.25 381.72 135.61 381.56 C 126.10 381.14 116.55 381.57 107.03 381.37 C 104.95 381.53 102.34 381.06 100.79 382.81 M 156.46 381.58 C 150.26 383.15 145.11 388.05 143.12 394.11 C 140.49 401.86 140.79 410.83 144.81 418.06 C 151.07 429.05 167.20 430.79 177.27 424.26 C 183.48 420.06 186.24 412.28 186.28 405.03 C 186.43 398.11 184.59 390.56 179.19 385.85 C 173.03 380.52 164.12 379.62 156.46 381.58 M 197.74 381.67 C 195.24 381.99 194.12 384.61 194.23 386.87 C 194.06 397.92 194.27 408.97 194.15 420.02 C 194.24 422.43 193.92 425.36 195.97 427.11 C 198.62 429.25 203.28 427.47 203.31 423.89 C 203.66 418.45 203.32 412.99 203.49 407.54 C 206.76 407.72 210.68 407.24 213.15 409.89 C 217.60 414.61 220.01 420.80 223.85 425.97 C 225.63 428.66 230.20 428.72 231.83 425.86 C 232.87 424.27 231.80 422.43 231.24 420.89 C 228.63 415.38 225.17 409.99 220.02 406.56 C 223.42 405.53 227.11 404.31 229.29 401.31 C 233.14 395.94 231.83 387.34 226.14 383.76 C 221.99 381.01 216.77 381.52 212.04 381.39 C 207.28 381.52 202.48 381.08 197.74 381.67 M 240.23 386.91 C 240.19 398.28 240.20 409.66 240.22 421.03 C 240.25 423.12 240.14 425.65 241.97 427.09 C 244.58 429.23 249.25 427.52 249.33 423.98 C 249.76 418.50 249.34 413.00 249.49 407.51 C 252.77 407.64 256.62 407.29 259.13 409.85 C 263.88 414.69 266.10 421.38 270.41 426.55 C 272.74 429.20 278.48 428.00 278.28 424.04 C 276.28 417.09 271.87 410.81 266.09 406.46 C 269.75 405.55 273.64 404.05 275.74 400.71 C 278.91 395.49 277.81 387.82 272.73 384.18 C 268.85 381.14 263.64 381.44 259.00 381.41 C 254.02 381.52 249.02 381.13 244.05 381.58 C 241.41 381.77 240.05 384.51 240.23 386.91 M 286.38 386.01 C 286.17 397.35 286.39 408.70 286.27 420.04 C 286.31 422.30 286.17 425.31 288.52 426.53 C 291.20 427.60 294.20 427.07 297.03 427.21 C 304.36 427.04 311.73 427.52 319.04 426.95 C 322.44 426.37 322.43 420.75 319.05 420.15 C 311.25 419.44 303.38 420.13 295.56 419.82 C 295.59 415.47 295.58 411.12 295.58 406.78 C 302.60 406.71 309.65 407.09 316.66 406.54 C 320.07 405.84 319.57 399.91 315.98 399.96 C 309.20 399.54 302.39 399.95 295.59 399.80 C 295.57 396.05 295.57 392.30 295.58 388.55 C 303.03 388.43 310.50 388.74 317.94 388.37 C 321.67 388.25 321.80 381.95 318.11 381.66 C 309.41 381.03 300.65 381.57 291.93 381.42 C 289.16 381.15 286.27 383.00 286.38 386.01 M 375.06 381.95 C 372.19 383.34 372.77 388.27 375.95 388.84 C 379.96 389.33 384.02 388.96 388.05 389.08 C 387.92 400.08 388.05 411.07 387.99 422.07 C 387.75 424.61 389.07 427.71 391.95 427.92 C 394.85 428.51 397.33 425.86 397.14 423.05 C 397.37 411.73 397.16 400.40 397.23 389.08 C 401.42 388.89 405.69 389.52 409.82 388.64 C 413.41 387.46 412.48 381.48 408.64 381.52 C 400.79 381.23 392.93 381.50 385.08 381.39 C 381.74 381.50 378.31 381.05 375.06 381.95 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 160.39 388.45 C 164.79 387.33 170.01 388.38 173.03 391.97 C 176.12 395.52 177.00 400.46 176.87 405.04 C 176.76 409.47 175.56 414.16 172.29 417.34 C 167.50 421.98 158.82 421.68 154.58 416.43 C 150.59 411.44 150.26 404.45 151.51 398.43 C 152.46 393.85 155.68 389.57 160.39 388.45 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 203.47 388.42 C 208.28 388.55 213.18 387.93 217.93 388.93 C 222.82 390.10 223.71 398.14 218.81 399.89 C 213.88 401.57 208.52 400.89 203.40 400.90 C 203.44 396.73 203.45 392.57 203.47 388.42 Z"}),Object($.jsx)("path",{fill:e,opacity:"1.00",d:" M 249.45 388.38 C 254.29 388.56 259.22 387.96 264.00 388.94 C 268.52 390.07 269.67 397.04 265.66 399.44 C 260.63 401.83 254.85 400.80 249.47 400.94 C 249.51 396.75 249.48 392.57 249.45 388.38 Z"})]}),Object($.jsx)("g",{id:t,children:Object($.jsx)("path",{fill:t,opacity:"1.00",d:" M 319.87 0.00 L 320.20 0.00 C 360.20 39.89 400.19 79.79 440.05 119.83 C 411.04 120.22 382.02 119.87 353.01 120.01 C 344.56 120.18 336.01 117.07 329.94 111.12 C 323.88 105.47 320.29 97.32 320.04 89.05 C 319.87 59.37 320.21 29.68 319.87 0.00 Z"})}),Object($.jsxs)("g",{id:"#fdfdfd",children:[Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 360.00 382.07 C 361.58 380.00 365.24 380.16 366.61 382.38 C 367.63 384.06 367.40 386.11 367.48 387.99 C 367.39 399.62 367.55 411.27 367.40 422.90 C 367.54 425.83 365.02 428.51 362.00 428.00 C 358.74 427.96 356.92 424.93 355.26 422.58 C 349.41 413.73 343.71 404.78 337.83 395.95 C 337.55 405.51 338.19 415.09 337.54 424.63 C 337.11 428.63 330.75 429.14 329.54 425.38 C 328.85 422.98 329.14 420.43 329.08 417.98 C 329.24 407.28 328.94 396.58 329.22 385.89 C 329.13 382.87 331.97 380.41 334.92 380.63 C 337.13 380.65 338.65 382.47 339.77 384.16 C 346.13 393.83 352.50 403.51 358.93 413.14 C 358.91 404.75 358.95 396.36 358.90 387.97 C 359.01 385.99 358.69 383.73 360.00 382.07 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 100.79 382.81 C 102.34 381.06 104.95 381.53 107.03 381.37 C 116.55 381.57 126.10 381.14 135.61 381.56 C 139.25 381.72 140.15 387.40 136.71 388.62 C 132.57 389.54 128.25 388.87 124.04 389.07 C 123.84 400.72 124.22 412.40 123.86 424.04 C 123.67 427.14 119.95 429.02 117.28 427.52 C 114.89 426.34 114.76 423.37 114.75 421.05 C 114.78 410.39 114.77 399.73 114.77 389.07 C 110.85 388.97 106.91 389.29 103.01 388.89 C 100.19 388.63 98.94 384.82 100.79 382.81 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 156.46 381.58 C 164.12 379.62 173.03 380.52 179.19 385.85 C 184.59 390.56 186.43 398.11 186.28 405.03 C 186.24 412.28 183.48 420.06 177.27 424.26 C 167.20 430.79 151.07 429.05 144.81 418.06 C 140.79 410.83 140.49 401.86 143.12 394.11 C 145.11 388.05 150.26 383.15 156.46 381.58 M 160.39 388.45 C 155.68 389.57 152.46 393.85 151.51 398.43 C 150.26 404.45 150.59 411.44 154.58 416.43 C 158.82 421.68 167.50 421.98 172.29 417.34 C 175.56 414.16 176.76 409.47 176.87 405.04 C 177.00 400.46 176.12 395.52 173.03 391.97 C 170.01 388.38 164.79 387.33 160.39 388.45 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 197.74 381.67 C 202.48 381.08 207.28 381.52 212.04 381.39 C 216.77 381.52 221.99 381.01 226.14 383.76 C 231.83 387.34 233.14 395.94 229.29 401.31 C 227.11 404.31 223.42 405.53 220.02 406.56 C 225.17 409.99 228.63 415.38 231.24 420.89 C 231.80 422.43 232.87 424.27 231.83 425.86 C 230.20 428.72 225.63 428.66 223.85 425.97 C 220.01 420.80 217.60 414.61 213.15 409.89 C 210.68 407.24 206.76 407.72 203.49 407.54 C 203.32 412.99 203.66 418.45 203.31 423.89 C 203.28 427.47 198.62 429.25 195.97 427.11 C 193.92 425.36 194.24 422.43 194.15 420.02 C 194.27 408.97 194.06 397.92 194.23 386.87 C 194.12 384.61 195.24 381.99 197.74 381.67 M 203.47 388.42 C 203.45 392.57 203.44 396.73 203.40 400.90 C 208.52 400.89 213.88 401.57 218.81 399.89 C 223.71 398.14 222.82 390.10 217.93 388.93 C 213.18 387.93 208.28 388.55 203.47 388.42 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 240.23 386.91 C 240.05 384.51 241.41 381.77 244.05 381.58 C 249.02 381.13 254.02 381.52 259.00 381.41 C 263.64 381.44 268.85 381.14 272.73 384.18 C 277.81 387.82 278.91 395.49 275.74 400.71 C 273.64 404.05 269.75 405.55 266.09 406.46 C 271.87 410.81 276.28 417.09 278.28 424.04 C 278.48 428.00 272.74 429.20 270.41 426.55 C 266.10 421.38 263.88 414.69 259.13 409.85 C 256.62 407.29 252.77 407.64 249.49 407.51 C 249.34 413.00 249.76 418.50 249.33 423.98 C 249.25 427.52 244.58 429.23 241.97 427.09 C 240.14 425.65 240.25 423.12 240.22 421.03 C 240.20 409.66 240.19 398.28 240.23 386.91 M 249.45 388.38 C 249.48 392.57 249.51 396.75 249.47 400.94 C 254.85 400.80 260.63 401.83 265.66 399.44 C 269.67 397.04 268.52 390.07 264.00 388.94 C 259.22 387.96 254.29 388.56 249.45 388.38 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 286.38 386.01 C 286.27 383.00 289.16 381.15 291.93 381.42 C 300.65 381.57 309.41 381.03 318.11 381.66 C 321.80 381.95 321.67 388.25 317.94 388.37 C 310.50 388.74 303.03 388.43 295.58 388.55 C 295.57 392.30 295.57 396.05 295.59 399.80 C 302.39 399.95 309.20 399.54 315.98 399.96 C 319.57 399.91 320.07 405.84 316.66 406.54 C 309.65 407.09 302.60 406.71 295.58 406.78 C 295.58 411.12 295.59 415.47 295.56 419.82 C 303.38 420.13 311.25 419.44 319.05 420.15 C 322.43 420.75 322.44 426.37 319.04 426.95 C 311.73 427.52 304.36 427.04 297.03 427.21 C 294.20 427.07 291.20 427.60 288.52 426.53 C 286.17 425.31 286.31 422.30 286.27 420.04 C 286.39 408.70 286.17 397.35 286.38 386.01 Z"}),Object($.jsx)("path",{fill:"#fdfdfd",opacity:"1.00",d:" M 375.06 381.95 C 378.31 381.05 381.74 381.50 385.08 381.39 C 392.93 381.50 400.79 381.23 408.64 381.52 C 412.48 381.48 413.41 387.46 409.82 388.64 C 405.69 389.52 401.42 388.89 397.23 389.08 C 397.16 400.40 397.37 411.73 397.14 423.05 C 397.33 425.86 394.85 428.51 391.95 427.92 C 389.07 427.71 387.75 424.61 387.99 422.07 C 388.05 411.07 387.92 400.08 388.05 389.08 C 384.02 388.96 379.96 389.33 375.95 388.84 C 372.77 388.27 372.19 383.34 375.06 381.95 Z"})]})]})},ne=n(402),ae=n(457),re=n(25),ie=n.n(re),oe=n(456),ce=n(496),se=function(e){var t=Object(a.useState)({}),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useRef)(!0),s=Object(a.useRef)(null);return Object(a.useEffect)((function(){return function(){o.current=!1}}),[]),Object(a.useEffect)((function(){return e?s.current=setInterval((function(){var t=function(e){return o.current&&i(e)};T.a.post("".concat(m,"/cache"),{action:"get",hash:e}).then((function(e){var n=e.data;return t(n)})).catch((function(){return t({})}))}),100):clearInterval(s.current),function(){return clearInterval(s.current)}}),[e]),r},le=n(442),de=n(444),pe=n(445),be=n(401),je=n(74),ue=n.n(je),he=n(446),xe=Object(le.a)({appBar:Object(P.a)({position:"relative"},J&&{paddingTop:"30px"}),title:{marginLeft:"5px",flex:1}});function Oe(e){var t=e.title,n=e.onClose,a=e.onBack,r=xe();return Object($.jsx)(de.a,{className:r.appBar,children:Object($.jsxs)(pe.a,{children:[a&&Object($.jsx)(be.a,{edge:"start",color:"inherit",onClick:a,"aria-label":"back",children:Object($.jsx)(he.a,{})}),Object($.jsx)(l.a,{variant:"h6",className:r.title,children:t}),Object($.jsx)(be.a,{autoFocus:!0,color:"inherit",onClick:n,"aria-label":"close",style:{marginRight:"-10px"},children:Object($.jsx)(ue.a,{})})]})})}var ge,me,fe,Ce,ve,ye,we,Se,De,ke,Te,Pe=n(195),Me=n(87),Le=n.n(Me),Be=n(206),Ae=n(447),Re=n(26),Fe={light:{app:{headerToggleColor:"#4db380",appSecondaryColor:"#cbe8d9",sidebarBGColor:"#575757",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#337a57",buttonBGColor:Object(Re.a)("#337a57",.5),cardPrimaryColor:"#00a572",cardSecondaryColor:"#74c39c"},dialogTorrentDetailsContent:{posterBGColor:"#74c39c",gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",chacheSectionBGColor:"#88cdaa",widgetFontColor:"#fff",titleFontColor:"#000",subNameFontColor:"#7c7b7c",torrentFilesSectionBGColor:"#f1eff3"},detailedView:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",cacheSectionBGColor:"#fff"},addDialog:{gradientStartColor:"#e4f6ed",gradientEndColor:"#b5dec9",fontColor:"#000",notificationErrorBGColor:"#cda184",notificationSuccessBGColor:"#88cdaa",languageSwitchBGColor:"#74c39c",languageSwitchFontColor:"#e4f6ed",posterBGColor:"#74c39c"},torrentFunctions:{fontColor:"#000"},table:{defaultPrimaryColor:"#009879",defaultSecondaryColor:"#00a383",defaultTertiaryColor:"#03aa89"},settingsDialog:{contentBG:"#f1eff3",footerBG:"#fff"}},dark:{app:{headerToggleColor:"#545a5e",appSecondaryColor:"#545a5e",sidebarBGColor:"#323637",sidebarFillColor:"#dee3e5"},torrentCard:{accentCardColor:"#323637",buttonBGColor:Object(Re.a)("#323637",.5),cardPrimaryColor:"#545a5e",cardSecondaryColor:Object(Re.a)("#dee3e5",.4)},dialogTorrentDetailsContent:{posterBGColor:Object(Re.a)("#dee3e5",.4),gradientStartColor:"#656f76",gradientEndColor:"#545a5e",chacheSectionBGColor:"#3c4244",widgetFontColor:Object(Re.a)("#fff",.8),titleFontColor:"#f1eff3",subNameFontColor:"#dee3e5",torrentFilesSectionBGColor:Object(Re.a)("#545a5e",.9)},detailedView:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",cacheSectionBGColor:"#949ca0"},addDialog:{gradientStartColor:"#656f76",gradientEndColor:"#545a5e",fontColor:"#fff",notificationErrorBGColor:"#c82e3f",notificationSuccessBGColor:"#323637",languageSwitchBGColor:"#545a5e",languageSwitchFontColor:"#dee3e5",posterBGColor:"#dee3e5"},torrentFunctions:{fontColor:"#f1eff3"},table:{defaultPrimaryColor:"#323637",defaultSecondaryColor:Object(Re.a)("#545a5e",.9),defaultTertiaryColor:"#545a5e"},settingsDialog:{contentBG:"#5a6166",footerBG:"#323637"}}},Ne={light:{primary:"#00a572",secondary:"#00a572",labels:Object(Re.a)("#000",.9)},dark:{primary:"#323637",secondary:"#dee3e5",labels:Object(Re.a)("#fff",.9)}},ze="light",Ee="dark",Ge="auto",Ie={fontFamily:"Open Sans, sans-serif"},He=(Object(Be.a)({typography:Ie,palette:{type:Ee,primary:{main:Ne.dark.primary},secondary:{main:Ne.dark.secondary}}}),Object(Be.a)({typography:Ie,palette:{type:ze,primary:{main:Ne.light.primary},secondary:{main:Ne.light.secondary}}})),Ue=n(4),Ve=n(3),We={dark:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:Object(Re.a)("#fff",.2),completeColor:Object(Re.a)(Ne.dark.primary,.5),backgroundColor:"#949ca0",progressColor:Object(Re.a)("#fff",.2),readerColor:"#8f0405",rangeColor:"#cda184"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#5c6469",completeColor:"#5c6469",backgroundColor:"#949ca0",progressColor:"#949ca0",readerColor:"#ccc",rangeColor:"#cda184"}},light:{default:{borderWidth:1,pieceSize:14,gapBetweenPieces:3,borderColor:"#dbf2e8",completeColor:Ne.light.primary,backgroundColor:"#fff",progressColor:"#b3dfc9",readerColor:"#000",rangeColor:"#afa6e3"},mini:{cacheMaxHeight:340,borderWidth:2,pieceSize:23,gapBetweenPieces:6,borderColor:"#4db380",completeColor:"#4db380",backgroundColor:"#dbf2e8",progressColor:"#dbf2e8",readerColor:"#0a0a0a",rangeColor:"#afa6e3"}}},_e=Ve.d.div(ge||(ge=Object(Ue.a)(["\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n"]))),Ze=Ve.d.div(me||(me=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isMini,n=e.themeType;return Object(Ve.c)(fe||(fe=Object(Ue.a)(["\n ","\n\n canvas {\n display: block;\n }\n "])),t&&Object(Ve.c)(Ce||(Ce=Object(Ue.a)(["\n display: grid;\n justify-content: center;\n max-height: ","px;\n overflow: auto;\n "])),We[n].mini.cacheMaxHeight))})),Ke=function(e){var t,n=e.cache,r=e.isMini,i=e.isSnakeDebugMode,o=Object(ce.a)().t,s=Object(a.useState)({width:0,height:0}),l=Object(c.a)(s,2),d=l[0],p=l[1],b=d.width,j=Object(a.useRef)(null),u=Object(a.useRef)(null),h=function(e){var t=Object(a.useState)([]),n=Object(c.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){for(var t=e.PiecesCount,n=e.Pieces,a=e.Readers,r=[],o=function(e){var t=n[e]||{},i=t.Size,o=t.Length,c=t.Priority,s={id:e,percentage:i/o*100||0,priority:c||0};a.forEach((function(t){e===t.Reader&&(s.isReader=!0),e>=t.Start&&e<=t.End&&(s.isReaderRange=!0)})),r.push(s)},c=0;c0})),i=function(e){return e%a===0?e-1:e+a-e%a-1||0},o=i(n),c=i(r.length),s=Math.max(c,o)-r.length+1,l=s?new Array(s).fill({}):[];return[].concat(Object(F.a)(r),Object(F.a)(l))}({cacheMap:h,preloadPiecesAmount:Math.round(n.Capacity/n.PiecesLength-1),piecesInOneRow:M}));var L=r?t:h,B=Math.ceil((T-P*M)/2),A=Math.ceil(L.length/M)*P;return Object(a.useEffect)((function(){if(T&&A){var e=j.current;e.width=T,e.height=A,u.current=e.getContext("2d")}}),[j,A,T]),Object(a.useEffect)((function(){var e=u.current;e&&(e.clearRect(0,0,T,A),L.forEach((function(t,n){var a=t.percentage,o=t.priority,c=t.isReader,s=t.isReaderRange,l=a>0&&a<100,d=100===a,p=n%M,b=Math.floor(n/M),j=C%2===0?0:.5,u=Math.ceil(C/2)+1+j,h=p*v+p*y+B+u,g=b*v+b*y+u;if(e.lineWidth=C,e.fillStyle=l?function(e,t,n,a){var r=We[n][a],i=r.pieceSize,o=r.completeColor,c=r.progressColor,s=e.createLinearGradient(0,i,0,0);return s.addColorStop(0,o),s.addColorStop(t/100,o),s.addColorStop(t/100,c),s.addColorStop(1,c),s}(e,a,O,x):d?k:w,e.strokeStyle=c?m:l||d?k:s?f:S,e.translate(h,g),e.fillRect(0,0,v,v),e.strokeRect(0,0,v,v),e.setTransform(1,0,0,1,0,0),i&&o>0){var D="";1===o?D="":2===o?D="H":3===o?D="R":4===o?D="N":5===o&&(D="A"),e.font=r?"13px monospace":"10px monospace";var T=r?.35*v:.29*v,P=r?.69*v:.78*v;e.fillStyle="black",e.fillText(D,h+T,g+P)}})))}),[h,A,T,M,B,v,y,L,w,S,C,x,k,m,f,r,O,i]),Object($.jsx)(Pe.a,{bounds:!0,onResize:function(e){var t=e.bounds;return p(t)},children:function(e){var t=e.measureRef;return Object($.jsxs)("div",{style:{display:"flex",flexDirection:"column"},ref:t,children:[Object($.jsx)(Ze,{themeType:O,isMini:r,children:Object($.jsx)("canvas",{ref:j})}),r&&A>=D&&Object($.jsx)(_e,{children:o("ScrollDown")})]})}})},Je=Object(a.memo)(Ke,(function(e,t){return Le()(e.cache.Pieces,t.cache.Pieces)&&Le()(e.cache.Readers,t.cache.Readers)})),Ye=n(88),$e=n.n(Ye),Xe="#858c90",qe=Object(Ve.c)(ve||(ve=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(Ve.c)(ye||(ye=Object(Ue.a)(["\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ",";\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n "])),t)})),Qe=Ve.d.table(we||(we=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.table.defaultPrimaryColor;return Object(Ve.c)(Se||(Se=Object(Ue.a)(["\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ",";\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ",";\n background: ",";\n\n :last-of-type {\n border-bottom: 2px solid ",";\n }\n\n &.viewed-file-row {\n background: ",";\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ","\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n "])),t,"#d2d2d2","#f3f3f3",t,"#ddd",qe)})),et=Ve.d.div(De||(De=Object(Ue.a)(["\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n"]))),tt=Ve.d.div(ke||(ke=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isViewed,n=e.theme.table,a=n.defaultPrimaryColor,r=n.defaultSecondaryColor,i=n.defaultTertiaryColor;return Object(Ve.c)(Te||(Te=Object(Ue.a)(["\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ",";\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ",";\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ",";\n }\n\n &-name {\n background: ",";\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ",";\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ","\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ",";\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #f3f3f3;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n "])),t?Xe:a,t?"max-content":"1fr",t?Xe:a,t?"#8c9498":r,t?"#949ca0":i,t&&qe,t?Xe:a)})),nt=n(0).memo;ie.a.addHandler("episode",/(\d{1,4})[- |. ]\u0441\u0435\u0440\u0438\u044f|\u0441\u0435\u0440\u0438\u044f[- |. ](\d{1,4})/i,{type:"integer"}),ie.a.addHandler("season",/sezon[- |. ](\d{1,3})|(\d{1,3})[- |. ]sezon/i,{type:"integer"}),ie.a.addHandler("season",/\u0441\u0435\u0437\u043e\u043d[- |. ](\d{1,3})|(\d{1,3})[- |. ]\u0441\u0435\u0437\u043e\u043d/i,{type:"integer"});var at,rt,it,ot,ct,st,lt,dt,pt,bt,jt,ut,ht,xt,Ot,gt,mt,ft,Ct,vt,yt,wt,St,Dt,kt,Tt,Pt,Mt,Lt,Bt,At,Rt,Ft,Nt,zt,Et,Gt,It=nt((function(e){var t,n=e.playableFileList,a=e.viewedFileList,r=e.selectedSeason,i=e.seasonAmount,o=e.hash,c=Object(ce.a)().t,s=function(e){return fetch("".concat(y(),"?link=").concat(o,"&index=").concat(e,"&preload"))},l=function(e,t){return"".concat(y(),"/").concat(encodeURIComponent(e.split("\\").pop().split("/").pop()),"?link=").concat(o,"&index=").concat(t,"&play")},d=!(null===n||void 0===n||!n.find((function(e){var t=e.path;return ie.a.parse(t).episode}))),p=!(null===n||void 0===n||!n.find((function(e){var t=e.path;return ie.a.parse(t).season}))),b=!(null===n||void 0===n||!n.find((function(e){var t=e.path;return ie.a.parse(t).resolution}))),j=(null===n||void 0===n?void 0:n.length)>1&&!d,u=null!==(t=JSON.parse(localStorage.getItem("isVlcUsed")))&&void 0!==t&&t;return null!==n&&void 0!==n&&n.length?Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:u.toString()}),Object($.jsxs)(Qe,{children:[Object($.jsx)("thead",{children:Object($.jsxs)("tr",{children:[Object($.jsx)("th",{style:{width:"0"},children:c("Viewed")}),Object($.jsx)("th",{children:c("Name")}),p&&1===(null===i||void 0===i?void 0:i.length)&&Object($.jsx)("th",{style:{width:"0"},children:c("Season")}),d&&Object($.jsx)("th",{style:{width:"0"},children:c("Episode")}),b&&Object($.jsx)("th",{style:{width:"0"},children:c("Resolution")}),Object($.jsx)("th",{style:{width:"100px"},children:c("Size")}),Object($.jsx)("th",{style:{width:"400px"},children:c("Actions")})]})}),Object($.jsx)("tbody",{children:n.map((function(e){var t=e.id,n=e.path,o=e.length,u=ie.a.parse(n),h=u.title,x=u.resolution,O=u.episode,g=u.season,m=null===a||void 0===a?void 0:a.includes(t),f=l(n,t);return(g===r||!(null!==i&&void 0!==i&&i.length))&&Object($.jsxs)("tr",{className:m?"viewed-file-row":null,children:[Object($.jsx)("td",{"data-label":"viewed",className:m?"viewed-file-indicator":null}),Object($.jsx)("td",{"data-label":"name",children:j?n:h}),p&&1===(null===i||void 0===i?void 0:i.length)&&Object($.jsx)("td",{"data-label":"season",children:g}),d&&Object($.jsx)("td",{"data-label":"episode",children:O}),b&&Object($.jsx)("td",{"data-label":"resolution",children:x}),Object($.jsx)("td",{"data-label":"size",children:V(o)}),Object($.jsx)("td",{children:Object($.jsxs)("div",{className:"button-cell",children:[Object($.jsx)(ne.a,{onClick:function(){return s(t)},variant:"outlined",color:"primary",size:"small",children:c("Preload")}),Object($.jsx)("a",{style:{textDecoration:"none"},href:f,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:c("OpenLink")})}),Object($.jsx)($e.a,{text:f,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:c("CopyLink")})})]})})]},t)}))})]}),Object($.jsx)(et,{children:n.map((function(e){var t=e.id,n=e.path,o=e.length,h=ie.a.parse(n),x=h.title,O=h.resolution,g=h.episode,m=h.season,f=null===a||void 0===a?void 0:a.includes(t),C=l(n,t);return(m===r||!(null!==i&&void 0!==i&&i.length))&&Object($.jsxs)(tt,{isViewed:f,children:[Object($.jsx)("div",{className:"short-table-name",children:j?n:x}),Object($.jsxs)("div",{className:"short-table-data",children:[f&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Viewed")}),Object($.jsx)("div",{className:"short-table-field-value",children:Object($.jsx)("div",{className:"short-table-viewed-indicator"})})]}),p&&1===(null===i||void 0===i?void 0:i.length)&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Season")}),Object($.jsx)("div",{className:"short-table-field-value",children:m})]}),d&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Episode")}),Object($.jsx)("div",{className:"short-table-field-value",children:g})]}),b&&Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Resolution")}),Object($.jsx)("div",{className:"short-table-field-value",children:O})]}),Object($.jsxs)("div",{className:"short-table-field",children:[Object($.jsx)("div",{className:"short-table-field-name",children:c("Size")}),Object($.jsx)("div",{className:"short-table-field-value",children:V(o)})]})]}),Object($.jsxs)("div",{className:"short-table-buttons",children:[Object($.jsx)(ne.a,{onClick:function(){return s(t)},variant:"outlined",color:"primary",size:"small",children:c("Preload")}),u&&J?Object($.jsx)("a",{style:{textDecoration:"none"},href:"vlc://".concat(C),children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:"VLC"})}):Object($.jsx)("a",{style:{textDecoration:"none"},href:C,target:"_blank",rel:"noreferrer",children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"outlined",color:"primary",size:"small",children:c("OpenLink")})}),Object($.jsx)($e.a,{text:C,children:Object($.jsx)(ne.a,{variant:"outlined",color:"primary",size:"small",children:c("CopyLink")})})]})]},t)}))})]}):"No playable files in this torrent"}),(function(e,t){return Le()(e,t)})),Ht=n(455),Ut=n(492),Vt=Ve.d.div(at||(at=Object(Ue.a)(["\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n"]))),Wt=Ve.d.div(rt||(rt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.dialogTorrentDetailsContent.posterBGColor;return Object(Ve.c)(it||(it=Object(Ue.a)(["\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ","\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ","\n }\n "])),t?Object(Ve.c)(ot||(ot=Object(Ue.a)(["\n img {\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(Ve.c)(ct||(ct=Object(Ue.a)(["\n width: 300px;\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n "])),n),t?Object(Ve.c)(st||(st=Object(Ue.a)(["\n height: 200px;\n "]))):Object(Ve.c)(lt||(lt=Object(Ue.a)(["\n display: none;\n "]))))})),_t=Ve.d.section(dt||(dt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent,n=t.gradientStartColor,a=t.gradientEndColor;return Object(Ve.c)(pt||(pt=Object(Ue.a)(["\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),Zt=Ve.d.section(bt||(bt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.chacheSectionBGColor;return Object(Ve.c)(jt||(jt=Object(Ue.a)(["\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Kt=Ve.d.section(ut||(ut=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.torrentFilesSectionBGColor;return Object(Ve.c)(ht||(ht=Object(Ue.a)(["\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),Jt=Ve.d.div(xt||(xt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.subNameFontColor;return Object(Ve.c)(Ot||(Ot=Object(Ue.a)(["\n ","\n "])),(function(e){var n=e.mb;return Object(Ve.c)(gt||(gt=Object(Ue.a)(["\n ",";\n ",";\n line-height: 1.2;\n color: ",";\n\n @media (max-width: 800px) {\n ",";\n ",";\n font-size: 14px;\n }\n "])),n&&"margin-top: ".concat(n/3,"px"),n&&"margin-bottom: ".concat(n,"px"),t,n&&"margin-top: ".concat(n/4,"px"),n&&"margin-bottom: ".concat(n/2,"px"))}))})),Yt=Ve.d.div(mt||(mt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.color,n=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(Ve.c)(ft||(ft=Object(Ue.a)(["\n ","\n "])),(function(e){var a=e.mb;return Object(Ve.c)(Ct||(Ct=Object(Ue.a)(["\n ",";\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ",";\n }\n "])),a&&"margin-bottom: ".concat(a,"px"),t||n,a&&"margin-bottom: ".concat(a/2,"px"))}))})),$t=Ve.d.div(vt||(vt=Object(Ue.a)(["\n margin-bottom: 20px;\n"]))),Xt=Ve.d.div(yt||(yt=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ","\n"])),(function(e){return e.detailedView?Object(Ve.c)(wt||(wt=Object(Ue.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n "]))):Object(Ve.c)(St||(St=Object(Ue.a)(["\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n "])))})),qt=Ve.d.div(Dt||(Dt=Object(Ue.a)(["\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n"]))),Qt=Ve.d.div(kt||(kt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.dialogTorrentDetailsContent.titleFontColor;return Object(Ve.c)(Tt||(Tt=Object(Ue.a)(["\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ",";\n "])),t)})),en=Ve.d.div(Pt||(Pt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.bgColor;return Object(Ve.c)(Mt||(Mt=Object(Ue.a)(["\n grid-area: icon;\n color: ",";\n background: ",";\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n "])),Object(Re.a)("#fff",.8),t)})),tn=Ve.d.div(Lt||(Lt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.bgColor,n=e.theme.dialogTorrentDetailsContent.widgetFontColor;return Object(Ve.c)(Bt||(Bt=Object(Ue.a)(["\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ",";\n background: ",";\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n "])),n,t)})),nn=Ve.d.div.attrs((function(e){var t=e.value,n=e.fullAmount,a=e.theme.dialogTorrentDetailsContent,r=a.gradientStartColor,i=a.gradientEndColor,o=Math.min(100,100*t/n);return{style:{background:"linear-gradient(to right, ".concat(r," 0%, ").concat(i," ").concat(o,"%, #eee ").concat(o,"%, #fff 100%)")}}}))(At||(At=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.label;return Object(Ve.c)(Rt||(Rt=Object(Ue.a)(["\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n "])),t)})),an=Ve.d.div(Ft||(Ft=Object(Ue.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),rn=Ve.d.section(Nt||(Nt=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView,n=t.gradientStartColor,a=t.gradientEndColor;return Object(Ve.c)(zt||(zt=Object(Ue.a)(["\n padding: 40px;\n background: linear-gradient(145deg, ",", ",");\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),n,a)})),on=Ve.d.section(Et||(Et=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.detailedView.cacheSectionBGColor;return Object(Ve.c)(Gt||(Gt=Object(Ue.a)(["\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ",";\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n "])),t)})),cn=n(12),sn=n(448),ln=n(449),dn=n(450),pn=n(451),bn=n(452),jn=n(453),un=n(454);function hn(e){var t=e.icon,n=e.title,a=e.value,r=e.iconBg,i=e.valueBg;return Object($.jsxs)(qt,{children:[Object($.jsx)(Qt,{children:n}),Object($.jsx)(en,{bgColor:r,children:Object($.jsx)(t,{})}),Object($.jsx)(tn,{bgColor:i,children:a})]})}var xn=ze,On=Ee,gn={light:{downloadSpeed:{iconBGColor:"#118f00",valueBGColor:"#13a300"},uploadSpeed:{iconBGColor:"#0146ad",valueBGColor:"#0058db"},peers:{iconBGColor:"#cdc118",valueBGColor:"#d8cb18"},piecesCount:{iconBGColor:"#b6c95e",valueBGColor:"#c0d076"},piecesLength:{iconBGColor:"#0982c8",valueBGColor:"#098cd7"},status:{iconBGColor:"#aea25b",valueBGColor:"#b4aa6e"},size:{iconBGColor:"#9b01ad",valueBGColor:"#ac03bf"}},dark:{downloadSpeed:{iconBGColor:"#0c6600",valueBGColor:"#0d7000"},uploadSpeed:{iconBGColor:"#003f9e",valueBGColor:"#0047b3"},peers:{iconBGColor:"#a69c11",valueBGColor:"#b4a913"},piecesCount:{iconBGColor:"#8da136",valueBGColor:"#99ae3d"},piecesLength:{iconBGColor:"#07659c",valueBGColor:"#0872af"},status:{iconBGColor:"#938948",valueBGColor:"#9f9450"},size:{iconBGColor:"#81008f",valueBGColor:"#9102a1"}}};function mn(e){var t=Object(a.useContext)(Mc).isDarkMode;return gn[t?On:xn][e]}var fn,Cn,vn,yn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("downloadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("DownloadSpeed"),value:W(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:sn.a})},wn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("uploadSpeed"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("UploadSpeed"),value:W(t)||"0 ".concat(n("bps")),iconBg:r,valueBg:i,icon:ln.a})},Sn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("peers"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("Peers"),value:_(t)||"0 \xb7 0 / 0",iconBg:r,valueBg:i,icon:dn.a})},Dn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("piecesCount"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("PiecesCount"),value:t,iconBg:r,valueBg:i,icon:pn.a})},kn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("piecesLength"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("PiecesLength"),value:V(t),iconBg:r,valueBg:i,icon:bn.a})},Tn=function(e){var t,n=e.stat,a=Object(ce.a)().t,r=(t={},Object(cn.a)(t,1,a("TorrentGettingInfo")),Object(cn.a)(t,2,a("TorrentPreload")),Object(cn.a)(t,3,a("TorrentWorking")),Object(cn.a)(t,4,a("TorrentClosed")),Object(cn.a)(t,5,a("TorrentInDb")),t),i=mn("status"),o=i.iconBGColor,c=i.valueBGColor;return Object($.jsx)(hn,{title:a("TorrentStatus"),value:r[n],iconBg:o,valueBg:c,icon:jn.a})},Pn=function(e){var t=e.data,n=Object(ce.a)().t,a=mn("size"),r=a.iconBGColor,i=a.valueBGColor;return Object($.jsx)(hn,{title:n("TorrentSize"),value:V(t),iconBg:r,valueBg:i,icon:un.a})};function Mn(e){var t=e.downloadSpeed,n=e.uploadSpeed,r=e.torrent,i=e.torrentSize,o=e.PiecesCount,s=e.PiecesLength,l=e.stat,d=e.cache,p=Object(ce.a)().t,b=Object(a.useState)(JSON.parse(localStorage.getItem("isSnakeDebugMode"))||!1),j=Object(c.a)(b,2),u=j[0],h=j[1];return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(rn,{children:[Object($.jsx)(Yt,{mb:20,children:p("Data")}),Object($.jsxs)(Xt,{detailedView:!0,children:[Object($.jsx)(yn,{data:t}),Object($.jsx)(wn,{data:n}),Object($.jsx)(Sn,{data:r}),Object($.jsx)(Pn,{data:i}),Object($.jsx)(Dn,{data:o}),Object($.jsx)(kn,{data:s}),Object($.jsx)(Tn,{stat:l})]})]}),Object($.jsxs)(on,{children:[Object($.jsx)(Yt,{color:"#000",mb:20,children:Object($.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[Object($.jsx)("span",{children:p("Cache")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(Ut.a,{color:"primary",checked:u,disableRipple:!0,onChange:function(e){var t=e.target.checked;h(t),localStorage.setItem("isSnakeDebugMode",t)}}),label:p("DebugMode"),labelPlacement:"start"})]})}),Object($.jsx)(Je,{cache:d,isSnakeDebugMode:u})]})]})}var Ln=Ve.d.div(fn||(fn=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n"]))),Bn=Ve.d.div(Cn||(Cn=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.mb,n=e.theme.torrentFunctions.fontColor;return Object(Ve.c)(vn||(vn=Object(Ue.a)(["\n ",";\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ",";\n\n @media (max-width: 800px) {\n font-size: 18px;\n ",";\n }\n "])),t&&"margin-bottom: ".concat(t,"px"),n,t&&"margin-bottom: ".concat(t/1.5,"px"))})),An=Object(a.memo)((function(e){var t,n=e.hash,a=e.viewedFileList,r=e.playableFileList,i=e.name,o=e.title,c=e.setViewedFileList,s=Object(ce.a)().t,l=null===a||void 0===a?void 0:a[(null===a||void 0===a?void 0:a.length)-1],d=null===r||void 0===r||null===(t=r.find((function(e){return e.id===l})))||void 0===t?void 0:t.path,p=1===(null===r||void 0===r?void 0:r.length),b=d&&ie.a.parse(d),j="".concat(S(),"/").concat(encodeURIComponent(i||o||"file"),".m3u?link=").concat(n,"&m3u"),u="".concat(j,"&fromlast");return Object($.jsxs)($.Fragment,{children:[!p&&!(null===a||void 0===a||!a.length)&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Bn,{children:s("DownloadPlaylist")}),Object($.jsxs)(Jt,{mb:10,children:[s("LatestFilePlayed")," ",Object($.jsxs)("strong",{children:[null===b||void 0===b?void 0:b.title,".",(null===b||void 0===b?void 0:b.season)&&Object($.jsxs)($.Fragment,{children:[" ",s("Season"),": ",null===b||void 0===b?void 0:b.season,". ",s("Episode"),": ",null===b||void 0===b?void 0:b.episode,"."]})]})]}),Object($.jsxs)(Ln,{children:[Object($.jsx)("a",{style:{textDecoration:"none"},href:j,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:s("Full")})}),Object($.jsx)("a",{style:{textDecoration:"none"},href:u,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:s("FromLatestFile")})})]})]}),Object($.jsx)(Bn,{mb:10,children:s("TorrentState")}),Object($.jsxs)(Ln,{children:[Object($.jsx)(ne.a,{onClick:function(){return T.a.post(C(),{action:"rem",hash:n,file_index:-1}).then((function(){return c()}))},variant:"contained",color:"primary",size:"large",children:s("RemoveViews")}),Object($.jsx)(ne.a,{onClick:function(){return T.a.post(f(),{action:"drop",hash:n})},variant:"contained",color:"primary",size:"large",children:s("DropTorrent")})]}),Object($.jsx)(Bn,{mb:10,children:s("Info")}),Object($.jsxs)(Ln,{children:[(p||!(null!==a&&void 0!==a&&a.length))&&Object($.jsx)("a",{style:{textDecoration:"none"},href:j,children:Object($.jsx)(ne.a,{style:{width:"100%"},variant:"contained",color:"primary",size:"large",children:s("DownloadPlaylist")})}),Object($.jsx)(Ye.CopyToClipboard,{text:n,children:Object($.jsx)(ne.a,{variant:"contained",color:"primary",size:"large",children:s("CopyHash")})})]})]})}),(function(){return!0})),Rn=["3g2","3gp","aaf","asf","avchd","avi","drc","flv","iso","m2v","m2ts","m4p","m4v","mkv","mng","mov","mp2","mp4","mpe","mpeg","mpg","mpv","mxf","nsv","ogg","ogv","ts","qt","rm","rmvb","roq","svi","vob","webm","wmv","yuv","aac","aiff","ape","au","flac","gsm","it","m3u","m4a","mid","mod","mp3","mpa","pls","ra","s3m","sid","wav","wma","xm"],Fn=function(){return Object($.jsx)("div",{style:{minHeight:"80vh",display:"grid",placeItems:"center"},children:Object($.jsx)(oe.a,{color:"secondary"})})};function Nn(e){var t,n=e.closeDialog,r=e.torrent,i=Object(ce.a)().t,o=Object(a.useState)(!0),s=Object(c.a)(o,2),l=s[0],d=s[1],p=Object(a.useState)(!1),b=Object(c.a)(p,2),j=b[0],u=b[1],h=Object(a.useState)(),x=Object(c.a)(h,2),O=x[0],g=x[1],m=Object(a.useState)(),f=Object(c.a)(m,2),y=f[0],w=f[1],S=Object(a.useState)(null),D=Object(c.a)(S,2),k=D[0],M=D[1],L=Object(a.useState)(),B=Object(c.a)(L,2),A=B[0],R=B[1],F=Object(a.useState)(JSON.parse(localStorage.getItem("isSnakeDebugMode"))||!1),N=Object(c.a)(F,1)[0],z=r.poster,E=r.hash,G=r.title,I=r.name,H=r.stat,U=r.download_speed,W=r.upload_speed,_=r.torrent_size,K=r.file_stats,J=se(E),Y=function(e){var t=Object(a.useState)(),n=Object(c.a)(t,2),r=n[0],i=n[1];return Object(a.useEffect)((function(){T.a.post(v(),{action:"get"}).then((function(e){var t=e.data;return i(t)}))}),[e]),r}(J),q=J.Capacity,Q=J.PiecesCount,ee=J.PiecesLength,te=J.Filled;Object(a.useEffect)((function(){if(y&&null===k){var e=[];y.forEach((function(t){var n=t.path,a=ie.a.parse(n).season;a&&!e.includes(a)&&e.push(a)})),e.length&&R(e[0]),M(e.sort((function(e,t){return e-t})))}}),[y,k]),Object(a.useEffect)((function(){w(null===K||void 0===K?void 0:K.filter((function(e){var t,n=e.path;return t=n,Rn.includes(function(e){var t=e.split(".").pop();return t===e?"":t.toLowerCase()}(t))})))}),[K]),Object(a.useEffect)((function(){var e=!!Object.entries(J).length,t=1!==H&&5!==H;e||l||d(!0),e&&l&&t&&d(!1)}),[H,J,l]),Object(a.useEffect)((function(){T.a.post(C(),{action:"list",hash:E}).then((function(e){var t=e.data;if(t){var n=t.map((function(e){return e.file_index})).sort((function(e,t){return e-t}));g(n)}else g()}))}),[E]);var re=q/100*(null===Y||void 0===Y?void 0:Y.PreloadCache),oe=re>33554432?re:33554432,le=function(){var e=[],t=I&&ie.a.parse(I);G!==I?e.push(Z(G)):null!==t&&void 0!==t&&t.title&&e.push(Z(null===t||void 0===t?void 0:t.title)),null!==t&&void 0!==t&&t.year&&!e[0].includes(null===t||void 0===t?void 0:t.year)&&e.push(null===t||void 0===t?void 0:t.year),null!==t&&void 0!==t&&t.resolution&&!e[0].includes(null===t||void 0===t?void 0:t.resolution)&&e.push(null===t||void 0===t?void 0:t.resolution);var n=e.join(". ");return"."===n[n.length-1]&&"."===n[n.length-2]?"".concat(n,"."):n};return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Oe,Object(P.a)({onClose:n,title:i(j?"DetailedCacheView.header":"TorrentDetails")},j&&{onBack:function(){return u(!1)}})),Object($.jsx)("div",{style:Object(P.a)({minHeight:"80vh",overflow:"auto"},j&&{display:"flex",flexDirection:"column"}),children:l?Object($.jsx)(Fn,{}):j?Object($.jsx)(Mn,{downloadSpeed:U,uploadSpeed:W,torrent:r,torrentSize:_,PiecesCount:Q,PiecesLength:ee,stat:H,cache:J}):Object($.jsxs)(Vt,{children:[Object($.jsxs)(_t,{children:[Object($.jsx)(Wt,{poster:z,children:z?Object($.jsx)("img",{alt:"poster",src:z}):Object($.jsx)(X,{})}),Object($.jsxs)("div",{children:[G&&I!==G?le().length>90?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Yt,{children:ie.a.parse(I).title}),Object($.jsx)(Jt,{mb:20,children:le()})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Yt,{children:le()}),Object($.jsx)(Jt,{mb:20,children:null===(t=ie.a.parse(I||""))||void 0===t?void 0:t.title})]}):Object($.jsx)(Yt,{mb:20,children:le()}),Object($.jsxs)(Xt,{children:[Object($.jsx)(yn,{data:U}),Object($.jsx)(wn,{data:W}),Object($.jsx)(Sn,{data:r}),Object($.jsx)(Pn,{data:_}),Object($.jsx)(Tn,{stat:H})]}),Object($.jsx)(an,{}),Object($.jsx)(An,{hash:E,viewedFileList:O,playableFileList:y,name:I,title:G,setViewedFileList:g})]})]}),Object($.jsxs)(Zt,{children:[Object($.jsxs)($t,{children:[Object($.jsx)(Yt,{mb:20,children:i("Buffer")}),oe<=33554432&&Object($.jsx)(Jt,{children:i("BufferNote")}),Object($.jsx)(nn,{value:te,style:{marginTop:"5px"},fullAmount:oe,label:"".concat(V(oe)," / ").concat(V(te)||"0 ".concat(i("B")))})]}),Object($.jsx)(Je,{isMini:!0,cache:J,isSnakeDebugMode:N}),Object($.jsx)(ne.a,{style:{marginTop:"30px"},variant:"contained",color:"primary",size:"large",onClick:function(){return u(!0)},children:i("DetailedCacheView.button")})]}),Object($.jsxs)(Kt,{children:[Object($.jsx)(Yt,{mb:20,children:i("TorrentContent")}),(null===k||void 0===k?void 0:k.length)>1&&Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Jt,{mb:7,children:i("SelectSeason")}),Object($.jsx)(ae.a,{style:{marginBottom:"30px"},color:"secondary",children:k.map((function(e){return Object($.jsx)(ne.a,{variant:A===e?"contained":"outlined",onClick:function(){return R(e)},children:e},e)}))}),Object($.jsxs)(Yt,{mb:20,children:[i("Season")," ",A]})]}),Object($.jsx)(It,{hash:E,playableFileList:y,viewedFileList:O,selectedSeason:A,seasonAmount:k})]})]})})]})}var zn=n(494),En=n(466),Gn=n(471),In=n(472),Hn=n(200),Un=n.n(Hn),Vn=function(){var e=Object(ce.a)().i18n;return[e.language.substr(0,2),function(t){return e.changeLanguage(t)}]};function Wn(e){var t=Object(a.useRef)(e);return Object(a.useEffect)((function(){t.current=e}),[e]),t.current}var _n,Zn,Kn,Jn,Yn,$n,Xn,qn,Qn,ea,ta,na,aa=n(111),ra=n.n(aa),ia=Ve.d.div(_n||(_n=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(Ve.c)(Zn||(Zn=Object(Ue.a)(["\n background: ",";\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n "])),t)})),oa=Ve.d.div(Kn||(Kn=Object(Ue.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n"]))),ca=n(458),sa=function(e){return Object(Ve.c)(Jn||(Jn=Object(Ue.a)(["\n @media screen and (display-mode: standalone) {\n ",";\n }\n"])),e)},la=90,da=Ve.d.div(Yn||(Yn=Object(Ue.a)(["\n background: #575757;\n color: #fff;\n position: fixed;\n bottom: 0;\n width: 100%;\n height: ","px;\n\n display: none;\n\n ","\n"])),la,sa(Object(Ve.c)($n||($n=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(5, calc(100% / 5));\n justify-items: center;\n "]))))),pa=Object(Ve.d)(ca.a).attrs({button:!0})(Xn||(Xn=Object(Ue.a)(["\n ","\n"])),sa(Object(Ve.c)(qn||(qn=Object(Ue.a)(["\n width: 100%;\n height: 60px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n "]))))),ba=Object(Ve.d)(zn.a).attrs(Object(P.a)({},J&&{hideBackdrop:!0,transitionDuration:0}))(Qn||(Qn=Object(Ue.a)(["\n ","\n"])),sa(Object(Ve.c)(ea||(ea=Object(Ue.a)(["\n margin-bottom: ","px;\n\n .MuiDialog-container .MuiPaper-root {\n box-shadow: none;\n }\n "])),la))),ja=Object(Ve.d)(ia)(ta||(ta=Object(Ue.a)(["\n ","\n"])),sa(Object(Ve.c)(na||(na=Object(Ue.a)(["\n padding-top: 47px;\n "])))));function ua(e){var t=Object(a.useRef)();return Object(a.useEffect)((function(){if(J){var n=function(n){t.current&&!t.current.contains(n.target)&&e&&e()};return document.addEventListener("click",n,!0),function(){document.removeEventListener("click",n,!0)}}})),t}var ha,xa,Oa,ga,ma,fa,Ca,va,ya,wa,Sa,Da,ka,Ta,Pa,Ma,La,Ba,Aa,Ra,Fa,Na,za,Ea,Ga,Ia,Ha,Ua=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en",n="http://api.themoviedb.org/3/search/multi";return T.a.get(n,{params:{api_key:"45ddf563ac3fb845f2d5c363190d1a33",language:t,include_image_language:"".concat(t,",null,en"),query:e}}).then((function(e){return e.data.results.filter((function(e){return e.poster_path})).map((function(e){return"https://image.tmdb.org/t/p/w300".concat(e.poster_path)}))})).catch((function(){return null}))},Va=function(){var e=Object(R.a)(Object(A.a)().mark((function e(t){return Object(A.a)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.match(/.(jpg|jpeg|png|gif)$/i)){e.next=2;break}return e.abrupt("return",!1);case 2:return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Wa=/^magnet:\?xt=urn:[a-z0-9].*/i,_a=/^\b[0-9a-f]{32}\b$|^\b[0-9a-f]{40}\b$|^\b[0-9a-f]{64}\b$/i,Za=/^.*\.(torrent)$/i,Ka=/^(http(s?)):\/\/.*/i,Ja=Ve.d.div(ha||(ha=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isEditMode,n=e.theme.addDialog,a=n.gradientStartColor,r=n.gradientEndColor,i=n.fontColor;return Object(Ve.c)(xa||(xa=Object(Ue.a)(["\n height: 550px;\n background: linear-gradient(145deg, ",", ",");\n flex: 1;\n display: grid;\n grid-template-columns: repeat(",", 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ",";\n\n @media (max-width: 540px) {\n ","\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n "])),a,r,t?"1":"2",i,"")})),Ya=Ve.d.div(Oa||(Oa=Object(Ue.a)(["\n padding: 0 20px 20px 20px;\n"]))),$a=Ve.d.div(ga||(ga=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isHidden,n=e.notificationMessage,a=e.isError,r=e.theme.addDialog,i=r.notificationErrorBGColor,o=r.notificationSuccessBGColor;return Object(Ve.c)(ma||(ma=Object(Ue.a)(["\n height: 530px;\n\n ",";\n\n ",";\n\n @media (max-width: 500px) {\n height: 170px;\n }\n "])),n&&Object(Ve.c)(fa||(fa=Object(Ue.a)(["\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '","';\n display: grid;\n place-items: center;\n background: ",";\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n "])),n,a?i:o),t&&Object(Ve.c)(Ca||(Ca=Object(Ue.a)(["\n display: none;\n "]))))})),Xa=Ve.d.div(va||(va=Object(Ue.a)(["\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n"]))),qa=Object(Ve.c)(ya||(ya=Object(Ue.a)(["\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n"]))),Qa=Ve.d.div(wa||(wa=Object(Ue.a)(["\n ","\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n outline: none;\n\n ",";\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n"])),qa,(function(e){return e.isDragActive&&"border: 4px dashed green"})),er=Ve.d.div(Sa||(Sa=Object(Ue.a)(["\n ","\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n"])),qa),tr=Ve.d.div(Da||(Da=Object(Ue.a)(["\n position: relative;\n"]))),nr=Ve.d.div(ka||(ka=Object(Ue.a)(["\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n"]))),ar=Ve.d.div(Ta||(Ta=Object(Ue.a)(["\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n"]))),rr=Ve.d.div(Pa||(Pa=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.active,n=e.theme.addDialog.gradientStartColor;return Object(Ve.c)(Ma||(Ma=Object(Ue.a)(["\n background: ",";\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ",";\n "])),n,t&&"box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)")})),ir=Ve.d.div(La||(La=Object(Ue.a)(["\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n"]))),or=Ve.d.div(Ba||(Ba=Object(Ue.a)(["\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n"]))),cr=Ve.d.div(Aa||(Aa=Object(Ue.a)(["\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n"]))),sr=Ve.d.div(Ra||(Ra=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.poster,n=e.theme.addDialog.posterBGColor;return Object(Ve.c)(Fa||(Fa=Object(Ue.a)(["\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ","\n "])),t?Object(Ve.c)(Na||(Na=Object(Ue.a)(["\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n "]))):Object(Ve.c)(za||(za=Object(Ue.a)(["\n display: grid;\n place-items: center;\n background: ",";\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n "])),n))})),lr=Object(Ve.d)(ne.a)(Ea||(Ea=Object(Ue.a)(["\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ",";\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n"])),(function(e){return!e.showbutton&&"display: none"})),dr=Ve.d.div(Ga||(Ga=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.showbutton,n=e.theme.addDialog,a=n.languageSwitchBGColor,r=n.languageSwitchFontColor;return Object(Ve.c)(Ia||(Ia=Object(Ue.a)(["\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ",";\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ",";\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ",";\n\n :hover {\n filter: brightness(1.1);\n }\n "])),a,r,!t&&"display: none")})),pr=Ve.d.div(Ha||(Ha=Object(Ue.a)(["\n border: 2px solid white;\n border-radius: 50%;\n height: 45px;\n width: 45px;\n position: relative;\n\n :before,\n :after {\n content: '';\n background: white;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n :before {\n width: 2px;\n height: 25px;\n }\n :after {\n width: 25px;\n height: 2px;\n }\n"]))),br=n(495),jr=n(463),ur=n(464);function hr(e){var t=e.setTitle,n=e.setPosterUrl,a=e.setIsPosterUrlCorrect,r=e.setIsUserInteractedWithPoster,i=e.setPosterList,o=e.isTorrentSourceCorrect,c=e.isHashAlreadyExists,s=e.title,l=e.parsedTitle,d=e.posterUrl,p=e.isPosterUrlCorrect,b=e.posterList,j=e.currentLang,u=e.posterSearchLanguage,h=e.setPosterSearchLanguage,x=e.posterSearch,O=e.removePoster,g=e.torrentSource,m=e.originalTorrentTitle,f=e.updateTitleFromSource,C=e.isCustomTitleEnabled,v=e.setIsCustomTitleEnabled,y=e.isEditMode,w=Object(ce.a)().t,S=Object(Y.a)().palette.primary.main,D=function(e){var n=e.target.value;return t(n)};return Object($.jsxs)(Ya,{children:[Object($.jsxs)($a,{isHidden:!o||c&&!y,children:[m?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(br.a,{value:m,margin:"dense",label:w("AddDialog.OriginalTorrentTitle"),type:"text",fullWidth:!0,disabled:C,InputProps:{readOnly:!0}}),Object($.jsx)(br.a,{onChange:D,onFocus:function(){return v(!0)},onBlur:function(e){return!e.target.value&&v(!1)},value:s,margin:"dense",label:w("AddDialog.CustomTorrentTitle"),type:"text",fullWidth:!0,helperText:w("AddDialog.CustomTorrentTitleHelperText"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:Object($.jsx)(be.a,{style:{padding:"1px"},onClick:function(){t(""),v(!C),f(),r(!1)},children:Object($.jsx)(ur.a,{style:{color:C?S:Object(Re.a)("#ccc",.5)}})})})}})]}):Object($.jsx)(br.a,{onChange:D,value:s,margin:"dense",label:w("AddDialog.TitleBlank"),type:"text",fullWidth:!0}),Object($.jsx)(br.a,{onChange:function(e){var t=e.target.value;n(t),Va(t).then(a),r(!!t),i()},value:d,margin:"dense",label:w("AddDialog.AddPosterLinkInput"),type:"url",fullWidth:!0}),Object($.jsxs)(ir,{children:[Object($.jsx)(sr,{poster:+p,children:p?Object($.jsx)("img",{src:d,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsx)(or,{children:null===b||void 0===b?void 0:b.filter((function(e){return e!==d})).slice(0,12).map((function(e){return Object($.jsx)(cr,{onClick:function(){return function(e){n(e),Va(e).then(a),r(!0)}(e)},children:Object($.jsx)("img",{src:e,alt:"poster"})},e)}))}),"en"!==j&&Object($.jsx)(dr,{onClick:function(){var e="en"===u?"ru":"en";h(e),x(C?s:m?l:s,e,{shouldRefreshMainPoster:!0})},showbutton:+p,color:"primary",variant:"contained",size:"small",children:"en"===u?"EN":"RU"}),Object($.jsx)(lr,{showbutton:+p,onClick:function(){O(),r(!0)},color:"primary",variant:"contained",size:"small",children:w("Clear")})]})]}),Object($.jsx)($a,{isError:g&&(!o||c),notificationMessage:g?o?c&&w("AddDialog.HashExists"):w("AddDialog.WrongTorrentSource"):w("AddDialog.AddTorrentSourceNotification"),isHidden:y||o&&!c})]})}var xr,Or,gr,mr,fr,Cr,vr,yr,wr,Sr,Dr=n(207),kr=n(465);function Tr(e){var t=e.setIsUserInteractedWithPoster,n=e.setSelectedFile,r=e.torrentSource,i=e.setTorrentSource,o=e.selectedFile,s=Object(ce.a)().t,l=Object(a.useState)(!1),d=Object(c.a)(l,2),p=d[0],b=d[1],j=Object(Dr.a)({onDrop:function(e){var a=Object(c.a)(e,1)[0];a&&(t(!1),n(a),i(a.name))},accept:".torrent"}),u=j.getRootProps,h=j.getInputProps,x=j.isDragActive;return Object($.jsxs)(Xa,{children:[Object($.jsx)(rr,{active:p,children:Object($.jsx)(br.a,{onChange:function(e){var t=e.target.value;return i(t)},value:r,margin:"dense",label:s("AddDialog.TorrentSourceLink"),helperText:s("AddDialog.TorrentSourceOptions"),type:"text",fullWidth:!0,onFocus:function(){return b(!0)},onBlur:function(){return b(!1)},inputProps:{autoComplete:"off"},disabled:!!o})}),o?Object($.jsx)(er,{children:Object($.jsxs)(tr,{children:[Object($.jsx)(te,{}),Object($.jsx)(nr,{onClick:function(){n(),i("")},children:Object($.jsx)(kr.a,{})})]})}):Object($.jsxs)(Qa,Object(P.a)(Object(P.a)({isDragActive:x},u()),{},{children:[Object($.jsx)("input",Object(P.a)({},h())),Object($.jsx)("div",{children:s("AddDialog.AppendFile.Or")}),Object($.jsxs)(ar,{children:[Object($.jsx)(q,{color:"primary"}),Object($.jsx)("div",{children:s("AddDialog.AppendFile.ClickOrDrag")})]})]}))]})}function Pr(e){var t=e.handleClose,n=e.hash,r=e.title,i=e.name,s=e.poster,l=Object(ce.a)().t,d=!!n,p=Object(a.useState)(n||""),b=Object(c.a)(p,2),j=b[0],u=b[1],h=Object(a.useState)(r||""),x=Object(c.a)(h,2),O=x[0],g=x[1],C=Object(a.useState)(""),v=Object(c.a)(C,2),y=v[0],w=v[1],S=Object(a.useState)(""),D=Object(c.a)(S,2),k=D[0],P=D[1],M=Object(a.useState)(s||""),L=Object(c.a)(M,2),B=L[0],A=L[1],R=Object(a.useState)(!1),F=Object(c.a)(R,2),N=F[0],z=F[1],E=Object(a.useState)(!1),G=Object(c.a)(E,2),I=G[0],H=G[1],U=Object(a.useState)(!1),V=Object(c.a)(U,2),W=V[0],_=V[1],Z=Object(a.useState)(),J=Object(c.a)(Z,2),Y=J[0],X=J[1],q=Object(a.useState)(d),Q=Object(c.a)(q,2),ee=Q[0],te=Q[1],ae=Vn(),re=Object(c.a)(ae,1)[0],se=Object(a.useState)(),le=Object(c.a)(se,2),de=le[0],pe=le[1],be=Object(a.useState)("ru"===re?"ru":"en"),je=Object(c.a)(be,2),ue=je[0],he=je[1],xe=Object(a.useState)(!1),Oe=Object(c.a)(xe,2),ge=Oe[0],me=Oe[1],fe=Object(a.useState)(!1),Ce=Object(c.a)(fe,2),ve=Ce[0],ye=Ce[1],we=Object(a.useState)(!1),Se=Object(c.a)(we,2),De=Se[0],ke=Se[1],Te=Object(a.useState)(),Pe=Object(c.a)(Te,2),Me=Pe[0],Le=Pe[1],Be=ua(t),Re=Object(o.useQuery)("torrents",K,{retry:1,refetchInterval:1e3}).data;Object(a.useEffect)((function(){ra.a.remote(de||j,(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.infoHash;return Le(n)}))}),[de,j]),Object(a.useEffect)((function(){if(Le){var e=Re.map((function(e){return e.hash}));_(e.includes(Me))}}),[Me,Re]),Object(a.useEffect)((function(){if(ge){Re.map((function(e){return e.hash})).includes(Me)&&t();null!==j.match(/^(http(s?)):\/\/.*/i)&&t()}}),[ge,Re,j,Me,t]);var Fe=Object(Ae.a)("@media (max-width:930px)"),Ne=Object(a.useCallback)((function(){var e,t;e=de||j,t=function(e){var t=e.parsedTitle,n=e.originalName;n&&(ye(!0),g(""),ke(!1),w(n),P(t))},ra.a.remote(e,(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=n.name,r=n.files;if(!a||e)return t({parsedTitle:null,originalName:null});var i=ie.a.parse(a).title,o=r?ie.a.parse(r[0].name).title:null,c=i;o&&(c=i.length2&&void 0!==arguments[2]?arguments[2]:{},a=n.shouldRefreshMainPoster,r=void 0!==a&&a;if(!e)return X(),void ze();Ua(e,t).then((function(e){if(e){if(X(e),!r&&ee)return;var t=Object(c.a)(e,1)[0];Va(t).then((function(e){e?(z(!0),A(t)):ze()}))}else{if(X(),ee)return;ze()}}))}}),[ee]),Ge=Object(a.useMemo)((function(){return Un()(Ee,700)}),[Ee]),Ie=Wn(j);Object(a.useEffect)((function(){var e;if(!(null!==(e=j).match(_a)||null!==e.match(Wa)||null!==e.match(Za)||null!==e.match(Ka)))return H(!1);H(!0),j!==Ie&&Ne()}),[Ie,de,j,Ne]);var He=Wn(O);Object(a.useEffect)((function(){(O!==He||k)&&(ve?(Ee(O||k,ue),ye(!1)):O?Ge(O,ue):(Ge.cancel(),k?Ee(k,ue):!ee&&ze()))}),[O,k,He,Ge,Ee,ue,ve,ee]);return Object($.jsxs)(ba,{open:!0,onClose:t,fullScreen:Fe,fullWidth:!0,maxWidth:"md",ref:Be,children:[Object($.jsx)(ja,{children:l(d?"EditTorrent":"AddNewTorrent")}),Object($.jsxs)(Ja,{isEditMode:d,children:[!d&&Object($.jsx)(Tr,{setIsUserInteractedWithPoster:te,selectedFile:de,setSelectedFile:pe,torrentSource:j,setTorrentSource:u}),Object($.jsx)(hr,{originalTorrentTitle:y,setTitle:g,setPosterUrl:A,setIsPosterUrlCorrect:z,setIsUserInteractedWithPoster:te,setPosterList:X,isTorrentSourceCorrect:I,isHashAlreadyExists:W,title:O,parsedTitle:k,posterUrl:B,isPosterUrlCorrect:N,posterList:Y,currentLang:re,posterSearchLanguage:ue,setPosterSearchLanguage:he,posterSearch:Ee,removePoster:ze,updateTitleFromSource:Ne,torrentSource:j,isCustomTitleEnabled:De,setIsCustomTitleEnabled:ke,isEditMode:d})]}),Object($.jsxs)(oa,{children:[Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"outlined",children:l("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",style:{minWidth:"110px"},disabled:!j||W&&!d||!I,onClick:function(){if(me(!0),d)T.a.post(f(),{action:"set",hash:n,title:O||i,poster:B}).finally(t);else if(de){var e=new FormData;e.append("save","true"),e.append("file",de),O&&e.append("title",O),B&&e.append("poster",B),T.a.post("".concat(m,"/torrent/upload"),e).catch(t)}else T.a.post(f(),{action:"add",link:j,title:O,poster:B,save_to_db:!0}).catch(t)},color:"secondary",children:ge?Object($.jsx)(oe.a,{style:{color:"white"},size:20}):l(d?"Save":"Add")})]})]})}var Mr,Lr,Br,Ar,Rr,Fr,Nr,zr,Er,Gr,Ir,Hr,Ur,Vr,Wr,_r,Zr,Kr,Jr,Yr,$r=Ve.d.div(xr||(xr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard.cardPrimaryColor;return Object(Ve.c)(Or||(Or=Object(Ue.a)(["\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ",";\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n "])),t)})),Xr=Ve.d.div(gr||(gr=Object(Ue.a)(["\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n cursor: pointer;\n transition: 0.2s;\n position: relative;\n\n :hover {\n filter: brightness(0.7);\n }\n\n ",";\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n"])),(function(e){var t=e.isPoster,n=e.theme.torrentCard,a=n.cardSecondaryColor,r=n.accentCardColor;return t?Object(Ve.c)(mr||(mr=Object(Ue.a)(["\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n "]))):Object(Ve.c)(fr||(fr=Object(Ue.a)(["\n display: grid;\n place-items: center;\n background: ",";\n border: 1px solid ",";\n\n svg {\n transform: translateY(-3px);\n }\n "])),a,r)})),qr=Ve.d.div(Cr||(Cr=Object(Ue.a)(["\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n"]))),Qr=Ve.d.div(vr||(vr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.cardSecondaryColor,a=t.accentCardColor;return Object(Ve.c)(yr||(yr=Object(Ue.a)(["\n grid-area: description;\n background: ",";\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ",";\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n "])),n,a)})),ei=Ve.d.button(wr||(wr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.torrentCard,n=t.buttonBGColor,a=t.accentCardColor;return Object(Ve.c)(Sr||(Sr=Object(Ue.a)(["\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ",";\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ",";\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n "])),n,a)})),ti=Object(a.forwardRef)((function(e,t){return Object($.jsx)(En.a,Object(P.a)({direction:"up",ref:t},e))})),ni=function(e){var t=e.torrent,n=Object(ce.a)().t,r=Object(a.useState)(!1),i=Object(c.a)(r,2),o=i[0],s=i[1],l=Object(a.useState)(!1),p=Object(c.a)(l,2),b=p[0],j=p[1],u=Object(Y.a)(),h=Object(Ae.a)(u.breakpoints.down("md")),x=function(){return s(!1)},O=function(){return j(!1)},g=t.title,m=t.name,C=t.poster,v=t.torrent_size,y=t.download_speed,w=t.hash,D=function(){var e=function(e){var t,n;return(null===(t=ie.a.parse(g||""))||void 0===t?void 0:t[e])||(null===(n=ie.a.parse(m||""))||void 0===n?void 0:n[e])},t=[],n=Z(e("title")),a=e("year"),r=e("resolution");return n&&t.push(n),a&&t.push("(".concat(a,")")),r&&t.push("[".concat(r,"]")),{parsedTitle:n=t.join(" ")}}(),k=D.parsedTitle,P=Object(a.useState)(!1),A=Object(c.a)(P,2),R=A[0],F=A[1],N="".concat(S(),"/").concat(encodeURIComponent(k||"file"),".m3u?link=").concat(w,"&m3u"),z=ua(x);return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)($r,{children:[Object($.jsx)(Xr,{isPoster:C,onClick:function(){return F(!0)},children:C?Object($.jsx)("img",{src:C,alt:"poster"}):Object($.jsx)(X,{})}),Object($.jsxs)(qr,{children:[Object($.jsxs)(ei,{onClick:function(){return s(!0)},children:[Object($.jsx)(M.a,{}),Object($.jsx)("span",{children:n("Details")})]}),Object($.jsxs)(ei,{onClick:function(){window.open(N,"_blank")},children:[Object($.jsx)(L.a,{}),Object($.jsx)("span",{children:n("Playlist")})]}),Object($.jsxs)(ei,{onClick:function(){return T.a.post(f(),{action:"drop",hash:w})},children:[Object($.jsx)(d.a,{}),Object($.jsx)("span",{children:n("Drop")})]}),Object($.jsxs)(ei,{onClick:function(){return j(!0)},children:[Object($.jsx)(B.a,{}),Object($.jsx)("span",{children:n("Delete")})]})]}),Object($.jsxs)(Qr,{children:[Object($.jsxs)("div",{className:"description-title-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Name")}),Object($.jsx)("div",{className:"description-torrent-title",children:k})]}),Object($.jsxs)("div",{className:"description-statistics-wrapper",children:[Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Size")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:v>0&&V(v)})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Speed")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:y>0?W(y):"---"})]}),Object($.jsxs)("div",{className:"description-statistics-element-wrapper",children:[Object($.jsx)("div",{className:"description-section-name",children:n("Peers")}),Object($.jsx)("div",{className:"description-statistics-element-value",children:_(t)||"---"})]})]})]})]}),Object($.jsx)(ba,{open:o,onClose:x,fullScreen:h,fullWidth:!0,maxWidth:"xl",TransitionComponent:ti,ref:z,children:Object($.jsx)(Nn,{closeDialog:x,torrent:t})}),Object($.jsxs)(zn.a,{open:b,onClose:O,children:[Object($.jsx)(Gn.a,{children:n("DeleteTorrent?")}),Object($.jsxs)(In.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:O,color:"secondary",children:n("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){T.a.post(f(),{action:"rem",hash:w}),O()},color:"secondary",autoFocus:!0,children:n("OK")})]})]}),R&&Object($.jsx)(Pr,{hash:w,title:g,name:m,poster:C,handleClose:function(){return F(!1)}})]})},ai=Object(a.memo)(ni),ri=Ve.d.div(Mr||(Mr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.app.appSecondaryColor;return Object(Ve.c)(Lr||(Lr=Object(Ue.a)(["\n height: 100%;\n background: ",";\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n\n ","\n "])),Object(Re.a)(t,.8),sa(Object(Ve.c)(Br||(Br=Object(Ue.a)(["\n grid-template-columns: 0 1fr;\n grid-template-rows: ","px 1fr ","px;\n height: 100vh;\n "])),la,la)))})),ii=Ve.d.div(Ar||(Ar=Object(Ue.a)(["\n display: grid;\n place-items: center;\n\n ","\n"])),sa(Object(Ve.c)(Rr||(Rr=Object(Ue.a)(["\n height: 100vh;\n width: 100vw;\n "]))))),oi=Ve.d.div(Fr||(Fr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.primary;return Object(Ve.c)(Nr||(Nr=Object(Ue.a)(["\n background: ",";\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n\n ","\n "])),t,sa(Object(Ve.c)(zr||(zr=Object(Ue.a)(["\n grid-template-columns: max-content 1fr;\n align-items: end;\n padding: 7px 16px;\n position: fixed;\n width: 100%;\n height: ","px;\n "])),la)))})),ci=Ve.d.div(Er||(Er=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isDrawerOpen,n=e.theme.app,a=n.appSecondaryColor,r=n.sidebarBGColor,i=n.sidebarFillColor;return Object(Ve.c)(Gr||(Gr=Object(Ue.a)(["\n grid-area: side;\n width: ",";\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ",";\n background: ",";\n color: ",";\n white-space: nowrap;\n\n svg {\n fill: ",";\n }\n\n ","\n "])),t?"400%":"100%",Object(Re.a)(a,.12),r,i,i,sa(Object(Ve.c)(Ir||(Ir=Object(Ue.a)(["\n display: none;\n "])))))})),si=Ve.d.div(Hr||(Hr=Object(Ue.a)(["\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n\n ","\n"])),sa(Object(Ve.c)(Ur||(Ur=Object(Ue.a)(["\n height: calc(100vh - ","px);\n padding-bottom: 105px;\n "])),la))),li=Ve.d.div(Vr||(Vr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.app.headerToggleColor;return Object(Ve.c)(Wr||(Wr=Object(Ue.a)(["\n cursor: pointer;\n border-radius: 50%;\n background: ",";\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ",";\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n "])),t,Object(Re.a)(t,.7))})),di=Object(Ve.d)(be.a)(_r||(_r=Object(Ue.a)(["\n margin-right: 6px;\n\n ","\n"])),sa(Object(Ve.c)(Zr||(Zr=Object(Ue.a)(["\n display: none;\n "]))))),pi=Ve.d.div(Kr||(Kr=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isButton,n=e.theme.addDialog,a=n.notificationSuccessBGColor,r=n.languageSwitchBGColor;return Object(Ve.c)(Jr||(Jr=Object(Ue.a)(["\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ","\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n "])),t&&Object(Ve.c)(Yr||(Yr=Object(Ue.a)(["\n background: ",";\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: ",";\n }\n "])),a,r))}));function bi(){var e=Object(ce.a)().t,t=Object(Y.a)().palette.primary.main;return Object($.jsxs)(pi,{children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/wrprwmwt.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(t),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("Offline")})]})}function ji(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(Y.a)().palette.primary.main;return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(pi,{onClick:function(){return i(!0)},isButton:!0,children:[Object($.jsx)("lord-icon",{src:"https://cdn.lordicon.com/bbnkwdur.json",trigger:"loop",colors:"primary:#121331,secondary:".concat(o),stroke:"26",scale:"60"}),Object($.jsx)("div",{className:"icon-label",children:e("NoTorrentsAdded")})]}),r&&Object($.jsx)(Pr,{handleClose:function(){return i(!1)}})]})}function ui(e){var t=e.isOffline,n=e.isLoading,a=e.torrents;return n||t||!a.length?Object($.jsx)(ii,{children:t?Object($.jsx)(bi,{}):n?Object($.jsx)(oe.a,{color:"secondary"}):!a.length&&Object($.jsx)(ji,{})}):Object($.jsx)(si,{children:a.map((function(e){return Object($.jsx)(ai,{torrent:e},e.hash)}))})}var hi,xi=n(493),Oi=n(202),gi=n.n(Oi),mi=n(473),fi=n(462);function Ci(e){var t=e.onClose,n=Object(ce.a)().t,a=ua(t);return Object($.jsxs)(ba,{open:!0,onClose:t,"aria-labelledby":"form-dialog-title",fullWidth:!0,maxWidth:"xs",ref:a,children:[Object($.jsx)(Gn.a,{id:"form-dialog-title",children:n("Donate")}),Object($.jsx)(mi.a,{children:Object($.jsxs)(fi.a,{children:[Object($.jsx)(ca.a,{children:Object($.jsxs)(ae.a,{variant:"outlined",color:"primary","aria-label":"contained primary button group",children:[Object($.jsx)(ne.a,{onClick:function(){return window.open("https://boosty.to/yourok","_blank")},children:"Boosty"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://yoomoney.ru/to/410013733697114","_blank")},children:"IO.Money"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://qiwi.com/n/YOUROK85","_blank")},children:"QIWI"}),Object($.jsx)(ne.a,{onClick:function(){return window.open("https://www.paypal.com/paypalme/yourok","_blank")},children:"PayPal"})]})},"DonateLinks"),Object($.jsx)(ca.a,{children:Object($.jsx)("div",{dangerouslySetInnerHTML:{__html:''}})},"DonateForm")]})}),Object($.jsx)(In.a,{children:Object($.jsx)(ne.a,{onClick:t,color:"secondary",variant:"contained",children:"Ok"})})]})}var vi=Object(Ve.d)(xi.a)(hi||(hi=Object(Ue.a)(["\n ",";\n"])),sa("margin-bottom: 90px"));function yi(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!0),s=Object(c.a)(o,2),l=s[0],d=s[1],p=function(){d(!1),localStorage.setItem("snackbarIsClosed",!0)};return Object($.jsxs)($.Fragment,{children:[r&&Object($.jsx)(Ci,{onClose:function(){return i(!1)}}),Object($.jsx)(vi,{anchorOrigin:{vertical:"bottom",horizontal:"center"},open:l,onClose:p,message:e("Donate?"),action:Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(ne.a,{style:{marginRight:"10px"},color:"secondary",size:"small",onClick:function(){i(!0),p()},children:[Object($.jsx)(gi.a,{style:{marginRight:"10px"},fontSize:"small"}),e("Support")]}),Object($.jsx)(be.a,{size:"small","aria-label":"close",color:"inherit",onClick:p,children:Object($.jsx)(ue.a,{fontSize:"small"})})]})})]})}var wi,Si,Di=n(483),ki=Object(Ve.b)(wi||(wi=Object(Ue.a)(['\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: "Open Sans", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n -webkit-tap-highlight-color: transparent;\n\n\n ','\n }\n\n button {\n font-family: "Open Sans", sans-serif;\n letter-spacing: -0.1px;\n }\n'])),sa(Object(Ve.c)(Si||(Si=Object(Ue.a)(["\n height: 100vh;\n "]))))),Ti=n(481),Pi=n(474),Mi=n(475),Li=n(482),Bi=n(203),Ai=n.n(Bi);function Ri(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1];return Object($.jsxs)("div",{children:[Object($.jsx)(pa,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:J?Object($.jsx)(pr,{}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(Ai.a,{})}),Object($.jsx)(Mi.a,{primary:r("AddFromLink")})]})}),s&&Object($.jsx)(Pr,{handleClose:function(){return l(!1)}})]})}var Fi,Ni,zi,Ei,Gi,Ii,Hi,Ui,Vi,Wi,_i,Zi,Ki,Ji,Yi,$i,Xi,qi,Qi,eo,to,no,ao=n(131),ro=n.n(ao),io=n(490),oo=n(478),co=n(204),so=n.n(co),lo="#b3dfc9",po=Ne.light.primary,bo=Object(Ve.d)(ja)(Fi||(Fi=Object(Ue.a)(["\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n"]))),jo=Ve.d.div(Ni||(Ni=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.theme.settingsDialog.footerBG;return Object(Ve.c)(zi||(zi=Object(Ue.a)(["\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ",";\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n "])),t)})),uo=(Ve.d.div(Ei||(Ei=Object(Ue.a)(["\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n"]))),Ve.d.div(Gi||(Gi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isLoading,n=e.theme.settingsDialog.contentBG;return Object(Ve.c)(Ii||(Ii=Object(Ue.a)(["\n background: ",";\n overflow: auto;\n flex: 1;\n\n ","\n "])),n,t&&Object(Ve.c)(Hi||(Hi=Object(Ue.a)(["\n min-height: 500px;\n display: grid;\n place-items: center;\n "]))))}))),ho=Ve.d.div(Ui||(Ui=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.color;return Object(Ve.c)(Vi||(Vi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ",";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n "])),t)})),xo=Ve.d.div(Wi||(Wi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n"]))),Oo=Ve.d.div(_i||(_i=Object(Ue.a)(["\n padding: 20px;\n"]))),go=Ve.d.div(Zi||(Zi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.small,n=e.selected;return Object(Ve.c)(Ki||(Ki=Object(Ue.a)(["\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ","\n\n ","\n "])),!n&&Object(Ve.c)(Ji||(Ji=Object(Ue.a)(["\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n "]))),t?Object(Ve.c)(Yi||(Yi=Object(Ue.a)(["\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n "]))):Object(Ve.c)($i||($i=Object(Ue.a)(["\n display: grid;\n place-items: center;\n gap: 10px;\n "]))))})),mo=Ve.d.div(Xi||(Xi=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.selected,n=e.small;return Object(Ve.c)(qi||(qi=Object(Ue.a)(["\n width: ",";\n height: ",";\n border-radius: 50%;\n background: ",";\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ",";\n height: ",";\n }\n "])),n?"60px":"150px",n?"60px":"150px",t?"#323637":"#dee3e5",n?"50px":"90px",n?"50px":"90px")})),fo=Ve.d.div(Qi||(Qi=Object(Ue.a)(["\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n"]))),Co=Ve.d.div(eo||(eo=Object(Ue.a)(["\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n"]))),vo=Ve.d.div.attrs((function(e){var t=e.value;return{style:{background:"linear-gradient(to right, ".concat(lo," 0%, ").concat(lo," ").concat(t,"%, ").concat(po," ").concat(t,"%, ").concat(po," 100%)")}}}))(to||(to=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.label,n=e.preloadCachePercentage;return Object(Ve.c)(no||(no=Object(Ue.a)(["\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '","';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ","%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n "])),t,n)})),yo={CacheSize:64,ReaderReadAHead:95,UseDisk:!1,UploadRateLimit:0,TorrentsSavePath:"",ConnectionsLimit:25,DisableDHT:!1,DisablePEX:!1,DisableTCP:!1,DisableUPNP:!1,DisableUTP:!1,DisableUpload:!1,DownloadRateLimit:0,EnableDebug:!1,EnableIPv6:!1,FriendlyName:"",ForceEncrypt:!1,PeersListenPort:0,PreloadCache:50,RemoveCacheOnDrop:!1,RetrackersMode:1,TorrentDisconnectTimeout:30},wo=n(5),So=["children","value","index"],Do=function(e){return{id:"full-width-tab-".concat(e),"aria-controls":"full-width-tabpanel-".concat(e)}},ko=function(e){var t=e.children,n=e.value,a=e.index,r=Object(wo.a)(e,So);return Object($.jsx)("div",Object(P.a)(Object(P.a)({role:"tabpanel",hidden:n!==a,id:"full-width-tabpanel-".concat(a)},r),{},{children:n===a&&Object($.jsx)($.Fragment,{children:t})}))},To=n(477),Po=n(476),Mo=n(499),Lo=n(497);function Bo(e){var t=e.isProMode,n=e.title,a=e.value,r=e.setValue,i=e.sliderMin,o=e.sliderMax,c=e.inputMin,s=e.inputMax,l=e.step,d=void 0===l?1:l,p=e.onBlurCallback;return Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:n}),Object($.jsxs)(Po.a,{container:!0,spacing:2,alignItems:"center",children:[Object($.jsx)(Po.a,{item:!0,xs:!0,children:Object($.jsx)(Mo.a,{min:i,max:o,value:a,onChange:function(e,t){return r(t)},step:d,color:"secondary"})}),t&&Object($.jsx)(Po.a,{item:!0,children:Object($.jsx)(Lo.a,{value:a,margin:"dense",onChange:function(e){var t=e.target.value;return r(""===t?"":Number(t))},onBlur:function(e){var t=e.target.value;return ts?r(s):void(p&&p(t))},style:{width:"91px",marginTop:"-6px"},inputProps:{step:d,min:c,max:s,type:"number"}})})]})]})}var Ao=function(e){var t=e.style,n=Object(ce.a)().t;return Object($.jsxs)(Co,{style:t,children:[n("SettingsDialog.CacheStorageLocation"),Object($.jsx)("small",{children:n("SettingsDialog.UseDiskDesc")})]})};function Ro(e){var t=e.settings,n=e.inputForm,a=e.cachePercentage,r=e.preloadCachePercentage,i=e.cacheSize,o=e.isProMode,c=e.setCacheSize,s=e.setCachePercentage,l=e.setPreloadCachePercentage,d=e.updateSettings,p=Object(ce.a)().t,b=t||{},j=b.UseDisk,u=b.TorrentsSavePath,h=b.RemoveCacheOnDrop,x=Math.round(i/100*r);return Object($.jsxs)(xo,{children:[Object($.jsxs)("div",{children:[Object($.jsx)(Co,{children:p("SettingsDialog.CacheSettings")}),Object($.jsx)(vo,{value:100-a,label:"".concat(p("Cache")," ").concat(i," ").concat(p("MB")),preloadCachePercentage:r}),Object($.jsxs)(ho,{color:lo,children:[Object($.jsxs)("div",{children:[100-a,"% (",Math.round(i/100*(100-a))," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheBeforeReaderDesc")})]}),Object($.jsxs)(ho,{color:po,children:[Object($.jsxs)("div",{children:[a,"% (",Math.round(i/100*a)," ",p("MB"),")"]}),Object($.jsx)("div",{children:p("SettingsDialog.CacheAfterReaderDesc")})]}),Object($.jsx)("br",{}),Object($.jsx)(Bo,{isProMode:o,title:p("SettingsDialog.CacheSize"),value:i,setValue:c,sliderMin:32,sliderMax:1024,inputMin:32,inputMax:999999,step:4,onBlurCallback:function(e){return c(4*Math.round(e/4))}}),Object($.jsx)(Bo,{isProMode:o,title:p("SettingsDialog.ReaderReadAHead"),value:a,setValue:s,sliderMin:40,sliderMax:95,inputMin:0,inputMax:100}),Object($.jsx)(Bo,{isProMode:o,title:"".concat(p("SettingsDialog.PreloadCache")," - ").concat(r,"% (").concat(x," ").concat(p("MB"),")"),value:r,setValue:l,sliderMin:0,sliderMax:100,inputMin:0,inputMax:100})]}),j?Object($.jsxs)("div",{children:[Object($.jsx)(Ao,{}),Object($.jsxs)("div",{style:{display:"grid",gridAutoFlow:"column"},children:[Object($.jsxs)(go,{small:!0,onClick:function(){return d({UseDisk:!1})},children:[Object($.jsx)(mo,{small:!0,children:Object($.jsx)(ee,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(go,{small:!0,selected:!0,children:[Object($.jsx)(mo,{small:!0,selected:!0,children:Object($.jsx)(Q,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:h,onChange:n,id:"RemoveCacheOnDrop",color:"secondary"}),label:p("SettingsDialog.RemoveCacheOnDrop"),labelPlacement:"start"}),Object($.jsx)("div",{children:Object($.jsx)("small",{children:p("SettingsDialog.RemoveCacheOnDropDesc")})}),Object($.jsx)("br",{}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"TorrentsSavePath",label:p("SettingsDialog.TorrentsSavePath"),value:u,type:"url",variant:"outlined",fullWidth:!0})]}):Object($.jsxs)(fo,{children:[Object($.jsx)(Ao,{style:{placeSelf:"start",gridArea:"label"}}),Object($.jsxs)(go,{selected:!0,children:[Object($.jsx)(mo,{selected:!0,children:Object($.jsx)(ee,{color:"#dee3e5"})}),Object($.jsx)("div",{children:p("SettingsDialog.RAM")})]}),Object($.jsxs)(go,{onClick:function(){return d({UseDisk:!0})},children:[Object($.jsx)(mo,{children:Object($.jsx)(Q,{color:"#323637"})}),Object($.jsx)("div",{children:p("SettingsDialog.Disk")})]})]})]})}var Fo=n(498),No=n(489);function zo(e){var t=e.settings,n=e.inputForm,a=Object(ce.a)().t,r=t||{},i=r.RetrackersMode,o=r.TorrentDisconnectTimeout,c=r.EnableDebug,s=r.EnableDLNA,l=r.EnableIPv6,d=r.FriendlyName,p=r.ForceEncrypt,b=r.DisableTCP,j=r.DisableUTP,u=r.DisableUPNP,h=r.DisableDHT,x=r.DisablePEX,O=r.DisableUpload,g=r.DownloadRateLimit,m=r.UploadRateLimit,f=r.ConnectionsLimit,C=r.PeersListenPort;return Object($.jsxs)(Oo,{children:[Object($.jsx)(Co,{children:a("SettingsDialog.AdditionalSettings")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:l,onChange:n,id:"EnableIPv6",color:"secondary"}),label:"IPv6",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!b,onChange:n,id:"DisableTCP",color:"secondary"}),label:"TCP (Transmission Control Protocol)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!j,onChange:n,id:"DisableUTP",color:"secondary"}),label:"\u03bcTP (Micro Transport Protocol)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!x,onChange:n,id:"DisablePEX",color:"secondary"}),label:"PEX (Peer Exchange)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:p,onChange:n,id:"ForceEncrypt",color:"secondary"}),label:a("SettingsDialog.ForceEncrypt"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"TorrentDisconnectTimeout",label:a("SettingsDialog.TorrentDisconnectTimeout"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:a("Seconds")})},value:o,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"ConnectionsLimit",label:a("SettingsDialog.ConnectionsLimit"),helperText:a("SettingsDialog.ConnectionsLimitHint"),value:f,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!h,onChange:n,id:"DisableDHT",color:"secondary"}),label:a("SettingsDialog.DHT"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"DownloadRateLimit",label:a("SettingsDialog.DownloadRateLimit"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:a("Kilobytes")})},value:g,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!O,onChange:n,id:"DisableUpload",color:"secondary"}),label:a("SettingsDialog.Upload"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"UploadRateLimit",label:a("SettingsDialog.UploadRateLimit"),InputProps:{endAdornment:Object($.jsx)(jr.a,{position:"end",children:a("Kilobytes")})},value:m,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)("br",{}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"PeersListenPort",label:a("SettingsDialog.PeersListenPort"),helperText:a("SettingsDialog.PeersListenPortHint"),value:C,type:"number",variant:"outlined",fullWidth:!0}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:!u,onChange:n,id:"DisableUPNP",color:"secondary"}),label:"UPnP (Universal Plug and Play)",labelPlacement:"start"}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:s,onChange:n,id:"EnableDLNA",color:"secondary"}),label:a("SettingsDialog.DLNA"),labelPlacement:"start"}),Object($.jsx)(br.a,{onChange:n,margin:"normal",id:"FriendlyName",label:a("SettingsDialog.FriendlyName"),helperText:a("SettingsDialog.FriendlyNameHint"),value:d,type:"text",variant:"outlined",fullWidth:!0}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:c,onChange:n,id:"EnableDebug",color:"secondary"}),label:a("SettingsDialog.EnableDebug"),labelPlacement:"start"}),Object($.jsx)("br",{}),Object($.jsx)(Fo.a,{htmlFor:"RetrackersMode",children:a("SettingsDialog.RetrackersMode")}),Object($.jsxs)(No.a,{onChange:n,margin:"normal",type:"number",native:!0,id:"RetrackersMode",value:i,variant:"outlined",children:[Object($.jsx)("option",{value:0,children:a("SettingsDialog.DontAddRetrackers")}),Object($.jsx)("option",{value:1,children:a("SettingsDialog.AddRetrackers")}),Object($.jsx)("option",{value:2,children:a("SettingsDialog.RemoveRetrackers")}),Object($.jsx)("option",{value:3,children:a("SettingsDialog.ReplaceRetrackers")})]}),Object($.jsx)("br",{})]})}function Eo(e){var t=e.isVlcUsed,n=e.setIsVlcUsed,a=Object(ce.a)().t;return Object($.jsxs)(Oo,{children:[Object($.jsx)(Co,{children:a("SettingsDialog.MobileAppSettings")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(To.a,{checked:t,onChange:function(){return n((function(e){return!e}))},color:"secondary"}),label:a("SettingsDialog.UseVLC"),labelPlacement:"start"})]})}function Go(e){var t,n=e.handleClose,r=Object(ce.a)().t,i=Object(Ae.a)("@media (max-width:930px)"),o=Object(Y.a)().direction,s=Object(a.useState)(),l=Object(c.a)(s,2),d=l[0],p=l[1],b=Object(a.useState)(0),j=Object(c.a)(b,2),u=j[0],h=j[1],x=Object(a.useState)(32),O=Object(c.a)(x,2),g=O[0],m=O[1],f=Object(a.useState)(40),C=Object(c.a)(f,2),y=C[0],w=C[1],S=Object(a.useState)(0),D=Object(c.a)(S,2),k=D[0],M=D[1],L=Object(a.useState)(JSON.parse(localStorage.getItem("isProMode"))||!1),B=Object(c.a)(L,2),A=B[0],R=B[1],F=Object(a.useState)(null!==(t=JSON.parse(localStorage.getItem("isVlcUsed")))&&void 0!==t&&t),N=Object(c.a)(F,2),z=N[0],E=N[1];Object(a.useEffect)((function(){T.a.post(v(),{action:"get"}).then((function(e){var t=e.data;p(Object(P.a)(Object(P.a)({},t),{},{CacheSize:t.CacheSize/1048576}))}))}),[]);var G=ua(n),I=function(e){var t=e.target,n=t.type,a=t.value,r=t.checked,i=t.id,o=JSON.parse(JSON.stringify(d));"number"===n||"select-one"===n?o[i]=Number(a):"checkbox"===n?o[i]="DisableTCP"===i||"DisableUTP"===i||"DisableUPNP"===i||"DisableDHT"===i||"DisablePEX"===i||"DisableUpload"===i?Boolean(!r):Boolean(r):"url"!==n&&"text"!==n||(o[i]=a),p(o)},H=d||{},U=H.CacheSize,V=H.ReaderReadAHead,W=H.PreloadCache;Object(a.useEffect)((function(){isNaN(U)||isNaN(V)||isNaN(W)||(m(U),w(V),M(W))}),[U,V,W]);var _=function(e){return p(Object(P.a)(Object(P.a)({},d),e))};return Object($.jsxs)(ba,{open:!0,onClose:n,fullScreen:i,fullWidth:!0,maxWidth:"md",ref:G,children:[Object($.jsxs)(bo,{children:[Object($.jsx)("div",{children:r("SettingsDialog.Settings")}),Object($.jsx)(Ht.a,{control:Object($.jsx)(Ut.a,{checked:A,onChange:function(e){var t=e.target.checked;R(t),localStorage.setItem("isProMode",t),t||h(0)},style:{color:"white"}}),label:r("SettingsDialog.ProMode")})]}),Object($.jsx)(de.a,{position:"static",color:"default",children:Object($.jsxs)(io.a,{value:u,onChange:function(e,t){return h(t)},indicatorColor:"secondary",textColor:"secondary",variant:"fullWidth",children:[Object($.jsx)(oo.a,Object(P.a)({label:r("SettingsDialog.Tabs.Main")},Do(0))),Object($.jsx)(oo.a,Object(P.a)({disabled:!A,label:Object($.jsxs)($.Fragment,{children:[Object($.jsx)("div",{children:r("SettingsDialog.Tabs.Additional")}),!A&&Object($.jsx)("div",{style:{fontSize:"9px"},children:r("SettingsDialog.Tabs.AdditionalDisabled")})]})},Do(1))),J&&Object($.jsx)(oo.a,Object(P.a)({label:r("SettingsDialog.Tabs.App")},Do(2)))]})}),Object($.jsx)(uo,{isLoading:!d,children:d?Object($.jsx)($.Fragment,{children:Object($.jsxs)(so.a,{axis:"rtl"===o?"x-reverse":"x",index:u,onChangeIndex:function(e){return h(e)},children:[Object($.jsx)(ko,{value:u,index:0,dir:o,children:Object($.jsx)(Ro,{settings:d,inputForm:I,cachePercentage:y,preloadCachePercentage:k,cacheSize:g,isProMode:A,setCacheSize:m,setCachePercentage:w,setPreloadCachePercentage:M,updateSettings:_})}),Object($.jsx)(ko,{value:u,index:1,dir:o,children:Object($.jsx)(zo,{settings:d,inputForm:I})}),J&&Object($.jsx)(ko,{value:u,index:2,dir:o,children:Object($.jsx)(Eo,{isVlcUsed:z,setIsVlcUsed:E})})]})}):Object($.jsx)(oe.a,{color:"secondary"})}),Object($.jsxs)(jo,{children:[Object($.jsx)(ne.a,{onClick:n,color:"secondary",variant:"outlined",children:r("Cancel")}),Object($.jsx)(ne.a,{onClick:function(){m(yo.CacheSize),w(yo.ReaderReadAHead),M(yo.PreloadCache),_(yo)},color:"secondary",variant:"outlined",children:r("SettingsDialog.ResetToDefault")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){n();var e=JSON.parse(JSON.stringify(d));e.CacheSize=1024*g*1024,e.ReaderReadAHead=y,e.PreloadCache=k,T.a.post(v(),{action:"set",sets:e}),localStorage.setItem("isVlcUsed",z)},color:"secondary",children:r("Save")})]})]})}function Io(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1];return Object($.jsxs)("div",{children:[Object($.jsx)(pa,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:J?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(ro.a,{}),Object($.jsx)("div",{children:r("SettingsDialog.Settings")})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(ro.a,{})}),Object($.jsx)(Mi.a,{primary:r("SettingsDialog.Settings")})]})}),s&&Object($.jsx)(Go,{handleClose:function(){return l(!1)}})]})}var Ho=n(205),Uo=n.n(Ho);function Vo(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1],d=function(){return l(!1)};return Object($.jsxs)($.Fragment,{children:[Object($.jsxs)(ca.a,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(Uo.a,{})}),Object($.jsx)(Mi.a,{primary:r("RemoveAll")})]},r("RemoveAll")),Object($.jsxs)(zn.a,{open:s,onClose:d,children:[Object($.jsx)(Gn.a,{children:r("DeleteTorrents?")}),Object($.jsxs)(In.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch(f(),{method:"post",body:JSON.stringify({action:"list"}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(e){e.forEach((function(e){fetch(f(),{method:"post",body:JSON.stringify({action:"rem",hash:e.hash}),headers:{Accept:"application/json, text/plain, */*","Content-Type":"application/json"}})}))})),d()},color:"secondary",autoFocus:!0,children:r("OK")})]})]})]})}var Wo,_o,Zo,Ko,Jo,Yo,$o,Xo,qo,Qo,ec,tc=n(132),nc=n.n(tc),ac=n(479),rc=Ve.d.div(Wo||(Wo=Object(Ue.a)(["\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n"]))),ic=Ve.d.section(_o||(_o=Object(Ue.a)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n\n ","\n"])),sa(Object(Ve.c)(Zo||(Zo=Object(Ue.a)(["\n padding-top: 30px;\n "]))))),oc=Ve.d.section(Ko||(Ko=Object(Ue.a)(["\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n"]))),cc=Ve.d.section(Jo||(Jo=Object(Ue.a)(["\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n"]))),sc=Ve.d.div(Yo||(Yo=Object(Ue.a)(["\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n"]))),lc=Ve.d.a($o||($o=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isLink;return Object(Ve.c)(Xo||(Xo=Object(Ue.a)(["\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ","\n "])),t?Object(Ve.c)(qo||(qo=Object(Ue.a)(["\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n "]))):Object(Ve.c)(Qo||(Qo=Object(Ue.a)(["\n cursor: default;\n "]))))})),dc=Ve.d.div(ec||(ec=Object(Ue.a)(["\n display: grid;\n margin-right: 10px;\n"])));function pc(e){var t=e.name,n=e.link;return Object($.jsxs)(lc,{isLink:!!n,href:n,target:"_blank",rel:"noreferrer",children:[n&&Object($.jsx)(dc,{children:Object($.jsx)(ac.a,{})}),Object($.jsx)("div",{children:t})]})}function bc(){var e=Object(ce.a)().t,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(""),s=Object(c.a)(o,2),l=s[0],d=s[1],p=Object(Ae.a)("@media (max-width:930px)");Object(a.useEffect)((function(){T.a.get(w()).then((function(e){var t=e.data;return d(t)}))}),[]);var b=function(){return i(!1)},j=ua(b);return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(pa,{button:!0,onClick:function(){return i(!0)},children:J?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(nc.a,{}),Object($.jsx)("div",{children:e("Details")})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(nc.a,{})}),Object($.jsx)(Mi.a,{primary:e("About")})]})},"Settings"),Object($.jsx)(ba,{open:r,onClose:b,"aria-labelledby":"form-dialog-title",fullScreen:p,maxWidth:"xl",ref:j,children:Object($.jsxs)(rc,{children:[Object($.jsxs)(ic,{children:[Object($.jsx)("div",{children:e("About")}),l,Object($.jsx)("img",{src:"/apple-touch-icon.png",alt:"ts-icon"})]}),Object($.jsxs)("div",{style:{overflow:"auto"},children:[Object($.jsx)(oc,{children:e("ThanksToEveryone")}),Object($.jsxs)(cc,{children:[Object($.jsx)("span",{children:e("Links")}),Object($.jsxs)("div",{children:[Object($.jsx)(pc,{name:e("ProjectSource"),link:"https://github.com/YouROK/TorrServer"}),Object($.jsx)(pc,{name:e("Releases"),link:"https://github.com/YouROK/TorrServer/releases"})]})]}),Object($.jsxs)(cc,{children:[Object($.jsx)("span",{children:e("SpecialThanks")}),Object($.jsxs)("div",{children:[Object($.jsx)(pc,{name:"Daniel Shleifman",link:"https://github.com/dancheskus"}),Object($.jsx)(pc,{name:"Matt Joiner",link:"https://github.com/anacrolix"}),Object($.jsx)(pc,{name:"nikk",link:"https://github.com/tsynik"}),Object($.jsx)(pc,{name:"kolsys",link:"https://github.com/kolsys"}),Object($.jsx)(pc,{name:"tw1cker \u0420\u0443\u0441\u043b\u0430\u043d \u041f\u0430\u0445\u043d\u0435\u0432",link:"https://github.com/Nemiroff"}),Object($.jsx)(pc,{name:"SpAwN_LMG",link:"https://github.com/spawnlmg"})]})]})]}),Object($.jsx)(sc,{children:Object($.jsx)(ne.a,{onClick:b,color:"primary",variant:"contained",children:e("Close")})})]})})]})}var jc=n(480);function uc(e){var t=e.isOffline,n=e.isLoading,r=Object(ce.a)().t,i=Object(a.useState)(!1),o=Object(c.a)(i,2),s=o[0],l=o[1],d=function(){return l(!1)},p=ua(d);return Object($.jsxs)($.Fragment,{children:[Object($.jsx)(pa,{disabled:t||n,button:!0,onClick:function(){return l(!0)},children:J?Object($.jsxs)($.Fragment,{children:[Object($.jsx)(jc.a,{}),Object($.jsx)("div",{children:r("TurnOff")})]}):Object($.jsxs)($.Fragment,{children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(jc.a,{})}),Object($.jsx)(Mi.a,{primary:r("CloseServer")})]})},r("CloseServer")),Object($.jsxs)(ba,{open:s,onClose:d,ref:p,children:[Object($.jsx)(Gn.a,{children:r("CloseServer?")}),Object($.jsxs)(In.a,{children:[Object($.jsx)(ne.a,{variant:"outlined",onClick:d,color:"secondary",children:r("Cancel")}),Object($.jsx)(ne.a,{variant:"contained",onClick:function(){fetch("".concat(m,"/shutdown")),d()},color:"secondary",autoFocus:!0,children:r("TurnOff")})]})]})]})}var hc,xc,Oc,gc,mc,fc,Cc=function(e){var t=e.isDrawerOpen,n=e.setIsDonationDialogOpen,a=e.isOffline,r=e.isLoading,i=Object(ce.a)().t;return Object($.jsxs)(ci,{isDrawerOpen:t,children:[Object($.jsxs)(fi.a,{children:[Object($.jsx)(Ri,{isOffline:a,isLoading:r}),Object($.jsx)(Vo,{isOffline:a,isLoading:r})]}),Object($.jsx)(Ti.a,{}),Object($.jsxs)(fi.a,{children:[Object($.jsx)(Io,{isOffline:a,isLoading:r}),Object($.jsx)(bc,{}),Object($.jsxs)(ca.a,{button:!0,onClick:function(){return n(!0)},children:[Object($.jsx)(Pi.a,{children:Object($.jsx)(Li.a,{})}),Object($.jsx)(Mi.a,{primary:i("Donate")})]}),Object($.jsx)(uc,{isOffline:a,isLoading:r})]})]})},vc=Object(a.memo)(Cc);function yc(e){var t=e.setIsDonationDialogOpen,n=e.isOffline,a=e.isLoading,r=Object(ce.a)().t;return Object($.jsxs)(da,{children:[Object($.jsx)(uc,{isOffline:n,isLoading:a}),Object($.jsxs)(pa,{onClick:function(){return t(!0)},children:[Object($.jsx)(Li.a,{}),Object($.jsx)("div",{children:r("Donate")})]}),Object($.jsx)(Ri,{isOffline:n,isLoading:a}),Object($.jsx)(bc,{}),Object($.jsx)(Io,{isOffline:n,isLoading:a})]})}function wc(){return Object($.jsxs)("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:23,x:"0px",y:"0px",viewBox:"0 0 1000 1000",enableBackground:"new 0 0 1000 1000",xmlSpace:"preserve",fill:"#005FF2",children:[Object($.jsx)("metadata",{children:" Svg Vector Icons : http://www.onlinewebfonts.com/icon "}),Object($.jsx)("g",{children:Object($.jsx)("path",{d:"M780,290H640v35h140c19.3,0,35,15.7,35,35v560c0,19.3-15.7,35-35,35H220c-19.2,0-35-15.7-35-35V360c0-19.2,15.7-35,35-35h140v-35H220c-38.7,0-70,31.3-70,70v560c0,38.7,31.3,70,70,70h560c38.7,0,70-31.3,70-70V360C850,321.3,818.7,290,780,290z M372.5,180l110-110.2v552.7c0,9.6,7.9,17.5,17.5,17.5c9.6,0,17.5-7.9,17.5-17.5V69.8l110,110c3.5,3.5,7.9,5,12.5,5s9-1.7,12.5-5c6.8-6.8,6.8-17.9,0-24.7l-140-140c-6.8-6.8-17.9-6.8-24.7,0l-140,140c-6.8,6.8-6.8,17.9,0,24.7C354.5,186.8,365.5,186.8,372.5,180z"})})]})}var Sc=Ve.d.div(hc||(hc=Object(Ue.a)(["\n ","\n"])),(function(e){var t=e.isOpen;return Object(Ve.c)(xc||(xc=Object(Ue.a)(["\n position: absolute;\n bottom: 10px;\n left: 50%;\n background: #eeeef0;\n width: calc(100% - 20px);\n z-index: 9999;\n border-radius: 10px;\n transition: all 0.3s;\n color: #000;\n\n ","\n\n > :not(:last-child) {\n border-bottom: 1px solid #dadadc;\n }\n\n > * {\n padding: 20px;\n }\n "])),t?Object(Ve.c)(Oc||(Oc=Object(Ue.a)(["\n opacity: 1;\n transform: translate(-50%, 0);\n "]))):Object(Ve.c)(gc||(gc=Object(Ue.a)(["\n transform: translate(-50%, 150%);\n opacity: 0;\n pointer-events: none;\n "]))))})),Dc=Ve.d.div(mc||(mc=Object(Ue.a)(["\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: min-content 1fr;\n gap: 20px;\n align-items: center;\n font-weight: 700;\n\n img {\n border-radius: 5px;\n }\n"]))),kc=Ve.d.div(fc||(fc=Object(Ue.a)(["\n > :not(:last-child) {\n margin-bottom: 25px;\n }\n\n span {\n background: #fefcfd;\n padding: 5px;\n border-radius: 5px;\n }\n"])));function Tc(){var e=JSON.parse(localStorage.getItem("pwaNotificationIsClosed")),t=Object(a.useState)(!e),n=Object(c.a)(t,2),r=n[0],i=n[1],o=Object(a.useState)(!e),s=Object(c.a)(o,2),l=s[0],d=s[1],p=Object(ce.a)().t;return r?Object($.jsxs)(Sc,{isOpen:l,children:[Object($.jsxs)(Dc,{children:[Object($.jsx)("img",{src:"/apple-touch-icon.png",width:50,alt:"ts-icon"}),p("PWAGuide.Header"),Object($.jsx)(be.a,{size:"small","aria-label":"close",color:"inherit",onClick:function(){d(!1),setTimeout((function(){i(!1),localStorage.setItem("pwaNotificationIsClosed",!0)}),300)},children:Object($.jsx)(ue.a,{fontSize:"small"})})]}),Object($.jsxs)(kc,{children:[Object($.jsx)("p",{children:p("PWAGuide.Description")}),Object($.jsx)("p",{children:p("PWAGuide.VLC")}),Object($.jsxs)("p",{children:["1. ",p("PWAGuide.FirstStep")," ",Object($.jsx)(wc,{})]}),Object($.jsxs)("p",{children:["2. ",p("PWAGuide.SecondStep.Select")," ",Object($.jsx)("span",{children:p("PWAGuide.SecondStep.AddToHomeScreen")})]})]})]}):null}var Pc=JSON.parse(localStorage.getItem("snackbarIsClosed")),Mc=Object(a.createContext)();function Lc(){var e,t=Object(a.useState)(!1),n=Object(c.a)(t,2),r=n[0],i=n[1],h=Object(a.useState)(!1),x=Object(c.a)(h,2),O=x[0],g=x[1],m=Object(a.useState)(""),f=Object(c.a)(m,2),C=f[0],v=f[1],y=function(){var e=localStorage.getItem("themeMode"),t=Object(Ae.a)("(prefers-color-scheme: dark)"),n=Object(a.useState)("dark"===e||t),r=Object(c.a)(n,2),i=r[0],o=r[1],s=Object(a.useState)(e||ze),l=Object(c.a)(s,2),d=l[0],p=l[1];Object(a.useEffect)((function(){d===ze&&o(!1),d===Ee&&o(!0),d===Ge&&o(t)}),[t,d]);var b=i?Ee:ze,j=Object(a.useMemo)((function(){return Object(Be.a)({typography:Ie,palette:{type:b,primary:{main:Ne[b].primary},secondary:{main:Ne[b].secondary}},overrides:{MuiInputBase:{input:{color:Ne[b].labels}},MuiFormControlLabel:{labelPlacementStart:{display:"flex",justifyContent:"space-between",marginStart:0,marginTop:6,marginBottom:2}},MuiInputLabel:{root:{color:Ne[b].labels,marginBottom:8,"&$focused":{color:Ne[b].labels}}}}})}),[b]);return[i,d,function(e){p(e),localStorage.setItem("themeMode",e)},j]}(),S=Object(c.a)(y,4),k=S[0],M=S[1],L=S[2],B=S[3],A=Vn(),R=Object(c.a)(A,2),F=R[0],N=R[1],z=Object(a.useState)(!1),E=Object(c.a)(z,2),G=E[0],I=E[1],H=Object(o.useQuery)("torrents",K,{retry:1,refetchInterval:1e3,onError:function(){return I(!0)},onSuccess:function(){return I(!1)}}),U=H.data,V=H.isLoading;return Object(a.useEffect)((function(){T.a.get(w()).then((function(e){var t=e.data;return v(t)}))}),[]),Object($.jsxs)($.Fragment,{children:[Object($.jsx)(ki,{}),Object($.jsx)(Mc.Provider,{value:{isDarkMode:k},children:Object($.jsx)(Di.a,{theme:B,children:Object($.jsxs)(Ve.a,{theme:(e=k?Ee:ze,Object(P.a)(Object(P.a)({},Fe[e]),Ne[e])),children:[Object($.jsx)(s.a,{}),Object($.jsx)(D.a,{children:Object($.jsxs)(ri,{children:[Object($.jsxs)(oi,{children:[Object($.jsx)(di,{edge:"start",color:"inherit",onClick:function(){return i(!r)},children:r?Object($.jsx)(d.a,{}):Object($.jsx)(p.a,{})}),Object($.jsxs)(l.a,{variant:"h6",noWrap:!0,children:["TorrServer ",C]}),Object($.jsxs)("div",{style:{justifySelf:"end",display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:"10px"},children:[Object($.jsx)(li,{onClick:function(){M===ze&&L(Ee),M===Ee&&L(Ge),M===Ge&&L(ze)},children:M===ze?Object($.jsx)(b.a,{}):M===Ee?Object($.jsx)(j.a,{}):Object($.jsx)(u.a,{})}),Object($.jsx)(li,{onClick:function(){return N("en"===F?"ru":"ru"===F?"ua":"en")},children:F.toUpperCase()})]})]}),Object($.jsx)(vc,{isOffline:G,isLoading:V,isDrawerOpen:r,setIsDonationDialogOpen:g}),Object($.jsx)(ui,{isOffline:G,torrents:U,isLoading:V}),Object($.jsx)(yc,{isOffline:G,isLoading:V,setIsDonationDialogOpen:g}),Object($.jsx)(Di.a,{theme:He,children:O&&Object($.jsx)(Ci,{onClose:function(){return g(!1)}})}),Pc?"undefined"!==typeof window&&"undefined"!==typeof navigator&&/iPhone|iPad|iPod/i.test(navigator.userAgent||navigator.vendor)&&!J&&Object($.jsx)(Tc,{}):Object($.jsx)(yi,{})]})})]})})})]})}var Bc=new o.QueryClient;i.a.render(Object($.jsx)(a.StrictMode,{children:Object($.jsx)(o.QueryClientProvider,{client:Bc,children:Object($.jsx)(Lc,{})})}),document.getElementById("root"))}},[[395,1,2]]]); -//# sourceMappingURL=main.604c45f6.chunk.js.map \ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/main.604c45f6.chunk.js.map b/server/web/pages/template/pages/static/js/main.604c45f6.chunk.js.map deleted file mode 100644 index 9021e9f..0000000 --- a/server/web/pages/template/pages/static/js/main.604c45f6.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["utils/Hosts.js","i18n.js","utils/Utils.js","icons/index.jsx","components/DialogTorrentDetailsContent/customHooks.jsx","components/DialogTorrentDetailsContent/DialogHeader.jsx","style/colors.js","style/materialUISetup.js","components/DialogTorrentDetailsContent/TorrentCache/snakeSettings.js","components/DialogTorrentDetailsContent/TorrentCache/style.js","components/DialogTorrentDetailsContent/TorrentCache/index.jsx","components/DialogTorrentDetailsContent/TorrentCache/getShortCacheMap.js","components/DialogTorrentDetailsContent/Table/style.js","components/DialogTorrentDetailsContent/Table/index.jsx","components/DialogTorrentDetailsContent/style.js","components/DialogTorrentDetailsContent/DetailedView/style.js","components/DialogTorrentDetailsContent/StatisticsField.jsx","components/DialogTorrentDetailsContent/widgets/useGetWidgetColors.jsx","components/DialogTorrentDetailsContent/widgets/index.jsx","torrentStates.js","components/DialogTorrentDetailsContent/DetailedView/index.jsx","components/DialogTorrentDetailsContent/TorrentFunctions/style.js","components/DialogTorrentDetailsContent/TorrentFunctions/index.jsx","components/DialogTorrentDetailsContent/helpers.js","components/DialogTorrentDetailsContent/index.jsx","utils/useChangeLanguage.js","utils/usePreviousState.js","style/DialogStyles.js","style/standaloneMedia.js","components/App/PWAFooter/style.js","style/CustomMaterialUiStyles.js","utils/useOnStandaloneAppOutsideClick.jsx","components/Add/helpers.js","components/Add/style.js","components/Add/RightSideComponent.jsx","components/Add/LeftSideComponent.jsx","components/Add/AddDialog.jsx","components/TorrentCard/style.js","components/TorrentCard/index.jsx","components/App/style.js","components/TorrentList/style.js","components/TorrentList/NoServerConnection.jsx","components/TorrentList/AddFirstTorrent.jsx","components/TorrentList/index.jsx","components/Donate/DonateDialog.jsx","components/Donate/index.jsx","style/GlobalStyle.js","components/Add/index.jsx","components/Settings/style.js","components/Settings/defaultSettings.js","components/Settings/tabComponents.jsx","components/Settings/SliderInput.jsx","components/Settings/PrimarySettingsComponent.jsx","components/Settings/SecondarySettingsComponent.jsx","components/Settings/MobileAppSettings.jsx","components/Settings/SettingsDialog.jsx","components/Settings/index.jsx","components/RemoveAll.jsx","components/About/style.js","components/About/LinkComponent.jsx","components/About/index.jsx","components/CloseServer.jsx","components/App/Sidebar.jsx","components/App/PWAFooter/index.jsx","components/App/PWAInstallationGuide/IOSShareIcon.jsx","components/App/PWAInstallationGuide/style.jsx","components/App/PWAInstallationGuide/index.jsx","components/App/index.jsx","style/getStyledComponentsTheme.js","utils/checkIsIOS.jsx","index.jsx"],"names":["window","location","protocol","hostname","port","torrserverHost","torrentsHost","viewedHost","settingsHost","streamHost","echoHost","playlistTorrHost","i18n","use","LanguageDetector","initReactI18next","init","fallbackLng","interpolation","escapeValue","resources","en","translation","translationEN","ru","translationRU","ua","translationUA","humanizeSize","size","i","Math","floor","log","pow","toFixed","t","humanizeSpeed","speed","getPeerString","torrent","connected_seeders","active_peers","total_peers","removeRedundantCharacters","string","newString","forEach","el","leftBracketRegexFormula","leftBracketRegex","RegExp","leftBracketAmount","matchAll","length","rightBracketRegexFormula","rightBracketRegex","removeFormula","removeRegex","replace","hasThreeDotsAtTheEnd","match","trimmedString","trim","getTorrents","axios","post","action","data","Error","isStandaloneApp","matchMedia","matches","NoImageIcon","color","primary","useTheme","palette","main","height","width","fill","xmlns","xmlnsXlink","version","x","y","viewBox","enableBackground","xmlSpace","d","points","AddItemIcon","id","opacity","USBIcon","RAMIcon","TorrentIcon","secondaryColor","useUpdateCache","hash","useState","cache","setCache","componentIsMounted","useRef","timerID","useEffect","current","setInterval","updateCache","newCache","then","catch","clearInterval","useStyles","makeStyles","appBar","position","paddingTop","title","marginLeft","flex","DialogHeader","onClose","onBack","classes","AppBar","className","Toolbar","IconButton","edge","onClick","ArrowBack","Typography","variant","autoFocus","style","marginRight","themeColors","light","app","headerToggleColor","appSecondaryColor","sidebarBGColor","sidebarFillColor","torrentCard","accentCardColor","buttonBGColor","rgba","cardPrimaryColor","cardSecondaryColor","dialogTorrentDetailsContent","posterBGColor","gradientStartColor","gradientEndColor","chacheSectionBGColor","widgetFontColor","titleFontColor","subNameFontColor","torrentFilesSectionBGColor","detailedView","cacheSectionBGColor","addDialog","fontColor","notificationErrorBGColor","notificationSuccessBGColor","languageSwitchBGColor","languageSwitchFontColor","torrentFunctions","table","defaultPrimaryColor","defaultSecondaryColor","defaultTertiaryColor","settingsDialog","contentBG","footerBG","dark","mainColors","secondary","labels","THEME_MODES","typography","fontFamily","lightTheme","createTheme","type","snakeSettings","default","borderWidth","pieceSize","gapBetweenPieces","borderColor","completeColor","backgroundColor","progressColor","readerColor","rangeColor","mini","cacheMaxHeight","ScrollNotification","styled","div","SnakeWrapper","isMini","themeType","css","TorrentCache","shotCacheMap","isSnakeDebugMode","useTranslation","dimensions","setDimensions","canvasRef","ctxRef","cacheMap","setCacheMap","PiecesCount","Pieces","Readers","map","Size","Length","Priority","newPiece","percentage","priority","r","Reader","isReader","Start","End","isReaderRange","push","useCreateCacheMap","settingsTarget","theme","useContext","DarkModeContext","isDarkMode","canvasWidth","pieceSizeWithGap","piecesInOneRow","preloadPiecesAmount","cacheMapWithoutEmptyBlocks","filter","getFullAmountOfBlocks","amountOfBlocks","amountOfBlocksToRenderInShortView","scalableAmountOfBlocksToRenderInShortView","extraBlocksAmount","max","extraEmptyBlocksForFillingLine","Array","getShortCacheMap","round","Capacity","PiecesLength","source","startingXPoint","ceil","canvas","getContext","ctx","clearRect","inProgress","isCompleted","currentRow","currentColumn","fixBlurStroke","requiredFix","lineWidth","fillStyle","snakeType","gradient","createLinearGradient","addColorStop","createGradient","strokeStyle","translate","fillRect","strokeRect","setTransform","info","font","xpad","ypad","fillText","bounds","onResize","measureRef","display","flexDirection","ref","memo","prev","next","isEqual","viewedPrimaryColor","viewedIndicator","TableStyle","ShortTableWrapper","ShortTable","isViewed","require","ptt","addHandler","Table","playableFileList","viewedFileList","selectedSeason","seasonAmount","preloadBuffer","fileId","fetch","getFileLink","path","encodeURIComponent","split","pop","fileHasEpisodeText","find","parse","episode","fileHasSeasonText","season","fileHasResolutionText","resolution","shouldDisplayFullFileName","isVlcUsed","JSON","localStorage","getItem","toString","includes","link","Button","textDecoration","href","target","rel","text","DialogContentGrid","Poster","poster","MainSection","section","CacheSection","TorrentFilesSection","SectionSubName","mb","SectionTitle","SectionHeader","WidgetWrapper","WidgetFieldWrapper","WidgetFieldTitle","WidgetFieldIcon","bgColor","WidgetFieldValue","LoadingProgress","attrs","value","fullAmount","min","background","label","Divider","DetailedViewWidgetSection","DetailedViewCacheSection","StatisticsField","Icon","icon","iconBg","valueBg","LIGHT","DARK","colors","downloadSpeed","iconBGColor","valueBGColor","uploadSpeed","peers","piecesCount","piecesLength","status","useGetWidgetColors","widgetName","DownlodSpeedWidget","ArrowDownwardIcon","UploadSpeedWidget","ArrowUpwardIcon","PeersWidget","SwapVerticalCircleIcon","PiecesCountWidget","WidgetsIcon","PiecesLengthWidget","PhotoSizeSelectSmallIcon","StatusWidget","stat","values","BuildIcon","SizeWidget","ViewAgendaIcon","DetailedView","torrentSize","setIsSnakeDebugMode","justifyContent","alignItems","FormControlLabel","control","Checkbox","checked","disableRipple","onChange","setItem","labelPlacement","MainSectionButtonGroup","SmallLabel","TorrentFunctions","name","setViewedFileList","latestViewedFileId","latestViewedFile","isOnlyOnePlayableFile","latestViewedFileData","fullPlaylistLink","partialPlaylistLink","file_index","playableExtList","Loader","minHeight","placeItems","CircularProgress","DialogTorrentDetailsContent","closeDialog","isLoading","setIsLoading","isDetailedCacheView","setIsDetailedCacheView","setPlayableFileList","setSeasonAmount","setSelectedSeason","download_speed","upload_speed","torrent_size","torrentFileList","file_stats","settings","setSettings","useGetSettings","Filled","seasons","currentSeason","sort","a","b","fileName","filename","ext","toLowerCase","getExt","cacheLoaded","Object","entries","torrentLoaded","lst","itm","preloadSize","PreloadCache","bufferSize","getParsedTitle","newNameStringArr","torrentParsedName","year","newNameString","join","overflow","alt","src","marginTop","ButtonGroup","marginBottom","language","substr","lang","changeLanguage","usePreviousState","Header","ButtonWrapper","standaloneMedia","styles","pwaFooterHeight","StyledMenuButtonWrapper","ListItem","button","StyledDialog","Dialog","hideBackdrop","transitionDuration","StyledHeader","useOnStandaloneAppOutsideClick","onClickOutside","handleClickOutside","event","contains","document","addEventListener","removeEventListener","getMoviePosters","movieName","url","get","params","api_key","process","include_image_language","query","results","poster_path","checkImageURL","magnetRegex","hashRegex","torrentRegex","linkRegex","Content","isEditMode","RightSide","RightSideContainer","isHidden","notificationMessage","isError","LeftSide","LeftSideBottomSectionBasicStyles","LeftSideBottomSectionNoFile","isDragActive","LeftSideBottomSectionFileSelected","TorrentIconWrapper","CancelIconWrapper","IconWrapper","LeftSideTopSection","active","PosterWrapper","PosterSuggestions","PosterSuggestionsItem","ClearPosterButton","showbutton","PosterLanguageSwitch","StyledPWAAddButton","RightSideComponent","setTitle","setPosterUrl","setIsPosterUrlCorrect","setIsUserInteractedWithPoster","setPosterList","isTorrentSourceCorrect","isHashAlreadyExists","parsedTitle","posterUrl","isPosterUrlCorrect","posterList","currentLang","posterSearchLanguage","setPosterSearchLanguage","posterSearch","removePoster","torrentSource","originalTorrentTitle","updateTitleFromSource","isCustomTitleEnabled","setIsCustomTitleEnabled","handleTitleChange","TextField","margin","fullWidth","disabled","InputProps","readOnly","onFocus","onBlur","helperText","endAdornment","InputAdornment","padding","HighlightOff","slice","userChangesPosterUrl","newLanguage","shouldRefreshMainPoster","LeftSideComponent","setSelectedFile","setTorrentSource","selectedFile","isTorrentSourceActive","setIsTorrentSourceActive","useDropzone","onDrop","files","file","accept","getRootProps","getInputProps","inputProps","autoComplete","Cancel","AddDialog","handleClose","originalHash","originalTitle","originalName","originalPoster","setOriginalTorrentTitle","setParsedTitle","setIsTorrentSourceCorrect","setIsHashAlreadyExists","isUserInteractedWithPoster","useChangeLanguage","isSaving","setIsSaving","skipDebounce","setSkipDebounce","currentSourceHash","setCurrentSourceHash","torrents","useQuery","retry","refetchInterval","parseTorrent","remote","_","infoHash","allHashes","fullScreen","useMediaQuery","useCallback","parsingSource","callback","err","torrentName","nameOfFileInsideTorrent","newTitle","correctImage","useMemo","urlList","firstPoster","delayedPosterSearch","debounce","prevTorrentSourceState","prevTitleState","cancel","open","maxWidth","minWidth","finally","FormData","append","save_to_db","TorrentCard","TorrentCardPoster","isPoster","TorrentCardButtons","TorrentCardDescription","StyledButton","Transition","forwardRef","props","Slide","direction","Torrent","isDetailedInfoOpened","setIsDetailedInfoOpened","isDeleteTorrentOpened","setIsDeleteTorrentOpened","breakpoints","down","closeDetailedInfo","closeDeleteTorrentAlert","key","titleStrings","parsedYear","parsedResolution","isEditDialogOpen","setIsEditDialogOpen","detailedInfoDialogRef","UnfoldMore","PlayArrow","Close","Delete","TransitionComponent","DialogTitle","DialogActions","AppWrapper","CenteredGrid","AppHeader","AppSidebarStyle","isDrawerOpen","TorrentListWrapper","HeaderToggle","StyledIconButton","isButton","NoServerConnection","trigger","stroke","scale","AddFirstTorrent","isDialogOpen","setIsDialogOpen","TorrentList","isOffline","DonateDialog","DialogContent","List","dangerouslySetInnerHTML","__html","StyledSnackbar","Snackbar","DonateSnackbar","setOpen","snackbarOpen","setSnackbarOpen","disableSnackbar","anchorOrigin","vertical","horizontal","message","fontSize","createGlobalStyle","AddDialogButton","ListItemIcon","ListItemText","cacheBeforeReaderColor","cacheAfterReaderColor","SettingsHeader","FooterSection","PreloadCacheValue","MainSettingsContent","SecondarySettingsContent","StorageButton","small","selected","StorageIconWrapper","CacheStorageSelector","SettingSectionLabel","PreloadCachePercentage","preloadCachePercentage","CacheSize","ReaderReadAHead","UseDisk","UploadRateLimit","TorrentsSavePath","ConnectionsLimit","DisableDHT","DisablePEX","DisableTCP","DisableUPNP","DisableUTP","DisableUpload","DownloadRateLimit","EnableDebug","EnableIPv6","FriendlyName","ForceEncrypt","PeersListenPort","RemoveCacheOnDrop","RetrackersMode","TorrentDisconnectTimeout","a11yProps","index","TabPanel","children","other","role","hidden","SliderInput","isProMode","setValue","sliderMin","sliderMax","inputMin","inputMax","step","onBlurCallback","Grid","container","spacing","item","xs","Slider","newValue","OutlinedInput","Number","CacheStorageLocationLabel","PrimarySettingsComponent","inputForm","cachePercentage","cacheSize","setCacheSize","setCachePercentage","setPreloadCachePercentage","updateSettings","preloadCacheSize","gridAutoFlow","Switch","placeSelf","gridArea","SecondarySettingsComponent","EnableDLNA","InputLabel","htmlFor","Select","native","MobileAppSettings","setIsVlcUsed","SettingsDialog","selectedTab","setSelectedTab","setIsProMode","sets","stringify","Boolean","isNaN","newProps","Tabs","indicatorColor","textColor","Tab","axis","onChangeIndex","dir","defaultSettings","SettingsDialogButton","RemoveAll","method","body","headers","Accept","res","json","torr","DialogWrapper","HeaderSection","ThanksSection","Section","LinkWrapper","isLink","LinkIcon","LinkComponent","GitHub","AboutDialog","torrServerVersion","setTorrServerVersion","CloseServer","PowerSettingsNew","Sidebar","setIsDonationDialogOpen","PWAFooter","IOSShareIcon","StyledWrapper","isOpen","StyledContent","PWAInstallationGuide","pwaNotificationIsClosed","setIsOpen","shouldBeOpened","setShouldBeOpened","setTimeout","snackbarIsClosed","createContext","App","setIsDrawerOpen","isDonationDialogOpen","savedThemeMode","isSystemModeDark","setIsDarkMode","currentThemeMode","setCurrentThemeMode","muiTheme","overrides","MuiInputBase","input","MuiFormControlLabel","labelPlacementStart","marginStart","MuiInputLabel","root","mode","useMaterialUITheme","updateThemeMode","changeLang","setIsOffline","onError","onSuccess","GlobalStyle","Provider","CssBaseline","Menu","noWrap","justifySelf","gridTemplateColumns","gap","Brightness5","Brightness4","BrightnessAuto","toUpperCase","navigator","test","userAgent","vendor","queryClient","QueryClient","ReactDOM","render","client","getElementById"],"mappings":"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","file":"static/js/main.604c45f6.chunk.js","sourcesContent":["const { protocol, hostname, port } = window.location\n\nlet torrserverHost = process.env.REACT_APP_SERVER_HOST || `${protocol}//${hostname}${port ? `:${port}` : ''}`\n\nexport const torrentsHost = () => `${torrserverHost}/torrents`\nexport const viewedHost = () => `${torrserverHost}/viewed`\nexport const cacheHost = () => `${torrserverHost}/cache`\nexport const torrentUploadHost = () => `${torrserverHost}/torrent/upload`\nexport const settingsHost = () => `${torrserverHost}/settings`\nexport const streamHost = () => `${torrserverHost}/stream`\nexport const shutdownHost = () => `${torrserverHost}/shutdown`\nexport const echoHost = () => `${torrserverHost}/echo`\nexport const playlistTorrHost = () => `${torrserverHost}/stream`\n\nexport const getTorrServerHost = () => torrserverHost\nexport const setTorrServerHost = host => {\n torrserverHost = host\n}\n","import i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport LanguageDetector from 'i18next-browser-languagedetector'\nimport translationEN from 'locales/en/translation.json'\nimport translationRU from 'locales/ru/translation.json'\nimport translationUA from 'locales/ua/translation.json'\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en', // default language will be used if none of declared lanuages detected (en, ru)\n interpolation: { escapeValue: false }, // react already safes from xss\n resources: {\n en: { translation: translationEN },\n ru: { translation: translationRU },\n ua: { translation: translationUA },\n },\n })\n\nexport default i18n\n","import axios from 'axios'\n\nimport i18n from '../i18n'\nimport { torrentsHost } from './Hosts'\n\nexport function humanizeSize(size) {\n if (!size) return ''\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / Math.pow(1024, i)).toFixed(2) * 1} ${\n [i18n.t('B'), i18n.t('KB'), i18n.t('MB'), i18n.t('GB'), i18n.t('TB')][i]\n }`\n}\n\nexport function humanizeSpeed(speed) {\n if (!speed) return ''\n const i = Math.floor(Math.log(speed * 8) / Math.log(1000))\n return `${((speed * 8) / Math.pow(1000, i)).toFixed(0) * 1} ${\n [i18n.t('bps'), i18n.t('kbps'), i18n.t('Mbps'), i18n.t('Gbps'), i18n.t('Tbps')][i]\n }`\n}\n\nexport function getPeerString(torrent) {\n if (!torrent || !torrent.connected_seeders) return null\n return `${torrent.connected_seeders} · ${torrent.active_peers} / ${torrent.total_peers}`\n}\n\nexport const shortenText = (text, sympolAmount) =>\n text ? text.slice(0, sympolAmount) + (text.length > sympolAmount ? '…' : '') : ''\n\nexport const removeRedundantCharacters = string => {\n let newString = string\n const brackets = [\n ['(', ')'],\n ['[', ']'],\n ['{', '}'],\n ]\n\n brackets.forEach(el => {\n const leftBracketRegexFormula = `\\\\${el[0]}`\n const leftBracketRegex = new RegExp(leftBracketRegexFormula, 'g')\n const leftBracketAmount = [...newString.matchAll(leftBracketRegex)].length\n const rightBracketRegexFormula = `\\\\${el[1]}`\n const rightBracketRegex = new RegExp(rightBracketRegexFormula, 'g')\n const rightBracketAmount = [...newString.matchAll(rightBracketRegex)].length\n\n if (leftBracketAmount !== rightBracketAmount) {\n const removeFormula = `(\\\\${el[0]})(?!.*\\\\1).*`\n const removeRegex = new RegExp(removeFormula, 'g')\n newString = newString.replace(removeRegex, '')\n }\n })\n\n const hasThreeDotsAtTheEnd = !!newString.match(/\\.{3}$/g)\n\n const trimmedString = newString.replace(/[\\\\.| ]+$/g, '').trim()\n\n return hasThreeDotsAtTheEnd ? `${trimmedString}..` : trimmedString\n}\n\nexport const getTorrents = async () => {\n try {\n const { data } = await axios.post(torrentsHost(), { action: 'list' })\n return data\n } catch (error) {\n throw new Error(null)\n }\n}\n\nexport const isStandaloneApp = window.matchMedia('screen and (display-mode: standalone)').matches\n","import { useTheme } from '@material-ui/core'\n\nexport const NoImageIcon = ({ color }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport const AddItemIcon = () => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const USBIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n )\n}\n\nexport const RAMIcon = ({ color, width }) => {\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport const TorrentIcon = () => {\n const primary = useTheme().palette.primary.main\n const secondaryColor = primary === '#00a572' ? '#74c39c' : '#4a5255'\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { cacheHost, settingsHost } from 'utils/Hosts'\nimport axios from 'axios'\n\nexport const useUpdateCache = hash => {\n const [cache, setCache] = useState({})\n const componentIsMounted = useRef(true)\n const timerID = useRef(null)\n\n useEffect(\n () => () => {\n // this function is required to notify \"updateCache\" when NOT to make state update\n componentIsMounted.current = false\n },\n [],\n )\n\n useEffect(() => {\n if (hash) {\n timerID.current = setInterval(() => {\n const updateCache = newCache => componentIsMounted.current && setCache(newCache)\n\n axios\n .post(cacheHost(), { action: 'get', hash })\n .then(({ data }) => updateCache(data))\n // empty cache if error\n .catch(() => updateCache({}))\n }, 100)\n } else clearInterval(timerID.current)\n\n return () => clearInterval(timerID.current)\n }, [hash])\n\n return cache\n}\n\nexport const useCreateCacheMap = cache => {\n const [cacheMap, setCacheMap] = useState([])\n\n useEffect(() => {\n const { PiecesCount, Pieces, Readers } = cache\n\n const map = []\n\n for (let i = 0; i < PiecesCount; i++) {\n const { Size, Length, Priority } = Pieces[i] || {}\n\n const newPiece = { id: i, percentage: (Size / Length) * 100 || 0, priority: Priority || 0 }\n\n Readers.forEach(r => {\n if (i === r.Reader) newPiece.isReader = true\n if (i >= r.Start && i <= r.End) newPiece.isReaderRange = true\n })\n\n map.push(newPiece)\n }\n setCacheMap(map)\n }, [cache])\n\n return cacheMap\n}\n\nexport const useGetSettings = cache => {\n const [settings, setSettings] = useState()\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => setSettings(data))\n }, [cache])\n\n return settings\n}\n","import { AppBar, IconButton, makeStyles, Toolbar, Typography } from '@material-ui/core'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { ArrowBack } from '@material-ui/icons'\nimport { isStandaloneApp } from 'utils/Utils'\n\nconst useStyles = makeStyles({\n appBar: { position: 'relative', ...(isStandaloneApp && { paddingTop: '30px' }) },\n title: { marginLeft: '5px', flex: 1 },\n})\n\nexport default function DialogHeader({ title, onClose, onBack }) {\n const classes = useStyles()\n\n return (\n \n \n {onBack && (\n \n \n \n )}\n\n \n {title}\n \n\n \n \n \n \n \n )\n}\n","import { rgba } from 'polished'\n\nexport const themeColors = {\n light: {\n app: {\n headerToggleColor: '#4db380',\n appSecondaryColor: '#cbe8d9',\n sidebarBGColor: '#575757',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#337a57',\n buttonBGColor: rgba('#337a57', 0.5),\n cardPrimaryColor: '#00a572',\n cardSecondaryColor: '#74c39c',\n },\n dialogTorrentDetailsContent: {\n posterBGColor: '#74c39c',\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n chacheSectionBGColor: '#88cdaa',\n widgetFontColor: '#fff',\n titleFontColor: '#000',\n subNameFontColor: '#7c7b7c',\n torrentFilesSectionBGColor: '#f1eff3',\n },\n detailedView: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n cacheSectionBGColor: '#fff',\n },\n addDialog: {\n gradientStartColor: '#e4f6ed',\n gradientEndColor: '#b5dec9',\n fontColor: '#000',\n notificationErrorBGColor: '#cda184',\n notificationSuccessBGColor: '#88cdaa',\n languageSwitchBGColor: '#74c39c',\n languageSwitchFontColor: '#e4f6ed',\n posterBGColor: '#74c39c',\n },\n torrentFunctions: {\n fontColor: '#000',\n },\n table: {\n defaultPrimaryColor: '#009879',\n defaultSecondaryColor: '#00a383',\n defaultTertiaryColor: '#03aa89',\n },\n settingsDialog: {\n contentBG: '#f1eff3',\n footerBG: '#fff',\n },\n },\n dark: {\n app: {\n headerToggleColor: '#545a5e',\n appSecondaryColor: '#545a5e',\n sidebarBGColor: '#323637',\n sidebarFillColor: '#dee3e5',\n },\n torrentCard: {\n accentCardColor: '#323637',\n buttonBGColor: rgba('#323637', 0.5),\n cardPrimaryColor: '#545a5e',\n cardSecondaryColor: rgba('#dee3e5', 0.4),\n },\n dialogTorrentDetailsContent: {\n posterBGColor: rgba('#dee3e5', 0.4),\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n chacheSectionBGColor: '#3c4244',\n widgetFontColor: rgba('#fff', 0.8),\n titleFontColor: '#f1eff3',\n subNameFontColor: '#dee3e5',\n torrentFilesSectionBGColor: rgba('#545a5e', 0.9),\n },\n detailedView: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n cacheSectionBGColor: '#949ca0',\n },\n addDialog: {\n gradientStartColor: '#656f76',\n gradientEndColor: '#545a5e',\n fontColor: '#fff',\n notificationErrorBGColor: '#c82e3f',\n notificationSuccessBGColor: '#323637',\n languageSwitchBGColor: '#545a5e',\n languageSwitchFontColor: '#dee3e5',\n posterBGColor: '#dee3e5',\n },\n torrentFunctions: {\n fontColor: '#f1eff3',\n },\n table: {\n defaultPrimaryColor: '#323637',\n defaultSecondaryColor: rgba('#545a5e', 0.9),\n defaultTertiaryColor: '#545a5e',\n },\n settingsDialog: {\n contentBG: '#5a6166',\n footerBG: '#323637',\n },\n },\n}\n\nexport const mainColors = {\n light: {\n primary: '#00a572',\n secondary: '#00a572',\n labels: rgba('#000', 0.9),\n },\n dark: {\n primary: '#323637',\n secondary: '#dee3e5',\n labels: rgba('#fff', 0.9),\n },\n}\n","import { createTheme, useMediaQuery } from '@material-ui/core'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport { mainColors } from './colors'\n\nexport const THEME_MODES = { LIGHT: 'light', DARK: 'dark', AUTO: 'auto' }\n\nconst typography = { fontFamily: 'Open Sans, sans-serif' }\n\nexport const darkTheme = createTheme({\n typography,\n palette: {\n type: THEME_MODES.DARK,\n primary: { main: mainColors.dark.primary },\n secondary: { main: mainColors.dark.secondary },\n },\n})\nexport const lightTheme = createTheme({\n typography,\n palette: {\n type: THEME_MODES.LIGHT,\n primary: { main: mainColors.light.primary },\n secondary: { main: mainColors.light.secondary },\n },\n})\n\nexport const useMaterialUITheme = () => {\n const savedThemeMode = localStorage.getItem('themeMode')\n const isSystemModeDark = useMediaQuery('(prefers-color-scheme: dark)')\n const [isDarkMode, setIsDarkMode] = useState(savedThemeMode === 'dark' || isSystemModeDark)\n const [currentThemeMode, setCurrentThemeMode] = useState(savedThemeMode || THEME_MODES.LIGHT)\n\n const updateThemeMode = mode => {\n setCurrentThemeMode(mode)\n localStorage.setItem('themeMode', mode)\n }\n\n useEffect(() => {\n currentThemeMode === THEME_MODES.LIGHT && setIsDarkMode(false)\n currentThemeMode === THEME_MODES.DARK && setIsDarkMode(true)\n currentThemeMode === THEME_MODES.AUTO && setIsDarkMode(isSystemModeDark)\n }, [isSystemModeDark, currentThemeMode])\n\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const muiTheme = useMemo(\n () =>\n createTheme({\n typography,\n palette: {\n type: theme,\n primary: { main: mainColors[theme].primary },\n secondary: { main: mainColors[theme].secondary },\n },\n overrides: {\n MuiInputBase: {\n input: {\n color: mainColors[theme].labels,\n },\n },\n // https://material-ui.com/ru/api/form-control-label/\n MuiFormControlLabel: {\n labelPlacementStart: {\n display: 'flex',\n justifyContent: 'space-between',\n marginStart: 0,\n marginTop: 6,\n marginBottom: 2,\n },\n },\n MuiInputLabel: {\n root: {\n color: mainColors[theme].labels,\n marginBottom: 8,\n '&$focused': {\n color: mainColors[theme].labels,\n },\n },\n },\n },\n }),\n [theme],\n )\n\n return [isDarkMode, currentThemeMode, updateThemeMode, muiTheme]\n}\n","import { rgba } from 'polished'\nimport { mainColors } from 'style/colors'\n\nexport const snakeSettings = {\n dark: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: rgba('#fff', 0.2),\n completeColor: rgba(mainColors.dark.primary, 0.5),\n backgroundColor: '#949ca0',\n progressColor: rgba('#fff', 0.2),\n readerColor: '#8f0405',\n rangeColor: '#cda184',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#5c6469',\n completeColor: '#5c6469',\n backgroundColor: '#949ca0',\n progressColor: '#949ca0',\n readerColor: '#ccc',\n rangeColor: '#cda184',\n },\n },\n light: {\n default: {\n borderWidth: 1,\n pieceSize: 14,\n gapBetweenPieces: 3,\n borderColor: '#dbf2e8',\n completeColor: mainColors.light.primary,\n backgroundColor: '#fff',\n progressColor: '#b3dfc9',\n readerColor: '#000',\n rangeColor: '#afa6e3',\n },\n mini: {\n cacheMaxHeight: 340,\n borderWidth: 2,\n pieceSize: 23,\n gapBetweenPieces: 6,\n borderColor: '#4db380',\n completeColor: '#4db380',\n backgroundColor: '#dbf2e8',\n progressColor: '#dbf2e8',\n readerColor: '#0a0a0a',\n rangeColor: '#afa6e3',\n },\n },\n}\n\nexport const createGradient = (ctx, percentage, theme, snakeType) => {\n const { pieceSize, completeColor, progressColor } = snakeSettings[theme][snakeType]\n\n const gradient = ctx.createLinearGradient(0, pieceSize, 0, 0)\n gradient.addColorStop(0, completeColor)\n gradient.addColorStop(percentage / 100, completeColor)\n gradient.addColorStop(percentage / 100, progressColor)\n gradient.addColorStop(1, progressColor)\n\n return gradient\n}\n","import styled, { css } from 'styled-components'\n\nimport { snakeSettings } from './snakeSettings'\n\nexport const ScrollNotification = styled.div`\n margin-top: 10px;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n align-self: center;\n`\n\nexport const SnakeWrapper = styled.div`\n ${({ isMini, themeType }) => css`\n ${isMini &&\n css`\n display: grid;\n justify-content: center;\n max-height: ${snakeSettings[themeType].mini.cacheMaxHeight}px;\n overflow: auto;\n `}\n\n canvas {\n display: block;\n }\n `}\n`\n","import Measure from 'react-measure'\nimport { useState, memo, useRef, useEffect, useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport isEqual from 'lodash/isEqual'\nimport { DarkModeContext } from 'components/App'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nimport { useCreateCacheMap } from '../customHooks'\nimport getShortCacheMap from './getShortCacheMap'\nimport { SnakeWrapper, ScrollNotification } from './style'\nimport { createGradient, snakeSettings } from './snakeSettings'\n\nconst TorrentCache = ({ cache, isMini, isSnakeDebugMode }) => {\n const { t } = useTranslation()\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 })\n const { width } = dimensions\n const canvasRef = useRef(null)\n const ctxRef = useRef(null)\n const cacheMap = useCreateCacheMap(cache)\n const settingsTarget = isMini ? 'mini' : 'default'\n const { isDarkMode } = useContext(DarkModeContext)\n const theme = isDarkMode ? THEME_MODES.DARK : THEME_MODES.LIGHT\n\n const {\n readerColor,\n rangeColor,\n borderWidth,\n pieceSize,\n gapBetweenPieces,\n backgroundColor,\n borderColor,\n cacheMaxHeight,\n completeColor,\n } = snakeSettings[theme][settingsTarget]\n\n const canvasWidth = isMini ? width * 0.93 : width\n\n const pieceSizeWithGap = pieceSize + gapBetweenPieces\n const piecesInOneRow = Math.floor(canvasWidth / pieceSizeWithGap)\n\n let shotCacheMap\n if (isMini) {\n const preloadPiecesAmount = Math.round(cache.Capacity / cache.PiecesLength - 1)\n shotCacheMap = getShortCacheMap({ cacheMap, preloadPiecesAmount, piecesInOneRow })\n }\n const source = isMini ? shotCacheMap : cacheMap\n const startingXPoint = Math.ceil((canvasWidth - pieceSizeWithGap * piecesInOneRow) / 2) // needed to center grid\n const height = Math.ceil(source.length / piecesInOneRow) * pieceSizeWithGap\n\n useEffect(() => {\n if (!canvasWidth || !height) return\n\n const canvas = canvasRef.current\n canvas.width = canvasWidth\n canvas.height = height\n ctxRef.current = canvas.getContext('2d')\n }, [canvasRef, height, canvasWidth])\n\n useEffect(() => {\n const ctx = ctxRef.current\n if (!ctx) return\n\n ctx.clearRect(0, 0, canvasWidth, height)\n\n source.forEach(({ percentage, priority, isReader, isReaderRange }, i) => {\n const inProgress = percentage > 0 && percentage < 100\n const isCompleted = percentage === 100\n const currentRow = i % piecesInOneRow\n const currentColumn = Math.floor(i / piecesInOneRow)\n const fixBlurStroke = borderWidth % 2 === 0 ? 0 : 0.5\n const requiredFix = Math.ceil(borderWidth / 2) + 1 + fixBlurStroke\n const x = currentRow * pieceSize + currentRow * gapBetweenPieces + startingXPoint + requiredFix\n const y = currentColumn * pieceSize + currentColumn * gapBetweenPieces + requiredFix\n\n ctx.lineWidth = borderWidth\n ctx.fillStyle = inProgress\n ? createGradient(ctx, percentage, theme, settingsTarget)\n : isCompleted\n ? completeColor\n : backgroundColor\n ctx.strokeStyle = isReader\n ? readerColor\n : inProgress || isCompleted\n ? completeColor\n : isReaderRange\n ? rangeColor\n : borderColor\n\n ctx.translate(x, y)\n ctx.fillRect(0, 0, pieceSize, pieceSize)\n ctx.strokeRect(0, 0, pieceSize, pieceSize)\n ctx.setTransform(1, 0, 0, 1, 0, 0)\n\n if (isSnakeDebugMode && priority > 0) {\n let info = ''\n if (priority === 1) info = ''\n else if (priority === 2) info = 'H'\n else if (priority === 3) info = 'R'\n else if (priority === 4) info = 'N'\n else if (priority === 5) info = 'A'\n ctx.font = isMini ? '13px monospace' : '10px monospace'\n const xpad = isMini ? pieceSize * 0.35 : pieceSize * 0.29\n const ypad = isMini ? pieceSize * 0.69 : pieceSize * 0.78\n ctx.fillStyle = 'black'\n ctx.fillText(info, x + xpad, y + ypad)\n }\n })\n }, [\n cacheMap,\n height,\n canvasWidth,\n piecesInOneRow,\n startingXPoint,\n pieceSize,\n gapBetweenPieces,\n source,\n backgroundColor,\n borderColor,\n borderWidth,\n settingsTarget,\n completeColor,\n readerColor,\n rangeColor,\n isMini,\n theme,\n isSnakeDebugMode,\n ])\n\n return (\n setDimensions(bounds)}>\n {({ measureRef }) => (\n
\n \n \n \n\n {isMini && height >= cacheMaxHeight && {t('ScrollDown')}}\n
\n )}\n
\n )\n}\n\nexport default memo(\n TorrentCache,\n (prev, next) => isEqual(prev.cache.Pieces, next.cache.Pieces) && isEqual(prev.cache.Readers, next.cache.Readers),\n)\n","export default ({ cacheMap, preloadPiecesAmount, piecesInOneRow }) => {\n const cacheMapWithoutEmptyBlocks = cacheMap.filter(({ percentage }) => percentage > 0)\n\n const getFullAmountOfBlocks = amountOfBlocks =>\n // this function counts existed amount of blocks with extra \"empty blocks\" to fill the row till the end\n amountOfBlocks % piecesInOneRow === 0\n ? amountOfBlocks - 1\n : amountOfBlocks + piecesInOneRow - (amountOfBlocks % piecesInOneRow) - 1 || 0\n\n const amountOfBlocksToRenderInShortView = getFullAmountOfBlocks(preloadPiecesAmount)\n // preloadPiecesAmount is counted from \"cache.Capacity / cache.PiecesLength\". We always show at least this amount of blocks\n const scalableAmountOfBlocksToRenderInShortView = getFullAmountOfBlocks(cacheMapWithoutEmptyBlocks.length)\n // cacheMap can become bigger than preloadPiecesAmount counted before. In that case we count blocks dynamically\n\n const finalAmountOfBlocksToRenderInShortView = Math.max(\n // this check is needed to decide which is the biggest amount of blocks and take it to render\n scalableAmountOfBlocksToRenderInShortView,\n amountOfBlocksToRenderInShortView,\n )\n\n const extraBlocksAmount = finalAmountOfBlocksToRenderInShortView - cacheMapWithoutEmptyBlocks.length + 1\n // amount of blocks needed to fill the line till the end\n\n const extraEmptyBlocksForFillingLine = extraBlocksAmount ? new Array(extraBlocksAmount).fill({}) : []\n\n return [...cacheMapWithoutEmptyBlocks, ...extraEmptyBlocksForFillingLine]\n}\n","import styled, { css } from 'styled-components'\n\nconst viewedPrimaryColor = '#858c90'\nconst viewedSecondaryColor = '#8c9498'\nconst viewedTertiaryColor = '#949ca0'\nconst bigTableDividerColor = '#d2d2d2'\nconst bigTableDefaultRowColor = '#f3f3f3'\nconst bigTableViewedRowColor = '#ddd'\n\nconst viewedIndicator = css`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n :before {\n content: '';\n width: 10px;\n height: 10px;\n background: ${defaultPrimaryColor};\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n `}\n`\nexport const TableStyle = styled.table`\n ${({\n theme: {\n table: { defaultPrimaryColor },\n },\n }) => css`\n border-collapse: collapse;\n margin: 25px 0;\n font-size: 0.9em;\n width: 100%;\n border-radius: 5px 5px 0 0;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n color: #000;\n\n thead tr {\n background: ${defaultPrimaryColor};\n color: #fff;\n text-align: left;\n text-transform: uppercase;\n }\n\n th,\n td {\n padding: 12px 15px;\n }\n\n tbody tr {\n border-bottom: 1px solid ${bigTableDividerColor};\n background: ${bigTableDefaultRowColor};\n\n :last-of-type {\n border-bottom: 2px solid ${defaultPrimaryColor};\n }\n\n &.viewed-file-row {\n background: ${bigTableViewedRowColor};\n }\n }\n\n td {\n &.viewed-file-indicator {\n position: relative;\n\n ${viewedIndicator}\n }\n }\n\n .button-cell {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 10px;\n }\n\n @media (max-width: 970px) {\n display: none;\n }\n `}\n`\n\nexport const ShortTableWrapper = styled.div`\n display: grid;\n gap: 20px;\n grid-template-columns: repeat(2, 1fr);\n display: none;\n\n @media (max-width: 970px) {\n display: grid;\n }\n\n @media (max-width: 820px) {\n gap: 15px;\n grid-template-columns: 1fr;\n }\n`\n\nexport const ShortTable = styled.div`\n ${({\n isViewed,\n theme: {\n table: { defaultPrimaryColor, defaultSecondaryColor, defaultTertiaryColor },\n },\n }) => css`\n width: 100%;\n grid-template-rows: repeat(3, max-content);\n border-radius: 5px;\n overflow: hidden;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);\n\n .short-table {\n &-name {\n background: ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n place-items: center;\n padding: 15px;\n color: #fff;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: bold;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 10px;\n }\n }\n &-data {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: ${isViewed ? 'max-content' : '1fr'};\n grid-auto-columns: 1fr;\n }\n &-field {\n display: grid;\n grid-template-rows: 30px 1fr;\n background: black;\n :not(:last-child) {\n border-right: 1px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n }\n\n &-name {\n background: ${isViewed ? viewedSecondaryColor : defaultSecondaryColor};\n color: #fff;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n display: grid;\n place-items: center;\n padding: 0 10px;\n\n @media (max-width: 880px) {\n font-size: 11px;\n }\n }\n\n &-value {\n background: ${isViewed ? viewedTertiaryColor : defaultTertiaryColor};\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 15px;\n padding: 15px 10px;\n position: relative;\n\n @media (max-width: 880px) {\n font-size: 13px;\n padding: 12px 8px;\n }\n }\n }\n\n &-viewed-indicator {\n ${isViewed && viewedIndicator}\n }\n\n &-buttons {\n padding: 20px;\n border-bottom: 2px solid ${isViewed ? viewedPrimaryColor : defaultPrimaryColor};\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 20px;\n background: #f3f3f3;\n\n @media (max-width: 410px) {\n gap: 10px;\n grid-template-columns: 1fr;\n }\n }\n }\n `}\n`\n","import { streamHost } from 'utils/Hosts'\nimport isEqual from 'lodash/isEqual'\nimport { humanizeSize, isStandaloneApp } from 'utils/Utils'\nimport ptt from 'parse-torrent-title'\nimport { Button } from '@material-ui/core'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { useTranslation } from 'react-i18next'\n\nimport { TableStyle, ShortTableWrapper, ShortTable } from './style'\n\nconst { memo } = require('react')\n\n// russian episode detection support\nptt.addHandler('episode', /(\\d{1,4})[- |. ]серия|серия[- |. ](\\d{1,4})/i, { type: 'integer' })\nptt.addHandler('season', /sezon[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]sezon/i, { type: 'integer' })\nptt.addHandler('season', /сезон[- |. ](\\d{1,3})|(\\d{1,3})[- |. ]сезон/i, { type: 'integer' })\n\nconst Table = memo(\n ({ playableFileList, viewedFileList, selectedSeason, seasonAmount, hash }) => {\n const { t } = useTranslation()\n const preloadBuffer = fileId => fetch(`${streamHost()}?link=${hash}&index=${fileId}&preload`)\n const getFileLink = (path, id) =>\n `${streamHost()}/${encodeURIComponent(path.split('\\\\').pop().split('/').pop())}?link=${hash}&index=${id}&play`\n const fileHasEpisodeText = !!playableFileList?.find(({ path }) => ptt.parse(path).episode)\n const fileHasSeasonText = !!playableFileList?.find(({ path }) => ptt.parse(path).season)\n const fileHasResolutionText = !!playableFileList?.find(({ path }) => ptt.parse(path).resolution)\n\n // if files in list is more then 1 and no season text detected by ptt.parse, show full name\n const shouldDisplayFullFileName = playableFileList?.length > 1 && !fileHasEpisodeText\n\n const isVlcUsed = JSON.parse(localStorage.getItem('isVlcUsed')) ?? false\n\n return !playableFileList?.length ? (\n 'No playable files in this torrent'\n ) : (\n <>\n
{isVlcUsed.toString()}
\n \n \n \n {t('Viewed')}\n {t('Name')}\n {fileHasSeasonText && seasonAmount?.length === 1 && {t('Season')}}\n {fileHasEpisodeText && {t('Episode')}}\n {fileHasResolutionText && {t('Resolution')}}\n {t('Size')}\n {t('Actions')}\n \n \n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n \n {shouldDisplayFullFileName ? path : title}\n {fileHasSeasonText && seasonAmount?.length === 1 && {season}}\n {fileHasEpisodeText && {episode}}\n {fileHasResolutionText && {resolution}}\n {humanizeSize(length)}\n \n
\n \n\n \n \n \n\n \n \n \n
\n \n \n )\n )\n })}\n \n
\n\n \n {playableFileList.map(({ id, path, length }) => {\n const { title, resolution, episode, season } = ptt.parse(path)\n const isViewed = viewedFileList?.includes(id)\n const link = getFileLink(path, id)\n\n return (\n (season === selectedSeason || !seasonAmount?.length) && (\n \n
{shouldDisplayFullFileName ? path : title}
\n
\n {isViewed && (\n
\n
{t('Viewed')}
\n
\n
\n
\n
\n )}\n {fileHasSeasonText && seasonAmount?.length === 1 && (\n
\n
{t('Season')}
\n
{season}
\n
\n )}\n {fileHasEpisodeText && (\n
\n
{t('Episode')}
\n
{episode}
\n
\n )}\n {fileHasResolutionText && (\n
\n
{t('Resolution')}
\n
{resolution}
\n
\n )}\n
\n
{t('Size')}
\n
{humanizeSize(length)}
\n
\n
\n
\n \n\n {isVlcUsed && isStandaloneApp ? (\n \n \n \n ) : (\n \n \n \n )}\n\n \n \n \n
\n \n )\n )\n })}\n \n \n )\n },\n (prev, next) => isEqual(prev, next),\n)\n\nexport default Table\n","import { rgba } from 'polished'\nimport styled, { css } from 'styled-components'\n\nexport const DialogContentGrid = styled.div`\n display: grid;\n grid-template-columns: 70% 1fr;\n grid-template-rows: repeat(2, min-content);\n grid-template-areas:\n 'main cache'\n 'file-list file-list';\n\n @media (max-width: 1450px) {\n grid-template-columns: 1fr;\n grid-template-rows: repeat(3, min-content);\n grid-template-areas:\n 'main'\n 'cache'\n 'file-list';\n }\n`\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n dialogTorrentDetailsContent: { posterBGColor },\n },\n }) => css`\n height: 400px;\n border-radius: 5px;\n overflow: hidden;\n align-self: center;\n\n ${poster\n ? css`\n img {\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n width: 300px;\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(2.5) translateY(-3px);\n }\n `}\n\n @media (max-width: 1280px) {\n align-self: start;\n }\n\n @media (max-width: 840px) {\n ${poster\n ? css`\n height: 200px;\n `\n : css`\n display: none;\n `}\n }\n `}\n`\nexport const MainSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n grid-area: main;\n padding: 40px;\n display: grid;\n grid-template-columns: min-content 1fr;\n gap: 30px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 840px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const CacheSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { chacheSectionBGColor },\n },\n }) => css`\n grid-area: cache;\n padding: 40px;\n display: grid;\n align-content: start;\n grid-template-rows: min-content 1fr min-content;\n background: ${chacheSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const TorrentFilesSection = styled.section`\n ${({\n theme: {\n dialogTorrentDetailsContent: { torrentFilesSectionBGColor },\n },\n }) => css`\n grid-area: file-list;\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${torrentFilesSectionBGColor};\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const SectionSubName = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { subNameFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-top: ${mb / 3}px`};\n ${mb && `margin-bottom: ${mb}px`};\n line-height: 1.2;\n color: ${subNameFontColor};\n\n @media (max-width: 800px) {\n ${mb && `margin-top: ${mb / 4}px`};\n ${mb && `margin-bottom: ${mb / 2}px`};\n font-size: 14px;\n }\n `}\n `}\n`\n\nexport const SectionTitle = styled.div`\n ${({\n color,\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n ${({ mb }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 34px;\n font-weight: 300;\n line-height: 1;\n word-break: break-word;\n color: ${color || titleFontColor};\n\n @media (max-width: 800px) {\n font-size: 24px;\n line-height: 1.1;\n ${mb && `margin-bottom: ${mb / 2}px`};\n }\n `}\n `}\n`\n\nexport const SectionHeader = styled.div`\n margin-bottom: 20px;\n`\n\nexport const WidgetWrapper = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 220px));\n gap: 20px;\n\n @media (max-width: 800px) {\n gap: 15px;\n }\n @media (max-width: 410px) {\n gap: 10px;\n }\n\n ${({ detailedView }) =>\n detailedView\n ? css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(2, 1fr);\n }\n @media (max-width: 410px) {\n grid-template-columns: 1fr;\n }\n `\n : css`\n @media (max-width: 800px) {\n grid-template-columns: repeat(auto-fit, minmax(max-content, 185px));\n }\n @media (max-width: 480px) {\n grid-template-columns: 1fr 1fr;\n }\n @media (max-width: 390px) {\n grid-template-columns: 1fr;\n }\n `}\n`\n\nexport const WidgetFieldWrapper = styled.div`\n display: grid;\n grid-template-columns: 40px 1fr;\n grid-template-rows: min-content 50px;\n grid-template-areas:\n 'title title'\n 'icon value';\n\n > * {\n display: grid;\n place-items: center;\n }\n\n @media (max-width: 800px) {\n grid-template-columns: 30px 1fr;\n grid-template-rows: min-content 40px;\n }\n`\nexport const WidgetFieldTitle = styled.div`\n ${({\n theme: {\n dialogTorrentDetailsContent: { titleFontColor },\n },\n }) => css`\n grid-area: title;\n justify-self: start;\n text-transform: uppercase;\n font-size: 11px;\n margin-bottom: 2px;\n font-weight: 600;\n color: ${titleFontColor};\n `}\n`\n\nexport const WidgetFieldIcon = styled.div`\n ${({ bgColor }) => css`\n grid-area: icon;\n color: ${rgba('#fff', 0.8)};\n background: ${bgColor};\n border-radius: 5px 0 0 5px;\n\n @media (max-width: 800px) {\n > svg {\n width: 50%;\n }\n }\n `}\n`\nexport const WidgetFieldValue = styled.div`\n ${({\n bgColor,\n theme: {\n dialogTorrentDetailsContent: { widgetFontColor },\n },\n }) => css`\n grid-area: value;\n font-size: 24px;\n padding: 0 20px 0 0;\n color: ${widgetFontColor};\n background: ${bgColor};\n border-radius: 0 5px 5px 0;\n white-space: nowrap;\n\n @media (max-width: 800px) {\n font-size: 18px;\n padding: 0 16px 0 0;\n }\n `}\n`\n\nexport const LoadingProgress = styled.div.attrs(\n ({\n value,\n fullAmount,\n theme: {\n dialogTorrentDetailsContent: { gradientStartColor, gradientEndColor },\n },\n }) => {\n const percentage = Math.min(100, (value * 100) / fullAmount)\n\n return {\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${gradientStartColor} 0%, ${gradientEndColor} ${percentage}%, #eee ${percentage}%, #fff 100%)`,\n },\n }\n },\n)`\n ${({ label }) => css`\n border: 1px solid;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n `}\n`\n\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n","import styled, { css } from 'styled-components'\n\nexport const DetailedViewWidgetSection = styled.section`\n ${({\n theme: {\n detailedView: { gradientStartColor, gradientEndColor },\n },\n }) => css`\n padding: 40px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n\nexport const DetailedViewCacheSection = styled.section`\n ${({\n theme: {\n detailedView: { cacheSectionBGColor },\n },\n }) => css`\n padding: 40px;\n box-shadow: inset 3px 25px 8px -25px rgba(0, 0, 0, 0.5);\n background: ${cacheSectionBGColor};\n flex: 1;\n\n @media (max-width: 800px) {\n padding: 20px;\n }\n `}\n`\n","import { WidgetFieldWrapper, WidgetFieldIcon, WidgetFieldValue, WidgetFieldTitle } from './style'\n\nexport default function StatisticsField({ icon: Icon, title, value, iconBg, valueBg }) {\n return (\n \n {title}\n \n \n \n\n {value}\n \n )\n}\n","import { DarkModeContext } from 'components/App'\nimport { useContext } from 'react'\nimport { THEME_MODES } from 'style/materialUISetup'\n\nconst { LIGHT, DARK } = THEME_MODES\n\nconst colors = {\n light: {\n downloadSpeed: { iconBGColor: '#118f00', valueBGColor: '#13a300' },\n uploadSpeed: { iconBGColor: '#0146ad', valueBGColor: '#0058db' },\n peers: { iconBGColor: '#cdc118', valueBGColor: '#d8cb18' },\n piecesCount: { iconBGColor: '#b6c95e', valueBGColor: '#c0d076' },\n piecesLength: { iconBGColor: '#0982c8', valueBGColor: '#098cd7' },\n status: { iconBGColor: '#aea25b', valueBGColor: '#b4aa6e' },\n size: { iconBGColor: '#9b01ad', valueBGColor: '#ac03bf' },\n },\n dark: {\n downloadSpeed: { iconBGColor: '#0c6600', valueBGColor: '#0d7000' },\n uploadSpeed: { iconBGColor: '#003f9e', valueBGColor: '#0047b3' },\n peers: { iconBGColor: '#a69c11', valueBGColor: '#b4a913' },\n piecesCount: { iconBGColor: '#8da136', valueBGColor: '#99ae3d' },\n piecesLength: { iconBGColor: '#07659c', valueBGColor: '#0872af' },\n status: { iconBGColor: '#938948', valueBGColor: '#9f9450' },\n size: { iconBGColor: '#81008f', valueBGColor: '#9102a1' },\n },\n}\n\nexport default function useGetWidgetColors(widgetName) {\n const { isDarkMode } = useContext(DarkModeContext)\n const widgetColors = colors[isDarkMode ? DARK : LIGHT][widgetName]\n\n return widgetColors\n}\n","import {\n ArrowDownward as ArrowDownwardIcon,\n ArrowUpward as ArrowUpwardIcon,\n SwapVerticalCircle as SwapVerticalCircleIcon,\n ViewAgenda as ViewAgendaIcon,\n Widgets as WidgetsIcon,\n PhotoSizeSelectSmall as PhotoSizeSelectSmallIcon,\n Build as BuildIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed } from 'utils/Utils'\nimport { useTranslation } from 'react-i18next'\nimport { GETTING_INFO, IN_DB, CLOSED, PRELOAD, WORKING } from 'torrentStates'\n\nimport StatisticsField from '../StatisticsField'\nimport useGetWidgetColors from './useGetWidgetColors'\n\nexport const DownlodSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('downloadSpeed')\n\n return (\n \n )\n}\n\nexport const UploadSpeedWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('uploadSpeed')\n\n return (\n \n )\n}\n\nexport const PeersWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('peers')\n\n return (\n \n )\n}\n\nexport const PiecesCountWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesCount')\n\n return (\n \n )\n}\n\nexport const PiecesLengthWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('piecesLength')\n\n return (\n \n )\n}\n\nexport const StatusWidget = ({ stat }) => {\n const { t } = useTranslation()\n\n const values = {\n [GETTING_INFO]: t('TorrentGettingInfo'),\n [PRELOAD]: t('TorrentPreload'),\n [WORKING]: t('TorrentWorking'),\n [CLOSED]: t('TorrentClosed'),\n [IN_DB]: t('TorrentInDb'),\n }\n const { iconBGColor, valueBGColor } = useGetWidgetColors('status')\n\n return (\n \n )\n}\n\nexport const SizeWidget = ({ data }) => {\n const { t } = useTranslation()\n const { iconBGColor, valueBGColor } = useGetWidgetColors('size')\n\n return (\n \n )\n}\n","export const [GETTING_INFO, PRELOAD, WORKING, CLOSED, IN_DB] = [1, 2, 3, 4, 5]\n","import { useTranslation } from 'react-i18next'\nimport { Checkbox, FormControlLabel } from '@material-ui/core'\nimport { useState } from 'react'\n\nimport { SectionTitle, WidgetWrapper } from '../style'\nimport { DetailedViewCacheSection, DetailedViewWidgetSection } from './style'\nimport TorrentCache from '../TorrentCache'\nimport {\n SizeWidget,\n PiecesLengthWidget,\n StatusWidget,\n PiecesCountWidget,\n PeersWidget,\n UploadSpeedWidget,\n DownlodSpeedWidget,\n} from '../widgets'\n\nexport default function DetailedView({\n downloadSpeed,\n uploadSpeed,\n torrent,\n torrentSize,\n PiecesCount,\n PiecesLength,\n stat,\n cache,\n}) {\n const { t } = useTranslation()\n const [isSnakeDebugMode, setIsSnakeDebugMode] = useState(\n JSON.parse(localStorage.getItem('isSnakeDebugMode')) || false,\n )\n\n return (\n <>\n \n {t('Data')}\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n {t('Cache')}\n\n {\n setIsSnakeDebugMode(checked)\n localStorage.setItem('isSnakeDebugMode', checked)\n }}\n />\n }\n label={t('DebugMode')}\n labelPlacement='start'\n />\n
\n
\n\n \n
\n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const MainSectionButtonGroup = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 20px;\n\n :not(:last-child) {\n margin-bottom: 30px;\n }\n\n @media (max-width: 1580px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 880px) {\n grid-template-columns: 1fr;\n }\n`\n\nexport const SmallLabel = styled.div`\n ${({\n mb,\n theme: {\n torrentFunctions: { fontColor },\n },\n }) => css`\n ${mb && `margin-bottom: ${mb}px`};\n font-size: 20px;\n font-weight: 300;\n line-height: 1;\n color: ${fontColor};\n\n @media (max-width: 800px) {\n font-size: 18px;\n ${mb && `margin-bottom: ${mb / 1.5}px`};\n }\n `}\n`\n","import axios from 'axios'\nimport { memo } from 'react'\nimport { playlistTorrHost, torrentsHost, viewedHost } from 'utils/Hosts'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\nimport { Button } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\n\nimport { SmallLabel, MainSectionButtonGroup } from './style'\nimport { SectionSubName } from '../style'\n\nconst TorrentFunctions = memo(\n ({ hash, viewedFileList, playableFileList, name, title, setViewedFileList }) => {\n const { t } = useTranslation()\n const latestViewedFileId = viewedFileList?.[viewedFileList?.length - 1]\n const latestViewedFile = playableFileList?.find(({ id }) => id === latestViewedFileId)?.path\n const isOnlyOnePlayableFile = playableFileList?.length === 1\n const latestViewedFileData = latestViewedFile && ptt.parse(latestViewedFile)\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const removeTorrentViews = () =>\n axios.post(viewedHost(), { action: 'rem', hash, file_index: -1 }).then(() => setViewedFileList())\n const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(name || title || 'file')}.m3u?link=${hash}&m3u`\n const partialPlaylistLink = `${fullPlaylistLink}&fromlast`\n\n return (\n <>\n {!isOnlyOnePlayableFile && !!viewedFileList?.length && (\n <>\n {t('DownloadPlaylist')}\n \n {t('LatestFilePlayed')}{' '}\n \n {latestViewedFileData?.title}.\n {latestViewedFileData?.season && (\n <>\n {' '}\n {t('Season')}: {latestViewedFileData?.season}. {t('Episode')}: {latestViewedFileData?.episode}.\n \n )}\n \n \n\n \n \n \n \n\n \n \n \n \n \n )}\n {t('TorrentState')}\n \n \n \n \n {t('Info')}\n \n {(isOnlyOnePlayableFile || !viewedFileList?.length) && (\n \n \n \n )}\n \n \n \n \n \n )\n },\n () => true,\n)\n\nexport default TorrentFunctions\n","const getExt = filename => {\n const ext = filename.split('.').pop()\n if (ext === filename) return ''\n return ext.toLowerCase()\n}\nconst playableExtList = [\n // video\n '3g2',\n '3gp',\n 'aaf',\n 'asf',\n 'avchd',\n 'avi',\n 'drc',\n 'flv',\n 'iso',\n 'm2v',\n 'm2ts',\n 'm4p',\n 'm4v',\n 'mkv',\n 'mng',\n 'mov',\n 'mp2',\n 'mp4',\n 'mpe',\n 'mpeg',\n 'mpg',\n 'mpv',\n 'mxf',\n 'nsv',\n 'ogg',\n 'ogv',\n 'ts',\n 'qt',\n 'rm',\n 'rmvb',\n 'roq',\n 'svi',\n 'vob',\n 'webm',\n 'wmv',\n 'yuv',\n // audio\n 'aac',\n 'aiff',\n 'ape',\n 'au',\n 'flac',\n 'gsm',\n 'it',\n 'm3u',\n 'm4a',\n 'mid',\n 'mod',\n 'mp3',\n 'mpa',\n 'pls',\n 'ra',\n 's3m',\n 'sid',\n 'wav',\n 'wma',\n 'xm',\n]\n\n// eslint-disable-next-line import/prefer-default-export\nexport const isFilePlayable = fileName => playableExtList.includes(getExt(fileName))\n","import { NoImageIcon } from 'icons'\nimport { humanizeSize, removeRedundantCharacters } from 'utils/Utils'\nimport { useEffect, useState } from 'react'\nimport { Button, ButtonGroup } from '@material-ui/core'\nimport ptt from 'parse-torrent-title'\nimport axios from 'axios'\nimport { viewedHost } from 'utils/Hosts'\nimport { GETTING_INFO, IN_DB } from 'torrentStates'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { useTranslation } from 'react-i18next'\n\nimport { useUpdateCache, useGetSettings } from './customHooks'\nimport DialogHeader from './DialogHeader'\nimport TorrentCache from './TorrentCache'\nimport Table from './Table'\nimport DetailedView from './DetailedView'\nimport {\n DialogContentGrid,\n MainSection,\n Poster,\n SectionTitle,\n SectionSubName,\n WidgetWrapper,\n LoadingProgress,\n SectionHeader,\n CacheSection,\n TorrentFilesSection,\n Divider,\n} from './style'\nimport { DownlodSpeedWidget, UploadSpeedWidget, PeersWidget, SizeWidget, StatusWidget } from './widgets'\nimport TorrentFunctions from './TorrentFunctions'\nimport { isFilePlayable } from './helpers'\n\nconst Loader = () => (\n
\n \n
\n)\n\nexport default function DialogTorrentDetailsContent({ closeDialog, torrent }) {\n const { t } = useTranslation()\n const [isLoading, setIsLoading] = useState(true)\n const [isDetailedCacheView, setIsDetailedCacheView] = useState(false)\n const [viewedFileList, setViewedFileList] = useState()\n const [playableFileList, setPlayableFileList] = useState()\n const [seasonAmount, setSeasonAmount] = useState(null)\n const [selectedSeason, setSelectedSeason] = useState()\n const [isSnakeDebugMode] = useState(JSON.parse(localStorage.getItem('isSnakeDebugMode')) || false)\n\n const {\n poster,\n hash,\n title,\n name,\n stat,\n download_speed: downloadSpeed,\n upload_speed: uploadSpeed,\n torrent_size: torrentSize,\n file_stats: torrentFileList,\n } = torrent\n\n const cache = useUpdateCache(hash)\n const settings = useGetSettings(cache)\n\n const { Capacity, PiecesCount, PiecesLength, Filled } = cache\n\n useEffect(() => {\n if (playableFileList && seasonAmount === null) {\n const seasons = []\n playableFileList.forEach(({ path }) => {\n const currentSeason = ptt.parse(path).season\n if (currentSeason) {\n !seasons.includes(currentSeason) && seasons.push(currentSeason)\n }\n })\n seasons.length && setSelectedSeason(seasons[0])\n setSeasonAmount(seasons.sort((a, b) => a - b))\n }\n }, [playableFileList, seasonAmount])\n\n useEffect(() => {\n setPlayableFileList(torrentFileList?.filter(({ path }) => isFilePlayable(path)))\n }, [torrentFileList])\n\n useEffect(() => {\n const cacheLoaded = !!Object.entries(cache).length\n const torrentLoaded = stat !== GETTING_INFO && stat !== IN_DB\n\n if (!cacheLoaded && !isLoading) setIsLoading(true)\n if (cacheLoaded && isLoading && torrentLoaded) setIsLoading(false)\n }, [stat, cache, isLoading])\n\n useEffect(() => {\n // getting viewed file list\n axios.post(viewedHost(), { action: 'list', hash }).then(({ data }) => {\n if (data) {\n const lst = data.map(itm => itm.file_index).sort((a, b) => a - b)\n setViewedFileList(lst)\n } else setViewedFileList()\n })\n }, [hash])\n\n const preloadPerc = settings?.PreloadCache\n const preloadSize = (Capacity / 100) * preloadPerc\n const bufferSize = preloadSize > 33554432 ? preloadSize : 33554432 // Not less than 32MB\n\n const getParsedTitle = () => {\n const newNameStringArr = []\n\n const torrentParsedName = name && ptt.parse(name)\n\n if (title !== name) {\n newNameStringArr.push(removeRedundantCharacters(title))\n } else if (torrentParsedName?.title) newNameStringArr.push(removeRedundantCharacters(torrentParsedName?.title))\n\n // These 2 checks are needed to get year and resolution from torrent name if title does not have this info\n if (torrentParsedName?.year && !newNameStringArr[0].includes(torrentParsedName?.year))\n newNameStringArr.push(torrentParsedName?.year)\n if (torrentParsedName?.resolution && !newNameStringArr[0].includes(torrentParsedName?.resolution))\n newNameStringArr.push(torrentParsedName?.resolution)\n\n const newNameString = newNameStringArr.join('. ')\n\n // removeRedundantCharacters is returning \"..\" if it was \"...\"\n const lastDotShouldBeAdded =\n newNameString[newNameString.length - 1] === '.' && newNameString[newNameString.length - 2] === '.'\n\n return lastDotShouldBeAdded ? `${newNameString}.` : newNameString\n }\n\n return (\n <>\n setIsDetailedCacheView(false) })}\n />\n\n \n {isLoading ? (\n \n ) : isDetailedCacheView ? (\n \n ) : (\n \n \n {poster ? poster : }\n\n
\n {title && name !== title ? (\n getParsedTitle().length > 90 ? (\n <>\n {ptt.parse(name).title}\n {getParsedTitle()}\n \n ) : (\n <>\n {getParsedTitle()}\n {ptt.parse(name || '')?.title}\n \n )\n ) : (\n {getParsedTitle()}\n )}\n\n \n \n \n \n \n \n \n\n \n\n \n
\n
\n\n \n \n {t('Buffer')}\n {bufferSize <= 33554432 && {t('BufferNote')}}\n \n \n\n \n setIsDetailedCacheView(true)}\n >\n {t('DetailedCacheView.button')}\n \n \n\n \n {t('TorrentContent')}\n\n {seasonAmount?.length > 1 && (\n <>\n {t('SelectSeason')}\n \n {seasonAmount.map(season => (\n setSelectedSeason(season)}\n >\n {season}\n \n ))}\n \n\n \n {t('Season')} {selectedSeason}\n \n \n )}\n\n \n \n
\n )}\n
\n \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nexport default () => {\n const { i18n } = useTranslation()\n const currentLanguage = i18n.language.substr(0, 2)\n\n return [currentLanguage, lang => i18n.changeLanguage(lang)]\n}\n","import { useEffect, useRef } from 'react'\n\nexport default function usePreviousState(value) {\n const ref = useRef(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n","import styled, { css } from 'styled-components'\n\nexport const Header = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: rgba(0, 0, 0, 0.87);\n font-size: 20px;\n color: #fff;\n font-weight: 600;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 15px 24px;\n position: relative;\n `}\n`\n\nexport const ButtonWrapper = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n\n > :not(:last-child) {\n margin-right: 10px;\n }\n`\n","import { css } from 'styled-components'\n\nexport const standaloneMedia = styles => css`\n @media screen and (display-mode: standalone) {\n ${styles};\n }\n`\n","import { standaloneMedia } from 'style/standaloneMedia'\nimport styled, { css } from 'styled-components'\n\nexport const pwaFooterHeight = 90\n\nexport default styled.div`\n background: #575757;\n color: #fff;\n position: fixed;\n bottom: 0;\n width: 100%;\n height: ${pwaFooterHeight}px;\n\n display: none;\n\n ${standaloneMedia(css`\n display: grid;\n grid-template-columns: repeat(5, calc(100% / 5));\n justify-items: center;\n `)}\n`\n","import { ListItem } from '@material-ui/core'\nimport Dialog from '@material-ui/core/Dialog'\nimport { pwaFooterHeight } from 'components/App/PWAFooter/style'\nimport styled, { css } from 'styled-components'\nimport { Header } from 'style/DialogStyles'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport { standaloneMedia } from './standaloneMedia'\n\nexport const StyledMenuButtonWrapper = styled(ListItem).attrs({ button: true })`\n ${standaloneMedia(css`\n width: 100%;\n height: 60px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n font-size: 10px;\n `)}\n`\n\nexport const StyledDialog = styled(Dialog).attrs({\n ...(isStandaloneApp && { hideBackdrop: true, transitionDuration: 0 }),\n})`\n ${standaloneMedia(css`\n margin-bottom: ${pwaFooterHeight}px;\n\n .MuiDialog-container .MuiPaper-root {\n box-shadow: none;\n }\n `)}\n`\n\nexport const StyledHeader = styled(Header)`\n ${standaloneMedia(css`\n padding-top: 47px;\n `)}\n`\n","import { useEffect, useRef } from 'react'\nimport { isStandaloneApp } from 'utils/Utils'\n\nexport default function useOnStandaloneAppOutsideClick(onClickOutside) {\n const ref = useRef()\n\n useEffect(() => {\n if (!isStandaloneApp) return\n\n const handleClickOutside = event => {\n if (ref.current && !ref.current.contains(event.target)) {\n onClickOutside && onClickOutside()\n }\n }\n\n document.addEventListener('click', handleClickOutside, true)\n\n return () => {\n document.removeEventListener('click', handleClickOutside, true)\n }\n })\n\n return ref\n}\n","import axios from 'axios'\nimport parseTorrent from 'parse-torrent'\nimport ptt from 'parse-torrent-title'\n\nexport const getMoviePosters = (movieName, language = 'en') => {\n const url = 'http://api.themoviedb.org/3/search/multi'\n\n return axios\n .get(url, {\n params: {\n api_key: process.env.REACT_APP_TMDB_API_KEY,\n language,\n include_image_language: `${language},null,en`,\n query: movieName,\n },\n })\n .then(({ data: { results } }) =>\n results.filter(el => el.poster_path).map(el => `https://image.tmdb.org/t/p/w300${el.poster_path}`),\n )\n .catch(() => null)\n}\n\nexport const checkImageURL = async url => {\n if (!url || !url.match(/.(jpg|jpeg|png|gif)$/i)) return false\n return true\n}\n\nconst magnetRegex = /^magnet:\\?xt=urn:[a-z0-9].*/i\nexport const hashRegex = /^\\b[0-9a-f]{32}\\b$|^\\b[0-9a-f]{40}\\b$|^\\b[0-9a-f]{64}\\b$/i\nconst torrentRegex = /^.*\\.(torrent)$/i\nconst linkRegex = /^(http(s?)):\\/\\/.*/i\n\nexport const checkTorrentSource = source =>\n source.match(hashRegex) !== null ||\n source.match(magnetRegex) !== null ||\n source.match(torrentRegex) !== null ||\n source.match(linkRegex) !== null\n\nexport const parseTorrentTitle = (parsingSource, callback) => {\n parseTorrent.remote(parsingSource, (err, { name, files } = {}) => {\n if (!name || err) return callback({ parsedTitle: null, originalName: null })\n\n const torrentName = ptt.parse(name).title\n const nameOfFileInsideTorrent = files ? ptt.parse(files[0].name).title : null\n\n let newTitle = torrentName\n if (nameOfFileInsideTorrent) {\n // taking shorter title because in most cases it is more accurate\n newTitle = torrentName.length < nameOfFileInsideTorrent.length ? torrentName : nameOfFileInsideTorrent\n }\n\n callback({ parsedTitle: newTitle, originalName: name })\n })\n}\n","import { Button } from '@material-ui/core'\nimport styled, { css } from 'styled-components'\n\nexport const Content = styled.div`\n ${({\n isEditMode,\n theme: {\n addDialog: { gradientStartColor, gradientEndColor, fontColor },\n },\n }) => css`\n height: 550px;\n background: linear-gradient(145deg, ${gradientStartColor}, ${gradientEndColor});\n flex: 1;\n display: grid;\n grid-template-columns: repeat(${isEditMode ? '1' : '2'}, 1fr);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n overflow: auto;\n color: ${fontColor};\n\n @media (max-width: 540px) {\n ${'' /* Just for bug fixing on small screens */}\n overflow: scroll;\n }\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n\n @media (max-width: 500px) {\n align-content: start;\n }\n `}\n`\n\nexport const RightSide = styled.div`\n padding: 0 20px 20px 20px;\n`\n\nexport const RightSideContainer = styled.div`\n ${({\n isHidden,\n notificationMessage,\n isError,\n theme: {\n addDialog: { notificationErrorBGColor, notificationSuccessBGColor },\n },\n }) => css`\n height: 530px;\n\n ${notificationMessage &&\n css`\n position: relative;\n white-space: nowrap;\n\n :before {\n font-size: 20px;\n font-weight: 300;\n content: '${notificationMessage}';\n display: grid;\n place-items: center;\n background: ${isError ? notificationErrorBGColor : notificationSuccessBGColor};\n padding: 10px 15px;\n position: absolute;\n top: 52%;\n left: 50%;\n transform: translate(-50%, -50%);\n border-radius: 5px;\n }\n `};\n\n ${isHidden &&\n css`\n display: none;\n `};\n\n @media (max-width: 500px) {\n height: 170px;\n }\n `}\n`\nexport const LeftSide = styled.div`\n display: flex;\n flex-direction: column;\n border-right: 1px solid rgba(0, 0, 0, 0.12);\n`\n\nexport const LeftSideBottomSectionBasicStyles = css`\n transition: transform 0.3s;\n padding: 20px;\n height: 100%;\n display: grid;\n`\n\nexport const LeftSideBottomSectionNoFile = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n border: 4px dashed rgba(0,0,0,0.1);\n text-align: center;\n outline: none;\n\n ${({ isDragActive }) => isDragActive && `border: 4px dashed green`};\n\n justify-items: center;\n grid-template-rows: 130px 1fr;\n cursor: pointer;\n\n :hover {\n background-color: rgba(0, 0, 0, 0.04);\n svg {\n transform: translateY(-4%);\n }\n }\n\n @media (max-width: 930px) {\n border: 4px dashed transparent;\n height: 400px;\n place-items: center;\n grid-template-rows: 40% 1fr;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n grid-template-rows: 1fr;\n\n > div:first-of-type {\n display: none;\n }\n }\n`\n\nexport const LeftSideBottomSectionFileSelected = styled.div`\n ${LeftSideBottomSectionBasicStyles}\n place-items: center;\n\n @media (max-width: 930px) {\n height: 400px;\n }\n\n @media (max-width: 500px) {\n height: 170px;\n }\n`\n\nexport const TorrentIconWrapper = styled.div`\n position: relative;\n`\n\nexport const CancelIconWrapper = styled.div`\n position: absolute;\n top: -9px;\n left: 10px;\n cursor: pointer;\n\n > svg {\n transition: all 0.3s;\n fill: rgba(0, 0, 0, 0.7);\n\n :hover {\n fill: rgba(0, 0, 0, 0.6);\n }\n }\n`\n\nexport const IconWrapper = styled.div`\n display: grid;\n justify-items: center;\n align-content: start;\n gap: 10px;\n align-self: start;\n\n svg {\n transition: all 0.3s;\n }\n`\n\nexport const LeftSideTopSection = styled.div`\n ${({\n active,\n theme: {\n addDialog: { gradientStartColor },\n },\n }) => css`\n background: ${gradientStartColor};\n padding: 0 20px 20px 20px;\n transition: all 0.3s;\n\n ${active && 'box-shadow: 0 8px 10px -9px rgba(0, 0, 0, 0.5)'};\n `}\n`\n\nexport const PosterWrapper = styled.div`\n margin-top: 20px;\n display: grid;\n grid-template-columns: max-content 1fr;\n grid-template-rows: 300px max-content;\n column-gap: 5px;\n position: relative;\n margin-bottom: 20px;\n\n grid-template-areas:\n 'poster suggestions'\n 'clear empty';\n\n @media (max-width: 540px) {\n grid-template-columns: 1fr;\n gap: 5px 0;\n justify-items: center;\n grid-template-areas:\n 'poster'\n 'clear'\n 'suggestions';\n }\n`\n\nexport const PosterSuggestions = styled.div`\n display: grid;\n grid-area: suggestions;\n grid-auto-flow: column;\n grid-template-columns: repeat(3, max-content);\n grid-template-rows: repeat(4, max-content);\n gap: 5px;\n\n @media (max-width: 540px) {\n grid-auto-flow: row;\n grid-template-columns: repeat(5, max-content);\n }\n @media (max-width: 375px) {\n grid-template-columns: repeat(4, max-content);\n }\n`\n\nexport const PosterSuggestionsItem = styled.div`\n cursor: pointer;\n width: 71px;\n height: 71px;\n\n @media (max-width: 430px) {\n width: 60px;\n height: 60px;\n }\n\n @media (max-width: 375px) {\n width: 71px;\n height: 71px;\n }\n\n @media (max-width: 355px) {\n width: 60px;\n height: 60px;\n }\n\n img {\n transition: all 0.3s;\n border-radius: 5px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n\n :hover {\n filter: brightness(130%);\n }\n }\n`\n\nexport const Poster = styled.div`\n ${({\n poster,\n theme: {\n addDialog: { posterBGColor },\n },\n }) => css`\n border-radius: 5px;\n overflow: hidden;\n width: 200px;\n grid-area: poster;\n\n ${poster\n ? css`\n img {\n width: 200px;\n object-fit: cover;\n border-radius: 5px;\n height: 100%;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${posterBGColor};\n\n svg {\n transform: scale(1.5) translateY(-3px);\n }\n `}\n `}\n`\n\nexport const ClearPosterButton = styled(Button)`\n grid-area: clear;\n justify-self: center;\n transform: translateY(-50%);\n position: absolute;\n ${({ showbutton }) => !showbutton && 'display: none'};\n\n @media (max-width: 540px) {\n transform: translateY(-140%);\n }\n`\n\nexport const PosterLanguageSwitch = styled.div`\n ${({\n showbutton,\n theme: {\n addDialog: { languageSwitchBGColor, languageSwitchFontColor },\n },\n }) => css`\n grid-area: poster;\n z-index: 5;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 30px;\n height: 30px;\n background: ${languageSwitchBGColor};\n border-radius: 50%;\n display: grid;\n place-items: center;\n color: ${languageSwitchFontColor};\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s;\n\n ${!showbutton && 'display: none'};\n\n :hover {\n filter: brightness(1.1);\n }\n `}\n`\n\nexport const StyledPWAAddButton = styled.div`\n border: 2px solid white;\n border-radius: 50%;\n height: 45px;\n width: 45px;\n position: relative;\n\n :before,\n :after {\n content: '';\n background: white;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n :before {\n width: 2px;\n height: 25px;\n }\n :after {\n width: 25px;\n height: 2px;\n }\n`\n","import { useTranslation } from 'react-i18next'\nimport { rgba } from 'polished'\nimport { NoImageIcon } from 'icons'\nimport { IconButton, InputAdornment, TextField, useTheme } from '@material-ui/core'\nimport { HighlightOff as HighlightOffIcon } from '@material-ui/icons'\n\nimport {\n ClearPosterButton,\n PosterLanguageSwitch,\n RightSide,\n Poster,\n PosterSuggestions,\n PosterSuggestionsItem,\n PosterWrapper,\n RightSideContainer,\n} from './style'\nimport { checkImageURL } from './helpers'\n\nexport default function RightSideComponent({\n setTitle,\n setPosterUrl,\n setIsPosterUrlCorrect,\n setIsUserInteractedWithPoster,\n setPosterList,\n isTorrentSourceCorrect,\n isHashAlreadyExists,\n title,\n parsedTitle,\n posterUrl,\n isPosterUrlCorrect,\n posterList,\n currentLang,\n posterSearchLanguage,\n setPosterSearchLanguage,\n posterSearch,\n removePoster,\n torrentSource,\n originalTorrentTitle,\n updateTitleFromSource,\n isCustomTitleEnabled,\n setIsCustomTitleEnabled,\n isEditMode,\n}) {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n const handleTitleChange = ({ target: { value } }) => setTitle(value)\n const handlePosterUrlChange = ({ target: { value } }) => {\n setPosterUrl(value)\n checkImageURL(value).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(!!value)\n setPosterList()\n }\n const userChangesPosterUrl = url => {\n setPosterUrl(url)\n checkImageURL(url).then(setIsPosterUrlCorrect)\n setIsUserInteractedWithPoster(true)\n }\n\n return (\n \n \n {originalTorrentTitle ? (\n <>\n \n setIsCustomTitleEnabled(true)}\n onBlur={({ target: { value } }) => !value && setIsCustomTitleEnabled(false)}\n value={title}\n margin='dense'\n label={t('AddDialog.CustomTorrentTitle')}\n type='text'\n fullWidth\n helperText={t('AddDialog.CustomTorrentTitleHelperText')}\n InputProps={{\n endAdornment: (\n \n {\n setTitle('')\n setIsCustomTitleEnabled(!isCustomTitleEnabled)\n updateTitleFromSource()\n setIsUserInteractedWithPoster(false)\n }}\n >\n \n \n \n ),\n }}\n />\n \n ) : (\n \n )}\n \n\n \n \n {isPosterUrlCorrect ? poster : }\n \n\n \n {posterList\n ?.filter(url => url !== posterUrl)\n .slice(0, 12)\n .map(url => (\n userChangesPosterUrl(url)} key={url}>\n poster\n \n ))}\n \n\n {currentLang !== 'en' && (\n {\n const newLanguage = posterSearchLanguage === 'en' ? 'ru' : 'en'\n setPosterSearchLanguage(newLanguage)\n posterSearch(isCustomTitleEnabled ? title : originalTorrentTitle ? parsedTitle : title, newLanguage, {\n shouldRefreshMainPoster: true,\n })\n }}\n showbutton={+isPosterUrlCorrect}\n color='primary'\n variant='contained'\n size='small'\n >\n {posterSearchLanguage === 'en' ? 'EN' : 'RU'}\n \n )}\n\n {\n removePoster()\n setIsUserInteractedWithPoster(true)\n }}\n color='primary'\n variant='contained'\n size='small'\n >\n {t('Clear')}\n \n \n \n\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { useDropzone } from 'react-dropzone'\nimport { AddItemIcon, TorrentIcon } from 'icons'\nimport TextField from '@material-ui/core/TextField'\nimport { Cancel as CancelIcon } from '@material-ui/icons'\nimport { useState } from 'react'\n\nimport {\n CancelIconWrapper,\n IconWrapper,\n LeftSide,\n LeftSideBottomSectionFileSelected,\n LeftSideBottomSectionNoFile,\n LeftSideTopSection,\n TorrentIconWrapper,\n} from './style'\n\nexport default function LeftSideComponent({\n setIsUserInteractedWithPoster,\n setSelectedFile,\n torrentSource,\n setTorrentSource,\n selectedFile,\n}) {\n const { t } = useTranslation()\n\n const handleCapture = files => {\n const [file] = files\n if (!file) return\n\n setIsUserInteractedWithPoster(false)\n setSelectedFile(file)\n setTorrentSource(file.name)\n }\n\n const clearSelectedFile = () => {\n setSelectedFile()\n setTorrentSource('')\n }\n\n const [isTorrentSourceActive, setIsTorrentSourceActive] = useState(false)\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop: handleCapture, accept: '.torrent' })\n\n const handleTorrentSourceChange = ({ target: { value } }) => setTorrentSource(value)\n\n return (\n \n \n setIsTorrentSourceActive(true)}\n onBlur={() => setIsTorrentSourceActive(false)}\n inputProps={{ autoComplete: 'off' }}\n disabled={!!selectedFile}\n />\n \n\n {selectedFile ? (\n \n \n \n\n \n \n \n \n \n ) : (\n \n \n
{t('AddDialog.AppendFile.Or')}
\n\n \n \n
{t('AddDialog.AppendFile.ClickOrDrag')}
\n
\n
\n )}\n
\n )\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport { torrentsHost, torrentUploadHost } from 'utils/Hosts'\nimport axios from 'axios'\nimport { useTranslation } from 'react-i18next'\nimport debounce from 'lodash/debounce'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { useMediaQuery } from '@material-ui/core'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport usePreviousState from 'utils/usePreviousState'\nimport { useQuery } from 'react-query'\nimport { getTorrents } from 'utils/Utils'\nimport parseTorrent from 'parse-torrent'\nimport { ButtonWrapper } from 'style/DialogStyles'\nimport { StyledDialog, StyledHeader } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nimport { checkImageURL, getMoviePosters, checkTorrentSource, parseTorrentTitle } from './helpers'\nimport { Content } from './style'\nimport RightSideComponent from './RightSideComponent'\nimport LeftSideComponent from './LeftSideComponent'\n\nexport default function AddDialog({\n handleClose,\n hash: originalHash,\n title: originalTitle,\n name: originalName,\n poster: originalPoster,\n}) {\n const { t } = useTranslation()\n const isEditMode = !!originalHash\n const [torrentSource, setTorrentSource] = useState(originalHash || '')\n const [title, setTitle] = useState(originalTitle || '')\n const [originalTorrentTitle, setOriginalTorrentTitle] = useState('')\n const [parsedTitle, setParsedTitle] = useState('')\n const [posterUrl, setPosterUrl] = useState(originalPoster || '')\n const [isPosterUrlCorrect, setIsPosterUrlCorrect] = useState(false)\n const [isTorrentSourceCorrect, setIsTorrentSourceCorrect] = useState(false)\n const [isHashAlreadyExists, setIsHashAlreadyExists] = useState(false)\n const [posterList, setPosterList] = useState()\n const [isUserInteractedWithPoster, setIsUserInteractedWithPoster] = useState(isEditMode)\n const [currentLang] = useChangeLanguage()\n const [selectedFile, setSelectedFile] = useState()\n const [posterSearchLanguage, setPosterSearchLanguage] = useState(currentLang === 'ru' ? 'ru' : 'en')\n const [isSaving, setIsSaving] = useState(false)\n const [skipDebounce, setSkipDebounce] = useState(false)\n const [isCustomTitleEnabled, setIsCustomTitleEnabled] = useState(false)\n const [currentSourceHash, setCurrentSourceHash] = useState()\n\n const ref = useOnStandaloneAppOutsideClick(handleClose)\n\n const { data: torrents } = useQuery('torrents', getTorrents, { retry: 1, refetchInterval: 1000 })\n\n useEffect(() => {\n // getting hash from added torrent source\n parseTorrent.remote(selectedFile || torrentSource, (_, { infoHash } = {}) => setCurrentSourceHash(infoHash))\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n // checking if torrent already exists in DB\n if (!setCurrentSourceHash) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n setIsHashAlreadyExists(allHashes.includes(currentSourceHash))\n }, [currentSourceHash, torrents])\n\n useEffect(() => {\n // closing dialog when torrent successfully added in DB\n if (!isSaving) return\n\n const allHashes = torrents.map(({ hash }) => hash)\n allHashes.includes(currentSourceHash) && handleClose()\n // FIXME! check api reply on add links\n const linkRegex = /^(http(s?)):\\/\\/.*/i\n torrentSource.match(linkRegex) !== null && handleClose()\n }, [isSaving, torrents, torrentSource, currentSourceHash, handleClose])\n\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n\n const updateTitleFromSource = useCallback(() => {\n parseTorrentTitle(selectedFile || torrentSource, ({ parsedTitle, originalName }) => {\n if (!originalName) return\n\n setSkipDebounce(true)\n setTitle('')\n setIsCustomTitleEnabled(false)\n setOriginalTorrentTitle(originalName)\n setParsedTitle(parsedTitle)\n })\n }, [selectedFile, torrentSource])\n\n useEffect(() => {\n if (!selectedFile && !torrentSource) {\n setTitle('')\n setOriginalTorrentTitle('')\n setParsedTitle('')\n setIsCustomTitleEnabled(false)\n setPosterList()\n removePoster()\n setIsUserInteractedWithPoster(false)\n }\n }, [selectedFile, torrentSource])\n\n const removePoster = () => {\n setIsPosterUrlCorrect(false)\n setPosterUrl('')\n }\n\n useEffect(() => {\n if (originalHash) {\n checkImageURL(posterUrl).then(correctImage => {\n correctImage ? setIsPosterUrlCorrect(true) : removePoster()\n })\n }\n // This is needed only on mount. Do not remove line below\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const posterSearch = useMemo(\n () =>\n (movieName, language, { shouldRefreshMainPoster = false } = {}) => {\n if (!movieName) {\n setPosterList()\n removePoster()\n return\n }\n\n getMoviePosters(movieName, language).then(urlList => {\n if (urlList) {\n setPosterList(urlList)\n if (!shouldRefreshMainPoster && isUserInteractedWithPoster) return\n\n const [firstPoster] = urlList\n checkImageURL(firstPoster).then(correctImage => {\n if (correctImage) {\n setIsPosterUrlCorrect(true)\n setPosterUrl(firstPoster)\n } else removePoster()\n })\n } else {\n setPosterList()\n if (isUserInteractedWithPoster) return\n\n removePoster()\n }\n })\n },\n [isUserInteractedWithPoster],\n )\n\n const delayedPosterSearch = useMemo(() => debounce(posterSearch, 700), [posterSearch])\n\n const prevTorrentSourceState = usePreviousState(torrentSource)\n\n useEffect(() => {\n const isCorrectSource = checkTorrentSource(torrentSource)\n if (!isCorrectSource) return setIsTorrentSourceCorrect(false)\n\n setIsTorrentSourceCorrect(true)\n\n // if torrentSource is updated then we are getting title from the source\n const torrentSourceChanged = torrentSource !== prevTorrentSourceState\n if (!torrentSourceChanged) return\n\n updateTitleFromSource()\n }, [prevTorrentSourceState, selectedFile, torrentSource, updateTitleFromSource])\n\n const prevTitleState = usePreviousState(title)\n\n useEffect(() => {\n // if title exists and title was changed then search poster.\n const titleChanged = title !== prevTitleState\n if (!titleChanged && !parsedTitle) return\n\n if (skipDebounce) {\n posterSearch(title || parsedTitle, posterSearchLanguage)\n setSkipDebounce(false)\n } else if (!title) {\n delayedPosterSearch.cancel()\n\n if (parsedTitle) {\n posterSearch(parsedTitle, posterSearchLanguage)\n } else {\n !isUserInteractedWithPoster && removePoster()\n }\n } else {\n delayedPosterSearch(title, posterSearchLanguage)\n }\n }, [\n title,\n parsedTitle,\n prevTitleState,\n delayedPosterSearch,\n posterSearch,\n posterSearchLanguage,\n skipDebounce,\n isUserInteractedWithPoster,\n ])\n\n const handleSave = () => {\n setIsSaving(true)\n\n if (isEditMode) {\n axios\n .post(torrentsHost(), {\n action: 'set',\n hash: originalHash,\n title: title || originalName,\n poster: posterUrl,\n })\n .finally(handleClose)\n } else if (selectedFile) {\n // file save\n const data = new FormData()\n data.append('save', 'true')\n data.append('file', selectedFile)\n title && data.append('title', title)\n posterUrl && data.append('poster', posterUrl)\n axios.post(torrentUploadHost(), data).catch(handleClose)\n } else {\n // link save\n axios\n .post(torrentsHost(), { action: 'add', link: torrentSource, title, poster: posterUrl, save_to_db: true })\n .catch(handleClose)\n }\n }\n\n return (\n \n {t(isEditMode ? 'EditTorrent' : 'AddNewTorrent')}\n\n \n {!isEditMode && (\n \n )}\n\n \n \n\n \n \n\n \n {isSaving ? : t(isEditMode ? 'Save' : 'Add')}\n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const TorrentCard = styled.div`\n ${({\n theme: {\n torrentCard: { cardPrimaryColor },\n },\n }) => css`\n border-radius: 5px;\n display: grid;\n grid-template-columns: 120px 260px 1fr;\n grid-template-rows: 180px;\n grid-template-areas: 'poster description buttons';\n gap: 10px;\n padding: 10px;\n background: ${cardPrimaryColor};\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-areas:\n 'poster description'\n 'buttons buttons';\n\n grid-template-columns: 70px 1fr;\n grid-template-rows: 110px max-content;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 60px 1fr;\n grid-template-rows: 90px max-content;\n }\n `}\n`\n\nexport const TorrentCardPoster = styled.div`\n grid-area: poster;\n border-radius: 5px;\n overflow: hidden;\n text-align: center;\n cursor: pointer;\n transition: 0.2s;\n position: relative;\n\n :hover {\n filter: brightness(0.7);\n }\n\n ${({\n isPoster,\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) =>\n isPoster\n ? css`\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 5px;\n }\n `\n : css`\n display: grid;\n place-items: center;\n background: ${cardSecondaryColor};\n border: 1px solid ${accentCardColor};\n\n svg {\n transform: translateY(-3px);\n }\n `};\n\n @media (max-width: 1260px), (max-height: 500px) {\n svg {\n width: 50%;\n }\n }\n`\n\nexport const TorrentCardButtons = styled.div`\n grid-area: buttons;\n display: grid;\n gap: 10px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media (max-width: 340px) {\n gap: 5px;\n }\n`\nexport const TorrentCardDescription = styled.div`\n ${({\n theme: {\n torrentCard: { cardSecondaryColor, accentCardColor },\n },\n }) => css`\n grid-area: description;\n background: ${cardSecondaryColor};\n border-radius: 5px;\n padding: 5px;\n display: grid;\n grid-template-rows: 55% 1fr;\n gap: 10px;\n\n @media (max-width: 770px) {\n grid-template-rows: 60% 1fr;\n gap: 3px;\n }\n\n .description-title-wrapper {\n display: flex;\n flex-direction: column;\n }\n\n .description-section-name {\n text-transform: uppercase;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.4px;\n color: ${accentCardColor};\n\n @media (max-width: 770px) {\n font-size: 0.4rem;\n }\n }\n\n .description-torrent-title {\n overflow: auto;\n word-break: break-all;\n }\n\n .description-statistics-wrapper {\n display: grid;\n grid-template-columns: 80px 80px 1fr;\n align-self: end;\n\n @media (max-width: 1260px), (max-height: 500px) {\n grid-template-columns: 70px 70px 1fr;\n }\n\n @media (max-width: 770px) {\n grid-template-columns: 65px 65px 1fr;\n }\n\n @media (max-width: 700px) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .description-statistics-element-wrapper {\n }\n\n .description-statistics-element-value {\n margin-left: 5px;\n margin-bottom: 10px;\n word-break: break-all;\n\n @media (max-width: 1260px), (max-height: 500px) {\n font-size: 0.7rem;\n margin-bottom: 0;\n margin-left: 0;\n }\n }\n\n .description-torrent-title,\n .description-statistics-element-value {\n @media (max-width: 770px) {\n font-size: 0.6rem;\n }\n\n @media (max-width: 410px) {\n font-size: 10px;\n }\n }\n `}\n`\n\nexport const StyledButton = styled.button`\n ${({\n theme: {\n torrentCard: { buttonBGColor, accentCardColor },\n },\n }) => css`\n border-radius: 5px;\n border: none;\n cursor: pointer;\n transition: 0.2s;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n background: ${buttonBGColor};\n color: #fff;\n font-size: 0.9rem;\n letter-spacing: 0.009em;\n padding: 0 12px;\n svg {\n width: 20px;\n }\n\n :hover {\n background: ${accentCardColor};\n }\n\n > :first-child {\n margin-right: 10px;\n }\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 7px 10px;\n justify-content: center;\n font-size: 0.8rem;\n\n svg {\n display: none;\n }\n }\n\n @media (max-width: 770px) {\n font-size: 0.7rem;\n }\n\n @media (max-width: 420px) {\n font-size: 0.6rem;\n padding: 7px 5px;\n }\n `}\n`\n","import { forwardRef, memo, useState } from 'react'\nimport {\n UnfoldMore as UnfoldMoreIcon,\n PlayArrow as PlayArrowIcon,\n Close as CloseIcon,\n Delete as DeleteIcon,\n} from '@material-ui/icons'\nimport { getPeerString, humanizeSize, humanizeSpeed, removeRedundantCharacters } from 'utils/Utils'\nimport { playlistTorrHost, torrentsHost } from 'utils/Hosts'\nimport { NoImageIcon } from 'icons'\nimport DialogTorrentDetailsContent from 'components/DialogTorrentDetailsContent'\nimport Dialog from '@material-ui/core/Dialog'\nimport Slide from '@material-ui/core/Slide'\nimport { Button, DialogActions, DialogTitle, useMediaQuery, useTheme } from '@material-ui/core'\nimport axios from 'axios'\nimport ptt from 'parse-torrent-title'\nimport { useTranslation } from 'react-i18next'\nimport AddDialog from 'components/Add/AddDialog'\nimport { StyledDialog } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nimport { StyledButton, TorrentCard, TorrentCardButtons, TorrentCardDescription, TorrentCardPoster } from './style'\n\nconst Transition = forwardRef((props, ref) => )\n\nconst Torrent = ({ torrent }) => {\n const { t } = useTranslation()\n const [isDetailedInfoOpened, setIsDetailedInfoOpened] = useState(false)\n const [isDeleteTorrentOpened, setIsDeleteTorrentOpened] = useState(false)\n\n const theme = useTheme()\n const fullScreen = useMediaQuery(theme.breakpoints.down('md'))\n\n const openDetailedInfo = () => setIsDetailedInfoOpened(true)\n const closeDetailedInfo = () => setIsDetailedInfoOpened(false)\n const openDeleteTorrentAlert = () => setIsDeleteTorrentOpened(true)\n const closeDeleteTorrentAlert = () => setIsDeleteTorrentOpened(false)\n\n const { title, name, poster, torrent_size: torrentSize, download_speed: downloadSpeed, hash } = torrent\n\n const dropTorrent = () => axios.post(torrentsHost(), { action: 'drop', hash })\n const deleteTorrent = () => axios.post(torrentsHost(), { action: 'rem', hash })\n\n const getParsedTitle = () => {\n const parse = key => ptt.parse(title || '')?.[key] || ptt.parse(name || '')?.[key]\n\n const titleStrings = []\n\n let parsedTitle = removeRedundantCharacters(parse('title'))\n const parsedYear = parse('year')\n const parsedResolution = parse('resolution')\n if (parsedTitle) titleStrings.push(parsedTitle)\n if (parsedYear) titleStrings.push(`(${parsedYear})`)\n if (parsedResolution) titleStrings.push(`[${parsedResolution}]`)\n parsedTitle = titleStrings.join(' ')\n return { parsedTitle }\n }\n const { parsedTitle } = getParsedTitle()\n\n const [isEditDialogOpen, setIsEditDialogOpen] = useState(false)\n const handleClickOpenEditDialog = () => setIsEditDialogOpen(true)\n const handleCloseEditDialog = () => setIsEditDialogOpen(false)\n\n const fullPlaylistLink = `${playlistTorrHost()}/${encodeURIComponent(parsedTitle || 'file')}.m3u?link=${hash}&m3u`\n\n const detailedInfoDialogRef = useOnStandaloneAppOutsideClick(closeDetailedInfo)\n\n return (\n <>\n \n \n {poster ? poster : }\n \n\n \n \n \n {t('Details')}\n \n\n {\n window.open(fullPlaylistLink, '_blank')\n }}\n >\n \n {t('Playlist')}\n \n\n dropTorrent(torrent)}>\n \n {t('Drop')}\n \n\n \n \n {t('Delete')}\n \n \n\n \n
\n
{t('Name')}
\n
{parsedTitle}
\n
\n\n
\n
\n
{t('Size')}
\n
{torrentSize > 0 && humanizeSize(torrentSize)}
\n
\n\n
\n
{t('Speed')}
\n
\n {downloadSpeed > 0 ? humanizeSpeed(downloadSpeed) : '---'}\n
\n
\n\n
\n
{t('Peers')}
\n
{getPeerString(torrent) || '---'}
\n
\n
\n
\n
\n\n \n \n
\n\n \n {t('DeleteTorrent?')}\n \n \n\n {\n deleteTorrent(torrent)\n closeDeleteTorrentAlert()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n\n {isEditDialogOpen && (\n \n )}\n \n )\n}\n\nexport default memo(Torrent)\n","import { IconButton } from '@material-ui/core'\nimport { rgba } from 'polished'\nimport { standaloneMedia } from 'style/standaloneMedia'\nimport styled, { css } from 'styled-components'\n\nimport { pwaFooterHeight } from './PWAFooter/style'\n\nexport const AppWrapper = styled.div`\n ${({\n theme: {\n app: { appSecondaryColor },\n },\n }) => css`\n height: 100%;\n background: ${rgba(appSecondaryColor, 0.8)};\n display: grid;\n grid-template-columns: 60px 1fr;\n grid-template-rows: 60px 1fr;\n grid-template-areas:\n 'head head'\n 'side content';\n\n ${standaloneMedia(css`\n grid-template-columns: 0 1fr;\n grid-template-rows: ${pwaFooterHeight}px 1fr ${pwaFooterHeight}px;\n height: 100vh;\n `)}\n `}\n`\n\nexport const CenteredGrid = styled.div`\n display: grid;\n place-items: center;\n\n ${standaloneMedia(css`\n height: 100vh;\n width: 100vw;\n `)}\n`\n\nexport const AppHeader = styled.div`\n ${({ theme: { primary } }) => css`\n background: ${primary};\n color: #fff;\n grid-area: head;\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n grid-template-columns: repeat(2, max-content) 1fr;\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n padding: 0 16px;\n z-index: 3;\n\n ${standaloneMedia(css`\n grid-template-columns: max-content 1fr;\n align-items: end;\n padding: 7px 16px;\n position: fixed;\n width: 100%;\n height: ${pwaFooterHeight}px;\n `)}\n `}\n`\nexport const AppSidebarStyle = styled.div`\n ${({\n isDrawerOpen,\n theme: {\n app: { appSecondaryColor, sidebarBGColor, sidebarFillColor },\n },\n }) => css`\n grid-area: side;\n width: ${isDrawerOpen ? '400%' : '100%'};\n z-index: 2;\n overflow-x: hidden;\n transition: width 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms;\n border-right: 1px solid ${rgba(appSecondaryColor, 0.12)};\n background: ${sidebarBGColor};\n color: ${sidebarFillColor};\n white-space: nowrap;\n\n svg {\n fill: ${sidebarFillColor};\n }\n\n ${standaloneMedia(css`\n display: none;\n `)}\n `}\n`\nexport const TorrentListWrapper = styled.div`\n grid-area: content;\n padding: 20px;\n overflow: auto;\n\n display: grid;\n place-content: start;\n grid-template-columns: repeat(auto-fit, minmax(max-content, 570px));\n gap: 20px;\n\n @media (max-width: 1260px), (max-height: 500px) {\n padding: 10px;\n gap: 15px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 1100px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 700px) {\n grid-template-columns: 1fr;\n }\n\n ${standaloneMedia(css`\n height: calc(100vh - ${pwaFooterHeight}px);\n padding-bottom: 105px;\n `)}\n`\n\nexport const HeaderToggle = styled.div`\n ${({\n theme: {\n app: { headerToggleColor },\n },\n }) => css`\n cursor: pointer;\n border-radius: 50%;\n background: ${headerToggleColor};\n height: 35px;\n width: 35px;\n transition: all 0.2s;\n font-weight: 600;\n display: grid;\n place-items: center;\n color: #fff;\n\n :hover {\n background: ${rgba(headerToggleColor, 0.7)};\n }\n\n @media (max-width: 700px) {\n height: 28px;\n width: 28px;\n font-size: 12px;\n\n svg {\n width: 17px;\n }\n }\n `}\n`\n\nexport const StyledIconButton = styled(IconButton)`\n margin-right: 6px;\n\n ${standaloneMedia(css`\n display: none;\n `)}\n`\n","import styled, { css } from 'styled-components'\n\nexport default styled.div`\n ${({\n isButton,\n theme: {\n addDialog: { notificationSuccessBGColor, languageSwitchBGColor },\n },\n }) => css`\n display: grid;\n place-items: center;\n padding: 20px 40px;\n border-radius: 5px;\n\n ${isButton &&\n css`\n background: ${notificationSuccessBGColor};\n transition: 0.2s;\n cursor: pointer;\n\n :hover {\n background: ${languageSwitchBGColor};\n }\n `}\n\n lord-icon {\n width: 200px;\n height: 200px;\n }\n\n .icon-label {\n font-size: 20px;\n }\n `}\n`\n","import { useTheme } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nimport IconWrapper from './style'\n\nexport default function NoServerConnection() {\n const { t } = useTranslation()\n const primary = useTheme().palette.primary.main\n\n return (\n \n \n
{t('Offline')}
\n
\n )\n}\n","import { useTheme } from '@material-ui/core'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport AddDialog from '../Add/AddDialog'\nimport IconWrapper from './style'\n\nexport default function AddFirstTorrent() {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n const primary = useTheme().palette.primary.main\n\n return (\n <>\n handleClickOpen(true)} isButton>\n \n
{t('NoTorrentsAdded')}
\n
\n\n {isDialogOpen && }\n \n )\n}\n","import TorrentCard from 'components/TorrentCard'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { TorrentListWrapper, CenteredGrid } from 'components/App/style'\n\nimport NoServerConnection from './NoServerConnection'\nimport AddFirstTorrent from './AddFirstTorrent'\n\nexport default function TorrentList({ isOffline, isLoading, torrents }) {\n if (isLoading || isOffline || !torrents.length) {\n return (\n \n {isOffline ? (\n \n ) : isLoading ? (\n \n ) : (\n !torrents.length && \n )}\n \n )\n }\n\n return (\n \n {torrents.map(torrent => (\n \n ))}\n \n )\n}\n","import ListItem from '@material-ui/core/ListItem'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport List from '@material-ui/core/List'\nimport ButtonGroup from '@material-ui/core/ButtonGroup'\nimport Button from '@material-ui/core/Button'\nimport { useTranslation } from 'react-i18next'\nimport { StyledDialog } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nconst donateFrame =\n ''\n\nexport default function DonateDialog({ onClose }) {\n const { t } = useTranslation()\n const ref = useOnStandaloneAppOutsideClick(onClose)\n\n return (\n \n {t('Donate')}\n \n \n \n \n \n \n \n \n \n \n \n {/* eslint-disable-next-line react/no-danger */}\n
\n \n \n \n \n \n \n \n )\n}\n","import { useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport Snackbar from '@material-ui/core/Snackbar'\nimport IconButton from '@material-ui/core/IconButton'\nimport CreditCardIcon from '@material-ui/icons/CreditCard'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useTranslation } from 'react-i18next'\nimport styled from 'styled-components'\nimport { standaloneMedia } from 'style/standaloneMedia'\n\nimport DonateDialog from './DonateDialog'\n\nconst StyledSnackbar = styled(Snackbar)`\n ${standaloneMedia('margin-bottom: 90px')};\n`\n\nexport default function DonateSnackbar() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [snackbarOpen, setSnackbarOpen] = useState(true)\n\n const disableSnackbar = () => {\n setSnackbarOpen(false)\n localStorage.setItem('snackbarIsClosed', true)\n }\n\n return (\n <>\n {open && setOpen(false)} />}\n\n \n {\n setOpen(true)\n disableSnackbar()\n }}\n >\n \n {t('Support')}\n \n\n \n \n \n \n }\n />\n \n )\n}\n","import { createGlobalStyle, css } from 'styled-components'\n\nimport { standaloneMedia } from './standaloneMedia'\n\nexport default createGlobalStyle`\n *,\n *::before,\n *::after { \n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n body { \n font-family: \"Open Sans\", sans-serif;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.1px;\n -webkit-tap-highlight-color: transparent;\n\n\n ${standaloneMedia(css`\n height: 100vh;\n `)}\n }\n\n button {\n font-family: \"Open Sans\", sans-serif;\n letter-spacing: -0.1px;\n }\n`\n","import { useState } from 'react'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport LibraryAddIcon from '@material-ui/icons/LibraryAdd'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useTranslation } from 'react-i18next'\nimport { StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport AddDialog from './AddDialog'\nimport { StyledPWAAddButton } from './style'\n\nexport default function AddDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n {isStandaloneApp ? (\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n \n\n {isDialogOpen && }\n
\n )\n}\n","import styled, { css } from 'styled-components'\nimport { mainColors } from 'style/colors'\nimport { StyledHeader } from 'style/CustomMaterialUiStyles'\n\nexport const cacheBeforeReaderColor = '#b3dfc9'\nexport const cacheAfterReaderColor = mainColors.light.primary\n\nexport const SettingsHeader = styled(StyledHeader)`\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: space-between;\n\n @media (max-width: 340px) {\n grid-auto-flow: row;\n }\n`\n\nexport const FooterSection = styled.div`\n ${({\n theme: {\n settingsDialog: { footerBG },\n },\n }) => css`\n padding: 20px;\n display: grid;\n grid-auto-flow: column;\n justify-content: end;\n gap: 10px;\n align-items: center;\n background: ${footerBG};\n\n @media (max-width: 500px) {\n grid-auto-flow: row;\n justify-content: stretch;\n }\n `}\n`\nexport const Divider = styled.div`\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n margin: 30px 0;\n`\n\nexport const Content = styled.div`\n ${({\n isLoading,\n theme: {\n settingsDialog: { contentBG },\n },\n }) => css`\n background: ${contentBG};\n overflow: auto;\n flex: 1;\n\n ${isLoading &&\n css`\n min-height: 500px;\n display: grid;\n place-items: center;\n `}\n `}\n`\n\nexport const PreloadCacheValue = styled.div`\n ${({ color }) => css`\n display: grid;\n grid-template-columns: max-content 100px 1fr;\n gap: 10px;\n align-items: flex-start;\n\n :not(:last-child) {\n margin-bottom: 5px;\n }\n\n :before {\n content: '';\n background: ${color};\n width: 16px;\n height: 16px;\n border-radius: 50%;\n margin-top: 2px;\n }\n `}\n`\n\nexport const MainSettingsContent = styled.div`\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 40px;\n padding: 20px;\n\n @media (max-width: 930px) {\n grid-template-columns: 1fr;\n }\n`\nexport const SecondarySettingsContent = styled.div`\n padding: 20px;\n`\n\nexport const StorageButton = styled.div`\n ${({ small, selected }) => css`\n transition: 0.2s;\n cursor: default;\n text-align: center;\n\n ${!selected &&\n css`\n cursor: pointer;\n\n :hover {\n filter: brightness(0.8);\n }\n `}\n\n ${small\n ? css`\n display: grid;\n grid-template-columns: max-content 1fr;\n gap: 20px;\n align-items: center;\n justify-items: start;\n margin-bottom: 20px;\n `\n : css`\n display: grid;\n place-items: center;\n gap: 10px;\n `}\n `}\n`\n\nexport const StorageIconWrapper = styled.div`\n ${({ selected, small }) => css`\n width: ${small ? '60px' : '150px'};\n height: ${small ? '60px' : '150px'};\n border-radius: 50%;\n background: ${selected ? '#323637' : '#dee3e5'};\n\n svg {\n transform: rotate(-45deg) scale(0.75);\n }\n\n @media (max-width: 930px) {\n width: ${small ? '50px' : '90px'};\n height: ${small ? '50px' : '90px'};\n }\n `}\n`\n\nexport const CacheStorageSelector = styled.div`\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-template-areas: 'label label';\n place-items: center;\n\n @media (max-width: 930px) {\n justify-content: start;\n column-gap: 30px;\n }\n`\n\nexport const SettingSectionLabel = styled.div`\n font-size: 25px;\n padding-bottom: 20px;\n\n small {\n display: block;\n font-size: 11px;\n }\n`\n\nexport const PreloadCachePercentage = styled.div.attrs(({ value }) => ({\n // this block is here according to styled-components recomendation about fast changable components\n style: {\n background: `linear-gradient(to right, ${cacheBeforeReaderColor} 0%, ${cacheBeforeReaderColor} ${value}%, ${cacheAfterReaderColor} ${value}%, ${cacheAfterReaderColor} 100%)`,\n },\n}))`\n ${({ label, preloadCachePercentage }) => css`\n border: 1px solid #323637;\n padding: 10px 20px;\n border-radius: 5px;\n color: #000;\n margin-bottom: 10px;\n position: relative;\n\n :before {\n content: '${label}';\n display: grid;\n place-items: center;\n font-size: 20px;\n }\n\n :after {\n content: '';\n width: ${preloadCachePercentage}%;\n height: 100%;\n background: #323637;\n position: absolute;\n bottom: 0;\n left: 0;\n border-radius: 4px;\n filter: opacity(0.15);\n }\n `}\n`\n","export default {\n CacheSize: 64,\n ReaderReadAHead: 95,\n UseDisk: false,\n UploadRateLimit: 0,\n TorrentsSavePath: '',\n ConnectionsLimit: 25,\n DisableDHT: false,\n DisablePEX: false,\n DisableTCP: false,\n DisableUPNP: false,\n DisableUTP: false,\n DisableUpload: false,\n DownloadRateLimit: 0,\n EnableDebug: false,\n EnableIPv6: false,\n FriendlyName: '',\n ForceEncrypt: false,\n PeersListenPort: 0,\n PreloadCache: 50,\n RemoveCacheOnDrop: false,\n RetrackersMode: 1,\n TorrentDisconnectTimeout: 30,\n}\n","export const a11yProps = index => ({\n id: `full-width-tab-${index}`,\n 'aria-controls': `full-width-tabpanel-${index}`,\n})\n\nexport const TabPanel = ({ children, value, index, ...other }) => (\n \n)\n","import { Grid, OutlinedInput, Slider } from '@material-ui/core'\n\nexport default function SliderInput({\n isProMode,\n title,\n value,\n setValue,\n sliderMin,\n sliderMax,\n inputMin,\n inputMax,\n step = 1,\n onBlurCallback,\n}) {\n const onBlur = ({ target: { value } }) => {\n if (value < inputMin) return setValue(inputMin)\n if (value > inputMax) return setValue(inputMax)\n\n onBlurCallback && onBlurCallback(value)\n }\n\n const onInputChange = ({ target: { value } }) => setValue(value === '' ? '' : Number(value))\n const onSliderChange = (_, newValue) => setValue(newValue)\n\n return (\n <>\n
{title}
\n\n \n \n \n \n\n {isProMode && (\n \n \n \n )}\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { USBIcon, RAMIcon } from 'icons'\nimport { FormControlLabel, Switch } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\n\nimport {\n PreloadCacheValue,\n MainSettingsContent,\n StorageButton,\n StorageIconWrapper,\n CacheStorageSelector,\n SettingSectionLabel,\n PreloadCachePercentage,\n cacheBeforeReaderColor,\n cacheAfterReaderColor,\n} from './style'\nimport SliderInput from './SliderInput'\n\nconst CacheStorageLocationLabel = ({ style }) => {\n const { t } = useTranslation()\n\n return (\n \n {t('SettingsDialog.CacheStorageLocation')}\n {t('SettingsDialog.UseDiskDesc')}\n \n )\n}\n\nexport default function PrimarySettingsComponent({\n settings,\n inputForm,\n cachePercentage,\n preloadCachePercentage,\n cacheSize,\n isProMode,\n setCacheSize,\n setCachePercentage,\n setPreloadCachePercentage,\n updateSettings,\n}) {\n const { t } = useTranslation()\n const { UseDisk, TorrentsSavePath, RemoveCacheOnDrop } = settings || {}\n const preloadCacheSize = Math.round((cacheSize / 100) * preloadCachePercentage)\n\n return (\n \n
\n {t('SettingsDialog.CacheSettings')}\n\n \n\n \n
\n {100 - cachePercentage}% ({Math.round((cacheSize / 100) * (100 - cachePercentage))} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheBeforeReaderDesc')}
\n
\n\n \n
\n {cachePercentage}% ({Math.round((cacheSize / 100) * cachePercentage)} {t('MB')})\n
\n\n
{t('SettingsDialog.CacheAfterReaderDesc')}
\n
\n\n
\n\n setCacheSize(Math.round(value / 4) * 4)}\n />\n\n \n\n \n
\n\n {UseDisk ? (\n
\n \n\n
\n updateSettings({ UseDisk: false })}>\n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n \n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n\n \n }\n label={t('SettingsDialog.RemoveCacheOnDrop')}\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RemoveCacheOnDropDesc')}\n
\n
\n \n
\n ) : (\n \n \n\n \n \n \n \n\n
{t('SettingsDialog.RAM')}
\n
\n\n updateSettings({ UseDisk: true })}>\n \n \n \n\n
{t('SettingsDialog.Disk')}
\n
\n
\n )}\n
\n )\n}\n","import { useTranslation } from 'react-i18next'\nimport TextField from '@material-ui/core/TextField'\nimport { FormControlLabel, InputAdornment, InputLabel, Select, Switch } from '@material-ui/core'\n\nimport { SecondarySettingsContent, SettingSectionLabel } from './style'\n\nexport default function SecondarySettingsComponent({ settings, inputForm }) {\n const { t } = useTranslation()\n\n const {\n RetrackersMode,\n TorrentDisconnectTimeout,\n EnableDebug,\n EnableDLNA,\n EnableIPv6,\n FriendlyName,\n ForceEncrypt,\n DisableTCP,\n DisableUTP,\n DisableUPNP,\n DisableDHT,\n DisablePEX,\n DisableUpload,\n DownloadRateLimit,\n UploadRateLimit,\n ConnectionsLimit,\n PeersListenPort,\n } = settings || {}\n\n return (\n \n {t('SettingsDialog.AdditionalSettings')}\n\n }\n label='IPv6'\n labelPlacement='start'\n />\n }\n label='TCP (Transmission Control Protocol)'\n labelPlacement='start'\n />\n }\n label='μTP (Micro Transport Protocol)'\n labelPlacement='start'\n />\n }\n label='PEX (Peer Exchange)'\n labelPlacement='start'\n />\n }\n label={t('SettingsDialog.ForceEncrypt')}\n labelPlacement='start'\n />\n {t('Seconds')},\n }}\n value={TorrentDisconnectTimeout}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n
\n }\n label={t('SettingsDialog.DHT')}\n labelPlacement='start'\n />\n {t('Kilobytes')},\n }}\n value={DownloadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n }\n label={t('SettingsDialog.Upload')}\n labelPlacement='start'\n />\n {t('Kilobytes')},\n }}\n value={UploadRateLimit}\n type='number'\n variant='outlined'\n fullWidth\n />\n
\n \n }\n label='UPnP (Universal Plug and Play)'\n labelPlacement='start'\n />\n }\n label={t('SettingsDialog.DLNA')}\n labelPlacement='start'\n />\n \n }\n label={t('SettingsDialog.EnableDebug')}\n labelPlacement='start'\n />\n
\n {t('SettingsDialog.RetrackersMode')}\n \n \n \n \n \n \n
\n
\n )\n}\n","import { FormControlLabel, Switch } from '@material-ui/core'\nimport { useTranslation } from 'react-i18next'\n\nimport { SecondarySettingsContent, SettingSectionLabel } from './style'\n\nexport default function MobileAppSettings({ isVlcUsed, setIsVlcUsed }) {\n const { t } = useTranslation()\n\n return (\n \n {t('SettingsDialog.MobileAppSettings')}\n\n setIsVlcUsed(prev => !prev)} color='secondary' />}\n label={t('SettingsDialog.UseVLC')}\n labelPlacement='start'\n />\n \n )\n}\n","import axios from 'axios'\nimport Button from '@material-ui/core/Button'\nimport Checkbox from '@material-ui/core/Checkbox'\nimport { FormControlLabel, useMediaQuery, useTheme } from '@material-ui/core'\nimport { settingsHost } from 'utils/Hosts'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport AppBar from '@material-ui/core/AppBar'\nimport Tabs from '@material-ui/core/Tabs'\nimport Tab from '@material-ui/core/Tab'\nimport SwipeableViews from 'react-swipeable-views'\nimport CircularProgress from '@material-ui/core/CircularProgress'\nimport { StyledDialog } from 'style/CustomMaterialUiStyles'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport { SettingsHeader, FooterSection, Content } from './style'\nimport defaultSettings from './defaultSettings'\nimport { a11yProps, TabPanel } from './tabComponents'\nimport PrimarySettingsComponent from './PrimarySettingsComponent'\nimport SecondarySettingsComponent from './SecondarySettingsComponent'\nimport MobileAppSettings from './MobileAppSettings'\n\nexport default function SettingsDialog({ handleClose }) {\n const { t } = useTranslation()\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n const { direction } = useTheme()\n\n const [settings, setSettings] = useState()\n const [selectedTab, setSelectedTab] = useState(0)\n const [cacheSize, setCacheSize] = useState(32)\n const [cachePercentage, setCachePercentage] = useState(40)\n const [preloadCachePercentage, setPreloadCachePercentage] = useState(0)\n const [isProMode, setIsProMode] = useState(JSON.parse(localStorage.getItem('isProMode')) || false)\n const [isVlcUsed, setIsVlcUsed] = useState(JSON.parse(localStorage.getItem('isVlcUsed')) ?? false)\n\n useEffect(() => {\n axios.post(settingsHost(), { action: 'get' }).then(({ data }) => {\n setSettings({ ...data, CacheSize: data.CacheSize / (1024 * 1024) })\n })\n }, [])\n\n const ref = useOnStandaloneAppOutsideClick(handleClose)\n\n const handleSave = () => {\n handleClose()\n const sets = JSON.parse(JSON.stringify(settings))\n sets.CacheSize = cacheSize * 1024 * 1024\n sets.ReaderReadAHead = cachePercentage\n sets.PreloadCache = preloadCachePercentage\n axios.post(settingsHost(), { action: 'set', sets })\n localStorage.setItem('isVlcUsed', isVlcUsed)\n }\n\n const inputForm = ({ target: { type, value, checked, id } }) => {\n const sets = JSON.parse(JSON.stringify(settings))\n\n if (type === 'number' || type === 'select-one') {\n sets[id] = Number(value)\n } else if (type === 'checkbox') {\n if (\n id === 'DisableTCP' ||\n id === 'DisableUTP' ||\n id === 'DisableUPNP' ||\n id === 'DisableDHT' ||\n id === 'DisablePEX' ||\n id === 'DisableUpload'\n )\n sets[id] = Boolean(!checked)\n else sets[id] = Boolean(checked)\n } else if (type === 'url' || type === 'text') {\n sets[id] = value\n }\n setSettings(sets)\n }\n\n const { CacheSize, ReaderReadAHead, PreloadCache } = settings || {}\n\n useEffect(() => {\n if (isNaN(CacheSize) || isNaN(ReaderReadAHead) || isNaN(PreloadCache)) return\n\n setCacheSize(CacheSize)\n setCachePercentage(ReaderReadAHead)\n setPreloadCachePercentage(PreloadCache)\n }, [CacheSize, ReaderReadAHead, PreloadCache])\n\n const updateSettings = newProps => setSettings({ ...settings, ...newProps })\n const handleChange = (_, newValue) => setSelectedTab(newValue)\n const handleChangeIndex = index => setSelectedTab(index)\n\n return (\n \n \n
{t('SettingsDialog.Settings')}
\n {\n setIsProMode(checked)\n localStorage.setItem('isProMode', checked)\n if (!checked) setSelectedTab(0)\n }}\n style={{ color: 'white' }}\n />\n }\n label={t('SettingsDialog.ProMode')}\n />\n
\n\n \n \n \n\n \n
{t('SettingsDialog.Tabs.Additional')}
\n {!isProMode &&
{t('SettingsDialog.Tabs.AdditionalDisabled')}
}\n \n }\n {...a11yProps(1)}\n />\n\n {isStandaloneApp && }\n \n
\n\n \n {settings ? (\n <>\n \n \n \n \n\n \n \n \n\n {isStandaloneApp && (\n \n \n \n )}\n \n \n ) : (\n \n )}\n \n\n \n \n\n {\n setCacheSize(defaultSettings.CacheSize)\n setCachePercentage(defaultSettings.ReaderReadAHead)\n setPreloadCachePercentage(defaultSettings.PreloadCache)\n updateSettings(defaultSettings)\n }}\n color='secondary'\n variant='outlined'\n >\n {t('SettingsDialog.ResetToDefault')}\n \n\n \n \n
\n )\n}\n","import ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useState } from 'react'\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport { useTranslation } from 'react-i18next'\nimport { StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { isStandaloneApp } from 'utils/Utils'\n\nimport SettingsDialog from './SettingsDialog'\n\nexport default function SettingsDialogButton({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n\n const handleClickOpen = () => setIsDialogOpen(true)\n const handleClose = () => setIsDialogOpen(false)\n\n return (\n
\n \n {isStandaloneApp ? (\n <>\n \n
{t('SettingsDialog.Settings')}
\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n
\n\n {isDialogOpen && }\n
\n )\n}\n","import { Button, Dialog, DialogActions, DialogTitle } from '@material-ui/core'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport DeleteIcon from '@material-ui/icons/Delete'\nimport { useState } from 'react'\nimport { torrentsHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\n\nconst fnRemoveAll = () => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'list' }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n .then(res => res.json())\n .then(json => {\n json.forEach(torr => {\n fetch(torrentsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'rem', hash: torr.hash }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n })\n })\n}\n\nexport default function RemoveAll({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n return (\n <>\n \n \n \n \n\n \n \n\n \n {t('DeleteTorrents?')}\n \n \n\n {\n fnRemoveAll()\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('OK')}\n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\nimport { standaloneMedia } from 'style/standaloneMedia'\n\nexport const DialogWrapper = styled.div`\n height: 100%;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n`\n\nexport const HeaderSection = styled.section`\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 36px;\n font-weight: 300;\n padding: 20px;\n\n img {\n width: 64px;\n }\n\n @media (max-width: 930px) {\n font-size: 24px;\n padding: 10px 20px;\n\n img {\n width: 60px;\n }\n }\n\n ${standaloneMedia(css`\n padding-top: 30px;\n `)}\n`\n\nexport const ThanksSection = styled.section`\n padding: 20px;\n text-align: center;\n font-size: 24px;\n font-weight: 300;\n background: #e8e5eb;\n color: #323637;\n\n @media (max-width: 930px) {\n font-size: 20px;\n padding: 30px 20px;\n }\n`\n\nexport const Section = styled.section`\n padding: 20px;\n\n > span {\n font-size: 22px;\n display: block;\n margin-bottom: 15px;\n }\n\n a {\n text-decoration: none;\n }\n\n > div {\n display: grid;\n gap: 10px;\n grid-template-columns: repeat(4, max-content);\n\n @media (max-width: 930px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media (max-width: 780px) {\n grid-template-columns: repeat(2, 1fr);\n }\n\n @media (max-width: 550px) {\n grid-template-columns: 1fr;\n }\n }\n`\n\nexport const FooterSection = styled.div`\n padding: 20px;\n display: flex;\n justify-content: flex-end;\n background: #e8e5eb;\n`\n\nexport const LinkWrapper = styled.a`\n ${({ isLink }) => css`\n display: inline-flex;\n align-items: center;\n justify-content: start;\n border: 1px solid;\n padding: 7px 10px;\n border-radius: 5px;\n text-transform: uppercase;\n text-decoration: none;\n background: #545a5e;\n color: #f1eff3;\n transition: 0.2s;\n\n > * {\n transition: 0.2s;\n }\n\n ${isLink\n ? css`\n :hover {\n filter: brightness(1.1);\n\n > * {\n transform: translateY(0px);\n }\n }\n `\n : css`\n cursor: default;\n `}\n `}\n`\n\nexport const LinkIcon = styled.div`\n display: grid;\n margin-right: 10px;\n`\n","import { GitHub as GitHubIcon } from '@material-ui/icons'\n\nimport { LinkWrapper, LinkIcon } from './style'\n\nexport default function LinkComponent({ name, link }) {\n return (\n \n {link && (\n \n \n \n )}\n\n
{name}
\n
\n )\n}\n","import axios from 'axios'\nimport { useEffect, useState } from 'react'\nimport Button from '@material-ui/core/Button'\nimport InfoIcon from '@material-ui/icons/Info'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { useTranslation } from 'react-i18next'\nimport { useMediaQuery } from '@material-ui/core'\nimport { echoHost } from 'utils/Hosts'\nimport { StyledDialog, StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { isStandaloneApp } from 'utils/Utils'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nimport LinkComponent from './LinkComponent'\nimport { DialogWrapper, HeaderSection, ThanksSection, Section, FooterSection } from './style'\n\nexport default function AboutDialog() {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n const fullScreen = useMediaQuery('@media (max-width:930px)')\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n const onClose = () => setOpen(false)\n const ref = useOnStandaloneAppOutsideClick(onClose)\n\n return (\n <>\n setOpen(true)}>\n {isStandaloneApp ? (\n <>\n \n
{t('Details')}
\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n
\n\n \n \n \n
{t('About')}
\n {torrServerVersion}\n ts-icon\n
\n\n
\n {t('ThanksToEveryone')}\n\n
\n {t('Links')}\n\n
\n \n \n
\n
\n\n
\n {t('SpecialThanks')}\n\n
\n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n \n )\n}\n","import { useState } from 'react'\nimport { Button, DialogActions, DialogTitle, ListItemIcon, ListItemText } from '@material-ui/core'\nimport { StyledDialog, StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport { PowerSettingsNew as PowerSettingsNewIcon } from '@material-ui/icons'\nimport { shutdownHost } from 'utils/Hosts'\nimport { useTranslation } from 'react-i18next'\nimport { isStandaloneApp } from 'utils/Utils'\nimport useOnStandaloneAppOutsideClick from 'utils/useOnStandaloneAppOutsideClick'\n\nexport default function CloseServer({ isOffline, isLoading }) {\n const { t } = useTranslation()\n const [open, setOpen] = useState(false)\n const closeDialog = () => setOpen(false)\n const openDialog = () => setOpen(true)\n\n const ref = useOnStandaloneAppOutsideClick(closeDialog)\n\n return (\n <>\n \n {isStandaloneApp ? (\n <>\n \n
{t('TurnOff')}
\n \n ) : (\n <>\n \n \n \n\n \n \n )}\n
\n\n \n {t('CloseServer?')}\n \n \n\n {\n fetch(shutdownHost())\n closeDialog()\n }}\n color='secondary'\n autoFocus\n >\n {t('TurnOff')}\n \n \n \n \n )\n}\n","import Divider from '@material-ui/core/Divider'\nimport ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport { CreditCard as CreditCardIcon } from '@material-ui/icons'\nimport List from '@material-ui/core/List'\nimport { useTranslation } from 'react-i18next'\nimport AddDialogButton from 'components/Add'\nimport SettingsDialog from 'components/Settings'\nimport RemoveAll from 'components/RemoveAll'\nimport AboutDialog from 'components/About'\nimport CloseServer from 'components/CloseServer'\nimport { memo } from 'react'\n\nimport { AppSidebarStyle } from './style'\n\nconst Sidebar = ({ isDrawerOpen, setIsDonationDialogOpen, isOffline, isLoading }) => {\n const { t } = useTranslation()\n\n return (\n \n \n \n\n \n \n\n \n\n \n \n\n \n\n setIsDonationDialogOpen(true)}>\n \n \n \n\n \n \n\n \n \n \n )\n}\n\nexport default memo(Sidebar)\n","import { CreditCard as CreditCardIcon } from '@material-ui/icons'\nimport { useTranslation } from 'react-i18next'\nimport CloseServer from 'components/CloseServer'\nimport { StyledMenuButtonWrapper } from 'style/CustomMaterialUiStyles'\nimport AddDialogButton from 'components/Add'\nimport AboutDialog from 'components/About'\nimport SettingsDialogButton from 'components/Settings'\n\nimport StyledPWAFooter from './style'\n\nexport default function PWAFooter({ setIsDonationDialogOpen, isOffline, isLoading }) {\n const { t } = useTranslation()\n\n return (\n \n \n\n setIsDonationDialogOpen(true)}>\n \n\n
{t('Donate')}
\n
\n\n \n\n \n\n \n
\n )\n}\n","export default function IOSShareIcon() {\n return (\n \n Svg Vector Icons : http://www.onlinewebfonts.com/icon \n \n \n \n \n )\n}\n","import styled, { css } from 'styled-components'\n\nexport const StyledWrapper = styled.div`\n ${({ isOpen }) => css`\n position: absolute;\n bottom: 10px;\n left: 50%;\n background: #eeeef0;\n width: calc(100% - 20px);\n z-index: 9999;\n border-radius: 10px;\n transition: all 0.3s;\n color: #000;\n\n ${isOpen\n ? css`\n opacity: 1;\n transform: translate(-50%, 0);\n `\n : css`\n transform: translate(-50%, 150%);\n opacity: 0;\n pointer-events: none;\n `}\n\n > :not(:last-child) {\n border-bottom: 1px solid #dadadc;\n }\n\n > * {\n padding: 20px;\n }\n `}\n`\n\nexport const StyledHeader = styled.div`\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: min-content 1fr;\n gap: 20px;\n align-items: center;\n font-weight: 700;\n\n img {\n border-radius: 5px;\n }\n`\n\nexport const StyledContent = styled.div`\n > :not(:last-child) {\n margin-bottom: 25px;\n }\n\n span {\n background: #fefcfd;\n padding: 5px;\n border-radius: 5px;\n }\n`\n","import IconButton from '@material-ui/core/IconButton'\nimport CloseIcon from '@material-ui/icons/Close'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport IOSShareIcon from './IOSShareIcon'\nimport { StyledWrapper, StyledHeader, StyledContent } from './style'\n\nexport function PWAInstallationGuide() {\n const pwaNotificationIsClosed = JSON.parse(localStorage.getItem('pwaNotificationIsClosed'))\n const [isOpen, setIsOpen] = useState(!pwaNotificationIsClosed)\n const [shouldBeOpened, setShouldBeOpened] = useState(!pwaNotificationIsClosed)\n\n const { t } = useTranslation()\n\n if (!isOpen) return null\n\n return (\n \n \n ts-icon\n\n {t('PWAGuide.Header')}\n\n {\n setShouldBeOpened(false)\n\n setTimeout(() => {\n setIsOpen(false)\n localStorage.setItem('pwaNotificationIsClosed', true)\n }, 300)\n }}\n >\n \n \n \n\n \n

{t('PWAGuide.Description')}

\n\n

{t('PWAGuide.VLC')}

\n\n

\n 1. {t('PWAGuide.FirstStep')} \n

\n\n

\n 2. {t('PWAGuide.SecondStep.Select')} {t('PWAGuide.SecondStep.AddToHomeScreen')}\n

\n
\n
\n )\n}\n","import CssBaseline from '@material-ui/core/CssBaseline'\nimport { createContext, useEffect, useState } from 'react'\nimport Typography from '@material-ui/core/Typography'\nimport {\n Menu as MenuIcon,\n Close as CloseIcon,\n Brightness4 as Brightness4Icon,\n Brightness5 as Brightness5Icon,\n BrightnessAuto as BrightnessAutoIcon,\n} from '@material-ui/icons'\nimport { echoHost } from 'utils/Hosts'\nimport Div100vh from 'react-div-100vh'\nimport axios from 'axios'\nimport TorrentList from 'components/TorrentList'\nimport DonateSnackbar from 'components/Donate'\nimport DonateDialog from 'components/Donate/DonateDialog'\nimport useChangeLanguage from 'utils/useChangeLanguage'\nimport { ThemeProvider as MuiThemeProvider } from '@material-ui/core/styles'\nimport { ThemeProvider as StyledComponentsThemeProvider } from 'styled-components'\nimport { useQuery } from 'react-query'\nimport { getTorrents, isStandaloneApp } from 'utils/Utils'\nimport GlobalStyle from 'style/GlobalStyle'\nimport { lightTheme, THEME_MODES, useMaterialUITheme } from 'style/materialUISetup'\nimport getStyledComponentsTheme from 'style/getStyledComponentsTheme'\nimport checkIsIOS from 'utils/checkIsIOS'\n\nimport { AppWrapper, AppHeader, HeaderToggle, StyledIconButton } from './style'\nimport Sidebar from './Sidebar'\nimport PWAFooter from './PWAFooter'\nimport { PWAInstallationGuide } from './PWAInstallationGuide'\n\nconst snackbarIsClosed = JSON.parse(localStorage.getItem('snackbarIsClosed'))\n\nexport const DarkModeContext = createContext()\n\nexport default function App() {\n const [isDrawerOpen, setIsDrawerOpen] = useState(false)\n const [isDonationDialogOpen, setIsDonationDialogOpen] = useState(false)\n const [torrServerVersion, setTorrServerVersion] = useState('')\n\n const [isDarkMode, currentThemeMode, updateThemeMode, muiTheme] = useMaterialUITheme()\n const [currentLang, changeLang] = useChangeLanguage()\n const [isOffline, setIsOffline] = useState(false)\n const { data: torrents, isLoading } = useQuery('torrents', getTorrents, {\n retry: 1,\n refetchInterval: 1000,\n onError: () => setIsOffline(true),\n onSuccess: () => setIsOffline(false),\n })\n\n useEffect(() => {\n axios.get(echoHost()).then(({ data }) => setTorrServerVersion(data))\n }, [])\n\n return (\n <>\n \n\n \n \n \n \n\n {/* Div100vh - iOS WebKit fix */}\n \n \n \n setIsDrawerOpen(!isDrawerOpen)}>\n {isDrawerOpen ? : }\n \n\n \n TorrServer {torrServerVersion}\n \n\n \n {\n if (currentThemeMode === THEME_MODES.LIGHT) updateThemeMode(THEME_MODES.DARK)\n if (currentThemeMode === THEME_MODES.DARK) updateThemeMode(THEME_MODES.AUTO)\n if (currentThemeMode === THEME_MODES.AUTO) updateThemeMode(THEME_MODES.LIGHT)\n }}\n >\n {currentThemeMode === THEME_MODES.LIGHT ? (\n \n ) : currentThemeMode === THEME_MODES.DARK ? (\n \n ) : (\n \n )}\n \n\n \n currentLang === 'en'\n ? changeLang('ru')\n : currentLang === 'ru'\n ? changeLang('ua')\n : changeLang('en')\n }\n >\n {currentLang.toUpperCase()}\n \n
\n \n\n \n\n \n\n \n\n \n {isDonationDialogOpen && setIsDonationDialogOpen(false)} />}\n \n\n {snackbarIsClosed ? checkIsIOS() && !isStandaloneApp && : }\n \n \n \n \n \n \n )\n}\n","import { mainColors, themeColors } from './colors'\n\nexport default type => ({ ...themeColors[type], ...mainColors[type] })\n","export default () => {\n if (typeof window === `undefined` || typeof navigator === `undefined`) return false\n\n return /iPhone|iPad|iPod/i.test(navigator.userAgent || navigator.vendor)\n}\n","import { StrictMode } from 'react'\nimport ReactDOM from 'react-dom'\nimport { QueryClientProvider, QueryClient } from 'react-query'\n\nimport App from './components/App'\nimport 'i18n'\n\nconst queryClient = new QueryClient()\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'),\n)\n"],"sourceRoot":""} \ No newline at end of file diff --git a/server/web/pages/template/route.go b/server/web/pages/template/route.go index 24caae1..dd04a1c 100644 --- a/server/web/pages/template/route.go +++ b/server/web/pages/template/route.go @@ -173,12 +173,12 @@ func RouteWebPages(route *gin.RouterGroup) { c.Data(200, "application/json", Staticjs20f998e59chunkjsmap) }) - route.GET("/static/js/main.604c45f6.chunk.js", func(c *gin.Context) { - c.Data(200, "application/javascript; charset=utf-8", Staticjsmain604c45f6chunkjs) + route.GET("/static/js/main.46ee0fc8.chunk.js", func(c *gin.Context) { + c.Data(200, "application/javascript; charset=utf-8", Staticjsmain46ee0fc8chunkjs) }) - route.GET("/static/js/main.604c45f6.chunk.js.map", func(c *gin.Context) { - c.Data(200, "application/json", Staticjsmain604c45f6chunkjsmap) + route.GET("/static/js/main.46ee0fc8.chunk.js.map", func(c *gin.Context) { + c.Data(200, "application/json", Staticjsmain46ee0fc8chunkjsmap) }) route.GET("/static/js/runtime-main.64d07802.js", func(c *gin.Context) { From cc108b47eb617a5bdd34bae92f513f6c900b998e Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 29 Dec 2022 18:25:01 +0300 Subject: [PATCH 06/41] Update html.go --- server/web/pages/template/html.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/web/pages/template/html.go b/server/web/pages/template/html.go index 3548fe4..c417981 100644 --- a/server/web/pages/template/html.go +++ b/server/web/pages/template/html.go @@ -127,11 +127,11 @@ var Staticjs20f998e59chunkjsLICENSEtxt []byte //go:embed pages/static/js/2.0f998e59.chunk.js.map var Staticjs20f998e59chunkjsmap []byte -//go:embed pages/static/js/main.604c45f6.chunk.js -var Staticjsmain604c45f6chunkjs []byte +//go:embed pages/static/js/main.46ee0fc8.chunk.js +var Staticjsmain46ee0fc8chunkjs []byte -//go:embed pages/static/js/main.604c45f6.chunk.js.map -var Staticjsmain604c45f6chunkjsmap []byte +//go:embed pages/static/js/main.46ee0fc8.chunk.js.map +var Staticjsmain46ee0fc8chunkjsmap []byte //go:embed pages/static/js/runtime-main.64d07802.js var Staticjsruntimemain64d07802js []byte From 0ff991b10485b53537906495e6c8b26fe1d9e468 Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 29 Dec 2022 18:25:52 +0300 Subject: [PATCH 07/41] bump ver for tag MatriX.118.3 --- server/go.mod | 4 ++-- server/version/version.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/go.mod b/server/go.mod index 9d22b5a..79088ec 100644 --- a/server/go.mod +++ b/server/go.mod @@ -4,11 +4,9 @@ go 1.18 require ( github.com/alexflint/go-arg v1.4.3 - github.com/anacrolix/dht/v2 v2.19.3-0.20221221005837-88ee3382ad4a github.com/anacrolix/dms v1.5.0 github.com/anacrolix/log v0.13.2-0.20221123232138-02e2764801c3 github.com/anacrolix/missinggo v1.3.0 - github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 github.com/anacrolix/publicip v0.3.0 github.com/anacrolix/torrent v1.48.0 github.com/gin-contrib/cors v1.4.0 @@ -27,6 +25,7 @@ require ( github.com/alecthomas/atomic v0.1.0-alpha2 // indirect github.com/alexflint/go-scalar v1.1.0 // indirect github.com/anacrolix/chansync v0.3.0 // indirect + github.com/anacrolix/dht/v2 v2.19.3-0.20221221005837-88ee3382ad4a // indirect github.com/anacrolix/envpprof v1.2.1 // indirect github.com/anacrolix/ffprobe v1.0.1 // indirect github.com/anacrolix/generics v0.0.0-20221221005542-ac1d5b02b8a3 // indirect @@ -34,6 +33,7 @@ require ( github.com/anacrolix/missinggo/perf v1.0.0 // indirect github.com/anacrolix/missinggo/v2 v2.7.1 // indirect github.com/anacrolix/mmsg v1.0.0 // indirect + github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 // indirect github.com/anacrolix/stm v0.5.0 // indirect github.com/anacrolix/sync v0.4.0 // indirect github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect diff --git a/server/version/version.go b/server/version/version.go index 7d58c50..7bccb54 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -1,3 +1,3 @@ package version -const Version = "MatriX.118.2" +const Version = "MatriX.118.3" From c244a810445b27c4bf2dda751cd8ab2ad9e2884e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Dec 2022 06:04:35 +0300 Subject: [PATCH 08/41] Bump decode-uri-component from 0.2.0 to 0.2.2 in /web (#195) Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2. - [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases) - [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2) --- updated-dependencies: - dependency-name: decode-uri-component dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/yarn.lock b/web/yarn.lock index f9dafdf..e6ef5ab 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -4549,9 +4549,9 @@ decimal.js@^10.2.1: integrity sha512-Nv6ENEzyPQ6AItkGwLE2PGKinZZ9g59vSh2BeH6NqPu0OTKZ5ruJsVqh/orbAnqXc9pBbgXAIrc2EyaCj8NpGg== decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== decompress-response@^6.0.0: version "6.0.0" From 1c8fb8c5f5da8a05cfaf169e89207c7de2762412 Mon Sep 17 00:00:00 2001 From: YouROK <8YouROK8@mail.ru> Date: Wed, 11 Jan 2023 18:46:02 +0300 Subject: [PATCH 09/41] update web --- server/web/pages/template/html.go | 20 +++++++++---------- .../pages/template/pages/asset-manifest.json | 14 ++++++------- server/web/pages/template/pages/index.html | 2 +- ....0f998e59.chunk.js => 2.0cd0ff72.chunk.js} | 4 ++-- ...SE.txt => 2.0cd0ff72.chunk.js.LICENSE.txt} | 0 ...9.chunk.js.map => 2.0cd0ff72.chunk.js.map} | 2 +- ...ee0fc8.chunk.js => main.3113bbb8.chunk.js} | 2 +- ...hunk.js.map => main.3113bbb8.chunk.js.map} | 2 +- server/web/pages/template/route.go | 20 +++++++++---------- 9 files changed, 33 insertions(+), 33 deletions(-) rename server/web/pages/template/pages/static/js/{2.0f998e59.chunk.js => 2.0cd0ff72.chunk.js} (99%) rename server/web/pages/template/pages/static/js/{2.0f998e59.chunk.js.LICENSE.txt => 2.0cd0ff72.chunk.js.LICENSE.txt} (100%) rename server/web/pages/template/pages/static/js/{2.0f998e59.chunk.js.map => 2.0cd0ff72.chunk.js.map} (99%) rename server/web/pages/template/pages/static/js/{main.46ee0fc8.chunk.js => main.3113bbb8.chunk.js} (99%) rename server/web/pages/template/pages/static/js/{main.46ee0fc8.chunk.js.map => main.3113bbb8.chunk.js.map} (99%) diff --git a/server/web/pages/template/html.go b/server/web/pages/template/html.go index c417981..69ecc82 100644 --- a/server/web/pages/template/html.go +++ b/server/web/pages/template/html.go @@ -118,20 +118,20 @@ var Manifesticon512maskablepng []byte //go:embed pages/site.webmanifest var Sitewebmanifest []byte -//go:embed pages/static/js/2.0f998e59.chunk.js -var Staticjs20f998e59chunkjs []byte +//go:embed pages/static/js/2.0cd0ff72.chunk.js +var Staticjs20cd0ff72chunkjs []byte -//go:embed pages/static/js/2.0f998e59.chunk.js.LICENSE.txt -var Staticjs20f998e59chunkjsLICENSEtxt []byte +//go:embed pages/static/js/2.0cd0ff72.chunk.js.LICENSE.txt +var Staticjs20cd0ff72chunkjsLICENSEtxt []byte -//go:embed pages/static/js/2.0f998e59.chunk.js.map -var Staticjs20f998e59chunkjsmap []byte +//go:embed pages/static/js/2.0cd0ff72.chunk.js.map +var Staticjs20cd0ff72chunkjsmap []byte -//go:embed pages/static/js/main.46ee0fc8.chunk.js -var Staticjsmain46ee0fc8chunkjs []byte +//go:embed pages/static/js/main.3113bbb8.chunk.js +var Staticjsmain3113bbb8chunkjs []byte -//go:embed pages/static/js/main.46ee0fc8.chunk.js.map -var Staticjsmain46ee0fc8chunkjsmap []byte +//go:embed pages/static/js/main.3113bbb8.chunk.js.map +var Staticjsmain3113bbb8chunkjsmap []byte //go:embed pages/static/js/runtime-main.64d07802.js var Staticjsruntimemain64d07802js []byte diff --git a/server/web/pages/template/pages/asset-manifest.json b/server/web/pages/template/pages/asset-manifest.json index 907d624..173745a 100644 --- a/server/web/pages/template/pages/asset-manifest.json +++ b/server/web/pages/template/pages/asset-manifest.json @@ -1,17 +1,17 @@ { "files": { - "main.js": "/static/js/main.46ee0fc8.chunk.js", - "main.js.map": "/static/js/main.46ee0fc8.chunk.js.map", + "main.js": "/static/js/main.3113bbb8.chunk.js", + "main.js.map": "/static/js/main.3113bbb8.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.64d07802.js", "runtime-main.js.map": "/static/js/runtime-main.64d07802.js.map", - "static/js/2.0f998e59.chunk.js": "/static/js/2.0f998e59.chunk.js", - "static/js/2.0f998e59.chunk.js.map": "/static/js/2.0f998e59.chunk.js.map", + "static/js/2.0cd0ff72.chunk.js": "/static/js/2.0cd0ff72.chunk.js", + "static/js/2.0cd0ff72.chunk.js.map": "/static/js/2.0cd0ff72.chunk.js.map", "index.html": "/index.html", - "static/js/2.0f998e59.chunk.js.LICENSE.txt": "/static/js/2.0f998e59.chunk.js.LICENSE.txt" + "static/js/2.0cd0ff72.chunk.js.LICENSE.txt": "/static/js/2.0cd0ff72.chunk.js.LICENSE.txt" }, "entrypoints": [ "static/js/runtime-main.64d07802.js", - "static/js/2.0f998e59.chunk.js", - "static/js/main.46ee0fc8.chunk.js" + "static/js/2.0cd0ff72.chunk.js", + "static/js/main.3113bbb8.chunk.js" ] } \ No newline at end of file diff --git a/server/web/pages/template/pages/index.html b/server/web/pages/template/pages/index.html index 9c0c74b..145745a 100644 --- a/server/web/pages/template/pages/index.html +++ b/server/web/pages/template/pages/index.html @@ -1 +1 @@ -TorrServer MatriX
\ No newline at end of file +TorrServer MatriX
\ No newline at end of file diff --git a/server/web/pages/template/pages/static/js/2.0f998e59.chunk.js b/server/web/pages/template/pages/static/js/2.0cd0ff72.chunk.js similarity index 99% rename from server/web/pages/template/pages/static/js/2.0f998e59.chunk.js rename to server/web/pages/template/pages/static/js/2.0cd0ff72.chunk.js index 66cac5c..c5cea3b 100644 --- a/server/web/pages/template/pages/static/js/2.0f998e59.chunk.js +++ b/server/web/pages/template/pages/static/js/2.0cd0ff72.chunk.js @@ -1,3 +1,3 @@ -/*! For license information please see 2.0f998e59.chunk.js.LICENSE.txt */ +/*! For license information please see 2.0cd0ff72.chunk.js.LICENSE.txt */ (this.webpackJsonptorrserver_web=this.webpackJsonptorrserver_web||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(226)},function(e,t,n){"use strict";e.exports=n(248)},function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t1?t-1:0),r=1;r0?" Args: "+n.join(", "):""))}var j=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&E(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i=R&&(R=t+1),C.set(e,t),_.set(t,e)},L="style["+x+'][data-styled-version="5.3.5"]',M=new RegExp("^"+x+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),N=function(e,t,n){for(var r,o=n.split(","),i=0,a=o.length;i=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(x))return r}}(n),i=void 0!==o?o.nextSibling:null;r.setAttribute(x,"active"),r.setAttribute("data-styled-version","5.3.5");var a=D();return a&&r.setAttribute("nonce",a),n.insertBefore(r,i),r},z=function(){function e(e){var t=this.element=F(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(l+=e+",")})),r+=""+s+u+'{content:"'+l+'"}/*!sc*/\n'}}}return r}(this)},e}(),q=/(a)(d)/gi,$=function(e){return String.fromCharCode(e+(e>25?39:97))};function K(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=$(t%52)+n;return($(t%52)+n).replace(q,"$1-$2")}var Q=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Y=function(e){return Q(5381,e)};function X(e){for(var t=0;t>>0);if(!t.hasNameForId(r,a)){var s=n(i,"."+a,void 0,r);t.insertRules(r,a,s)}o.push(a),this.staticRulesId=a}else{for(var u=this.rules.length,l=Q(this.baseHash,n.hash),c="",f=0;f>>0);if(!t.hasNameForId(r,v)){var m=n(c,"."+v,void 0,r);t.insertRules(r,v,m)}o.push(v)}}return o.join(" ")},e}(),Z=/^\s*\/\/.*$/gm,ee=[":","[",".","#"];function te(e){var t,n,r,o,i=void 0===e?g:e,a=i.options,s=void 0===a?g:a,l=i.plugins,c=void 0===l?m:l,f=new u.a(s),d=[],p=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,r,o,i,a,s,u,l,c,f){switch(n){case 1:if(0===c&&64===r.charCodeAt(0))return e(r+";"),"";break;case 2:if(0===l)return r+"/*|*/";break;case 3:switch(l){case 102:case 112:return e(o[0]+r),"";default:return r+(0===f?"/*|*/":"")}case-2:r.split("/*|*/}").forEach(t)}}}((function(e){d.push(e)})),h=function(e,r,i){return 0===r&&-1!==ee.indexOf(i[n.length])||i.match(o)?e:"."+t};function v(e,i,a,s){void 0===s&&(s="&");var u=e.replace(Z,""),l=i&&a?a+" "+i+" { "+u+" }":u;return t=s,n=i,r=new RegExp("\\"+n+"\\b","g"),o=new RegExp("(\\"+n+"\\b){2,}"),f(a||!i?"":i,l)}return f.use([].concat(c,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,h))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),v.hash=c.length?c.reduce((function(e,t){return t.name||E(15),Q(e,t.name)}),5381).toString():"",v}var ne=i.a.createContext(),re=(ne.Consumer,i.a.createContext()),oe=(re.Consumer,new V),ie=te();function ae(){return Object(o.useContext)(ne)||oe}function se(){return Object(o.useContext)(re)||ie}function ue(e){var t=Object(o.useState)(e.stylisPlugins),n=t[0],r=t[1],a=ae(),u=Object(o.useMemo)((function(){var t=a;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=Object(o.useMemo)((function(){return te({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return Object(o.useEffect)((function(){s()(n,e.stylisPlugins)||r(e.stylisPlugins)}),[e.stylisPlugins]),i.a.createElement(ne.Provider,{value:u},i.a.createElement(re.Provider,{value:l},e.children))}var le=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=ie);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,"@keyframes"))},this.toString=function(){return E(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=ie),this.name+e.hash},e}(),ce=/([A-Z])/,fe=/([A-Z])/g,de=/^ms-/,pe=function(e){return"-"+e.toLowerCase()};function he(e){return ce.test(e)?e.replace(fe,pe).replace(de,"-ms-"):e}var ve=function(e){return null==e||!1===e||""===e};function me(e,t,n,r){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a1?t-1:0),r=1;r?@[\\\]^`{|}~-]+/g,xe=/(^-|-$)/g;function Oe(e){return e.replace(we,"-").replace(xe,"")}var Se=function(e){return K(Y(e)>>>0)};function ke(e){return"string"==typeof e&&!0}var Ee=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},je=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Ce(e,t,n){var r=e[n];Ee(t)&&Ee(r)?_e(r,t):e[n]=t}function _e(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(t,["componentId"]),i=r&&r+"-"+(ke(e)?e:Oe(y(e)));return Ae(e,p({},o,{attrs:O,componentId:i}),n)},Object.defineProperty(k,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?_e({},e.defaultProps,t):t}}),k.toString=function(){return"."+k.styledComponentId},a&&d()(k,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),k}var Le=function(e){return function e(t,n,o){if(void 0===o&&(o=g),!Object(r.isValidElementType)(n))return E(1,String(n));var i=function(){return t(n,o,be.apply(void 0,arguments))};return i.withConfig=function(r){return e(t,n,p({},o,{},r))},i.attrs=function(r){return e(t,n,p({},o,{attrs:Array.prototype.concat(o.attrs,r).filter(Boolean)}))},i}(Ae,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Le[e]=Le(e)}));var Me=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=X(e),V.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(me(this.rules,t,n,r).join(""),""),i=this.componentId+e;n.insertRules(i,i,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&V.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function Ne(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r"+t+""},this.getStyleTags=function(){return e.sealed?E(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return E(2);var n=((t={})[x]="",t["data-styled-version"]="5.3.5",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),r=D();return r&&(n.nonce=r),[i.a.createElement("style",p({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new V({isServer:!0}),this.sealed=!1}var t=e.prototype;t.collectStyles=function(e){return this.sealed?E(2):i.a.createElement(ue,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return E(3)}}();t.d=Le}).call(this,n(54))},function(e,t,n){"use strict";function r(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(48);function o(e,t){if(null==e)return{};var n,o,i=Object(r.a)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var i=t.defaultTheme,s=t.withTheme,d=void 0!==s&&s,p=t.name,h=Object(o.a)(t,["defaultTheme","withTheme","name"]);var v=p,m=Object(l.a)(e,Object(r.a)({defaultTheme:i,Component:n,name:p||n.displayName,classNamePrefix:v},h)),g=a.a.forwardRef((function(e,t){e.classes;var s,u=e.innerRef,l=Object(o.a)(e,["classes","innerRef"]),h=m(Object(r.a)({},n.defaultProps,e)),v=l;return("string"===typeof p||d)&&(s=Object(f.a)()||i,p&&(v=Object(c.a)({theme:s,name:p,props:l})),d&&!v.theme&&(v.theme=s)),a.a.createElement(n,Object(r.a)({ref:u||t,classes:h},v))}));return u()(g,n),g}},p=n(73);t.a=function(e,t){return d(e,Object(r.a)({defaultTheme:p.a},t))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(187);var o=n(104),i=n(188);function a(e,t){return Object(r.a)(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(u){s=!0,o=u}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}}(e,t)||Object(o.a)(e,t)||Object(i.a)()}},function(e,t,n){"use strict";n.d(t,"f",(function(){return o})),n.d(t,"j",(function(){return i})),n.d(t,"b",(function(){return a})),n.d(t,"g",(function(){return s})),n.d(t,"a",(function(){return u})),n.d(t,"r",(function(){return l})),n.d(t,"l",(function(){return c})),n.d(t,"k",(function(){return f})),n.d(t,"i",(function(){return d})),n.d(t,"h",(function(){return p})),n.d(t,"e",(function(){return h})),n.d(t,"d",(function(){return v})),n.d(t,"m",(function(){return m})),n.d(t,"n",(function(){return b})),n.d(t,"p",(function(){return y})),n.d(t,"q",(function(){return S})),n.d(t,"o",(function(){return k})),n.d(t,"c",(function(){return E}));var r=n(2),o="undefined"===typeof window;function i(){}function a(e,t){return"function"===typeof e?e(t):e}function s(e){return"number"===typeof e&&e>=0&&e!==1/0}function u(e){return Array.isArray(e)?e:[e]}function l(e,t){return Math.max(e+(t||0)-Date.now(),0)}function c(e,t,n){return O(e)?"function"===typeof t?Object(r.a)({},n,{queryKey:e,queryFn:t}):Object(r.a)({},t,{queryKey:e}):e}function f(e,t,n){return O(e)?[Object(r.a)({},t,{queryKey:e}),n]:[e||{},t]}function d(e,t){var n=e.active,r=e.exact,o=e.fetching,i=e.inactive,a=e.predicate,s=e.queryKey,u=e.stale;if(O(s))if(r){if(t.queryHash!==h(s,t.options))return!1}else if(!m(t.queryKey,s))return!1;var l=function(e,t){return!0===e&&!0===t||null==e&&null==t?"all":!1===e&&!1===t?"none":(null!=e?e:!t)?"active":"inactive"}(n,i);if("none"===l)return!1;if("all"!==l){var c=t.isActive();if("active"===l&&!c)return!1;if("inactive"===l&&c)return!1}return("boolean"!==typeof u||t.isStale()===u)&&(("boolean"!==typeof o||t.isFetching()===o)&&!(a&&!a(t)))}function p(e,t){var n=e.exact,r=e.fetching,o=e.predicate,i=e.mutationKey;if(O(i)){if(!t.options.mutationKey)return!1;if(n){if(v(t.options.mutationKey)!==v(i))return!1}else if(!m(t.options.mutationKey,i))return!1}return("boolean"!==typeof r||"loading"===t.state.status===r)&&!(o&&!o(t))}function h(e,t){return((null==t?void 0:t.queryKeyHashFn)||v)(e)}function v(e){var t,n=u(e);return t=n,JSON.stringify(t,(function(e,t){return w(t)?Object.keys(t).sort().reduce((function(e,n){return e[n]=t[n],e}),{}):t}))}function m(e,t){return g(u(e),u(t))}function g(e,t){return e===t||typeof e===typeof t&&(!(!e||!t||"object"!==typeof e||"object"!==typeof t)&&!Object.keys(t).some((function(n){return!g(e[n],t[n])})))}function b(e,t){if(e===t)return e;var n=Array.isArray(e)&&Array.isArray(t);if(n||w(e)&&w(t)){for(var r=n?e.length:Object.keys(e).length,o=n?t:Object.keys(t),i=o.length,a=n?[]:{},s=0,u=0;u1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function i(e){if(e.type)return e;if("#"===e.charAt(0))return i(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(n))throw new Error(Object(r.a)(3,e));var o=e.substring(t+1,e.length-1).split(",");return{type:n,values:o=o.map((function(e){return parseFloat(e)}))}}function a(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")?n=n.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(t,"(").concat(n.join(", "),")")}function s(e,t){var n=u(e),r=u(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function u(e){var t="hsl"===(e=i(e)).type?i(function(e){var t=(e=i(e)).values,n=t[0],r=t[1]/100,o=t[2]/100,s=r*Math.min(o,1-o),u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return o-s*Math.max(Math.min(t-3,9-t,1),-1)},l="rgb",c=[Math.round(255*u(0)),Math.round(255*u(8)),Math.round(255*u(4))];return"hsla"===e.type&&(l+="a",c.push(t[3])),a({type:l,values:c})}(e)).values:e.values;return t=t.map((function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return u(e)>.5?f(e,t):d(e,t)}function c(e,t){return e=i(e),t=o(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,a(e)}function f(e,t){if(e=i(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return a(e)}function d(e,t){if(e=i(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return a(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var r=n(2),o=n(0),i=n.n(o),a=n(5),s=n(6),u=n(8),l=n(11),c=o.forwardRef((function(e,t){var n=e.children,i=e.classes,u=e.className,c=e.color,f=void 0===c?"inherit":c,d=e.component,p=void 0===d?"svg":d,h=e.fontSize,v=void 0===h?"medium":h,m=e.htmlColor,g=e.titleAccess,b=e.viewBox,y=void 0===b?"0 0 24 24":b,w=Object(a.a)(e,["children","classes","className","color","component","fontSize","htmlColor","titleAccess","viewBox"]);return o.createElement(p,Object(r.a)({className:Object(s.a)(i.root,u,"inherit"!==f&&i["color".concat(Object(l.a)(f))],"default"!==v&&"medium"!==v&&i["fontSize".concat(Object(l.a)(v))]),focusable:"false",viewBox:y,color:m,"aria-hidden":!g||void 0,role:g?"img":void 0,ref:t},w),n,g?o.createElement("title",null,g):null)}));c.muiName="SvgIcon";var f=Object(u.a)((function(e){return{root:{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:"currentColor",flexShrink:0,fontSize:e.typography.pxToRem(24),transition:e.transitions.create("fill",{duration:e.transitions.duration.shorter})},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorAction:{color:e.palette.action.active},colorError:{color:e.palette.error.main},colorDisabled:{color:e.palette.action.disabled},fontSizeInherit:{fontSize:"inherit"},fontSizeSmall:{fontSize:e.typography.pxToRem(20)},fontSizeLarge:{fontSize:e.typography.pxToRem(35)}}}),{name:"MuiSvgIcon"})(c);function d(e,t){var n=function(t,n){return i.a.createElement(f,Object(r.a)({ref:n},t),e)};return n.muiName=f.muiName,i.a.memo(i.a.forwardRef(n))}},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(227)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),o="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;function i(e){var t=r.useRef(e);return o((function(){t.current=e})),r.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(10),o=function(){function e(){this.queue=[],this.transactions=0,this.notifyFn=function(e){e()},this.batchNotifyFn=function(e){e()}}var t=e.prototype;return t.batch=function(e){var t;this.transactions++;try{t=e()}finally{this.transactions--,this.transactions||this.flush()}return t},t.schedule=function(e){var t=this;this.transactions?this.queue.push(e):Object(r.o)((function(){t.notifyFn(e)}))},t.batchCalls=function(e){var t=this;return function(){for(var n=arguments.length,r=new Array(n),o=0;o=0&&o<1?(s=i,u=a):o>=1&&o<2?(s=a,u=i):o>=2&&o<3?(u=i,l=a):o>=3&&o<4?(u=a,l=i):o>=4&&o<5?(s=a,l=i):o>=5&&o<6&&(s=i,l=a);var c=n-i/2;return r(s+c,u+c,l+c)}var h={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var v=/^#[a-fA-F0-9]{6}$/,m=/^#[a-fA-F0-9]{8}$/,g=/^#[a-fA-F0-9]{3}$/,b=/^#[a-fA-F0-9]{4}$/,y=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,w=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,x=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,O=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function S(e){if("string"!==typeof e)throw new c(3);var t=function(e){if("string"!==typeof e)return e;var t=e.toLowerCase();return h[t]?"#"+h[t]:e}(e);if(t.match(v))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(m)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(g))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(b)){var r=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:r}}var o=y.exec(t);if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10)};var i=w.exec(t.substring(0,50));if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])>1?parseFloat(""+i[4])/100:parseFloat(""+i[4])};var a=x.exec(t);if(a){var s="rgb("+p(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",u=y.exec(s);if(!u)throw new c(4,t,s);return{red:parseInt(""+u[1],10),green:parseInt(""+u[2],10),blue:parseInt(""+u[3],10)}}var l=O.exec(t.substring(0,50));if(l){var f="rgb("+p(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",d=y.exec(f);if(!d)throw new c(4,t,f);return{red:parseInt(""+d[1],10),green:parseInt(""+d[2],10),blue:parseInt(""+d[3],10),alpha:parseFloat(""+l[4])>1?parseFloat(""+l[4])/100:parseFloat(""+l[4])}}throw new c(5)}var k=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function E(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function j(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return k("#"+E(e)+E(t)+E(n));if("object"===typeof e&&void 0===t&&void 0===n)return k("#"+E(e.red)+E(e.green)+E(e.blue));throw new c(6)}function C(e,t,n,r){if("string"===typeof e&&"number"===typeof t){var o=S(e);return"rgba("+o.red+","+o.green+","+o.blue+","+t+")"}if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?j(e,t,n):"rgba("+e+","+t+","+n+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?j(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new c(7)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(59);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Object(r.a)(e,t)}},,function(e,t,n){"use strict";function r(e,t){for(var n=0;n=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(u.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return j(this,t,n);case"ascii":return _(this,t,n);case"latin1":case"binary":return R(this,t,n);case"base64":return E(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"===typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"===typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var c=-1;for(i=n;is&&(n=s-u),i=n;i>=0;i--){for(var f=!0,d=0;do&&(r=o):r=o;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function E(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function j(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:l>223?3:l>191?2:1;if(o+f<=n)switch(f){case 1:l<128&&(c=l);break;case 2:128===(192&(i=e[o+1]))&&(u=(31&l)<<6|63&i)>127&&(c=u);break;case 3:i=e[o+1],a=e[o+2],128===(192&i)&&128===(192&a)&&(u=(15&l)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128===(192&i)&&128===(192&a)&&128===(192&s)&&(u=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,f=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),o+=f}return function(e){var t=e.length;if(t<=C)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},u.prototype.compare=function(e,t,n,r,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),l=this.slice(r,o),c=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return O(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function _(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,n,r,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function I(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function D(e,t,n,r,i){return i||I(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function F(e,t,n,r,i){return i||I(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUInt8=function(e,t){return t||A(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||A(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||A(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||A(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||A(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||A(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return t||A(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||A(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||A(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||A(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||A(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||A(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||A(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||A(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||A(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||L(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);L(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return D(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return D(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return F(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return F(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(z,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(35))},function(e,t,n){"use strict";n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return l})),n.d(t,"a",(function(){return c}));var r=n(46),o=n(60),i=n(10);function a(e){return Math.min(1e3*Math.pow(2,e),3e4)}function s(e){return"function"===typeof(null==e?void 0:e.cancel)}var u=function(e){this.revert=null==e?void 0:e.revert,this.silent=null==e?void 0:e.silent};function l(e){return e instanceof u}var c=function(e){var t,n,l,c,f=this,d=!1;this.abort=e.abort,this.cancel=function(e){return null==t?void 0:t(e)},this.cancelRetry=function(){d=!0},this.continueRetry=function(){d=!1},this.continue=function(){return null==n?void 0:n()},this.failureCount=0,this.isPaused=!1,this.isResolved=!1,this.isTransportCancelable=!1,this.promise=new Promise((function(e,t){l=e,c=t}));var p=function(t){f.isResolved||(f.isResolved=!0,null==e.onSuccess||e.onSuccess(t),null==n||n(),l(t))},h=function(t){f.isResolved||(f.isResolved=!0,null==e.onError||e.onError(t),null==n||n(),c(t))};!function l(){if(!f.isResolved){var c;try{c=e.fn()}catch(v){c=Promise.reject(v)}t=function(e){if(!f.isResolved&&(h(new u(e)),null==f.abort||f.abort(),s(c)))try{c.cancel()}catch(t){}},f.isTransportCancelable=s(c),Promise.resolve(c).then(p).catch((function(t){var s,u;if(!f.isResolved){var c=null!=(s=e.retry)?s:3,p=null!=(u=e.retryDelay)?u:a,v="function"===typeof p?p(f.failureCount,t):p,m=!0===c||"number"===typeof c&&f.failureCount0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,s=void 0===n?i.standard:n,u=t.easing,l=void 0===u?o.easeInOut:u,c=t.delay,f=void 0===c?0:c;Object(r.a)(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof s?s:a(s)," ").concat(l," ").concat("string"===typeof f?f:a(f))})).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(149),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&"object"===typeof e}function u(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:166;function r(){for(var r=arguments.length,o=new Array(r),i=0;i0},t.onSubscribe=function(){},t.onUnsubscribe=function(){},e}()},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){"function"===typeof e?e(t):e&&(e.current=t)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(){for(var e=arguments.length,t=new Array(e),n=0;n1)for(var n=1;n1&&void 0!==arguments[1]&&arguments[1];return e&&(r(e.value)&&""!==e.value||t&&r(e.defaultValue)&&""!==e.defaultValue)}function i(e){return e.startAdornment}n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return i}))},function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(2),o=n(5),i=n(0),a=n(6),s=n(8),u=n(11),l={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p"},c=i.forwardRef((function(e,t){var n=e.align,s=void 0===n?"inherit":n,c=e.classes,f=e.className,d=e.color,p=void 0===d?"initial":d,h=e.component,v=e.display,m=void 0===v?"initial":v,g=e.gutterBottom,b=void 0!==g&&g,y=e.noWrap,w=void 0!==y&&y,x=e.paragraph,O=void 0!==x&&x,S=e.variant,k=void 0===S?"body1":S,E=e.variantMapping,j=void 0===E?l:E,C=Object(o.a)(e,["align","classes","className","color","component","display","gutterBottom","noWrap","paragraph","variant","variantMapping"]),_=h||(O?"p":j[k]||l[k])||"span";return i.createElement(_,Object(r.a)({className:Object(a.a)(c.root,f,"inherit"!==k&&c[k],"initial"!==p&&c["color".concat(Object(u.a)(p))],w&&c.noWrap,b&&c.gutterBottom,O&&c.paragraph,"inherit"!==s&&c["align".concat(Object(u.a)(s))],"initial"!==m&&c["display".concat(Object(u.a)(m))]),ref:t},C))}));t.a=Object(s.a)((function(e){return{root:{margin:0},body2:e.typography.body2,body1:e.typography.body1,caption:e.typography.caption,button:e.typography.button,h1:e.typography.h1,h2:e.typography.h2,h3:e.typography.h3,h4:e.typography.h4,h5:e.typography.h5,h6:e.typography.h6,subtitle1:e.typography.subtitle1,subtitle2:e.typography.subtitle2,overline:e.typography.overline,srOnly:{position:"absolute",height:1,width:1,overflow:"hidden"},alignLeft:{textAlign:"left"},alignCenter:{textAlign:"center"},alignRight:{textAlign:"right"},alignJustify:{textAlign:"justify"},noWrap:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},gutterBottom:{marginBottom:"0.35em"},paragraph:{marginBottom:16},colorInherit:{color:"inherit"},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},colorTextPrimary:{color:e.palette.text.primary},colorTextSecondary:{color:e.palette.text.secondary},colorError:{color:e.palette.error.main},displayInline:{display:"inline"},displayBlock:{display:"block"}}}),{name:"MuiTypography"})(c)},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(256).default;function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}e.exports=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var u=a?Object.getOwnPropertyDescriptor(e,s):null;u&&(u.get||u.set)?Object.defineProperty(i,s,u):i[s]=e[s]}return i.default=e,n&&n.set(e,i),i},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(398)},function(e,t,n){var r=n(272),o=n(277);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){"use strict";var r=n(99),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var i=Object.create(n(82));i.inherits=n(62);var a=n(173),s=n(177);i.inherits(f,a);for(var u=o(s.prototype),l=0;l=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:j(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},e}},function(e,t,n){"use strict";var r=n(0),o=n.n(r);t.a=o.a.createContext(null)},,,function(e,t,n){"use strict";var r=n(186);n.d(t,"QueryClient",(function(){return r.a}));var o=n(145);n.o(o,"QueryClientProvider")&&n.d(t,"QueryClientProvider",(function(){return o.QueryClientProvider})),n.o(o,"useQuery")&&n.d(t,"useQuery",(function(){return o.useQuery}))},function(e,t,n){var r=n(124),o=n(273),i=n(274),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){function r(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===r(e)},t.isBoolean=function(e){return"boolean"===typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"===typeof e},t.isString=function(e){return"string"===typeof e},t.isSymbol=function(e){return"symbol"===typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===r(e)},t.isObject=function(e){return"object"===typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===r(e)},t.isError=function(e){return"[object Error]"===r(e)||e instanceof Error},t.isFunction=function(e){return"function"===typeof e},t.isPrimitive=function(e){return null===e||"boolean"===typeof e||"number"===typeof e||"string"===typeof e||"symbol"===typeof e||"undefined"===typeof e},t.isBuffer=n(31).Buffer.isBuffer},function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return l}));var r=n(0),o=n.n(r),i=o.a.createContext(void 0),a=o.a.createContext(!1);function s(e){return e&&"undefined"!==typeof window?(window.ReactQueryClientContext||(window.ReactQueryClientContext=i),window.ReactQueryClientContext):i}var u=function(){var e=o.a.useContext(s(o.a.useContext(a)));if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},l=function(e){var t=e.client,n=e.contextSharing,r=void 0!==n&&n,i=e.children;o.a.useEffect((function(){return t.mount(),function(){t.unmount()}}),[t]);var u=s(r);return o.a.createElement(a.Provider,{value:r},o.a.createElement(u.Provider,{value:t},i))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),o=n.n(r);function i(){var e=!1;return{clearReset:function(){e=!1},reset:function(){e=!0},isReset:function(){return e}}}var a=o.a.createContext(i()),s=function(){return o.a.useContext(a)}},function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"\xa9","©":"\xa9","®":"\xae","®":"\xae","…":"\u2026","…":"\u2026","/":"/","/":"/"},d=function(e){return f[e]};function p(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 h(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};m=h(h({},m),e)}(e.options.react),function(e){v=e}(e)}}},,,,,function(e,t,n){var r=n(262),o=n(263),i=n(264),a=n(265),s=n(266);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0?this.queries.filter((function(e){return Object(o.i)(n,e)})):this.queries},n.notify=function(e){var t=this;a.a.batch((function(){t.listeners.forEach((function(t){t(e)}))}))},n.onFocus=function(){var e=this;a.a.batch((function(){e.queries.forEach((function(e){e.onFocus()}))}))},n.onOnline=function(){var e=this;a.a.batch((function(){e.queries.forEach((function(e){e.onOnline()}))}))},t}(n(47).a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(27),o=n(19),i=n(2),a=n(55),s=n(32),u=n(10),l=function(){function e(e){this.options=Object(i.a)({},e.defaultOptions,e.options),this.mutationId=e.mutationId,this.mutationCache=e.mutationCache,this.observers=[],this.state=e.state||{context:void 0,data:void 0,error:null,failureCount:0,isPaused:!1,status:"idle",variables:void 0},this.meta=e.meta}var t=e.prototype;return t.setState=function(e){this.dispatch({type:"setState",state:e})},t.addObserver=function(e){-1===this.observers.indexOf(e)&&this.observers.push(e)},t.removeObserver=function(e){this.observers=this.observers.filter((function(t){return t!==e}))},t.cancel=function(){return this.retryer?(this.retryer.cancel(),this.retryer.promise.then(u.j).catch(u.j)):Promise.resolve()},t.continue=function(){return this.retryer?(this.retryer.continue(),this.retryer.promise):this.execute()},t.execute=function(){var e,t=this,n="loading"===this.state.status,r=Promise.resolve();return n||(this.dispatch({type:"loading",variables:this.options.variables}),r=r.then((function(){null==t.mutationCache.config.onMutate||t.mutationCache.config.onMutate(t.state.variables,t)})).then((function(){return null==t.options.onMutate?void 0:t.options.onMutate(t.state.variables)})).then((function(e){e!==t.state.context&&t.dispatch({type:"loading",context:e,variables:t.state.variables})}))),r.then((function(){return t.executeMutation()})).then((function(n){e=n,null==t.mutationCache.config.onSuccess||t.mutationCache.config.onSuccess(e,t.state.variables,t.state.context,t)})).then((function(){return null==t.options.onSuccess?void 0:t.options.onSuccess(e,t.state.variables,t.state.context)})).then((function(){return null==t.options.onSettled?void 0:t.options.onSettled(e,null,t.state.variables,t.state.context)})).then((function(){return t.dispatch({type:"success",data:e}),e})).catch((function(e){return null==t.mutationCache.config.onError||t.mutationCache.config.onError(e,t.state.variables,t.state.context,t),Object(a.a)().error(e),Promise.resolve().then((function(){return null==t.options.onError?void 0:t.options.onError(e,t.state.variables,t.state.context)})).then((function(){return null==t.options.onSettled?void 0:t.options.onSettled(void 0,e,t.state.variables,t.state.context)})).then((function(){throw t.dispatch({type:"error",error:e}),e}))}))},t.executeMutation=function(){var e,t=this;return this.retryer=new s.a({fn:function(){return t.options.mutationFn?t.options.mutationFn(t.state.variables):Promise.reject("No mutationFn found")},onFail:function(){t.dispatch({type:"failed"})},onPause:function(){t.dispatch({type:"pause"})},onContinue:function(){t.dispatch({type:"continue"})},retry:null!=(e=this.options.retry)?e:0,retryDelay:this.options.retryDelay}),this.retryer.promise},t.dispatch=function(e){var t=this;this.state=function(e,t){switch(t.type){case"failed":return Object(i.a)({},e,{failureCount:e.failureCount+1});case"pause":return Object(i.a)({},e,{isPaused:!0});case"continue":return Object(i.a)({},e,{isPaused:!1});case"loading":return Object(i.a)({},e,{context:t.context,data:void 0,error:null,isPaused:!1,status:"loading",variables:t.variables});case"success":return Object(i.a)({},e,{data:t.data,error:null,status:"success",isPaused:!1});case"error":return Object(i.a)({},e,{data:void 0,error:t.error,failureCount:e.failureCount+1,isPaused:!1,status:"error"});case"setState":return Object(i.a)({},e,t.state);default:return e}}(this.state,e),o.a.batch((function(){t.observers.forEach((function(t){t.onMutationUpdate(e)})),t.mutationCache.notify(t)}))},e}();var c=function(e){function t(t){var n;return(n=e.call(this)||this).config=t||{},n.mutations=[],n.mutationId=0,n}Object(r.a)(t,e);var n=t.prototype;return n.build=function(e,t,n){var r=new l({mutationCache:this,mutationId:++this.mutationId,options:e.defaultMutationOptions(t),state:n,defaultOptions:t.mutationKey?e.getMutationDefaults(t.mutationKey):void 0,meta:t.meta});return this.add(r),r},n.add=function(e){this.mutations.push(e),this.notify(e)},n.remove=function(e){this.mutations=this.mutations.filter((function(t){return t!==e})),e.cancel(),this.notify(e)},n.clear=function(){var e=this;o.a.batch((function(){e.mutations.forEach((function(t){e.remove(t)}))}))},n.getAll=function(){return this.mutations},n.find=function(e){return"undefined"===typeof e.exact&&(e.exact=!0),this.mutations.find((function(t){return Object(u.h)(e,t)}))},n.findAll=function(e){return this.mutations.filter((function(t){return Object(u.h)(e,t)}))},n.notify=function(e){var t=this;o.a.batch((function(){t.listeners.forEach((function(t){t(e)}))}))},n.onFocus=function(){this.resumePausedMutations()},n.onOnline=function(){this.resumePausedMutations()},n.resumePausedMutations=function(){var e=this.mutations.filter((function(e){return e.state.isPaused}));return o.a.batch((function(){return e.reduce((function(e,t){return e.then((function(){return t.continue().catch(u.j)}))}),Promise.resolve())}))},t}(n(47).a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(85);function o(e,t){if(e){if("string"===typeof e)return Object(r.a)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(e,t):void 0}}},function(e,t,n){"use strict";function r(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(l){return void n(l)}s.done?t(u):Promise.resolve(u).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function s(e){r(a,o,i,s,u,"next",e)}function u(e){r(a,o,i,s,u,"throw",e)}s(void 0)}))}}n.d(t,"a",(function(){return o}))},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){"use strict";var r=n(0),o=n.n(r).a.createContext(null);t.a=o},function(e,t,n){"use strict";t.a={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500}},function(e,t,n){"use strict";var r="function"===typeof Symbol&&Symbol.for;t.a=r?Symbol.for("mui.nested"):"__THEME_NESTED__"},function(e,t,n){"use strict";var r=n(2),o=n(9),i=n(5),a=n(0),s=n(6),u=n(58),l=n(41),c=n(8),f=n(401),d=a.forwardRef((function(e,t){var n=e.autoFocus,c=e.checked,d=e.checkedIcon,p=e.classes,h=e.className,v=e.defaultChecked,m=e.disabled,g=e.icon,b=e.id,y=e.inputProps,w=e.inputRef,x=e.name,O=e.onBlur,S=e.onChange,k=e.onFocus,E=e.readOnly,j=e.required,C=e.tabIndex,_=e.type,R=e.value,P=Object(i.a)(e,["autoFocus","checked","checkedIcon","classes","className","defaultChecked","disabled","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"]),T=Object(u.a)({controlled:c,default:Boolean(v),name:"SwitchBase",state:"checked"}),A=Object(o.a)(T,2),L=A[0],M=A[1],N=Object(l.a)(),I=m;N&&"undefined"===typeof I&&(I=N.disabled);var D="checkbox"===_||"radio"===_;return a.createElement(f.a,Object(r.a)({component:"span",className:Object(s.a)(p.root,h,L&&p.checked,I&&p.disabled),disabled:I,tabIndex:null,role:void 0,onFocus:function(e){k&&k(e),N&&N.onFocus&&N.onFocus(e)},onBlur:function(e){O&&O(e),N&&N.onBlur&&N.onBlur(e)},ref:t},P),a.createElement("input",Object(r.a)({autoFocus:n,checked:c,defaultChecked:v,className:p.input,disabled:I,id:D&&b,name:x,onChange:function(e){var t=e.target.checked;M(t),S&&S(e,t)},readOnly:E,ref:w,required:j,tabIndex:C,type:_,value:R},y)),L?d:g)}));t.a=Object(c.a)({root:{padding:9},checked:{},disabled:{},input:{cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}},{name:"PrivateSwitchBase"})(d)},function(e,t,n){(function(t){var r=n(337),o=n(341),i=n(342),a=n(343),s=n(365),u=n(373),l=n(374),c=n(376);function f(e){if("string"===typeof e&&/^(stream-)?magnet:/.test(e)){var n=s(e);if(!n.infoHash)throw new Error("Invalid torrent identifier");return n}if("string"===typeof e&&(/^[a-f0-9]{40}$/i.test(e)||/^[a-z2-7]{32}$/i.test(e)))return s("magnet:?xt=urn:btih:".concat(e));if(t.isBuffer(e)&&20===e.length)return s("magnet:?xt=urn:btih:".concat(e.toString("hex")));if(t.isBuffer(e))return function(e){t.isBuffer(e)&&(e=r.decode(e));p(e.info,"info"),p(e.info["name.utf-8"]||e.info.name,"info.name"),p(e.info["piece length"],"info['piece length']"),p(e.info.pieces,"info.pieces"),e.info.files?e.info.files.forEach((function(e){p("number"===typeof e.length,"info.files[0].length"),p(e["path.utf-8"]||e.path,"info.files[0].path")})):p("number"===typeof e.info.length,"info.length");var n={info:e.info,infoBuffer:r.encode(e.info),name:(e.info["name.utf-8"]||e.info.name).toString(),announce:[]};n.infoHash=l.sync(n.infoBuffer),n.infoHashBuffer=t.from(n.infoHash,"hex"),void 0!==e.info.private&&(n.private=!!e.info.private);e["creation date"]&&(n.created=new Date(1e3*e["creation date"]));e["created by"]&&(n.createdBy=e["created by"].toString());t.isBuffer(e.comment)&&(n.comment=e.comment.toString());Array.isArray(e["announce-list"])&&e["announce-list"].length>0?e["announce-list"].forEach((function(e){e.forEach((function(e){n.announce.push(e.toString())}))})):e.announce&&n.announce.push(e.announce.toString());t.isBuffer(e["url-list"])&&(e["url-list"]=e["url-list"].length>0?[e["url-list"]]:[]);n.urlList=(e["url-list"]||[]).map((function(e){return e.toString()})),n.announce=Array.from(new Set(n.announce)),n.urlList=Array.from(new Set(n.urlList));var o=e.info.files||[e.info];n.files=o.map((function(e,t){var r=[].concat(n.name,e["path.utf-8"]||e.path||[]).map((function(e){return e.toString()}));return{path:u.join.apply(null,[u.sep].concat(r)).slice(1),name:r[r.length-1],length:e.length,offset:o.slice(0,t).reduce(d,0)}})),n.length=o.reduce(d,0);var i=n.files[n.files.length-1];return n.pieceLength=e.info["piece length"],n.lastPieceLength=(i.offset+i.length)%n.pieceLength||n.pieceLength,n.pieces=function(e){for(var t=[],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=t.pulsate,o=void 0!==r&&r,i=t.center,s=void 0===i?a||t.pulsate:i,u=t.fakeElement,l=void 0!==u&&u;if("mousedown"===e.type&&g.current)g.current=!1;else{"touchstart"===e.type&&(g.current=!0);var c,f,d,p=l?null:w.current,h=p?p.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(s||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(h.width/2),f=Math.round(h.height/2);else{var v=e.touches?e.touches[0]:e,m=v.clientX,O=v.clientY;c=Math.round(m-h.left),f=Math.round(O-h.top)}if(s)(d=Math.sqrt((2*Math.pow(h.width,2)+Math.pow(h.height,2))/3))%2===0&&(d+=1);else{var S=2*Math.max(Math.abs((p?p.clientWidth:0)-c),c)+2,k=2*Math.max(Math.abs((p?p.clientHeight:0)-f),f)+2;d=Math.sqrt(Math.pow(S,2)+Math.pow(k,2))}e.touches?null===y.current&&(y.current=function(){x({pulsate:o,rippleX:c,rippleY:f,rippleSize:d,cb:n})},b.current=setTimeout((function(){y.current&&(y.current(),y.current=null)}),80)):x({pulsate:o,rippleX:c,rippleY:f,rippleSize:d,cb:n})}}),[a,x]),k=i.useCallback((function(){O({},{pulsate:!0})}),[O]),j=i.useCallback((function(e,t){if(clearTimeout(b.current),"touchend"===e.type&&y.current)return e.persist(),y.current(),y.current=null,void(b.current=setTimeout((function(){j(e,t)})));y.current=null,h((function(e){return e.length>0?e.slice(1):e})),m.current=t}),[]);return i.useImperativeHandle(t,(function(){return{pulsate:k,start:O,stop:j}}),[k,O,j]),i.createElement("span",Object(r.a)({className:Object(u.a)(s.root,l),ref:w},c),i.createElement(S,{component:null,exit:!0},d))})),C=Object(f.a)((function(e){return{root:{overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"},ripple:{opacity:0,position:"absolute"},rippleVisible:{opacity:.3,transform:"scale(1)",animation:"$enter ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},ripplePulsate:{animationDuration:"".concat(e.transitions.duration.shorter,"ms")},child:{opacity:1,display:"block",width:"100%",height:"100%",borderRadius:"50%",backgroundColor:"currentColor"},childLeaving:{opacity:0,animation:"$exit ".concat(550,"ms ").concat(e.transitions.easing.easeInOut)},childPulsate:{position:"absolute",left:0,top:0,animation:"$pulsate 2500ms ".concat(e.transitions.easing.easeInOut," 200ms infinite")},"@keyframes enter":{"0%":{transform:"scale(0)",opacity:.1},"100%":{transform:"scale(1)",opacity:.3}},"@keyframes exit":{"0%":{opacity:1},"100%":{opacity:0}},"@keyframes pulsate":{"0%":{transform:"scale(1)"},"50%":{transform:"scale(0.92)"},"100%":{transform:"scale(1)"}}}}),{flip:!1,name:"MuiTouchRipple"})(i.memo(j)),_=i.forwardRef((function(e,t){var n=e.action,a=e.buttonRef,f=e.centerRipple,p=void 0!==f&&f,h=e.children,v=e.classes,m=e.className,g=e.component,b=void 0===g?"button":g,y=e.disabled,w=void 0!==y&&y,x=e.disableRipple,O=void 0!==x&&x,S=e.disableTouchRipple,k=void 0!==S&&S,E=e.focusRipple,j=void 0!==E&&E,_=e.focusVisibleClassName,R=e.onBlur,P=e.onClick,T=e.onFocus,A=e.onFocusVisible,L=e.onKeyDown,M=e.onKeyUp,N=e.onMouseDown,I=e.onMouseLeave,D=e.onMouseUp,F=e.onTouchEnd,z=e.onTouchMove,B=e.onTouchStart,U=e.onDragLeave,H=e.tabIndex,W=void 0===H?0:H,V=e.TouchRippleProps,q=e.type,$=void 0===q?"button":q,K=Object(o.a)(e,["action","buttonRef","centerRipple","children","classes","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","onBlur","onClick","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","onDragLeave","tabIndex","TouchRippleProps","type"]),Q=i.useRef(null);var Y=i.useRef(null),X=i.useState(!1),G=X[0],J=X[1];w&&G&&J(!1);var Z=Object(d.a)(),ee=Z.isFocusVisible,te=Z.onBlurVisible,ne=Z.ref;function re(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;return Object(c.a)((function(r){return t&&t(r),!n&&Y.current&&Y.current[e](r),!0}))}i.useImperativeHandle(n,(function(){return{focusVisible:function(){J(!0),Q.current.focus()}}}),[]),i.useEffect((function(){G&&j&&!O&&Y.current.pulsate()}),[O,j,G]);var oe=re("start",N),ie=re("stop",U),ae=re("stop",D),se=re("stop",(function(e){G&&e.preventDefault(),I&&I(e)})),ue=re("start",B),le=re("stop",F),ce=re("stop",z),fe=re("stop",(function(e){G&&(te(e),J(!1)),R&&R(e)}),!1),de=Object(c.a)((function(e){Q.current||(Q.current=e.currentTarget),ee(e)&&(J(!0),A&&A(e)),T&&T(e)})),pe=function(){var e=s.findDOMNode(Q.current);return b&&"button"!==b&&!("A"===e.tagName&&e.href)},he=i.useRef(!1),ve=Object(c.a)((function(e){j&&!he.current&&G&&Y.current&&" "===e.key&&(he.current=!0,e.persist(),Y.current.stop(e,(function(){Y.current.start(e)}))),e.target===e.currentTarget&&pe()&&" "===e.key&&e.preventDefault(),L&&L(e),e.target===e.currentTarget&&pe()&&"Enter"===e.key&&!w&&(e.preventDefault(),P&&P(e))})),me=Object(c.a)((function(e){j&&" "===e.key&&Y.current&&G&&!e.defaultPrevented&&(he.current=!1,e.persist(),Y.current.stop(e,(function(){Y.current.pulsate(e)}))),M&&M(e),P&&e.target===e.currentTarget&&pe()&&" "===e.key&&!e.defaultPrevented&&P(e)})),ge=b;"button"===ge&&K.href&&(ge="a");var be={};"button"===ge?(be.type=$,be.disabled=w):("a"===ge&&K.href||(be.role="button"),be["aria-disabled"]=w);var ye=Object(l.a)(a,t),we=Object(l.a)(ne,Q),xe=Object(l.a)(ye,we),Oe=i.useState(!1),Se=Oe[0],ke=Oe[1];i.useEffect((function(){ke(!0)}),[]);var Ee=Se&&!O&&!w;return i.createElement(ge,Object(r.a)({className:Object(u.a)(v.root,m,G&&[v.focusVisible,_],w&&v.disabled),onBlur:fe,onClick:P,onFocus:de,onKeyDown:ve,onKeyUp:me,onMouseDown:oe,onMouseLeave:se,onMouseUp:ae,onDragLeave:ie,onTouchEnd:le,onTouchMove:ce,onTouchStart:ue,ref:xe,tabIndex:w?-1:W},be,K),h,Ee?i.createElement(C,Object(r.a)({ref:Y,center:p},V)):null)}));t.a=Object(f.a)({root:{display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle","-moz-appearance":"none","-webkit-appearance":"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},"&$disabled":{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}},disabled:{},focusVisible:{}},{name:"MuiButtonBase"})(_)},,,,function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,s,u=a(e),l=1;l=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(a)})),e.exports=u}).call(this,n(54))},function(e,t,n){var r=n(120);e.exports=function(e,t){var n="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=r(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){var r=n(157);e.exports=function(e,t){if(e){if("string"===typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t,n){"use strict";function r(e){return function(){return null}}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t,n,r,o){return null}n.d(t,"a",(function(){return r}))},function(e,t,n){var r=n(70)(n(45),"Map");e.exports=r},function(e,t,n){var r=n(45).Symbol;e.exports=r},function(e,t){var n=Array.isArray;e.exports=n},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(31),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"===typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!==typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"===typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){"use strict";var r=n(358),o=n(359);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=y(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),f=["%","/","?",";","#"].concat(c),d=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(180);function y(e,t,n){if(e&&o.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i127?L+="x":L+=A[M];if(!L.match(p)){var I=P.slice(0,C),D=P.slice(C+1),F=A.match(h);F&&(I.push(F[1]),D.unshift(F[2])),D.length&&(y="/"+D.join(".")+y),this.hostname=I.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=r.toASCII(this.hostname));var z=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+z,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!v[O])for(C=0,T=c.length;C0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!S.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var E=S.slice(-1)[0],j=(n.host||e.host||S.length>1)&&("."===E||".."===E)||""===E,C=0,_=S.length;_>=0;_--)"."===(E=S[_])?S.splice(_,1):".."===E?(S.splice(_,1),C++):C&&(S.splice(_,1),C--);if(!x&&!O)for(;C--;C)S.unshift("..");!x||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),j&&"/"!==S.join("/").substr(-1)&&S.push("");var R,P=""===S[0]||S[0]&&"/"===S[0].charAt(0);k&&(n.hostname=n.host=P?"":S.length?S.shift():"",(R=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift()));return(x=x||n.host&&S.length)&&!P&&S.unshift(""),S.length?n.pathname=S.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},function(e,t){function n(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};Object(a.a)(this,e),this.init(t,n)}return Object(s.a)(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||p,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),r=1;r-1?e.replace(/###/g,"."):e}function o(){return!e||"string"===typeof e}for(var i="string"!==typeof t?[].concat(t):t.split(".");i.length>1;){if(o())return{};var a=r(i.shift());!e[a]&&n&&(e[a]=new n),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return o()?{}:{obj:e,k:r(i.shift())}}function x(e,t,n){var r=w(e,t,Object);r.obj[r.k]=n}function O(e,t){var n=w(e,t),r=n.obj,o=n.k;if(r)return r[o]}function S(e,t,n){var r=O(e,n);return void 0!==r?r:O(t,n)}function k(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"===typeof e[r]||e[r]instanceof String||"string"===typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):k(e[r],t[r],n):e[r]=t[r]);return e}function E(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var j={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function C(e){return"string"===typeof e?e.replace(/[&<>"'\/]/g,(function(e){return j[e]})):e}var _="undefined"!==typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1;function R(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),o=e,i=0;ii+a;)a++,u=o[s=r.slice(i,i+a).join(n)];if(void 0===u)return;if("string"===typeof u)return u;if(s&&"string"===typeof u[s])return u[s];var l=r.slice(i+a).join(n);return l?R(u,l,n):void 0}o=o[r[i]]}return o}}var P=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return Object(a.a)(this,t),n=l(this,Object(c.a)(t).call(this)),_&&m.call(Object(u.a)(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),void 0===n.options.ignoreJSONStructure&&(n.options.ignoreJSONStructure=!0),n}return d(t,e),Object(s.a)(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,i=void 0!==r.ignoreJSONStructure?r.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[e,t];n&&"string"!==typeof n&&(a=a.concat(n)),n&&"string"===typeof n&&(a=a.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(a=e.split("."));var s=O(this.data,a);return s||!i||"string"!==typeof n?s:R(this.data&&this.data[e]&&this.data[e][t],n,o)}},{key:"addResource",value:function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},i=this.options.keySeparator;void 0===i&&(i=".");var a=[e,t];n&&(a=a.concat(i?n.split(i):n)),e.indexOf(".")>-1&&(r=t,t=(a=e.split("."))[1]),this.addNamespaces(t),x(this.data,a,r),o.silent||this.emit("added",e,t,n,r)}},{key:"addResources",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!==typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(e,t,o,n[o],{silent:!0});r.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[e,t];e.indexOf(".")>-1&&(r=n,n=t,t=(s=e.split("."))[1]),this.addNamespaces(t);var u=O(this.data,s)||{};r?k(u,n,o):u=i({},u,n),x(this.data,s,u),a.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?i({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"toJSON",value:function(){return this.data}}]),t}(m),T={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,r,o){var i=this;return e.forEach((function(e){i.processors[e]&&(t=i.processors[e].process(t,n,r,o))})),t}},A={},L=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(a.a)(this,t),n=l(this,Object(c.a)(t).call(this)),_&&m.call(Object(u.a)(n)),y(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,Object(u.a)(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=v.create("translator"),n}return d(t,e),Object(s.a)(t,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}};if(void 0===e||null===e)return!1;var n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var r=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=t.ns||this.options.defaultNS;if(n&&e.indexOf(n)>-1){var i=e.match(this.interpolator.nestingRegexp);if(i&&i.length>0)return{key:e,namespaces:o};var a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),e=a.join(r)}return"string"===typeof o&&(o=[o]),{key:e,namespaces:o}}},{key:"translate",value:function(e,n,o){var a=this;if("object"!==Object(r.a)(n)&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),n||(n={}),void 0===e||null===e)return"";Array.isArray(e)||(e=[String(e)]);var s=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,u=this.extractFromKey(e[e.length-1],n),l=u.key,c=u.namespaces,f=c[c.length-1],d=n.lng||this.language,p=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var h=n.nsSeparator||this.options.nsSeparator;return f+h+l}return l}var v=this.resolve(e,n),m=v&&v.res,g=v&&v.usedKey||l,b=v&&v.exactUsedKey||l,y=Object.prototype.toString.apply(m),w=["[object Number]","[object Function]","[object RegExp]"],x=void 0!==n.joinArrays?n.joinArrays:this.options.joinArrays,O=!this.i18nFormat||this.i18nFormat.handleAsObject,S="string"!==typeof m&&"boolean"!==typeof m&&"number"!==typeof m;if(O&&m&&S&&w.indexOf(y)<0&&("string"!==typeof x||"[object Array]"!==y)){if(!n.returnObjects&&!this.options.returnObjects)return this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,m,i({},n,{ns:c})):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");if(s){var k="[object Array]"===y,E=k?[]:{},j=k?b:g;for(var C in m)if(Object.prototype.hasOwnProperty.call(m,C)){var _="".concat(j).concat(s).concat(C);E[C]=this.translate(_,i({},n,{joinArrays:!1,ns:c})),E[C]===_&&(E[C]=m[C])}m=E}}else if(O&&"string"===typeof x&&"[object Array]"===y)(m=m.join(x))&&(m=this.extendTranslation(m,e,n,o));else{var R=!1,P=!1,T=void 0!==n.count&&"string"!==typeof n.count,A=t.hasDefaultValue(n),L=T?this.pluralResolver.getSuffix(d,n.count):"",M=n["defaultValue".concat(L)]||n.defaultValue;!this.isValidLookup(m)&&A&&(R=!0,m=M),this.isValidLookup(m)||(P=!0,m=l);var N=n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,I=N&&P?void 0:m,D=A&&M!==m&&this.options.updateMissing;if(P||R||D){if(this.logger.log(D?"updateKey":"missingKey",d,f,l,D?M:m),s){var F=this.resolve(l,i({},n,{keySeparator:!1}));F&&F.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var z=[],B=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if("fallback"===this.options.saveMissingTo&&B&&B[0])for(var U=0;U1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e&&(e=[e]),e.forEach((function(e){if(!a.isValidLookup(t)){var u=a.extractFromKey(e,s),l=u.key;n=l;var c=u.namespaces;a.options.fallbackNS&&(c=c.concat(a.options.fallbackNS));var f=void 0!==s.count&&"string"!==typeof s.count,d=void 0!==s.context&&("string"===typeof s.context||"number"===typeof s.context)&&""!==s.context,p=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);c.forEach((function(e){a.isValidLookup(t)||(i=e,!A["".concat(p[0],"-").concat(e)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(i)&&(A["".concat(p[0],"-").concat(e)]=!0,a.logger.warn('key "'.concat(n,'" for languages "').concat(p.join(", "),'" won\'t get resolved as namespace "').concat(i,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),p.forEach((function(n){if(!a.isValidLookup(t)){o=n;var i,u,c=l,p=[c];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(p,l,n,e,s);else f&&(i=a.pluralResolver.getSuffix(n,s.count)),f&&d&&p.push(c+i),d&&p.push(c+="".concat(a.options.contextSeparator).concat(s.context)),f&&p.push(c+=i);for(;u=p.pop();)a.isValidLookup(t)||(r=u,t=a.getResource(n,e,u,s))}})))}))}})),{res:t,usedKey:n,exactUsedKey:r,usedLng:o,usedNS:i}}},{key:"isValidLookup",value:function(e){return void 0!==e&&!(!this.options.returnNull&&null===e)&&!(!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}}],[{key:"hasDefaultValue",value:function(e){var t="defaultValue";for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t===n.substring(0,t.length)&&void 0!==e[n])return!0;return!1}}]),t}(m);function M(e){return e.charAt(0).toUpperCase()+e.slice(1)}var N=function(){function e(t){Object(a.a)(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=v.create("languageUtils")}return Object(s.a)(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"===typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=M(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=M(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=M(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isWhitelisted",value:function(e){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(e)}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach((function(e){if(!t){var r=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(r)||(t=r)}})),!t&&this.options.supportedLngs&&e.forEach((function(e){if(!t){var r=n.getLanguagePartFromCode(e);if(n.isSupportedCode(r))return t=r;t=n.options.supportedLngs.find((function(e){if(0===e.indexOf(r))return e}))}})),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"===typeof e&&(e=e(t)),"string"===typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,r=this.getFallbackCodes(t||this.options.fallbackLng||[],e),o=[],i=function(e){e&&(n.isSupportedCode(e)?o.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"===typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&i(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&i(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&i(this.getLanguagePartFromCode(e))):"string"===typeof e&&i(this.formatLanguageCode(e)),r.forEach((function(e){o.indexOf(e)<0&&i(n.formatLanguageCode(e))})),o}}]),e}(),I=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],D={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}};function F(){var e={};return I.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:D[t.fc]}}))})),e}var z=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(a.a)(this,e),this.languageUtils=t,this.options=n,this.logger=v.create("pluralResolver"),this.rules=F()}return Object(s.a)(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=this.getRule(e);return t&&t.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){return this.getSuffixes(e).map((function(e){return t+e}))}},{key:"getSuffixes",value:function(e){var t=this,n=this.getRule(e);return n?n.numbers.map((function(n){return t.getSuffix(e,n)})):[]}},{key:"getSuffix",value:function(e,t){var n=this,r=this.getRule(e);if(r){var o=r.noAbs?r.plurals(t):r.plurals(Math.abs(t)),i=r.numbers[o];this.options.simplifyPluralSuffix&&2===r.numbers.length&&1===r.numbers[0]&&(2===i?i="plural":1===i&&(i=""));var a=function(){return n.options.prepend&&i.toString()?n.options.prepend+i.toString():i.toString()};return"v1"===this.options.compatibilityJSON?1===i?"":"number"===typeof i?"_plural_".concat(i.toString()):a():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===r.numbers.length&&1===r.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),B=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object(a.a)(this,e),this.logger=v.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return Object(s.a)(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:C,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?E(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?E(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?E(t.nestingPrefix):t.nestingPrefixEscaped||E("$t("),this.nestingSuffix=t.nestingSuffix?E(t.nestingSuffix):t.nestingSuffixEscaped||E(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,r){var o,a,s,u=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var f=function(e){if(e.indexOf(u.formatSeparator)<0){var o=S(t,l,e);return u.alwaysFormat?u.format(o,void 0,n,i({},r,t,{interpolationkey:e})):o}var a=e.split(u.formatSeparator),s=a.shift().trim(),c=a.join(u.formatSeparator).trim();return u.format(S(t,l,s),c,n,i({},r,t,{interpolationkey:s}))};this.resetRegExp();var d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,p=r&&r.interpolation&&r.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return u.escapeValue?c(u.escape(e)):c(e)}}].forEach((function(t){for(s=0;o=t.regex.exec(e);){if(void 0===(a=f(o[1].trim())))if("function"===typeof d){var n=d(e,o,r);a="string"===typeof n?n:""}else{if(p){a=o[0];continue}u.logger.warn("missed to pass in variable ".concat(o[1]," for interpolating ").concat(e)),a=""}else"string"===typeof a||u.useRawValueToEscape||(a=b(a));var i=t.safeValue(a);if(e=e.replace(o[0],i),p?(t.regex.lastIndex+=i.length,t.regex.lastIndex-=o[0].length):t.regex.lastIndex=0,++s>=u.maxReplaces)break}})),e}},{key:"nest",value:function(e,t){var n,r,o=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=i({},a);function u(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(r[1]);e=r[0],o=(o=this.interpolate(o,s)).replace(/'/g,'"');try{s=JSON.parse(o),t&&(s=i({},t,s))}catch(a){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),a),"".concat(e).concat(n).concat(o)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;n=this.nestingRegexp.exec(e);){var l=[],c=!1;if(-1!==n[0].indexOf(this.formatSeparator)&&!/{.*}/.test(n[1])){var f=n[1].split(this.formatSeparator).map((function(e){return e.trim()}));n[1]=f.shift(),l=f,c=!0}if((r=t(u.call(this,n[1].trim(),s),s))&&n[0]===e&&"string"!==typeof r)return r;"string"!==typeof r&&(r=b(r)),r||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),r=""),c&&(r=l.reduce((function(e,t){return o.format(e,t,a.lng,i({},a,{interpolationkey:n[1].trim()}))}),r.trim())),e=e.replace(n[0],r),this.regexp.lastIndex=0}return e}}]),e}();var U=function(e){function t(e,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Object(a.a)(this,t),o=l(this,Object(c.a)(t).call(this)),_&&m.call(Object(u.a)(o)),o.backend=e,o.store=n,o.services=r,o.languageUtils=r.languageUtils,o.options=i,o.logger=v.create("backendConnector"),o.state={},o.queue=[],o.backend&&o.backend.init&&o.backend.init(r,i.backend,i),o}return d(t,e),Object(s.a)(t,[{key:"queueLoad",value:function(e,t,n,r){var o=this,i=[],a=[],s=[],u=[];return e.forEach((function(e){var r=!0;t.forEach((function(t){var s="".concat(e,"|").concat(t);!n.reload&&o.store.hasResourceBundle(e,t)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?a.indexOf(s)<0&&a.push(s):(o.state[s]=1,r=!1,a.indexOf(s)<0&&a.push(s),i.indexOf(s)<0&&i.push(s),u.indexOf(t)<0&&u.push(t)))})),r||s.push(e)})),(i.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:r}),{toLoad:i,pending:a,toLoadLanguages:s,toLoadNamespaces:u}}},{key:"loaded",value:function(e,t,n){var r=e.split("|"),o=r[0],i=r[1];t&&this.emit("failedLoading",o,i,t),n&&this.store.addResourceBundle(o,i,n),this.state[e]=t?-1:2;var a={};this.queue.forEach((function(n){!function(e,t,n,r){var o=w(e,t,Object),i=o.obj,a=o.k;i[a]=i[a]||[],r&&(i[a]=i[a].concat(n)),r||i[a].push(n)}(n.loaded,[o],i),function(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}(n.pending,e),t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach((function(e){a[e]||(a[e]=[]),n.loaded[e].length&&n.loaded[e].forEach((function(t){a[e].indexOf(t)<0&&a[e].push(t)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",a),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,(function(s,u){s&&u&&o<5?setTimeout((function(){r.read.call(r,e,t,n,o+1,2*i,a)}),i):a(s,u)})):a(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"===typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"===typeof t&&(t=[t]);var i=this.queueLoad(e,t,r,o);if(!i.toLoad.length)return i.pending.length||o(),null;i.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("|"),o=r[0],i=r[1];this.read(o,i,"read",void 0,void 0,(function(r,a){r&&t.logger.warn("".concat(n,"loading namespace ").concat(i," for language ").concat(o," failed"),r),!r&&a&&t.logger.log("".concat(n,"loaded namespace ").concat(i," for language ").concat(o),a),t.loaded(e,r,a)}))}},{key:"saveMissing",value:function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):void 0!==n&&null!==n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(e,t,n,r,null,i({},a,{isUpdate:o})),e&&e[0]&&this.store.addResource(e[0],t,n,r))}}]),t}(m);function H(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===Object(r.a)(e[1])&&(t=e[1]),"string"===typeof e[1]&&(t.defaultValue=e[1]),"string"===typeof e[2]&&(t.tDescription=e[2]),"object"===Object(r.a)(e[2])||"object"===Object(r.a)(e[3])){var n=e[3]||e[2];Object.keys(n).forEach((function(e){t[e]=n[e]}))}return t},interpolation:{escapeValue:!0,format:function(e,t,n,r){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function W(e){return"string"===typeof e.ns&&(e.ns=[e.ns]),"string"===typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"===typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function V(){}var q=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(Object(a.a)(this,t),e=l(this,Object(c.a)(t).call(this)),_&&m.call(Object(u.a)(e)),e.options=W(n),e.services={},e.logger=v,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),l(e,Object(u.a)(e));setTimeout((function(){e.init(n,r)}),0)}return e}return d(t,e),Object(s.a)(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function r(e){return e?"function"===typeof e?new e:e:null}if("function"===typeof t&&(n=t,t={}),t.whitelist&&!t.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),t.nonExplicitWhitelist&&!t.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=i({},H(),this.options,W(t)),this.format=this.options.interpolation.format,n||(n=V),!this.options.isClone){this.modules.logger?v.init(r(this.modules.logger),this.options):v.init(null,this.options);var o=new N(this.options);this.store=new P(this.options.resources,this.options);var a=this.services;a.logger=v,a.resourceStore=this.store,a.languageUtils=o,a.pluralResolver=new z(o,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new B(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new U(r(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o0&&"dev"!==s[0]&&(this.options.lng=s[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var u=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];u.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}}));var l=["addResource","addResources","addResourceBundle","removeResourceBundle"];l.forEach((function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments),e}}));var c=g(),f=function(){var t=function(t,r){e.isInitialized&&!e.initializedStoreOnce&&e.logger.warn("init: i18next is already initialized. You should call init just once!"),e.isInitialized=!0,e.options.isClone||e.logger.log("initialized",e.options),e.emit("initialized",e.options),c.resolve(r),n(t,r)};if(e.languages&&"v1"!==e.options.compatibilityAPI&&!e.isInitialized)return t(null,e.t.bind(e));e.changeLanguage(e.options.lng,t)};return this.options.resources||!this.options.initImmediate?f():setTimeout(f,0),c}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V,r=n,o="string"===typeof e?e:this.language;if("function"===typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return r();var i=[],a=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach((function(e){i.indexOf(e)<0&&i.push(e)}))};if(o)a(o);else{var s=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);s.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(i,this.options.ns,r)}else r(null)}},{key:"reloadResources",value:function(e,t,n){var r=g();return e||(e=this.languages),t||(t=this.options.ns),n||(n=V),this.services.backendConnector.reload(e,t,(function(e){r.resolve(),n(e)})),r}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&T.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var r=g();this.emit("languageChanging",e);var o=function(o){e||o||!n.services.languageDetector||(o=[]);var i="string"===typeof o?o:n.services.languageUtils.getBestMatchFromCodes(o);i&&(n.language||(n.language=i,n.languages=n.services.languageUtils.toResolveHierarchy(i)),n.translator.language||n.translator.changeLanguage(i),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(i)),n.loadResources(i,(function(e){!function(e,o){o?(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o),n.translator.changeLanguage(o),n.isLanguageChangingTo=void 0,n.emit("languageChanged",o),n.logger.log("languageChanged",o)):n.isLanguageChangingTo=void 0,r.resolve((function(){return n.t.apply(n,arguments)})),t&&t(e,(function(){return n.t.apply(n,arguments)}))}(e,i)}))};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(o):o(e):o(this.services.languageDetector.detect()),r}},{key:"getFixedT",value:function(e,t,n){var o=this,a=function e(t,a){var s;if("object"!==Object(r.a)(a)){for(var u=arguments.length,l=new Array(u>2?u-2:0),c=2;c1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var r=this.languages[0],o=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;var a=function(e,n){var r=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===r||2===r};if(n.precheck){var s=n.precheck(this,a);if(void 0!==s)return s}return!!this.hasResourceBundle(r,e)||(!this.services.backendConnector.backend||!(!a(r,e)||o&&!a(i,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,r=g();return this.options.ns?("string"===typeof e&&(e=[e]),e.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){r.resolve(),t&&t(e)})),r):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=g();"string"===typeof e&&(e=[e]);var r=this.options.preload||[],o=e.filter((function(e){return r.indexOf(e)<0}));return o.length?(this.options.preload=r.concat(o),this.loadResources((function(e){n.resolve(),t&&t(e)})),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),!e)return"rtl";return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr"}},{key:"createInstance",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(e,n)}},{key:"cloneInstance",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:V,o=i({},this.options,n,{isClone:!0}),a=new t(o),s=["store","services","language"];return s.forEach((function(t){a[t]=e[t]})),a.services=i({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new L(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0||m.errorUpdateCount>0,isFetchedAfterMount:m.dataUpdateCount>f.dataUpdateCount||m.errorUpdateCount>f.errorUpdateCount,isFetching:w,isRefetching:w&&"loading"!==x,isLoadingError:"error"===x&&0===m.dataUpdatedAt,isPlaceholderData:S,isPreviousData:O,isRefetchError:"error"===x&&0!==m.dataUpdatedAt,isStale:v(e,t),refetch:this.refetch,remove:this.remove}},n.shouldNotifyListeners=function(e,t){if(!t)return!0;var n=this.options,r=n.notifyOnChangeProps,o=n.notifyOnChangePropsExclusions;if(!r&&!o)return!0;if("tracked"===r&&!this.trackedProps.length)return!0;var i="tracked"===r?this.trackedProps:r;return Object.keys(e).some((function(n){var r=n,a=e[r]!==t[r],s=null==i?void 0:i.some((function(e){return e===n})),u=null==o?void 0:o.some((function(e){return e===n}));return a&&!u&&(!i||s)}))},n.updateResult=function(e){var t=this.currentResult;if(this.currentResult=this.createResult(this.currentQuery,this.options),this.currentResultState=this.currentQuery.state,this.currentResultOptions=this.options,!Object(i.p)(this.currentResult,t)){var n={cache:!0};!1!==(null==e?void 0:e.listeners)&&this.shouldNotifyListeners(this.currentResult,t)&&(n.listeners=!0),this.notify(Object(r.a)({},n,e))}},n.updateQuery=function(){var e=this.client.getQueryCache().build(this.client,this.options);if(e!==this.currentQuery){var t=this.currentQuery;this.currentQuery=e,this.currentQueryInitialState=e.state,this.previousQueryResult=this.currentResult,this.hasListeners()&&(null==t||t.removeObserver(this),e.addObserver(this))}},n.onQueryUpdate=function(e){var t={};"success"===e.type?t.onSuccess=!0:"error"!==e.type||Object(c.c)(e.error)||(t.onError=!0),this.updateResult(t),this.hasListeners()&&this.updateTimers()},n.notify=function(e){var t=this;a.a.batch((function(){e.onSuccess?(null==t.options.onSuccess||t.options.onSuccess(t.currentResult.data),null==t.options.onSettled||t.options.onSettled(t.currentResult.data,null)):e.onError&&(null==t.options.onError||t.options.onError(t.currentResult.error),null==t.options.onSettled||t.options.onSettled(void 0,t.currentResult.error)),e.listeners&&t.listeners.forEach((function(e){e(t.currentResult)})),e.cache&&t.client.getQueryCache().notify({query:t.currentQuery,type:"observerResultsUpdated"})}))},t}(u.a);function d(e,t){return function(e,t){return!1!==t.enabled&&!e.state.dataUpdatedAt&&!("error"===e.state.status&&!1===t.retryOnMount)}(e,t)||e.state.dataUpdatedAt>0&&p(e,t,t.refetchOnMount)}function p(e,t,n){if(!1!==t.enabled){var r="function"===typeof n?n(e):n;return"always"===r||!1!==r&&v(e,t)}return!1}function h(e,t,n,r){return!1!==n.enabled&&(e!==t||!1===r.enabled)&&(!n.suspense||"error"!==e.state.status)&&v(e,n)}function v(e,t){return e.isStaleByTime(t.staleTime)}},function(e,t){},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;re.length)&&(t=e.length);for(var n=0,r=new Array(t);nc))return!1;var d=u.get(e),p=u.get(t);if(d&&p)return d==t&&p==e;var h=-1,v=!0,m=2&n?new r:void 0;for(u.set(e,t),u.set(t,e);++h-1&&e%1==0&&e<=9007199254740991}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){(function(t){var n=e.exports;n.digitCount=function(e){var t=e<0?1:0;return e=Math.abs(Number(e||1)),Math.floor(Math.log10(e))+1+t},n.getType=function(e){return t.isBuffer(e)?"buffer":ArrayBuffer.isView(e)?"arraybufferview":Array.isArray(e)?"array":e instanceof Number?"number":e instanceof Boolean?"boolean":e instanceof Set?"set":e instanceof Map?"map":e instanceof String?"string":e instanceof ArrayBuffer?"arraybuffer":typeof e}}).call(this,n(31).Buffer)},function(e,t,n){(function(e){var r=n(346),o=n(171),i=n(356),a=n(357),s=n(128),u=t;u.request=function(t,n){t="string"===typeof t?s.parse(t):i(t);var o=-1===e.location.protocol.search(/^https?:$/)?"http:":"",a=t.protocol||o,u=t.hostname||t.host,l=t.port,c=t.path||"/";u&&-1!==u.indexOf(":")&&(u="["+u+"]"),t.url=(u?a+"//"+u:"")+(l?":"+l:"")+c,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var f=new r(t);return n&&f.on("response",n),f},u.get=function(e,t){var n=u.request(e,t);return n.end(),n},u.ClientRequest=r,u.IncomingMessage=o.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=a,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]}).call(this,n(35))},function(e,t,n){(function(e){t.fetch=s(e.fetch)&&s(e.ReadableStream),t.writableStream=s(e.WritableStream),t.abortController=s(e.AbortController),t.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),t.blobConstructor=!0}catch(u){}var n;function r(){if(void 0!==n)return n;if(e.XMLHttpRequest){n=new e.XMLHttpRequest;try{n.open("GET",e.XDomainRequest?"/":"https://example.com")}catch(u){n=null}}else n=null;return n}function o(e){var t=r();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(u){}return!1}var i="undefined"!==typeof e.ArrayBuffer,a=i&&s(e.ArrayBuffer.prototype.slice);function s(e){return"function"===typeof e}t.arraybuffer=t.fetch||i&&o("arraybuffer"),t.msstream=!t.fetch&&a&&o("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&i&&o("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!r()&&s(r().overrideMimeType),t.vbArray=s(e.VBArray),n=null}).call(this,n(35))},function(e,t,n){(function(e,r,o){var i=n(170),a=n(62),s=n(172),u=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},l=t.IncomingMessage=function(t,n,a,u){var l=this;if(s.Readable.call(l),l._mode=a,l.headers={},l.rawHeaders=[],l.trailers={},l.rawTrailers=[],l.on("end",(function(){e.nextTick((function(){l.emit("close")}))})),"fetch"===a){if(l._fetchResponse=n,l.url=n.url,l.statusCode=n.status,l.statusMessage=n.statusText,n.headers.forEach((function(e,t){l.headers[t.toLowerCase()]=e,l.rawHeaders.push(t,e)})),i.writableStream){var c=new WritableStream({write:function(e){return new Promise((function(t,n){l._destroyed?n():l.push(new o(e))?t():l._resumeFetch=t}))},close:function(){r.clearTimeout(u),l._destroyed||l.push(null)},abort:function(e){l._destroyed||l.emit("error",e)}});try{return void n.body.pipeTo(c).catch((function(e){r.clearTimeout(u),l._destroyed||l.emit("error",e)}))}catch(h){}}var f=n.body.getReader();!function e(){f.read().then((function(t){if(!l._destroyed){if(t.done)return r.clearTimeout(u),void l.push(null);l.push(new o(t.value)),e()}})).catch((function(e){r.clearTimeout(u),l._destroyed||l.emit("error",e)}))}()}else{if(l._xhr=t,l._pos=0,l.url=t.responseURL,l.statusCode=t.status,l.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach((function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var n=t[1].toLowerCase();"set-cookie"===n?(void 0===l.headers[n]&&(l.headers[n]=[]),l.headers[n].push(t[2])):void 0!==l.headers[n]?l.headers[n]+=", "+t[2]:l.headers[n]=t[2],l.rawHeaders.push(t[1],t[2])}})),l._charset="x-user-defined",!i.overrideMimeType){var d=l.rawHeaders["mime-type"];if(d){var p=d.match(/;\s*charset=([^;])(;|$)/);p&&(l._charset=p[1].toLowerCase())}l._charset||(l._charset="utf-8")}}};a(l,s.Readable),l.prototype._read=function(){var e=this._resumeFetch;e&&(this._resumeFetch=null,e())},l.prototype._onXHRProgress=function(){var e=this,t=e._xhr,n=null;switch(e._mode){case"text:vbarray":if(t.readyState!==u.DONE)break;try{n=new r.VBArray(t.responseBody).toArray()}catch(c){}if(null!==n){e.push(new o(n));break}case"text":try{n=t.responseText}catch(c){e._mode="text:vbarray";break}if(n.length>e._pos){var i=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=new o(i.length),s=0;se._pos&&(e.push(new o(new Uint8Array(l.result.slice(e._pos)))),e._pos=l.result.byteLength)},l.onload=function(){e.push(null)},l.readAsArrayBuffer(n)}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&e.push(null)}}).call(this,n(54),n(35),n(31).Buffer)},function(e,t,n){(t=e.exports=n(173)).Stream=t,t.Readable=t,t.Writable=n(177),t.Duplex=n(71),t.Transform=n(179),t.PassThrough=n(354)},function(e,t,n){"use strict";(function(t,r){var o=n(99);e.exports=y;var i,a=n(167);y.ReadableState=b;n(174).EventEmitter;var s=function(e,t){return e.listeners(t).length},u=n(175),l=n(127).Buffer,c=t.Uint8Array||function(){};var f=Object.create(n(82));f.inherits=n(62);var d=n(347),p=void 0;p=d&&d.debuglog?d.debuglog("stream"):function(){};var h,v=n(348),m=n(176);f.inherits(y,u);var g=["error","close","destroy","pause","resume"];function b(e,t){e=e||{};var r=t instanceof(i=i||n(71));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=n(178).StringDecoder),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function y(e){if(i=i||n(71),!(this instanceof y))return new y(e);this._readableState=new b(e,this),this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function w(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}(e,a)):(o||(i=function(e,t){var n;r=t,l.isBuffer(r)||r instanceof c||"string"===typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"===typeof t||a.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):x(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?x(e,a,t,!1):j(e,a)):x(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=O?e=O:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(E,e):E(e))}function E(e){p("emit readable"),e.emit("readable"),P(e)}function j(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(C,e,t))}function C(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=l.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function A(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(L,t,e))}function L(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function M(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?A(this):k(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&A(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?T(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&A(this)),null!==r&&this.emit("data",r),r},y.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},y.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var u=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?c:y;function l(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",g),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",m),e.removeListener("unpipe",l),n.removeListener("end",c),n.removeListener("end",y),n.removeListener("data",v),d=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function c(){p("onend"),e.end()}i.endEmitted?o.nextTick(u):n.once("end",u),e.on("unpipe",l);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var d=!1;var h=!1;function v(t){p("ondata"),h=!1,!1!==e.write(t)||h||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==M(i.pipes,e))&&!d&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,h=!0),n.pause())}function m(t){p("onerror",t),y(),e.removeListener("error",m),0===s(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",b),y()}function b(){p("onfinish"),e.removeListener("close",g),y()}function y(){p("unpipe"),n.unpipe(e)}return n.on("data",v),function(e,t,n){if("function"===typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",g),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},y.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,console&&console.warn&&console.warn(s)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=d.bind(r);return o.listener=n,r.wrapFn=o,o}function h(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"===typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[e];if(void 0===u)return!1;if("function"===typeof u)i(u,this,t);else{var l=u.length,c=m(u,l);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):v.call(e,t)},s.prototype.listenerCount=v,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(174).EventEmitter},function(e,t,n){"use strict";var r=n(99);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";(function(t,r,o){var i=n(99);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,u=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=g;var l=Object.create(n(82));l.inherits=n(62);var c={deprecate:n(352)},f=n(175),d=n(127).Buffer,p=o.Uint8Array||function(){};var h,v=n(176);function m(){}function g(e,t){s=s||n(71),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,l=e.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(l||0===l)?l:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(k,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),k(e,t))}(e,n,r,t,o);else{var a=O(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||x(e,n),r?u(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(71),!h.call(b,this)&&!(this instanceof s))return new b(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),f.call(this)}function y(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),k(e,t)}function x(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,u=!0;n;)o[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;o.allBuffers=u,y(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,c=n.encoding,f=n.callback;if(y(e,t,!1,t.objectMode?1:l.length,l,c,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function O(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function S(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),k(e,t)}))}function k(e,t){var n=O(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"===typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(S,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}l.inherits(b,f),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"===typeof Symbol&&Symbol.hasInstance&&"function"===typeof Function.prototype[Symbol.hasInstance]?(h=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!h.call(this,e)||this===b&&(e&&e._writableState instanceof g)}})):h=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,d.isBuffer(r)||r instanceof p);return s&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"===typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!==typeof n&&(n=m),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"===typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=d.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var u=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"===typeof e?(n=e,e=null,t=null):"function"===typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,k(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=v.destroy,b.prototype._undestroy=v.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(54),n(350).setImmediate,n(35))},function(e,t,n){"use strict";var r=n(353).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!==typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=c,this.end=f,t=3;break;default:return this.write=d,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"\ufffd";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"\ufffd";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"\ufffd"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function c(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";e.exports=a;var r=n(71),o=Object.create(n(82));function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length0;e+=1);return e},l=function(e,t){var n=new Int32Array(e,t+320,5),r=new Int32Array(5),o=new DataView(r.buffer);return o.setInt32(0,n[0],!1),o.setInt32(4,n[1],!1),o.setInt32(8,n[2],!1),o.setInt32(12,n[3],!1),o.setInt32(16,n[4],!1),r},c=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),(t=t||65536)%64>0)throw new Error("Chunk size must be a multiple of 128 bit");this._offset=0,this._maxChunkLen=t,this._padMaxChunkLen=u(t),this._heap=new ArrayBuffer(a(this._padMaxChunkLen+320+20)),this._h32=new Int32Array(this._heap),this._h8=new Int8Array(this._heap),this._core=new r({Int32Array:Int32Array},{},this._heap)}return e.prototype._initState=function(e,t){this._offset=0;var n=new Int32Array(e,t+320,5);n[0]=1732584193,n[1]=-271733879,n[2]=-1732584194,n[3]=271733878,n[4]=-1009589776},e.prototype._padChunk=function(e,t){var n=u(e),r=new Int32Array(this._heap,0,n>>2);return function(e,t){var n=new Uint8Array(e.buffer),r=t%4,o=t-r;switch(r){case 0:n[o+3]=0;case 1:n[o+2]=0;case 2:n[o+1]=0;case 3:n[o+0]=0}for(var i=1+(t>>2);i>2]|=128<<24-(t%4<<3),e[14+(2+(t>>2)&-16)]=n/(1<<29)|0,e[15+(2+(t>>2)&-16)]=n<<3}(r,e,t),n},e.prototype._write=function(e,t,n,r){s(e,this._h8,this._h32,t,n,r||0)},e.prototype._coreCall=function(e,t,n,r,o){var i=n;this._write(e,t,n),o&&(i=this._padChunk(n,r)),this._core.hash(i,this._padMaxChunkLen)},e.prototype.rawDigest=function(e){var t=e.byteLength||e.length||e.size||0;this._initState(this._heap,this._padMaxChunkLen);var n=0,r=this._maxChunkLen;for(n=0;t>n+r;n+=r)this._coreCall(e,n,r,t,!1);return this._coreCall(e,n,t-n,t,!0),l(this._heap,this._padMaxChunkLen)},e.prototype.digest=function(e){return i(this.rawDigest(e).buffer)},e.prototype.digestFromString=function(e){return this.digest(e)},e.prototype.digestFromBuffer=function(e){return this.digest(e)},e.prototype.digestFromArrayBuffer=function(e){return this.digest(e)},e.prototype.resetState=function(){return this._initState(this._heap,this._padMaxChunkLen),this},e.prototype.append=function(e){var t=0,n=e.byteLength||e.length||e.size||0,r=this._offset%this._maxChunkLen,o=void 0;for(this._offset+=n;t0}),!1)}e.exports=function(e,t){t=t||{};var o={main:n.m},i=t.all?{main:Object.keys(o)}:function(e,t){for(var n={main:[t]},r={main:[]},o={main:{}};u(n);)for(var i=Object.keys(n),a=0;a>2]|0;s=r[t+324>>2]|0;l=r[t+328>>2]|0;f=r[t+332>>2]|0;p=r[t+336>>2]|0;for(n=0;(n|0)<(e|0);n=n+64|0){a=i;u=s;c=l;d=f;h=p;for(o=0;(o|0)<64;o=o+4|0){m=r[n+o>>2]|0;v=((i<<5|i>>>27)+(s&l|~s&f)|0)+((m+p|0)+1518500249|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[e+o>>2]=m}for(o=e+64|0;(o|0)<(e+80|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s&l|~s&f)|0)+((m+p|0)+1518500249|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}for(o=e+80|0;(o|0)<(e+160|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s^l^f)|0)+((m+p|0)+1859775393|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}for(o=e+160|0;(o|0)<(e+240|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s&l|s&f|l&f)|0)+((m+p|0)-1894007588|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}for(o=e+240|0;(o|0)<(e+320|0);o=o+4|0){m=(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])<<1|(r[o-12>>2]^r[o-32>>2]^r[o-56>>2]^r[o-64>>2])>>>31;v=((i<<5|i>>>27)+(s^l^f)|0)+((m+p|0)-899497514|0)|0;p=f;f=l;l=s<<30|s>>>2;s=i;i=v;r[o>>2]=m}i=i+a|0;s=s+u|0;l=l+c|0;f=f+d|0;p=p+h|0}r[t+320>>2]=i;r[t+324>>2]=s;r[t+328>>2]=l;r[t+332>>2]=f;r[t+336>>2]=p}return{hash:o}}},function(e,t){var n=this,r=void 0;"undefined"!==typeof self&&"undefined"!==typeof self.FileReaderSync&&(r=new self.FileReaderSync);var o=function(e,t,n,r,o,i){var a=void 0,s=i%4,u=(o+s)%4,l=o-u;switch(s){case 0:t[i]=e[r+3];case 1:t[i+1-(s<<1)|0]=e[r+2];case 2:t[i+2-(s<<1)|0]=e[r+1];case 3:t[i+3-(s<<1)|0]=e[r]}if(!(o>2|0]=e[r+a]<<24|e[r+a+1]<<16|e[r+a+2]<<8|e[r+a+3];switch(u){case 3:t[i+l+1|0]=e[r+l+2];case 2:t[i+l+2|0]=e[r+l+1];case 1:t[i+l+3|0]=e[r+l]}}};e.exports=function(e,t,i,a,s,u){if("string"===typeof e)return function(e,t,n,r,o,i){var a=void 0,s=i%4,u=(o+s)%4,l=o-u;switch(s){case 0:t[i]=e.charCodeAt(r+3);case 1:t[i+1-(s<<1)|0]=e.charCodeAt(r+2);case 2:t[i+2-(s<<1)|0]=e.charCodeAt(r+1);case 3:t[i+3-(s<<1)|0]=e.charCodeAt(r)}if(!(o>2]=e.charCodeAt(r+a)<<24|e.charCodeAt(r+a+1)<<16|e.charCodeAt(r+a+2)<<8|e.charCodeAt(r+a+3);switch(u){case 3:t[i+l+1|0]=e.charCodeAt(r+l+2);case 2:t[i+l+2|0]=e.charCodeAt(r+l+1);case 1:t[i+l+3|0]=e.charCodeAt(r+l)}}}(e,t,i,a,s,u);if(e instanceof Array)return o(e,t,i,a,s,u);if(n&&n.Buffer&&n.Buffer.isBuffer(e))return o(e,t,i,a,s,u);if(e instanceof ArrayBuffer)return o(new Uint8Array(e),t,i,a,s,u);if(e.buffer instanceof ArrayBuffer)return o(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t,i,a,s,u);if(e instanceof Blob)return function(e,t,n,o,i,a){var s=void 0,u=a%4,l=(i+u)%4,c=i-l,f=new Uint8Array(r.readAsArrayBuffer(e.slice(o,o+i)));switch(u){case 0:t[a]=f[3];case 1:t[a+1-(u<<1)|0]=f[2];case 2:t[a+2-(u<<1)|0]=f[1];case 3:t[a+3-(u<<1)|0]=f[0]}if(!(i>2|0]=f[s]<<24|f[s+1]<<16|f[s+2]<<8|f[s+3];switch(l){case 3:t[a+c+1|0]=f[c+2];case 2:t[a+c+2|0]=f[c+1];case 1:t[a+c+3|0]=f[c]}}}(e,t,i,a,s,u);throw new Error("Unsupported data type.")}},function(e,t,n){var r=function(){function e(e,t){for(var n=0;n overrides the height property of the style prop"));var d=i(i({},n),{height:f?f+"px":"100vh"});return o.a.createElement("div",i({ref:t,style:d},u))}));function l(){var e;return c()?(null===(e=document.documentElement)||void 0===e?void 0:e.clientHeight)||window.innerHeight:null}function c(){return"undefined"!==typeof window&&"undefined"!==typeof document}u.displayName="Div100vh",t.a=u},function(e,t,n){"use strict";function r(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return E}));var r=n(38),o=n(29),i=[],a=i.forEach,s=i.slice;function u(e){return a.call(s.call(arguments,1),(function(t){if(t)for(var n in t)void 0===e[n]&&(e[n]=t[n])})),e}var l=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,c=function(e,t,n){var r=n||{};r.path=r.path||"/";var o=encodeURIComponent(t),i="".concat(e,"=").concat(o);if(r.maxAge>0){var a=r.maxAge-0;if(Number.isNaN(a))throw new Error("maxAge should be a Number");i+="; Max-Age=".concat(Math.floor(a))}if(r.domain){if(!l.test(r.domain))throw new TypeError("option domain is invalid");i+="; Domain=".concat(r.domain)}if(r.path){if(!l.test(r.path))throw new TypeError("option path is invalid");i+="; Path=".concat(r.path)}if(r.expires){if("function"!==typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");i+="; Expires=".concat(r.expires.toUTCString())}if(r.httpOnly&&(i+="; HttpOnly"),r.secure&&(i+="; Secure"),r.sameSite)switch("string"===typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i},f=function(e,t,n,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{path:"/",sameSite:"strict"};n&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+60*n*1e3)),r&&(o.domain=r),document.cookie=c(e,encodeURIComponent(t),o)},d=function(e){for(var t="".concat(e,"="),n=document.cookie.split(";"),r=0;r-1&&(n=window.location.hash.substring(window.location.hash.indexOf("?")));for(var r=n.substring(1).split("&"),o=0;o0)r[o].substring(0,i)===e.lookupQuerystring&&(t=r[o].substring(i+1))}}return t}},v=null,m=function(){if(null!==v)return v;try{v="undefined"!==window&&null!==window.localStorage;var e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch(t){v=!1}return v},g={name:"localStorage",lookup:function(e){var t;if(e.lookupLocalStorage&&m()){var n=window.localStorage.getItem(e.lookupLocalStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupLocalStorage&&m()&&window.localStorage.setItem(t.lookupLocalStorage,e)}},b=null,y=function(){if(null!==b)return b;try{b="undefined"!==window&&null!==window.sessionStorage;var e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch(t){b=!1}return b},w={name:"sessionStorage",lookup:function(e){var t;if(e.lookupSessionStorage&&y()){var n=window.sessionStorage.getItem(e.lookupSessionStorage);n&&(t=n)}return t},cacheUserLanguage:function(e,t){t.lookupSessionStorage&&y()&&window.sessionStorage.setItem(t.lookupSessionStorage,e)}},x={name:"navigator",lookup:function(e){var t=[];if("undefined"!==typeof navigator){if(navigator.languages)for(var n=0;n0?t:void 0}},O={name:"htmlTag",lookup:function(e){var t,n=e.htmlTag||("undefined"!==typeof document?document.documentElement:null);return n&&"function"===typeof n.getAttribute&&(t=n.getAttribute("lang")),t}},S={name:"path",lookup:function(e){var t;if("undefined"!==typeof window){var n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(n instanceof Array)if("number"===typeof e.lookupFromPathIndex){if("string"!==typeof n[e.lookupFromPathIndex])return;t=n[e.lookupFromPathIndex].replace("/","")}else t=n[0].replace("/","")}return t}},k={name:"subdomain",lookup:function(e){var t="number"===typeof e.lookupFromSubdomainIndex?e.lookupFromSubdomainIndex+1:1,n="undefined"!==typeof window&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(n)return n[t]}};var E=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(r.a)(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return Object(o.a)(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.services=e,this.options=u(t,this.options||{},{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(p),this.addDetector(h),this.addDetector(g),this.addDetector(w),this.addDetector(x),this.addDetector(O),this.addDetector(S),this.addDetector(k)}},{key:"addDetector",value:function(e){this.detectors[e.name]=e}},{key:"detect",value:function(e){var t=this;e||(e=this.options.order);var n=[];return e.forEach((function(e){if(t.detectors[e]){var r=t.detectors[e].lookup(t.options);r&&"string"===typeof r&&(r=[r]),r&&(n=n.concat(r))}})),this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}},{key:"cacheUserLanguage",value:function(e,t){var n=this;t||(t=this.options.caches),t&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||t.forEach((function(t){n.detectors[t]&&n.detectors[t].cacheUserLanguage(e,n.options)})))}}]),e}();E.type="languageDetector"},,,,function(e,t,n){"use strict";var r=n(2),o=n(48),i=n(27),a=n(0),s=n(7),u=n.n(s),l=n(196),c=["client","offset","scroll","bounds","margin"];function f(e){var t=[];return c.forEach((function(n){e[n]&&t.push(n)})),t}function d(e,t){var n={};if(t.indexOf("client")>-1&&(n.client={top:e.clientTop,left:e.clientLeft,width:e.clientWidth,height:e.clientHeight}),t.indexOf("offset")>-1&&(n.offset={top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth,height:e.offsetHeight}),t.indexOf("scroll")>-1&&(n.scroll={top:e.scrollTop,left:e.scrollLeft,width:e.scrollWidth,height:e.scrollHeight}),t.indexOf("bounds")>-1){var r=e.getBoundingClientRect();n.bounds={top:r.top,right:r.right,bottom:r.bottom,left:r.left,width:r.width,height:r.height}}if(t.indexOf("margin")>-1){var o=getComputedStyle(e);n.margin={top:o?parseInt(o.marginTop):0,right:o?parseInt(o.marginRight):0,bottom:o?parseInt(o.marginBottom):0,left:o?parseInt(o.marginLeft):0}}return n}function p(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||window}var h=function(e){return function(t){var n,s;return s=n=function(n){function s(){for(var t,r=arguments.length,o=new Array(r),i=0;i0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;a.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),l=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),x="undefined"!==typeof WeakMap?new WeakMap:new n,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=u.getInstance(),r=new w(t,n,this);x.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=x.get(this))[e].apply(t,arguments)}}));var S="undefined"!==typeof o.ResizeObserver?o.ResizeObserver:O;t.a=S}).call(this,n(35))},function(e,t){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;up)&&(z=(H=H.replace(" ",":")).length),0r&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(m,"$1"+e.trim());case 58:return e.trim()+t.replace(m,"$1"+e.trim());default:if(0<1*n&&0u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102r.charCodeAt(0)&&(r=r.trim()),r=[r],0=t||n<0||m&&e-h>=c}function x(){var e=o();if(w(e))return O(e);d=setTimeout(x,function(e){var n=t-(e-p);return m?s(n,c-(e-h)):n}(e))}function O(e){return d=void 0,g&&u?b(e):(u=l=void 0,f)}function S(){var e=o(),n=w(e);if(u=arguments,l=this,p=e,n){if(void 0===d)return y(p);if(m)return clearTimeout(d),d=setTimeout(x,t),b(p)}return void 0===d&&(d=setTimeout(x,t)),f}return t=i(t)||0,r(n)&&(v=!!n.leading,c=(m="maxWait"in n)?a(i(n.maxWait)||0,t):c,g="trailing"in n?!!n.trailing:g),S.cancel=function(){void 0!==d&&clearTimeout(d),h=0,u=p=l=d=void 0},S.flush=function(){return void 0===d?f:O(o())},S}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(","),r=e.name||"",o=(e.type||"").toLowerCase(),i=o.replace(/\/.*$/,"");return n.some((function(e){var t=e.trim().toLowerCase();return"."===t.charAt(0)?r.toLowerCase().endsWith(t):t.endsWith("/*")?i===t.replace(/\/.*$/,""):o===t}))}return!0}},function(e,t,n){"use strict";var r=n(67),o=n(68);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(69)).default)(i.createElement("path",{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"}),"CreditCard");t.default=a},function(e,t,n){"use strict";var r=n(67),o=n(68);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(69)).default)(i.createElement("path",{d:"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z"}),"LibraryAdd");t.default=a},function(e,t,n){"use strict";var r=n(182);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"SwipeableViewsContext",{enumerable:!0,get:function(){return o.SwipeableViewsContext}});var o=r(n(377))},function(e,t,n){"use strict";var r=n(67),o=n(68);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=(0,r(n(69)).default)(i.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");t.default=a},function(e,t,n){"use strict";var r=n(12),o=n(5),i=n(441),a=n(2),s=["xs","sm","md","lg","xl"];function u(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,i=void 0===r?"px":r,u=e.step,l=void 0===u?5:u,c=Object(o.a)(e,["values","unit","step"]);function f(e){var t="number"===typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(i,")")}function d(e,t){var r=s.indexOf(t);return r===s.length-1?f(e):"@media (min-width:".concat("number"===typeof n[e]?n[e]:e).concat(i,") and ")+"(max-width:".concat((-1!==r&&"number"===typeof n[s[r+1]]?n[s[r+1]]:t)-l/100).concat(i,")")}return Object(a.a)({keys:s,values:n,up:f,down:function(e){var t=s.indexOf(e)+1,r=n[s[t]];return t===s.length?f("xs"):"@media (max-width:".concat(("number"===typeof r&&t>0?r:e)-l/100).concat(i,")")},between:d,only:function(e){return d(e,e)},width:function(e){return n[e]}},c)}function l(e,t,n){var o;return Object(a.a)({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:","\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n "].join("\n")),Object(a.a)({paddingLeft:t(2),paddingRight:t(2)},n,Object(r.a)({},e.up("sm"),Object(a.a)({paddingLeft:t(3),paddingRight:t(3)},n[e.up("sm")])))},toolbar:(o={minHeight:56},Object(r.a)(o,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),Object(r.a)(o,e.up("sm"),{minHeight:64}),o)},n)}var c=n(208),f={black:"#000",white:"#fff"},d={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},p={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},h={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},v={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},m={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},g={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},b={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},y=n(15),w={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:f.white,default:d[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},x={text:{primary:f.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:d[800],default:"#303030"},action:{active:f.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function O(e,t,n,r){var o=r.light||r,i=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=Object(y.e)(e.main,o):"dark"===t&&(e.dark=Object(y.b)(e.main,i)))}function S(e){var t=e.primary,n=void 0===t?{light:p[300],main:p[500],dark:p[700]}:t,r=e.secondary,s=void 0===r?{light:h.A200,main:h.A400,dark:h.A700}:r,u=e.error,l=void 0===u?{light:v[300],main:v[500],dark:v[700]}:u,S=e.warning,k=void 0===S?{light:m[300],main:m[500],dark:m[700]}:S,E=e.info,j=void 0===E?{light:g[300],main:g[500],dark:g[700]}:E,C=e.success,_=void 0===C?{light:b[300],main:b[500],dark:b[700]}:C,R=e.type,P=void 0===R?"light":R,T=e.contrastThreshold,A=void 0===T?3:T,L=e.tonalOffset,M=void 0===L?.2:L,N=Object(o.a)(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function I(e){return Object(y.d)(e,x.text.primary)>=A?x.text.primary:w.text.primary}var D=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;if(!(e=Object(a.a)({},e)).main&&e[t]&&(e.main=e[t]),!e.main)throw new Error(Object(c.a)(4,t));if("string"!==typeof e.main)throw new Error(Object(c.a)(5,JSON.stringify(e.main)));return O(e,"light",n,M),O(e,"dark",r,M),e.contrastText||(e.contrastText=I(e.main)),e},F={dark:x,light:w};return Object(i.a)(Object(a.a)({common:f,type:P,primary:D(n),secondary:D(s,"A400","A200","A700"),error:D(l),warning:D(k),info:D(j),success:D(_),grey:d,contrastThreshold:A,getContrastText:I,augmentColor:D,tonalOffset:M},F[P]),N)}function k(e){return Math.round(1e5*e)/1e5}function E(e){return k(e)}var j={textTransform:"uppercase"},C='"Roboto", "Helvetica", "Arial", sans-serif';function _(e,t){var n="function"===typeof t?t(e):t,r=n.fontFamily,s=void 0===r?C:r,u=n.fontSize,l=void 0===u?14:u,c=n.fontWeightLight,f=void 0===c?300:c,d=n.fontWeightRegular,p=void 0===d?400:d,h=n.fontWeightMedium,v=void 0===h?500:h,m=n.fontWeightBold,g=void 0===m?700:m,b=n.htmlFontSize,y=void 0===b?16:b,w=n.allVariants,x=n.pxToRem,O=Object(o.a)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]);var S=l/14,_=x||function(e){return"".concat(e/y*S,"rem")},R=function(e,t,n,r,o){return Object(a.a)({fontFamily:s,fontWeight:e,fontSize:_(t),lineHeight:n},s===C?{letterSpacing:"".concat(k(r/t),"em")}:{},o,w)},P={h1:R(f,96,1.167,-1.5),h2:R(f,60,1.2,-.5),h3:R(p,48,1.167,0),h4:R(p,34,1.235,.25),h5:R(p,24,1.334,0),h6:R(v,20,1.6,.15),subtitle1:R(p,16,1.75,.15),subtitle2:R(v,14,1.57,.1),body1:R(p,16,1.5,.15),body2:R(p,14,1.43,.15),button:R(v,14,1.75,.4,j),caption:R(p,12,1.66,.4),overline:R(p,12,2.66,1,j)};return Object(i.a)(Object(a.a)({htmlFontSize:y,pxToRem:_,round:E,fontFamily:s,fontSize:l,fontWeightLight:f,fontWeightRegular:p,fontWeightMedium:v,fontWeightBold:g},P),O,{clone:!1})}function R(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var P=["none",R(0,2,1,-1,0,1,1,0,0,1,3,0),R(0,3,1,-2,0,2,2,0,0,1,5,0),R(0,3,3,-2,0,3,4,0,0,1,8,0),R(0,2,4,-1,0,4,5,0,0,1,10,0),R(0,3,5,-1,0,5,8,0,0,1,14,0),R(0,3,5,-1,0,6,10,0,0,1,18,0),R(0,4,5,-2,0,7,10,1,0,2,16,1),R(0,5,5,-3,0,8,10,1,0,3,14,2),R(0,5,6,-3,0,9,12,1,0,3,16,2),R(0,6,6,-3,0,10,14,1,0,4,18,3),R(0,6,7,-4,0,11,15,1,0,4,20,3),R(0,7,8,-4,0,12,17,2,0,5,22,4),R(0,7,8,-4,0,13,19,2,0,5,24,4),R(0,7,9,-4,0,14,21,2,0,5,26,4),R(0,8,9,-5,0,15,22,2,0,6,28,5),R(0,8,10,-5,0,16,24,2,0,6,30,5),R(0,8,11,-5,0,17,26,2,0,6,32,5),R(0,9,11,-5,0,18,28,2,0,7,34,6),R(0,9,12,-6,0,19,29,2,0,7,36,6),R(0,10,13,-6,0,20,31,3,0,8,38,7),R(0,10,13,-6,0,21,33,3,0,8,40,7),R(0,10,14,-6,0,22,35,3,0,8,42,7),R(0,11,14,-7,0,23,36,3,0,9,44,8),R(0,11,15,-7,0,24,38,3,0,9,46,8)],T={borderRadius:4},A=n(9),L=(n(33),n(30));var M=function(e,t){return t?Object(i.a)(e,t,{clone:!1}):e},N={xs:0,sm:600,md:960,lg:1280,xl:1920},I={keys:["xs","sm","md","lg","xl"],up:function(e){return"@media (min-width:".concat(N[e],"px)")}};var D={m:"margin",p:"padding"},F={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},z={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},B=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}((function(e){if(e.length>2){if(!z[e])return[e];e=z[e]}var t=e.split(""),n=Object(A.a)(t,2),r=n[0],o=n[1],i=D[r],a=F[o]||"";return Array.isArray(a)?a.map((function(e){return i+e})):[i+a]})),U=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function H(e){var t=e.spacing||8;return"number"===typeof t?function(e){return t*e}:Array.isArray(t)?function(e){return t[e]}:"function"===typeof t?t:function(){}}function W(e,t){return function(n){return e.reduce((function(e,r){return e[r]=function(e,t){if("string"===typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"===typeof n?-n:"-".concat(n)}(t,n),e}),{})}}function V(e){var t=H(e.theme);return Object.keys(e).map((function(n){if(-1===U.indexOf(n))return null;var r=W(B(n),t),o=e[n];return function(e,t,n){if(Array.isArray(t)){var r=e.theme.breakpoints||I;return t.reduce((function(e,o,i){return e[r.up(r.keys[i])]=n(t[i]),e}),{})}if("object"===Object(L.a)(t)){var o=e.theme.breakpoints||I;return Object.keys(t).reduce((function(e,r){return e[o.up(r)]=n(t[r]),e}),{})}return n(t)}(e,o,r)})).reduce(M,{})}V.propTypes={},V.filterProps=U;function q(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=H({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,r=e.mixins,a=void 0===r?{}:r,s=e.palette,c=void 0===s?{}:s,f=e.spacing,d=e.typography,p=void 0===d?{}:d,h=Object(o.a)(e,["breakpoints","mixins","palette","spacing","typography"]),v=S(c),m=u(n),g=q(f),b=Object(i.a)({breakpoints:m,direction:"ltr",mixins:l(m,g,a),overrides:{},palette:v,props:{},shadows:P,typography:_(v,p),spacing:g,shape:T,transitions:$.a,zIndex:K.a},h),y=arguments.length,w=new Array(y>1?y-1:0),x=1;x0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}Object.create;var c=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function f(e,t){var n=function(e){var t=e.name;if(t&&-1!==t.lastIndexOf(".")&&!e.type){var n=t.split(".").pop().toLowerCase(),r=c.get(n);r&&Object.defineProperty(e,"type",{value:r,writable:!1,configurable:!1,enumerable:!0})}return e}(e);if("string"!==typeof n.path){var r=e.webkitRelativePath;Object.defineProperty(n,"path",{value:"string"===typeof t?t:"string"===typeof r&&r.length>0?r:e.name,writable:!1,configurable:!1,enumerable:!0})}return n}var d=[".DS_Store","Thumbs.db"];function p(e){return"object"===typeof e&&null!==e}function h(e){return b(e.target.files).map((function(e){return f(e)}))}function v(e){return s(this,void 0,void 0,(function(){return u(this,(function(t){switch(t.label){case 0:return[4,Promise.all(e.map((function(e){return e.getFile()})))];case 1:return[2,t.sent().map((function(e){return f(e)}))]}}))}))}function m(e,t){return s(this,void 0,void 0,(function(){var n;return u(this,(function(r){switch(r.label){case 0:return null===e?[2,[]]:e.items?(n=b(e.items).filter((function(e){return"file"===e.kind})),"drop"!==t?[2,n]:[4,Promise.all(n.map(y))]):[3,2];case 1:return[2,g(w(r.sent()))];case 2:return[2,g(b(e.files).map((function(e){return f(e)})))]}}))}))}function g(e){return e.filter((function(e){return-1===d.indexOf(e.name)}))}function b(e){if(null===e)return[];for(var t=[],n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nn)return[!1,D(n)];if(e.sizen)return[!1,D(n)]}return[!0,null]}function H(e){return void 0!==e&&null!==e}function W(e){var t=e.files,n=e.accept,r=e.minSize,o=e.maxSize,i=e.multiple,a=e.maxFiles;return!(!i&&t.length>1||i&&a>=1&&t.length>a)&&t.every((function(e){var t=P(B(e,n),1)[0],i=P(U(e,r,o),1)[0];return t&&i}))}function V(e){return"function"===typeof e.isPropagationStopped?e.isPropagationStopped():"undefined"!==typeof e.cancelBubble&&e.cancelBubble}function q(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,(function(e){return"Files"===e||"application/x-moz-file"===e})):!!e.target&&!!e.target.files}function $(e){e.preventDefault()}function K(e){return-1!==e.indexOf("MSIE")||-1!==e.indexOf("Trident/")}function Q(e){return-1!==e.indexOf("Edge/")}function Y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator.userAgent;return K(e)||Q(e)}function X(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),o=1;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var fe=Object(r.forwardRef)((function(e,t){var n=e.children,i=he(ce(e,Z)),a=i.open,s=ce(i,ee);return Object(r.useImperativeHandle)(t,(function(){return{open:a}}),[a]),o.a.createElement(r.Fragment,null,n(ue(ue({},s),{},{open:a})))}));fe.displayName="Dropzone";var de={disabled:!1,getFilesFromEvent:function(e){return s(this,void 0,void 0,(function(){return u(this,(function(t){return p(e)&&p(e.dataTransfer)?[2,m(e.dataTransfer,e.type)]:function(e){return p(e)&&p(e.target)}(e)?[2,h(e)]:Array.isArray(e)&&e.every((function(e){return"getFile"in e&&"function"===typeof e.getFile}))?[2,v(e)]:[2,[]]}))}))},maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};fe.defaultProps=de,fe.propTypes={children:a.a.func,accept:a.a.oneOfType([a.a.string,a.a.arrayOf(a.a.string)]),multiple:a.a.bool,preventDropOnDocument:a.a.bool,noClick:a.a.bool,noKeyboard:a.a.bool,noDrag:a.a.bool,noDragEventsBubbling:a.a.bool,minSize:a.a.number,maxSize:a.a.number,maxFiles:a.a.number,disabled:a.a.bool,getFilesFromEvent:a.a.func,onFileDialogCancel:a.a.func,onFileDialogOpen:a.a.func,useFsAccessApi:a.a.bool,onDragEnter:a.a.func,onDragLeave:a.a.func,onDragOver:a.a.func,onDrop:a.a.func,onDropAccepted:a.a.func,onDropRejected:a.a.func,validator:a.a.func};var pe={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function he(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ue(ue({},de),e),n=t.accept,o=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,s=t.minSize,u=t.multiple,l=t.maxFiles,c=t.onDragEnter,f=t.onDragLeave,d=t.onDragOver,p=t.onDrop,h=t.onDropAccepted,v=t.onDropRejected,m=t.onFileDialogCancel,g=t.onFileDialogOpen,b=t.useFsAccessApi,y=t.preventDropOnDocument,w=t.noClick,x=t.noKeyboard,O=t.noDrag,S=t.noDragEventsBubbling,k=t.validator,E=Object(r.useMemo)((function(){return"function"===typeof g?g:me}),[g]),j=Object(r.useMemo)((function(){return"function"===typeof m?m:me}),[m]),C=Object(r.useRef)(null),_=Object(r.useRef)(null),R=Object(r.useReducer)(ve,pe),P=oe(R,2),T=P[0],A=P[1],L=T.isFocused,M=T.isFileDialogActive,N=T.draggedFiles,I=function(){M&&setTimeout((function(){_.current&&(_.current.files.length||(A({type:"closeDialog"}),j()))}),300)};Object(r.useEffect)((function(){return b&&G()?function(){}:(window.addEventListener("focus",I,!1),function(){window.removeEventListener("focus",I,!1)})}),[_,M,j,b]);var D=Object(r.useRef)([]),F=function(e){C.current&&C.current.contains(e.target)||(e.preventDefault(),D.current=[])};Object(r.useEffect)((function(){return y&&(document.addEventListener("dragover",$,!1),document.addEventListener("drop",F,!1)),function(){y&&(document.removeEventListener("dragover",$),document.removeEventListener("drop",F))}}),[C,y]);var H=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),we(e),D.current=[].concat(re(D.current),[e.target]),q(e)&&Promise.resolve(i(e)).then((function(t){V(e)&&!S||(A({draggedFiles:t,isDragActive:!0,type:"setDraggedFiles"}),c&&c(e))}))}),[i,c,S]),K=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),we(e);var t=q(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect="copy"}catch(n){}return t&&d&&d(e),!1}),[d,S]),Q=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),we(e);var t=D.current.filter((function(e){return C.current&&C.current.contains(e)})),n=t.indexOf(e.target);-1!==n&&t.splice(n,1),D.current=t,t.length>0||(A({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),q(e)&&f&&f(e))}),[C,f,S]),Z=Object(r.useCallback)((function(e,t){var r=[],o=[];e.forEach((function(e){var t=oe(B(e,n),2),i=t[0],u=t[1],l=oe(U(e,s,a),2),c=l[0],f=l[1],d=k?k(e):null;if(i&&c&&!d)r.push(e);else{var p=[u,f];d&&(p=p.concat(d)),o.push({file:e,errors:p.filter((function(e){return e}))})}})),(!u&&r.length>1||u&&l>=1&&r.length>l)&&(r.forEach((function(e){o.push({file:e,errors:[z]})})),r.splice(0)),A({acceptedFiles:r,fileRejections:o,type:"setFiles"}),p&&p(r,o,t),o.length>0&&v&&v(o,t),r.length>0&&h&&h(r,t)}),[A,u,n,s,a,l,p,h,v,k]),ee=Object(r.useCallback)((function(e){e.preventDefault(),e.persist(),we(e),D.current=[],q(e)&&Promise.resolve(i(e)).then((function(t){V(e)&&!S||Z(t,e)})),A({type:"reset"})}),[i,Z,S]),ie=Object(r.useCallback)((function(){if(b&&G()){A({type:"openDialog"}),E();var e={multiple:u,types:J(n)};window.showOpenFilePicker(e).then((function(e){return i(e)})).then((function(e){return Z(e,null)})).catch((function(e){return j(e)})).finally((function(){return A({type:"closeDialog"})}))}else _.current&&(A({type:"openDialog"}),E(),_.current.value=null,_.current.click())}),[A,E,j,b,Z,n,u]),ae=Object(r.useCallback)((function(e){C.current&&C.current.isEqualNode(e.target)&&(32!==e.keyCode&&13!==e.keyCode||(e.preventDefault(),ie()))}),[C,_,ie]),se=Object(r.useCallback)((function(){A({type:"focus"})}),[]),fe=Object(r.useCallback)((function(){A({type:"blur"})}),[]),he=Object(r.useCallback)((function(){w||(Y()?setTimeout(ie,0):ie())}),[_,w,ie]),ge=function(e){return o?null:e},be=function(e){return x?null:ge(e)},ye=function(e){return O?null:ge(e)},we=function(e){S&&e.stopPropagation()},xe=Object(r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,n=void 0===t?"ref":t,r=e.role,i=e.onKeyDown,a=e.onFocus,s=e.onBlur,u=e.onClick,l=e.onDragEnter,c=e.onDragOver,f=e.onDragLeave,d=e.onDrop,p=ce(e,te);return ue(ue(le({onKeyDown:be(X(i,ae)),onFocus:be(X(a,se)),onBlur:be(X(s,fe)),onClick:ge(X(u,he)),onDragEnter:ye(X(l,H)),onDragOver:ye(X(c,K)),onDragLeave:ye(X(f,Q)),onDrop:ye(X(d,ee)),role:"string"===typeof r&&""!==r?r:"button"},n,C),o||x?{}:{tabIndex:0}),p)}}),[C,ae,se,fe,he,H,K,Q,ee,x,O,o]),Oe=Object(r.useCallback)((function(e){e.stopPropagation()}),[]),Se=Object(r.useMemo)((function(){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.refKey,r=void 0===t?"ref":t,o=e.onChange,i=e.onClick,a=ce(e,ne),s=le({accept:n,multiple:u,type:"file",style:{display:"none"},onChange:ge(X(o,ee)),onClick:ge(X(i,Oe)),autoComplete:"off",tabIndex:-1},r,_);return ue(ue({},s),a)}}),[_,n,u,ee,o]),ke=N.length,Ee=ke>0&&W({files:N,accept:n,minSize:s,maxSize:a,multiple:u,maxFiles:l}),je=ke>0&&!Ee;return ue(ue({},T),{},{isDragAccept:Ee,isDragReject:je,isFocused:L&&!o,getRootProps:xe,getInputProps:Se,rootRef:C,inputRef:_,open:ge(ie)})}function ve(e,t){switch(t.type){case"focus":return ue(ue({},e),{},{isFocused:!0});case"blur":return ue(ue({},e),{},{isFocused:!1});case"openDialog":return ue(ue({},pe),{},{isFileDialogActive:!0});case"closeDialog":return ue(ue({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var n=t.isDragActive,r=t.draggedFiles;return ue(ue({},e),{},{draggedFiles:r,isDragActive:n});case"setFiles":return ue(ue({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return ue({},pe);default:return e}}function me(){}},function(e,t,n){"use strict";function r(e){for(var t="https://mui.com/production-error/?code="+e,n=1;n0&&Math.abs((e.outerHeightStyle||0)-c)>1||e.overflow!==f)?(j.current+=1,{overflow:f,outerHeightStyle:c}):e}))}),[w,x,e.placeholder]);a.useEffect((function(){var e=Object(p.a)((function(){j.current=0,P()}));return window.addEventListener("resize",e),function(){e.clear(),window.removeEventListener("resize",e)}}),[P]),v((function(){P()})),a.useEffect((function(){j.current=0}),[b]);return a.createElement(a.Fragment,null,a.createElement("textarea",Object(o.a)({value:b,onChange:function(e){j.current=0,O||P(),n&&n(e)},ref:k,rows:x,style:Object(o.a)({height:_.outerHeightStyle,overflow:_.overflow?"hidden":null},g)},y)),a.createElement("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:E,tabIndex:-1,style:Object(o.a)({},m,g)}))})),b=n(64),y="undefined"===typeof window?a.useEffect:a.useLayoutEffect,w=a.forwardRef((function(e,t){var n=e["aria-describedby"],c=e.autoComplete,p=e.autoFocus,h=e.classes,v=e.className,m=(e.color,e.defaultValue),w=e.disabled,x=e.endAdornment,O=(e.error,e.fullWidth),S=void 0!==O&&O,k=e.id,E=e.inputComponent,j=void 0===E?"input":E,C=e.inputProps,_=void 0===C?{}:C,R=e.inputRef,P=(e.margin,e.multiline),T=void 0!==P&&P,A=e.name,L=e.onBlur,M=e.onChange,N=e.onClick,I=e.onFocus,D=e.onKeyDown,F=e.onKeyUp,z=e.placeholder,B=e.readOnly,U=e.renderSuffix,H=e.rows,W=e.rowsMax,V=e.rowsMin,q=e.maxRows,$=e.minRows,K=e.startAdornment,Q=e.type,Y=void 0===Q?"text":Q,X=e.value,G=Object(r.a)(e,["aria-describedby","autoComplete","autoFocus","classes","className","color","defaultValue","disabled","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","rowsMax","rowsMin","maxRows","minRows","startAdornment","type","value"]),J=null!=_.value?_.value:X,Z=a.useRef(null!=J).current,ee=a.useRef(),te=a.useCallback((function(e){0}),[]),ne=Object(d.a)(_.ref,te),re=Object(d.a)(R,ne),oe=Object(d.a)(ee,re),ie=a.useState(!1),ae=ie[0],se=ie[1],ue=Object(l.b)();var le=Object(u.a)({props:e,muiFormControl:ue,states:["color","disabled","error","hiddenLabel","margin","required","filled"]});le.focused=ue?ue.focused:ae,a.useEffect((function(){!ue&&w&&ae&&(se(!1),L&&L())}),[ue,w,ae,L]);var ce=ue&&ue.onFilled,fe=ue&&ue.onEmpty,de=a.useCallback((function(e){Object(b.b)(e)?ce&&ce():fe&&fe()}),[ce,fe]);y((function(){Z&&de({value:J})}),[J,de,Z]);a.useEffect((function(){de(ee.current)}),[]);var pe=j,he=Object(o.a)({},_,{ref:oe});"string"!==typeof pe?he=Object(o.a)({inputRef:oe,type:Y},he,{ref:null}):T?!H||q||$||W||V?(he=Object(o.a)({minRows:H||$,rowsMax:W,maxRows:q},he),pe=g):pe="textarea":he=Object(o.a)({type:Y},he);return a.useEffect((function(){ue&&ue.setAdornedStart(Boolean(K))}),[ue,K]),a.createElement("div",Object(o.a)({className:Object(s.a)(h.root,h["color".concat(Object(f.a)(le.color||"primary"))],v,le.disabled&&h.disabled,le.error&&h.error,S&&h.fullWidth,le.focused&&h.focused,ue&&h.formControl,T&&h.multiline,K&&h.adornedStart,x&&h.adornedEnd,"dense"===le.margin&&h.marginDense),onClick:function(e){ee.current&&e.currentTarget===e.target&&ee.current.focus(),N&&N(e)},ref:t},G),K,a.createElement(l.a.Provider,{value:null},a.createElement(pe,Object(o.a)({"aria-invalid":le.error,"aria-describedby":n,autoComplete:c,autoFocus:p,defaultValue:m,disabled:le.disabled,id:k,onAnimationStart:function(e){de("mui-auto-fill-cancel"===e.animationName?ee.current:{value:"x"})},name:A,placeholder:z,readOnly:B,required:le.required,rows:H,value:J,onKeyDown:D,onKeyUp:F},he,{className:Object(s.a)(h.input,_.className,le.disabled&&h.disabled,T&&h.inputMultiline,le.hiddenLabel&&h.inputHiddenLabel,K&&h.inputAdornedStart,x&&h.inputAdornedEnd,"search"===Y&&h.inputTypeSearch,"dense"===le.margin&&h.inputMarginDense),onBlur:function(e){L&&L(e),_.onBlur&&_.onBlur(e),ue&&ue.onBlur?ue.onBlur(e):se(!1)},onChange:function(e){if(!Z){var t=e.target||ee.current;if(null==t)throw new Error(Object(i.a)(1));de({value:t.value})}for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o