hiddifypanel 10.86.0b4__py3-none-any.whl → 10.86.0b5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hiddifypanel/VERSION +1 -1
- hiddifypanel/VERSION.py +2 -2
- hiddifypanel/hutils/proxy/shared.py +29 -10
- hiddifypanel/hutils/proxy/xray.py +4 -4
- hiddifypanel/hutils/proxy/xrayjson.py +8 -6
- hiddifypanel/models/config_enum.py +2 -2
- hiddifypanel/panel/admin/DomainAdmin.py +2 -2
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/my/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- {hiddifypanel-10.86.0b4.dist-info → hiddifypanel-10.86.0b5.dist-info}/METADATA +1 -1
- {hiddifypanel-10.86.0b4.dist-info → hiddifypanel-10.86.0b5.dist-info}/RECORD +19 -19
- {hiddifypanel-10.86.0b4.dist-info → hiddifypanel-10.86.0b5.dist-info}/WHEEL +0 -0
- {hiddifypanel-10.86.0b4.dist-info → hiddifypanel-10.86.0b5.dist-info}/entry_points.txt +0 -0
- {hiddifypanel-10.86.0b4.dist-info → hiddifypanel-10.86.0b5.dist-info}/licenses/LICENSE.md +0 -0
- {hiddifypanel-10.86.0b4.dist-info → hiddifypanel-10.86.0b5.dist-info}/top_level.txt +0 -0
hiddifypanel/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
10.86.
|
1
|
+
10.86.0b5
|
hiddifypanel/VERSION.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# import importlib.metadata
|
2
2
|
from datetime import datetime
|
3
3
|
|
4
|
-
__version__ = '10.86.
|
5
|
-
__release_time__= datetime.strptime('2025-07-
|
4
|
+
__version__ = '10.86.0b5'
|
5
|
+
__release_time__= datetime.strptime('2025-07-07T10:37:30','%Y-%m-%dT%H:%M:%S')
|
6
6
|
is_released_version=True
|
@@ -29,16 +29,17 @@ def is_proxy_valid(proxy: Proxy, domain_db: Domain, port: int) -> dict | None:
|
|
29
29
|
if not port:
|
30
30
|
return {'name': name, 'msg': "port not defined", 'type': 'error', 'proto': proxy.proto}
|
31
31
|
if "reality" not in l3 and 'reality' in domain_db.mode:
|
32
|
-
return {'name': name, 'msg': "
|
32
|
+
return {'name': name, 'msg': "1reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
|
33
33
|
|
34
34
|
if "reality" in l3 and 'reality' not in domain_db.mode:
|
35
|
-
return {'name': name, 'msg': "
|
35
|
+
return {'name': name, 'msg': "2reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
|
36
36
|
|
37
|
-
|
38
|
-
|
37
|
+
for p in ['tcp','grpc','xhttp']:
|
38
|
+
if "reality" in l3 and p in domain_db.mode and p not in proxy.transport:
|
39
|
+
return {'name': name, 'msg': f"reality proxy {proxy.transport} in reality {p} domain", 'type': 'debug', 'proto': proxy.proto}
|
40
|
+
if "reality" in l3 and p not in domain_db.mode and p in proxy.transport:
|
41
|
+
return {'name': name, 'msg': f"reality {p} proxy not in reality {p} domain", 'type': 'debug', 'proto': proxy.proto}
|
39
42
|
|
40
|
-
if "reality" in l3 and (not domain_db.grpc) and ProxyTransport.grpc == proxy.transport:
|
41
|
-
return {'name': name, 'msg': "reality proxy not in reality domain", 'type': 'debug', 'proto': proxy.proto}
|
42
43
|
|
43
44
|
is_cdn = ProxyCDN.CDN == proxy.cdn or ProxyCDN.Fake == proxy.cdn
|
44
45
|
if is_cdn and domain_db.mode not in [DomainType.cdn, DomainType.auto_cdn_ip, DomainType.worker]:
|
@@ -106,7 +107,7 @@ def is_tls(l3) -> bool:
|
|
106
107
|
return 'tls' in l3 or "reality" in l3 or l3 in [ProxyL3.h3_quic]
|
107
108
|
|
108
109
|
|
109
|
-
@cache.cache(ttl=300)
|
110
|
+
# @cache.cache(ttl=300)
|
110
111
|
def get_proxies(child_id: int = 0, only_enabled=False) -> list['Proxy']:
|
111
112
|
proxies = Proxy.query.filter(Proxy.child_id == child_id).all()
|
112
113
|
proxies = [c for c in proxies if 'restls' not in c.transport]
|
@@ -167,7 +168,8 @@ def get_proxies(child_id: int = 0, only_enabled=False) -> list['Proxy']:
|
|
167
168
|
|
168
169
|
if not Domain.query.filter(Domain.mode.in_([DomainType.cdn, DomainType.auto_cdn_ip]), Domain.servernames != "", Domain.servernames != Domain.domain).first():
|
169
170
|
proxies = [c for c in proxies if 'Fake' not in c.cdn]
|
170
|
-
|
171
|
+
|
172
|
+
# proxies = [c for c in proxies if not ('vless' == c.proto and ProxyTransport.tcp == c.transport and c.cdn == ProxyCDN.direct)]
|
171
173
|
|
172
174
|
if only_enabled:
|
173
175
|
proxies = [p for p in proxies if p.enable]
|
@@ -185,10 +187,11 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
|
|
185
187
|
if domain.child_id not in configsmap:
|
186
188
|
configsmap[domain.child_id] = get_hconfigs(domain.child_id)
|
187
189
|
proxeismap[domain.child_id] = get_proxies(domain.child_id, only_enabled=True)
|
190
|
+
# print(proxeismap[domain.child_id])
|
188
191
|
hconfigs = configsmap[domain.child_id]
|
189
192
|
ips = domain.get_cdn_ips_parsed()
|
190
193
|
if not ips:
|
191
|
-
ips = hutils.network.
|
194
|
+
ips = hutils.network.get_domain_ips_cached(domain.domain)
|
192
195
|
for proxy in proxeismap[domain.child_id]:
|
193
196
|
noDomainProxies = False
|
194
197
|
if proxy.proto in [ProxyProto.ssh, ProxyProto.wireguard]:
|
@@ -234,6 +237,8 @@ def get_valid_proxies(domains: list[Domain]) -> list[dict]:
|
|
234
237
|
|
235
238
|
for opt in options:
|
236
239
|
pinfo = make_proxy(hconfigs, proxy, domain, **opt)
|
240
|
+
# if key in "vlesstcp":
|
241
|
+
# print(pinfo)
|
237
242
|
if 'msg' not in pinfo:
|
238
243
|
allp.append(pinfo)
|
239
244
|
return allp
|
@@ -312,7 +317,7 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
|
|
312
317
|
port = hutils.proxy.get_port(proxy, hconfigs, domain_db, ptls, phttp, pport)
|
313
318
|
|
314
319
|
if val_res := hutils.proxy.is_proxy_valid(proxy, domain_db, port):
|
315
|
-
# print(val_res)
|
320
|
+
# print(f'{name}:{domain}->{val_res}')
|
316
321
|
return val_res
|
317
322
|
|
318
323
|
if 'reality' in proxy.l3:
|
@@ -483,6 +488,9 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
|
|
483
488
|
if dl:=base.get('download'):
|
484
489
|
dl['path']=base['path']
|
485
490
|
dl['xhttp_mode']=dl['params'].get('mode',"auto")
|
491
|
+
|
492
|
+
if all_element_in_first_dict_is_exist_in_second(dl,base):
|
493
|
+
del base['download']
|
486
494
|
return base
|
487
495
|
|
488
496
|
if proxy.transport == "grpc":
|
@@ -504,6 +512,17 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
|
|
504
512
|
return base
|
505
513
|
return {'name': name, 'msg': 'not valid', 'type': 'error', 'proto': proxy.proto}
|
506
514
|
|
515
|
+
def all_element_in_first_dict_is_exist_in_second(fdict,sdict):
|
516
|
+
for k,v in fdict.items():
|
517
|
+
if k=="params":
|
518
|
+
continue
|
519
|
+
if isinstance(v,dict):
|
520
|
+
if not all_element_in_first_dict_is_exist_in_second(v,sdict.get(k,{})):
|
521
|
+
return False
|
522
|
+
if sdict.get(k,v)!=v:
|
523
|
+
return False
|
524
|
+
|
525
|
+
return True
|
507
526
|
|
508
527
|
class ProxyJsonEncoder(json.JSONEncoder):
|
509
528
|
def default(self, obj):
|
@@ -165,10 +165,10 @@ def to_link(proxy: dict) -> str | dict:
|
|
165
165
|
|
166
166
|
elif proxy['l3'] == 'http':
|
167
167
|
q['security']='none'
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
168
|
+
if proxy.get('transport') not in {ProxyTransport.xhttp}:
|
169
|
+
for k,v in proxy.get('params',{}).items():
|
170
|
+
if k not in q and k!="download":
|
171
|
+
q[k]=v
|
172
172
|
return f"{baseurl}?{urlencode(q,quote_via=quote)}#{name_link}"
|
173
173
|
|
174
174
|
|
@@ -388,13 +388,15 @@ def _add_xhttp_details(ss: dict, proxy: dict):
|
|
388
388
|
}
|
389
389
|
}
|
390
390
|
if proxy.get("download"):
|
391
|
-
|
392
|
-
|
393
|
-
"
|
391
|
+
|
392
|
+
dlsettings = {
|
393
|
+
"address":proxy['download'].get("server"),
|
394
|
+
"port":proxy['port']
|
394
395
|
}
|
395
|
-
|
396
|
-
|
397
|
-
|
396
|
+
_add_xhttp_details(dlsettings, proxy['download'])
|
397
|
+
_add_security(dlsettings, proxy, proxy['download'])
|
398
|
+
|
399
|
+
ss['xhttpSettings']['extra']['downloadSettings']=dlsettings
|
398
400
|
|
399
401
|
|
400
402
|
def add_kcp_stream(ss: dict, proxy: dict):
|
@@ -251,8 +251,8 @@ class ConfigEnum(metaclass=FastEnum):
|
|
251
251
|
reality_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
|
252
252
|
tcp_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
|
253
253
|
quic_enable = _BoolConfigDscr(ConfigCategory.proxies, ApplyMode.apply_config)
|
254
|
-
xtls_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)
|
255
|
-
h2_enable = _BoolConfigDscr(ConfigCategory.
|
254
|
+
xtls_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)#deprecated
|
255
|
+
h2_enable = _BoolConfigDscr(ConfigCategory.hidden, ApplyMode.apply_config)#deprecated
|
256
256
|
|
257
257
|
db_version = _StrConfigDscr(ConfigCategory.hidden)
|
258
258
|
last_priodic_usage_check = _IntConfigDscr(ConfigCategory.hidden)
|
@@ -148,7 +148,7 @@ class DomainAdmin(AdminLTEModelView):
|
|
148
148
|
def on_model_change(self, form, model, is_created):
|
149
149
|
# Sanitize domain input
|
150
150
|
model.domain = (model.domain or '').lower().strip()
|
151
|
-
if model.domain==model.download_domain.domain:
|
151
|
+
if model.download_domain and model.domain==model.download_domain.domain:
|
152
152
|
model.download_domain_id=None
|
153
153
|
model.download_domain=None
|
154
154
|
# Basic validation
|
@@ -262,7 +262,7 @@ class DomainAdmin(AdminLTEModelView):
|
|
262
262
|
if model.domain == configs[c]:
|
263
263
|
raise ValidationError(_("You have used this domain in: ") + _(f"config.{c}.label"))
|
264
264
|
|
265
|
-
for td in Domain.query.filter(Domain.mode.
|
265
|
+
for td in Domain.query.filter(Domain.mode.in_([DomainType.reality,DomainType.special_reality_xhttp,DomainType.special_reality_grpc,DomainType.special_reality_tcp]), Domain.domain != model.domain).all():
|
266
266
|
# print(td)
|
267
267
|
if td.servernames and (model.domain in td.servernames.split(",")):
|
268
268
|
raise ValidationError(_("You have used this domain in: ") + _(f"config.reality_server_names.label") + td.domain)
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
|
2
|
-
hiddifypanel/VERSION,sha256=
|
3
|
-
hiddifypanel/VERSION.py,sha256=
|
2
|
+
hiddifypanel/VERSION,sha256=YVBARFeptCtqx0w2QrGh0utcaSOe-ltzkuQ_u4qYDWw,10
|
3
|
+
hiddifypanel/VERSION.py,sha256=G-NYlR9jvhiLQiordSZKhUWjD4Y7QNeOF-JGaJ0s_u8,189
|
4
4
|
hiddifypanel/__init__.py,sha256=kigwDO8d9jXyPZLvJAWd6zo-GX3pG_xWf-q2aStz80Y,377
|
5
5
|
hiddifypanel/__main__.py,sha256=IVchnXpK6bm8T3N--mN17HBQNLMeLAjyP7iwzULexB4,218
|
6
6
|
hiddifypanel/auth.py,sha256=LJmH4ROqZv5ej_4m1b0xvbEw2meJTzDR1mFCDm523kE,8041
|
@@ -44,17 +44,17 @@ hiddifypanel/hutils/node/parent.py,sha256=UbyfvfP4fTSn6HN9oZDjYsKYIejiqW6eApKIfP
|
|
44
44
|
hiddifypanel/hutils/node/shared.py,sha256=FDSj3e-i3pb3mEv5vcUeX0Km1nxYg1CeAruIq7RwFmU,2540
|
45
45
|
hiddifypanel/hutils/proxy/__init__.py,sha256=V2dGkYT3tji__5YOSmKOMChFYXtlENe1fX6eHqK70Pc,129
|
46
46
|
hiddifypanel/hutils/proxy/clash.py,sha256=JiT3wj48b9ezCGxZoEp5FrhvwfmNKslcF5GMoH9-8OU,7061
|
47
|
-
hiddifypanel/hutils/proxy/shared.py,sha256=
|
47
|
+
hiddifypanel/hutils/proxy/shared.py,sha256=hQu_6GACKa7BDmnpOhQTBVggUasHqZ11GCROMzrrEls,24241
|
48
48
|
hiddifypanel/hutils/proxy/singbox.py,sha256=Fmmzoake-gpnRB5yfTyQvd1dB-10WKwhJt4vhiKzJZQ,11722
|
49
49
|
hiddifypanel/hutils/proxy/wireguard.py,sha256=gij01BYXII-RxAh3Yky0o3yce20HJKeHtu1KNwb0Uzk,934
|
50
|
-
hiddifypanel/hutils/proxy/xray.py,sha256=
|
51
|
-
hiddifypanel/hutils/proxy/xrayjson.py,sha256=
|
50
|
+
hiddifypanel/hutils/proxy/xray.py,sha256=ze9EiXLaTlMHp9q7fkOmJ7_NwogRnewcWj1Ui9Ofi4c,11306
|
51
|
+
hiddifypanel/hutils/proxy/xrayjson.py,sha256=wcZs4laKO-aASWsHd36vozHXaGRcTiQZQVN9BvzBIBs,16612
|
52
52
|
hiddifypanel/models/__init__.py,sha256=PngFjQL9WvQP4EioNHRz1tTeyIgLoNvZ7WpmAhwKHnU,677
|
53
53
|
hiddifypanel/models/admin.py,sha256=bbvpbquyPTmRjqwVT4zVC3bIF39zZYv8snlOR5XIF90,7517
|
54
54
|
hiddifypanel/models/base_account.py,sha256=jVO4haLwTsiE7u4fWoDhhRZ_NjbO7hVJhry8k-Vnrzk,3507
|
55
55
|
hiddifypanel/models/child.py,sha256=IhmCszhUgi1QXbWgji4UDjHV7_OyzLSLsW86BQWFys4,3009
|
56
56
|
hiddifypanel/models/config.py,sha256=Ny3MXiPC-CrF8-xAEmRth6d_lfpDiWZHbCctyJNyWgg,6382
|
57
|
-
hiddifypanel/models/config_enum.py,sha256=
|
57
|
+
hiddifypanel/models/config_enum.py,sha256=7Q8MZUwiKGGe1Tz7qmIsFhiKZcx8ZW0sGTxviYT98F8,17100
|
58
58
|
hiddifypanel/models/domain.py,sha256=ftfHbdLeiUmzBCQisrAZ2geHX8KovEFXCTwq8OtOs8k,9523
|
59
59
|
hiddifypanel/models/parent_domain.py,sha256=bs5F1neOAQu9XHEk3QQTBM4p2iuebM4cnAQqwfNjCtg,2291
|
60
60
|
hiddifypanel/models/proxy.py,sha256=Bjagdx7IPMlOLBDZ5KPJvwiWQo-oYtjuJEUs_DhhQU0,3487
|
@@ -80,7 +80,7 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=X8MI3DtW62vJqFRp97M_CxSdB-N
|
|
80
80
|
hiddifypanel/panel/admin/Backup.py,sha256=BKSoAZgw1j16P1Jh9vMqGj7ZfB2m-WafDK0C5vil5FY,3634
|
81
81
|
hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
|
82
82
|
hiddifypanel/panel/admin/Dashboard.py,sha256=JOqZLHxPOYKQYQVJ7AtHAkilH-anJZQyK1rQrgCJUeA,3798
|
83
|
-
hiddifypanel/panel/admin/DomainAdmin.py,sha256=
|
83
|
+
hiddifypanel/panel/admin/DomainAdmin.py,sha256=NJFmgbBMWmS8dGIhjK9BZG9nPH0jOhb54c9McrfRAB0,16532
|
84
84
|
hiddifypanel/panel/admin/NodeAdmin.py,sha256=QAHQjF7e7F4KqsWNWpMt7SoLANlFEborVtWQV9OXJ2E,3102
|
85
85
|
hiddifypanel/panel/admin/ProxyAdmin.py,sha256=HtuYHkZ8LCrYtjF2xO2i7lyw_KtOTBYCPu0bNWR4fOs,5364
|
86
86
|
hiddifypanel/panel/admin/QuickSetup.py,sha256=7ysSAlS7yJerstTDWhuhEwGyoTqpkry2-SfEbuP1VuY,12689
|
@@ -842,17 +842,17 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
|
|
842
842
|
hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
|
843
843
|
hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
|
844
844
|
hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
|
845
|
-
hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=
|
845
|
+
hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=GnvU1DQFjbmaXjFTRqH24y3OUtC97HvmPCSXyoN9Kl4,81218
|
846
846
|
hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=HxKCOjnn66CP4Q7iJpQ2nkV7heHiCo3hR364urYKpRY,84567
|
847
|
-
hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=
|
847
|
+
hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=dh85ZRXxa599uufOuR8wAows_TG-cIFL2SAPIzNtQ_I,103271
|
848
848
|
hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=2h4MNaTUOxHl8B3C17983aPh72YG5gm9d3SLKrgKcms,108504
|
849
|
-
hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=
|
849
|
+
hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=GSnSfJg4p1MK79DaUwBPj9j8ofuChp0mA8xgvP2iMGo,139090
|
850
850
|
hiddifypanel/translations/my/LC_MESSAGES/messages.po,sha256=PvYBwQWXaUpAoqy90oow-sH-ZyPE7Fm_l-3FrXT_vEA,141985
|
851
|
-
hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=
|
851
|
+
hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=XfWXR6u6aZFRe9rzMJ0Nq2WheKO-4Tccu_fWprOCpLU,80947
|
852
852
|
hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=L_On4NoKVP6hXcWBwnLNjOXPGgevYvO-ttcMdHfzqK0,86067
|
853
|
-
hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=
|
853
|
+
hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=vYDpXz0fy3G0f6VCP-VyZrXaaNSDK-pn_b2wNuBFGEs,108744
|
854
854
|
hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=yRc8bKXu_SQBKpCKWGTiV4H_0IgserCY3_1cvLED5-s,114070
|
855
|
-
hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=
|
855
|
+
hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=d6_9GD5v7gfyRJ_Ni2wowLDX8lWvTmFu8lYX_dCuOIA,75446
|
856
856
|
hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=ySV8tjRzhEjbJx6JQbLMhWnoMb6CTJqEVIKuYwJI0dA,80177
|
857
857
|
hiddifypanel/translations.i18n/en.json,sha256=70eyfU2b7NFuig6Yrql39dFs0JPuthe4dVbb5gTWDtw,73450
|
858
858
|
hiddifypanel/translations.i18n/fa.json,sha256=tClb4Oo8bLejitKUPz_s2Dlu43dRp6PCqa2cvPOtGd4,97413
|
@@ -861,9 +861,9 @@ hiddifypanel/translations.i18n/my.json,sha256=1jSy8S2bP681KV9MT5Mq4lFzrh6a982bTj
|
|
861
861
|
hiddifypanel/translations.i18n/pt.json,sha256=r_8xflnQBbooU9jNMaZ8QjLqvKegIyGUKMSFGj4F6HE,75096
|
862
862
|
hiddifypanel/translations.i18n/ru.json,sha256=wNMbGlKMMFfxShxYPO7wknmuEKjXHCfNqGH2HiA0zRU,102883
|
863
863
|
hiddifypanel/translations.i18n/zh.json,sha256=d8Jtgm1GMGFAiEXzcRmHLmbDo7YtJynUvpHGpzt3CMw,69629
|
864
|
-
hiddifypanel-10.86.
|
865
|
-
hiddifypanel-10.86.
|
866
|
-
hiddifypanel-10.86.
|
867
|
-
hiddifypanel-10.86.
|
868
|
-
hiddifypanel-10.86.
|
869
|
-
hiddifypanel-10.86.
|
864
|
+
hiddifypanel-10.86.0b5.dist-info/licenses/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
|
865
|
+
hiddifypanel-10.86.0b5.dist-info/METADATA,sha256=QRldFyMNzptOh3lKy0vlj9OkBcHj6HeIGjBqeEeRMNo,25627
|
866
|
+
hiddifypanel-10.86.0b5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
867
|
+
hiddifypanel-10.86.0b5.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
|
868
|
+
hiddifypanel-10.86.0b5.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
|
869
|
+
hiddifypanel-10.86.0b5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|