Compare commits

..

107 Commits

Author SHA1 Message Date
8e5691f7bb Add additional SRC-IP-CIDR entry for smart TV clients 2026-02-07 20:07:29 +03:00
c30ad90e34 Add SRC-IP-CIDR entry for 192.168.10.103 in clients-smart-tv.yaml 2026-02-07 20:05:20 +03:00
100044e79c Fix typo in DOMAIN-SUFFIX entry and remove unused entries in ru-intra.yaml 2026-01-30 22:04:49 +03:00
bd4af66d63 upd 2026-01-26 19:48:40 +03:00
f62b3ff776 Add new DOMAIN-SUFFIX entries for growcdnssedge.com and flixcdn.com in porn.yaml 2026-01-26 19:25:15 +03:00
373685ca59 Add additional DOMAIN-SUFFIX entries to libraries.yaml for expanded coverage 2026-01-23 12:09:26 +03:00
3933195746 Remove trailing whitespace in external-proxies-sanitizer.js for cleaner code 2026-01-13 17:29:59 +03:00
50bce03cf8 Refactor SUB STORE YAML ASSEMBLER to fix duplicate headers and streamline options parsing 2026-01-09 20:28:32 +03:00
49caf5dc65 Add SUB STORE YAML ASSEMBLER script with comprehensive processing capabilities 2026-01-09 19:56:50 +03:00
8826675dd8 Add SUB STORE YAML ASSEMBLER script with cleaning options for enhanced processing 2026-01-09 19:56:04 +03:00
9dc7c8dda9 Add SVG icons for numbers 01, 02, and 03 to enhance visual representation 2026-01-09 19:41:47 +03:00
7836eceda2 Add SUB STORE YAML ASSEMBLER script for content-tag aware processing 2026-01-06 15:40:56 +03:00
ef4cf861ff Remove unnecessary line from cadian.current.yaml for cleaner configuration 2026-01-05 22:37:12 +03:00
34c3e242e5 Update icon for IPv6 in external-proxies-sanitizer.js for improved clarity 2026-01-05 21:35:48 +03:00
41127d10d1 Upd 2026-01-05 21:33:50 +03:00
ae1b71f741 Reset default values in AMZ_DEFAULTS for Jc, Jmin, Jmax, S1, and S2 to ensure consistent behavior 2026-01-05 20:55:09 +03:00
eeb60ab5ad Reset default values in AMZ_DEFAULTS to zero for Jc, Jmin, and Jmax to ensure consistent behavior 2026-01-05 20:53:38 +03:00
67704659e6 Update icon tags in external-proxies-sanitizer.js for improved clarity and consistency 2026-01-05 20:51:07 +03:00
4f73cd0071 Upd 2026-01-05 20:26:07 +03:00
df7d2d555f Fix final output format in AWG to Clash conversion script; revert to YAML serialization for compatibility with existing processing 2026-01-05 20:04:11 +03:00
3dafd087cd Refactor normalizeOptions function; simplify argument handling and improve boolean conversion logic for better clarity and performance 2026-01-05 19:58:15 +03:00
2fce3a192a Refactor test-options.js; rename globalKeysSample to pickEnvSample and enhance environment variable sampling logic for improved clarity and safety 2026-01-05 19:55:39 +03:00
c140b08e12 Add test-options.js script for reporting global variables and content types 2026-01-05 19:49:38 +03:00
0847e23918 Update final output format in AWG to Clash conversion script; switch from YAML to JSON for better compatibility 2026-01-05 19:45:26 +03:00
4b607f8d6f Refactor normalizeOptions function; enhance URL extraction and query parameter handling for improved flexibility and clarity 2026-01-05 19:44:14 +03:00
e0b79a217f Refactor normalizeOptions function; streamline query parameter extraction and improve boolean conversion logic for better clarity and performance 2026-01-05 19:42:11 +03:00
ba21e17168 Refactor AWG to Clash conversion script; enhance option normalization, parsing logic, and proxy construction for improved functionality and maintainability 2026-01-05 19:37:34 +03:00
26867d4175 Update config-sub-converter/scripts/convert-awg-to-clash.js 2026-01-05 18:37:46 +03:00
e8477c3322 Refactor AWG to Clash conversion script for improved readability and maintainability; streamline parsing and output generation 2026-01-05 18:34:33 +03:00
5cef2d7bca Remove outdated configuration files for Kazakhstan, Netherlands, Poland, and the US; add new script for AWG to Clash conversion 2026-01-05 18:28:07 +03:00
6b76e578b5 Update country detection logic with prioritized flags for improved accuracy 2026-01-05 17:07:45 +03:00
e2f855bb39 Upd 2026-01-05 17:01:56 +03:00
6525bbab11 Update icon for IPv6 and add country detection rules for Belarus and China 2026-01-05 16:57:55 +03:00
0ae3f1100c Enable debug mode by setting DEBUG_APPEND_ORIGINAL_NAME to true 2026-01-05 16:41:58 +03:00
faaf393325 Add lab.svg icon file for improved visual representation 2026-01-05 16:27:20 +03:00
76d11a6621 Fix name formatting by removing space before meta tag in final output 2026-01-05 15:56:30 +03:00
38ba2fd576 Disable debug mode by setting DEBUG_APPEND_ORIGINAL_NAME to false 2026-01-05 15:50:42 +03:00
b81b395282 Add standard ports mapping and update port formatting for improved consistency 2026-01-05 15:49:43 +03:00
143f41dcde Update METATAG_RULES and PORT_FORMAT for improved icon representation and formatting 2026-01-05 15:32:10 +03:00
8f535becc2 Refactor icon and country detection rules in external-proxies-sanitizer.js for improved clarity and maintainability 2026-01-05 13:14:27 +03:00
82e97b2f57 Refactor icon and country detection rules in external-proxies-sanitizer.js for improved accuracy and maintainability 2026-01-04 20:31:45 +03:00
75439cf6df Update external-proxies-sanitizer.js to refine noise patterns and enhance country detection rules 2026-01-04 19:47:47 +03:00
b7f2adba40 Add Sub-Store Advanced Batch Processing Script for proxy normalization and tagging 2026-01-04 19:00:21 +03:00
5c8851a292 Add SOCKS5 listeners for inquisitor and servitor with authentication details 2025-12-27 22:45:07 +03:00
46e8ef128f Add SRC-IP-CIDR entry for DTS-TAB-S7-NET in testzone-a.yaml 2025-12-27 20:06:01 +03:00
3933f84a75 Update commit message for your changes. Lines starting 2025-12-27 19:59:09 +03:00
a67b0879e7 Update host IP addresses for gitea and webway services 2025-12-27 19:30:20 +03:00
20b063a10e Add authentication details for local SOCKS5/HTTP(S) server 2025-12-27 19:11:26 +03:00
13a18703cd Update Wireguard server address for Netherlands proxy 2025-12-27 18:49:03 +03:00
dd4c6432ba Add Wireguard configuration for Netherlands proxy 2025-12-27 18:44:01 +03:00
4126234efc Comment out TPROXY rule for TCP in iptables setup script to prevent unintended behavior 2025-12-27 17:26:16 +03:00
54296bf161 Refactor cleanup process in iptables setup script for improved robustness and clarity 2025-12-27 16:53:07 +03:00
fed8153553 Enhance cleanup_rules function to prevent script failure when no matching rules are found 2025-12-27 16:39:19 +03:00
ce1cf4407c Upd 2025-12-27 16:19:22 +03:00
a6cb527bb3 Add functions to delete iptables rules by target and interface for improved cleanup 2025-12-27 15:50:13 +03:00
16ca0a11b6 Refactor ensure_ip_rule function to remove duplicate ip rules and enforce route table entry 2025-12-27 15:44:39 +03:00
f6524bfbad Add host entries to configuration and enhance iptables setup for MIHOMO 2025-12-27 15:34:41 +03:00
fab3feba72 Update external UI path in cadian.current.yaml to point to Mihomo directory 2025-12-27 14:53:43 +03:00
cd071d5516 Update iptables scripts for MIHOMO integration and rename setup files 2025-12-27 14:47:23 +03:00
c592e59d58 Refactor code structure for improved readability and maintainability 2025-12-27 14:22:40 +03:00
da0e95ccca Add example configuration for Rockblade with comprehensive proxy and routing rules
- Introduced a new YAML configuration file for Rockblade.
- Configured proxy settings for a Russian server using WireGuard.
- Enabled DNS settings with multiple nameservers and caching.
- Defined various proxy groups for popular services like Netflix, Discord, and more.
- Implemented routing rules for ad blocking, regional traffic, and specific services.
- Included geo-data settings for automatic updates and external rule providers.
2025-12-21 21:53:53 +03:00
b378abd4e0 Add configuration files for VPN setups and remove empty demo scripts 2025-12-21 21:30:51 +03:00
db9effa817 Refactor IP CIDR entries in testzone-a.yaml and update testzone-b.yaml to use SRC-IP-CIDR format 2025-12-17 16:29:15 +03:00
1c2a8f9ca9 Upd 2025-12-16 10:03:15 +03:00
186e51169d Uod 2025-12-15 22:01:19 +03:00
37851b2bd5 Upd 2025-12-13 15:42:19 +03:00
56260ba9b4 Upd 2025-12-09 08:44:19 +03:00
306b26d1e7 Upd 2025-12-08 20:09:21 +03:00
4ae5866049 Upd 2025-12-08 20:06:52 +03:00
0a33ca6d1b Upd 2025-12-08 20:00:44 +03:00
0bdd4da11e Upd 2025-12-08 19:44:42 +03:00
82a9ec8265 Upd 2025-12-08 19:38:27 +03:00
8a78b75967 Upd 2025-12-08 19:24:48 +03:00
3576031a96 Upd 2025-12-08 19:21:50 +03:00
a830eff8b6 Upd 2025-12-07 23:02:01 +03:00
272c42338c upd 2025-12-07 20:09:03 +03:00
d2c8f9ce3d upd 2025-12-07 18:45:24 +03:00
03bab847a7 Upd 2025-12-07 12:38:43 +03:00
8bb617f816 Upd 2025-12-06 21:50:58 +03:00
c610b44f48 Upd 2025-12-06 15:32:23 +03:00
0b4ef05240 Updates 2025-12-04 20:45:59 +03:00
967118dacc updates 2025-12-04 17:28:46 +03:00
23da6f7458 Huge updates 2025-12-04 16:00:46 +03:00
8afe9529c1 Updates 2025-12-04 12:36:52 +03:00
d7c3d2bca9 Updates 2025-12-04 12:20:44 +03:00
d637c71caf Upd 2025-12-04 12:00:46 +03:00
ef28c00020 Updates 2025-12-04 11:43:30 +03:00
5828b93f97 Updates 2025-12-04 10:50:47 +03:00
2e9aa509d2 Upd 2025-12-03 20:51:13 +03:00
9059b8dfe7 Upd 2025-12-03 20:18:23 +03:00
d37236d717 Upd 2025-12-03 20:13:24 +03:00
e41469602a Upd 2025-12-03 20:11:52 +03:00
13c10696ef Upd 2025-12-03 20:10:22 +03:00
afc3eff8d4 Upd 2025-12-03 20:09:14 +03:00
16dc46475b Upd 2025-12-03 20:08:07 +03:00
ddac51323c Updates 2025-12-03 17:29:18 +03:00
13b2526bd4 Updates 2025-12-03 13:31:28 +03:00
4c669e35b5 Added VK service 2025-12-02 22:38:57 +03:00
4158ba4577 Updates 2025-12-02 22:08:40 +03:00
b228495d90 Added meta icon 2025-12-02 21:41:14 +03:00
8e0019380d Many updates 2025-12-02 21:37:18 +03:00
1fbf3ab66f Updates 2025-12-02 17:17:47 +03:00
dd51f885e5 Updated Amnezia config 2025-12-02 12:50:48 +03:00
24e4c5288b Update cloudflare.yaml to enhance domain and IP-CIDR configurations 2025-12-01 22:59:51 +03:00
9e06a1410e Update pontifex.yaml configuration:
- Change external controller address to 0.0.0.0 for accessibility.
- Add new host entries for 'aither.shamanlanding.org' and 'zashboard.shamanlanding.org'.
- Update DNS settings: replace default nameservers and add new fallback options.
- Refactor proxy settings and add new proxy providers for agility, dexterity, finesse, and prowess.
- Consolidate proxy groups and services for better organization and maintainability.
- Update rule providers URLs to use the new antifilter domain.
2025-12-01 22:43:39 +03:00
32ec9efb5d Update notion.yaml to correct IP-CIDR entry and adjust domain suffix configuration 2025-12-01 10:22:08 +03:00
12d2f61d16 Remove outdated proxy configurations from hynet.txt, update domain rule in notion.yaml, and add new proxy configurations to scarus/hynet.txt. 2025-12-01 10:15:15 +03:00
114 changed files with 11619 additions and 11148 deletions

View File

@@ -0,0 +1,24 @@
# Generated on: 2025-12-21 18:28:33
# VPN Key: vpn://vpn://AAAA_3icdY1PC4IwGIe_iuxcHYwKu4VQIB4Uieo0xlw2dH-cm6Hid2-bRKdOL7zPw--ZAEeMgGMAToyTkaIgU4RRw8AqACXpsKJSU8H_GFjwJ61gT1S3SKF9IknhAuxjAh1RPcUE6kH6EFpm1vI381WkElpg0XjtXTlkLLNrhms12Fv6CWXA7EJGv2CJNPIdl63J4HgbX8Yy2qebq8riXCZJURcoqW67_pynbSPDcHtoHtEdgXn-AEBTVs8=
# Keenetic: interface Wireguard0 wireguard asc 2 10 50 81 33 2023084421 1113200792 1624558687 767247996
[Interface]
Address = 100.72.173.249/32
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = no/Mo/8PWzF+PRajlwc81TSlYWB4e+BfWHJInzj7dVo=
Jc = 2
Jmin = 10
Jmax = 50
S1 = 81
S2 = 33
H1 = 2023084421
H2 = 1113200792
H3 = 1624558687
H4 = 767247996
[Peer]
PublicKey = PpitEK737+DsqSMlCIFjEG8uI/0QAj1EQIpQJzozv2Q=
PresharedKey = WFjxvJuR2Fx5XEUTO584yndz8cwUEDuy9E5As1BTUGE=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 162.249.127.178:37515
PersistentKeepalive = 25

View File

@@ -0,0 +1,24 @@
# Generated on: 2025-12-21 18:29:07
# VPN Key: vpn://vpn://AAAA_3icdY1PC4IwGIe_iuxcHYwKu4VQIB4Uieo0xlw2dH-cm6Hid2-bRKdOL7zPw--ZAEeMgGMAToyTkaIgU4RRw8AqACXpsKJSU8H_GFjwJ61gT1S3SKF9IknhAuxjAh1RPcUE6kH6EFpm1vI381WkElpg0XjtXTlkLLNrhms12Fv6CWXA7EJGv2CJNPIdl63J4HgbX8Yy2qebq8riXCZJURcoqW67_pynbSPDcHtoHtEdgXn-AEBTVs8=
# Keenetic: interface Wireguard0 wireguard asc 2 10 50 136 48 947927481 424962932 1068800855 1088281476
[Interface]
Address = 100.72.174.0/32
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = plDZ4Fcdq7W/veRHhHeIq2CSGDU1jkBo+2VrdegRJa0=
Jc = 2
Jmin = 10
Jmax = 50
S1 = 136
S2 = 48
H1 = 947927481
H2 = 424962932
H3 = 1068800855
H4 = 1088281476
[Peer]
PublicKey = 8ZGUH6Sy5JJqkYACL7pILD00LPqvPU2k6C8Y5lj47y8=
PresharedKey = kJy5wAVa+bKtbUYeQmXJsmOlgoZQKJ271MLlKpL9c08=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 185.155.97.175:33132
PersistentKeepalive = 25

View File

@@ -0,0 +1,24 @@
# Generated on: 2025-12-21 18:30:09
# VPN Key: vpn://vpn://AAAA_3icdY1PC4IwGIe_iuxcHYwKu4VQIB4Uieo0xlw2dH-cm6Hid2-bRKdOL7zPw--ZAEeMgGMAToyTkaIgU4RRw8AqACXpsKJSU8H_GFjwJ61gT1S3SKF9IknhAuxjAh1RPcUE6kH6EFpm1vI381WkElpg0XjtXTlkLLNrhms12Fv6CWXA7EJGv2CJNPIdl63J4HgbX8Yy2qebq8riXCZJURcoqW67_pynbSPDcHtoHtEdgXn-AEBTVs8=
# Keenetic: interface Wireguard0 wireguard asc 3 10 50 81 73 1835075253 1381691586 1646178542 710963756
[Interface]
Address = 100.72.174.7/32
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = H8D1ltUWLDuF+eTTKRH8iG7k8HFsX3esjMbZb9OIoIY=
Jc = 3
Jmin = 10
Jmax = 50
S1 = 81
S2 = 73
H1 = 1835075253
H2 = 1381691586
H3 = 1646178542
H4 = 710963756
[Peer]
PublicKey = mYJ0OByhDsO+Okhd+AXTcBJoFbVXAOeJ7Pa7ihw441U=
PresharedKey = YLfe5ketC/TFqcCGV/Y8eGOyyIdQgVxueDS/kSY7uG4=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 79.127.168.139:41782
PersistentKeepalive = 25

View File

@@ -0,0 +1,24 @@
# Generated on: 2025-12-21 18:29:34
# VPN Key: vpn://vpn://AAAA_3icdY1PC4IwGIe_iuxcHYwKu4VQIB4Uieo0xlw2dH-cm6Hid2-bRKdOL7zPw--ZAEeMgGMAToyTkaIgU4RRw8AqACXpsKJSU8H_GFjwJ61gT1S3SKF9IknhAuxjAh1RPcUE6kH6EFpm1vI381WkElpg0XjtXTlkLLNrhms12Fv6CWXA7EJGv2CJNPIdl63J4HgbX8Yy2qebq8riXCZJURcoqW67_pynbSPDcHtoHtEdgXn-AEBTVs8=
# Keenetic: interface Wireguard0 wireguard asc 3 10 50 105 48 1162346210 1656368792 1067936661 1258665380
[Interface]
Address = 100.72.174.6/32
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = WB9k3kCd3j9+BRfGtbGdpx6deph6eHAtaBbXsaQX+bY=
Jc = 3
Jmin = 10
Jmax = 50
S1 = 105
S2 = 48
H1 = 1162346210
H2 = 1656368792
H3 = 1067936661
H4 = 1258665380
[Peer]
PublicKey = 6BOPYPQEFAtTCSgLLqNUqbUU5A/euMb9D48NBr7mryU=
PresharedKey = kDU/LPmsZHqeEToIxjdM+K3pYRWoRxM6p0oQtUd+gFA=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 130.195.218.194:42495
PersistentKeepalive = 25

View File

@@ -0,0 +1,24 @@
# Generated on: 2025-12-21 18:26:43
# VPN Key: vpn://vpn://AAAA_3icdY1PC4IwGIe_iuxcHYwKu4VQIB4Uieo0xlw2dH-cm6Hid2-bRKdOL7zPw--ZAEeMgGMAToyTkaIgU4RRw8AqACXpsKJSU8H_GFjwJ61gT1S3SKF9IknhAuxjAh1RPcUE6kH6EFpm1vI381WkElpg0XjtXTlkLLNrhms12Fv6CWXA7EJGv2CJNPIdl63J4HgbX8Yy2qebq8riXCZJURcoqW67_pynbSPDcHtoHtEdgXn-AEBTVs8=
# Keenetic: interface Wireguard0 wireguard asc 3 10 50 115 85 527190701 561860632 441868062 1860350990
[Interface]
Address = 100.71.64.155/32
DNS = 8.8.8.8, 8.8.4.4
PrivateKey = JsYjJxv2/VCELbRt2y0fiWL8XMfHRU4Hf9ez17s/AKE=
Jc = 3
Jmin = 10
Jmax = 50
S1 = 115
S2 = 85
H1 = 527190701
H2 = 561860632
H3 = 441868062
H4 = 1860350990
[Peer]
PublicKey = XJWGtcthVWP4ZPDEbto8iSCDLt7aVamPNnW2/oXMYXk=
PresharedKey = 0DkpvP65ftUesTd3/whsNuZ82t6U7CE2St2WgA7Xsmc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 216.106.180.5:44500
PersistentKeepalive = 25

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,437 @@
# https://rockblack.pro/mihomo_generator
redir-port: 1182
tproxy-port: 1181
mixed-port: 1080
tcp-concurrent: true
allow-lan: true
mode: rule
geo-auto-update: true
geo-update-interval: 168
log-level: silent
ipv6: false
external-controller: 0.0.0.0:9090
external-ui: ./zash
external-ui-url: "https://github.com/Zephyruso/zashboard/releases/latest/download/dist-cdn-fonts.zip"
geodata-mode: true
profile:
store-selected: true
find-process-mode: "off"
# --- НАСТРОЙКИ СНИФФЕРА ---
sniffer:
enable: true
force-dns-mapping: true
sniff:
HTTP:
ports: [80]
override-destination: true
TLS:
ports: [443]
QUIC:
ports: [443]
# --- СПИСОК ПРОКСИ-СЕРВЕРОВ (КЛЮЧИ) ---
proxies:
- name: '🇷🇺 Россия'
type: wireguard
private-key: Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg=
server: 5.8.93.236
port: 42854
ip: 100.71.64.155
dns: ['8.8.8.8', '8.8.4.4']
public-key: ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs=
pre-shared-key: oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk=
allowed-ips: ['0.0.0.0/0', '::/0']
udp: true
persistent-keepalive: 25
amnezia-wg-option:
jc: 3
jmin: 10
jmax: 50
s1: 145
s2: 34
h1: 203715079
h2: 914012290
h3: 174842657
h4: 1514769902
# --- СЕКЦИЯ DNS ---
dns:
enable: true
listen: 0.0.0.0:7874
ipv6: false
cache-algorithm: arc
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
default-nameserver:
- 1.1.1.1
- 8.8.8.8
- 208.67.222.222
- 208.67.220.220
nameserver:
- https://dns10.quad9.net/dns-query
- https://dns.aa.net.uk/dns-query
- https://doh.opendns.com/dns-query
- tls://dns.quad9.net
- tls://1.1.1.1
- tls://dns.opendns.com
nameserver-policy:
'+.supercell.net': 'https://dns.google/dns-query'
'+.brawlstarsgame.com': 'https://dns.google/dns-query'
fake-ip-filter-mode: blacklist
fake-ip-filter:
- '*.lan'
- '*.local'
- +.pool.ntp.org
- +.msftconnecttest.com
- +.3gppnetwork.org
# --- ГРУППЫ ПРОКСИ (ПОЛИТИКИ) ---
proxy-groups:
- name: 'Gemini'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/331406/gemini.svg"
- name: 'Speedtest'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/355484/speed.svg"
- name: '18+'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/530357/peach.svg"
- name: 'Apple'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/506958/clo-bowler.svg"
- name: 'Fastly'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/353730/fastly.svg"
- name: 'boosty'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/506958/clo-bowler.svg"
- name: 'Discord'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/331368/discord-v2.svg"
- name: 'Spotify'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/349511/spotify.svg"
- name: 'Viber'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/125448/viber.svg"
- name: 'Roblox'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/443377/brand-roblox.svg"
- name: 'Linkedin'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/448234/linkedin.svg"
- name: 'Akamai'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/353385/akamai.svg"
- name: 'Netflix'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/303341/netflix-1-logo.svg"
- name: '2IP.IO'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/415672/address-location-map.svg"
- name: 'Twitter'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/452121/twitter-1.svg"
- name: 'Instagram'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/452229/instagram-1.svg"
- name: 'Google'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/475656/google-color.svg"
- name: 'Google Play'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/353828/google-play-icon.svg"
- name: 'Whatsapp'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/349563/whatsapp.svg"
- name: 'Microsoft'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/452062/microsoft.svg"
- name: 'GitHub'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/475654/github-color.svg"
- name: 'Amazon'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/475634/amazon-color.svg"
- name: 'Notion'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/361558/notion-logo.svg"
- name: 'Tidal'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/504993/tidal.svg"
- name: 'Telegram'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/354443/telegram.svg"
- name: 'TikTok'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/349530/tiktok.svg"
- name: 'Twitch'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/448251/twitch.svg"
- name: 'RU трафик'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/508628/flag-ru.svg"
- name: 'Остальной трафик'
type: select
exclude-filter: "(?i)Russia|RU"
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/293111/maps-and-flags-global.svg"
- name: 'Блокировка рекламы'
type: select
proxies: [ REJECT, DIRECT, '🇷🇺 Россия' ]
icon: "https://www.svgrepo.com/show/300290/sign-roadblock.svg"
- name: 'YouTube'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/13671/youtube.svg"
- name: 'Facebook'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/475647/facebook-color.svg"
- name: 'OpenAI'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/306500/openai.svg"
- name: 'Steam'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/452107/steam.svg"
- name: 'other'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/462111/netflix.svg"
- name: 'intel'
type: select
proxies: [ '🇷🇺 Россия', DIRECT ]
icon: "https://www.svgrepo.com/show/349412/intel.svg"
- name: GLOBAL
type: select
hidden: true
proxies:
- 'YouTube'
- 'Google'
- 'Google Play'
- 'Steam'
- 'Microsoft'
- 'GitHub'
- 'Gemini'
- 'Roblox'
- 'Instagram'
- 'Linkedin'
- 'Amazon'
- 'Akamai'
- 'Facebook'
- '18+'
- 'Discord'
- 'Fastly'
- 'Viber'
- 'Telegram'
- 'Twitch'
- 'Apple'
- 'TikTok'
- 'Notion'
- 'Whatsapp'
- 'Speedtest'
- 'Netflix'
- 'Spotify'
- 'other'
- 'intel'
- 'boosty'
- 'OpenAI'
- 'Tidal'
- 'RU трафик'
- 'Блокировка рекламы'
- 'Остальной трафик'
- DIRECT
# --- НАСТРОЙКИ GEO-ДАННЫХ ---
geox-url:
geosite: "https://github.com/v2fly/domain-list-community/releases/latest/download/dlc.dat"
geoip: "https://github.com/MetaCubeX/meta-rules-dat/releases/latest/download/geoip.dat"
rule-providers:
hagezi_pro:
type: http
behavior: domain
format: mrs
url: "https://github.com/zxc-rv/ad-filter/releases/latest/download/adlist.mrs"
path: ./adblock/adlist.mrs
interval: 86400
discord:
type: inline
behavior: classical
format: text
payload:
- "AND,((DOMAIN-KEYWORD,discord),(NOT,((DOMAIN-SUFFIX,ru))))"
- "AND,((IP-CIDR,34.0.192.0/18,no-resolve),(NETWORK,UDP),(DST-PORT,50000-50100))"
- "AND,((IP-CIDR,35.192.0.0/11,no-resolve),(NETWORK,UDP),(DST-PORT,50000-50100))"
- "AND,((IP-CIDR,66.22.192.0/18,no-resolve),(NETWORK,UDP),(DST-PORT,50000-50100))"
# --- ПРАВИЛА МАРШРУТИЗАЦИИ ---
rules:
# ПРАВИЛО №0: Блокировка рекламы и трекеров
- GEOSITE,category-ads-all,Блокировка рекламы
- RULE-SET,hagezi_pro,Блокировка рекламы
# ПРАВИЛО №1: Системные правила
- GEOIP,private,DIRECT,no-resolve
# ПРАВИЛО №2: Российский трафик
- DOMAIN-SUFFIX,avito.ru,DIRECT
- DOMAIN-SUFFIX,avito.st,DIRECT
- GEOSITE,category-ru,RU трафик
- DOMAIN-SUFFIX,ru,RU трафик
- DOMAIN-SUFFIX,by,RU трафик
- DOMAIN-SUFFIX,xn--p1ai,RU трафик
- DOMAIN-SUFFIX,yandex-pogoda.static-storage.net,RU трафик
- GEOSITE,category-gov-ru,RU трафик
- GEOIP,RU,RU трафик,no-resolve
# ПРАВИЛО №3: Правила для конкретных сервисов
- OR,((DOMAIN-SUFFIX,gql.twitch.tv),(DOMAIN-SUFFIX,usher.ttvnw.net)),Twitch
- GEOSITE,openai,OpenAI
- RULE-SET,discord,Discord
- GEOSITE,tidal,Tidal
- GEOSITE,linkedin,Linkedin
- GEOSITE,facebook,Facebook
- GEOSITE,netflix,Netflix
- GEOIP,netflix,Netflix
- GEOSITE,spotify,Spotify
- GEOSITE,speedtest,Speedtest
- GEOSITE,ookla-speedtest,Speedtest
- GEOSITE,category-speedtest,Speedtest
- GEOSITE,instagram,Instagram
- GEOSITE,steam,Steam
- GEOSITE,apple,Apple
- GEOSITE,youtube,YouTube
- GEOSITE,twitter,Twitter
- GEOSITE,tiktok,TikTok
- GEOSITE,intel,intel
- GEOSITE,notion,Notion
- GEOSITE,google,Google
- GEOSITE,google-play,Google Play
- GEOSITE,google-gemini,Gemini
- GEOSITE,github,GitHub
- GEOSITE,microsoft,Microsoft
- GEOSITE,telegram,Telegram
- GEOIP,telegram,Telegram
# CDN Akamai, Fastly, Amazon
- IP-ASN,16509,Amazon
- IP-ASN,16625,Akamai
- GEOIP,fastly,Fastly
# Roblox открыть порты xkeen -ap 80,443,49152:65535
- AND,((IP-ASN,22697),(DST-PORT,49152-65535)),Roblox
- DOMAIN-SUFFIX,roblox.com,Roblox
- DOMAIN-SUFFIX,rbxcdn.com,Roblox
- DOMAIN-SUFFIX,rbxinfra.net,Roblox
# Viber
- GEOSITE,viber,Viber
- IP-ASN,16509,Viber
# Whatsapp // открывам порты xkeen -ap 443,3478,46420
- GEOSITE,whatsapp,Whatsapp
- IP-ASN,32934,Whatsapp
- IP-ASN,11917,Whatsapp
- IP-ASN,9002,Whatsapp
# SupperCell Открыть порт 9339 xkeen -ap 9339
- GEOSITE,supercell,other
- DOMAIN-KEYWORD,supercell,other
- AND,((IP-ASN,14618),(DST-PORT,9339)),other
- AND,((IP-ASN,16509),(DST-PORT,9339)),other
# ПРАВИЛО №5: Проверка Ip адреса
- DOMAIN-SUFFIX,2ip.io,2IP.IO
# ПРАВИЛО №6: Необходимые сервисы с выбором
- DOMAIN-SUFFIX,onlyfans.com,other
- DOMAIN-SUFFIX,fansly.com,other
- DOMAIN-SUFFIX,patreon.com,other
# ПРАВИЛО №7: Необходимые сервисы с выбором 18+
- GEOSITE,category-porn,18+
# kino.pub
- DOMAIN-SUFFIX,firebase-settings.crashlytics.com,other
- DOMAIN-SUFFIX,firebaseinstallations.googleapis.com,other
- DOMAIN-SUFFIX,kp-pro.cloud,other
- DOMAIN-SUFFIX,firebaseremoteconfigrealtime.googleapis.com,other
- DOMAIN-SUFFIX,firebaseremoteconfig.googleapis.com,other
- DOMAIN-SUFFIX,cdn32.lol,other
- DOMAIN-SUFFIX,kino.pub,other
- "MATCH,Остальной трафик"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,233 @@
/**
* SUB STORE YAML ASSEMBLER (v4: Fix Duplicate Headers)
* * Arguments:
* - clear-comments=true
* - clear-manifest=true
* - clear-replacements=true
* * Requires: Header "# @file: filename.yaml" in input files.
*/
// --- OPTIONS PARSING ---
function normalizeOptions() {
const args = (typeof $arguments !== "undefined" && $arguments) ? $arguments : {};
const asBool = (v, def = false) => {
if (v === undefined || v === null || v === "") return def;
if (typeof v === "boolean") return v;
const s = String(v).toLowerCase().trim();
if (["1", "true", "yes", "y", "on"].includes(s)) return true;
if (["0", "false", "no", "n", "off"].includes(s)) return false;
return def;
};
return {
clearComments: asBool(args['clear-comments'], false),
clearManifest: asBool(args['clear-manifest'], false),
clearReplacements: asBool(args['clear-replacements'], false),
};
}
// --- UTILS ---
function normalizeFiles(rawFiles) {
const map = new Map();
if (!rawFiles || !Array.isArray(rawFiles)) return map;
rawFiles.forEach((content) => {
if (typeof content !== 'string') return;
const match = content.match(/^#\s*@file:\s*(.+?)(\s|$)/m);
if (match) map.set(match[1].trim(), content);
});
return map;
}
function cleanText(text) {
return String(text || "").replace(/\r\n/g, "\n");
}
function extractName(block) {
const match = block.match(/^ {4}name:\s*(?:["']?)(.*?)(?:["']?)\s*(?:#.*)?$/m);
return match ? match[1].trim() : null;
}
function extractKey(block, indentLevel) {
const spaceStr = " ".repeat(indentLevel);
const re = new RegExp(`^${spaceStr}([^#\\s][^:]+):`);
const match = block.match(re);
return match ? match[1].trim().replace(/['"]/g, "") : null;
}
function stripFullLineComments(text) {
return text.split('\n')
.filter(line => !line.trim().startsWith('#'))
.join('\n');
}
function splitBlocks(text, type) {
const lines = cleanText(text).split("\n");
const blocks = [];
let currentBuf = [];
const isListStart = (l) => l.match(/^ {2}-\s/);
const isMapStart2 = (l) => l.match(/^ {2}[^ \-#][^:]*:/);
const isMapStart0 = (l) => l.match(/^[^ \-#][^:]*:/);
const isStart = (l) => {
if (type === 'list') return isListStart(l);
if (type === 'map2') return isMapStart2(l);
if (type === 'map0') return isMapStart0(l);
return false;
};
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
if (line.match(/^#\s*@file:/)) continue;
if (isStart(line)) {
if (currentBuf.length > 0) {
blocks.push(currentBuf.join("\n"));
currentBuf = [];
}
}
if (currentBuf.length === 0 && !line.trim()) continue;
currentBuf.push(line);
}
if (currentBuf.length > 0) blocks.push(currentBuf.join("\n"));
return blocks;
}
// --- MERGE LOGIC ---
function processSection(sectionName, manifestEntries, fileMap, opts) {
let sectionOutput = [];
const seenKeys = new Set();
// Добавляем заголовок секции
if (!['root', 'x-substore', 'rules'].includes(sectionName)) {
sectionOutput.push(`${sectionName}:`);
}
if (sectionName === 'x-substore') {
sectionOutput.push(`x-substore:`);
}
for (const entry of manifestEntries) {
let content = fileMap.get(entry.file);
if (!content) throw new Error(`CRITICAL: File "${entry.file}" not found.`);
if (!opts.clearComments) {
sectionOutput.push(`\n# --- source: ${entry.file} | mode: ${entry.mode || "concat"} ---`);
}
if (opts.clearComments) {
content = stripFullLineComments(content);
}
// [FIX] Удаляем дублирующий заголовок x-substore из контента файла,
// но оставляем содержимое (оно уже имеет правильный отступ 2 пробела)
if (sectionName === 'x-substore') {
content = content.replace(/^x-substore:\s*(?:#.*)?$/m, '');
}
const mode = entry.mode || "concat";
if (mode === 'concat') {
const lines = cleanText(content).split('\n').filter(l => !l.match(/^#\s*@file:/));
sectionOutput.push(lines.join('\n'));
continue;
}
if (mode === 'first_wins') {
let blockType = 'map2';
if (sectionName === 'root') blockType = 'map0';
if (['proxies', 'proxy-groups'].includes(sectionName)) blockType = 'list';
const blocks = splitBlocks(content, blockType);
if (blocks.length === 0 && !opts.clearComments) {
sectionOutput.push(`# WARNING: No valid blocks found in ${entry.file}`);
}
for (const block of blocks) {
let id = null;
if (blockType === 'list') {
id = extractName(block);
} else if (blockType === 'map0') {
id = extractKey(block, 0);
} else {
id = extractKey(block, 2);
}
// Apply cleaning options for x-substore content
if (sectionName === 'x-substore' && id) {
if (opts.clearManifest && id === 'manifest') continue;
if (opts.clearReplacements && id === 'replacements') continue;
}
if (id) {
if (seenKeys.has(id)) {
if (!opts.clearComments) sectionOutput.push(`# [SKIP] Duplicate "${id}" ignored`);
continue;
}
seenKeys.add(id);
}
sectionOutput.push(block);
}
}
}
return sectionOutput.join("\n");
}
// --- MAIN EXECUTION ---
try {
const opts = normalizeOptions();
const fileMap = normalizeFiles($files);
let manifestKey = null;
for (const k of fileMap.keys()) {
if (k.startsWith("00-manifest")) {
manifestKey = k;
break;
}
}
if (!manifestKey) throw new Error("Manifest file (00-manifest-...) not found.");
const manifestRaw = fileMap.get(manifestKey);
const manifestObj = ProxyUtils.yaml.safeLoad(manifestRaw);
if (!manifestObj?.['x-substore']?.manifest) {
throw new Error("Invalid Manifest structure.");
}
const manifestList = manifestObj['x-substore'].manifest;
const replacements = manifestObj['x-substore'].replacements || [];
const sectionOrder = [
"x-substore", "root", "hosts", "sniffer", "tun", "dns",
"proxies", "proxy-providers", "proxy-groups", "rule-providers", "rules"
];
const plan = {};
sectionOrder.forEach(s => plan[s] = []);
manifestList.forEach(entry => {
if (!plan[entry.section]) plan[entry.section] = [];
plan[entry.section].push(entry);
});
const finalChunks = [];
for (const sec of sectionOrder) {
if (!plan[sec] || plan[sec].length === 0) continue;
const secStr = processSection(sec, plan[sec], fileMap, opts);
finalChunks.push(secStr);
}
let result = finalChunks.join("\n\n");
if (Array.isArray(replacements)) {
replacements.forEach(rep => {
if (rep.from && rep.to) {
result = result.split(rep.from).join(rep.to);
}
});
}
$content = result;
} catch (err) {
$content = `# CRITICAL ERROR:\n# ${err.message}\n# Stack: ${err.stack}`;
}

View File

@@ -0,0 +1,239 @@
/**
* SUB STORE YAML ASSEMBLER (Content-Tag Aware)
* * Требование: Каждый файл должен начинаться с комментария:
* # @file: filename.yaml
*/
// --- UTILS ---
// Функция нормализации теперь парсит содержимое, чтобы найти имя файла
function normalizeFiles(rawFiles) {
const map = new Map();
if (!rawFiles || !Array.isArray(rawFiles)) return map;
rawFiles.forEach((content, index) => {
if (typeof content !== 'string') return;
// Ищем магический тег: # @file: filename.yaml
const match = content.match(/^#\s*@file:\s*(.+?)(\s|$)/m);
if (match) {
const filename = match[1].trim();
map.set(filename, content);
} else {
// Если тега нет, файл остается "анонимным" и недоступным через манифест,
// но мы можем логировать это.
// console.log(`File at index ${index} has no @file tag`);
}
});
return map;
}
function cleanText(text) {
return String(text || "").replace(/\r\n/g, "\n");
}
// Извлечение name из элемента списка
function extractName(block) {
// Ищем name: value с учетом отступов (4 пробела)
const match = block.match(/^ {4}name:\s*(?:["']?)(.*?)(?:["']?)\s*(?:#.*)?$/m);
return match ? match[1].trim() : null;
}
// Извлечение ключа из map (0 или 2 пробела)
function extractKey(block, indentLevel) {
const spaceStr = " ".repeat(indentLevel);
const re = new RegExp(`^${spaceStr}([^#\\s][^:]+):`);
const match = block.match(re);
return match ? match[1].trim().replace(/['"]/g, "") : null;
}
// Разбивка текста на логические блоки
function splitBlocks(text, type) {
const lines = cleanText(text).split("\n");
const blocks = [];
let currentBuf = [];
// Детекторы начала блока
const isListStart = (l) => l.match(/^ {2}-\s/); // " - "
const isMapStart2 = (l) => l.match(/^ {2}[^ \-#][^:]*:/); // " key:"
const isMapStart0 = (l) => l.match(/^[^ \-#][^:]*:/); // "key:" (root)
const isStart = (l) => {
if (type === 'list') return isListStart(l);
if (type === 'map2') return isMapStart2(l);
if (type === 'map0') return isMapStart0(l);
return false;
};
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
// Если строка начинается с # @file:, пропускаем ее, чтобы не мусорить в конфиге
if (line.match(/^#\s*@file:/)) continue;
if (isStart(line)) {
if (currentBuf.length > 0) {
blocks.push(currentBuf.join("\n"));
currentBuf = [];
}
}
// Пропуск пустых строк в начале, если буфер пуст
if (currentBuf.length === 0 && !line.trim()) continue;
currentBuf.push(line);
}
if (currentBuf.length > 0) {
blocks.push(currentBuf.join("\n"));
}
return blocks;
}
// --- MERGE LOGIC ---
function processSection(sectionName, manifestEntries, fileMap) {
let sectionOutput = [];
const seenKeys = new Set();
// Добавляем заголовок секции (кроме root, x-substore и rules)
if (!['root', 'x-substore', 'rules'].includes(sectionName)) {
sectionOutput.push(`${sectionName}:`);
}
if (sectionName === 'x-substore') {
sectionOutput.push(`x-substore:`);
}
for (const entry of manifestEntries) {
const content = fileMap.get(entry.file);
if (!content) {
// FAIL-FAST: Если файл из манифеста не найден (нет тега или не загружен)
throw new Error(`CRITICAL: File "${entry.file}" not found inside input bundle. Did you add '# @file: ${entry.file}' header?`);
}
const mode = entry.mode || "concat";
sectionOutput.push(`\n# --- source: ${entry.file} | mode: ${mode} ---`);
if (mode === 'concat') {
// Просто чистим от тега @file при вставке
const lines = cleanText(content).split('\n').filter(l => !l.match(/^#\s*@file:/));
sectionOutput.push(lines.join('\n'));
continue;
}
if (mode === 'first_wins') {
let blockType = 'map2';
if (sectionName === 'root') blockType = 'map0';
if (['proxies', 'proxy-groups'].includes(sectionName)) blockType = 'list';
const blocks = splitBlocks(content, blockType);
if (blocks.length === 0) {
sectionOutput.push(`# WARNING: No valid blocks found in ${entry.file}`);
}
for (const block of blocks) {
let id = null;
if (blockType === 'list') {
id = extractName(block);
} else if (blockType === 'map0') {
id = extractKey(block, 0);
} else {
id = extractKey(block, 2);
}
if (id) {
if (seenKeys.has(id)) {
sectionOutput.push(`# [SKIP] Duplicate "${id}" ignored`);
continue;
}
seenKeys.add(id);
}
sectionOutput.push(block);
}
}
}
return sectionOutput.join("\n");
}
// --- MAIN EXECUTION ---
try {
// 1. Создаем карту файлов на основе тегов # @file:
const fileMap = normalizeFiles($files);
// 2. Ищем Манифест
let manifestKey = null;
// Ищем файл, чье имя (из тега) начинается с 00-manifest
for (const k of fileMap.keys()) {
if (k.startsWith("00-manifest")) {
manifestKey = k;
break;
}
}
if (!manifestKey) {
const foundFiles = Array.from(fileMap.keys()).join(", ");
throw new Error(`Manifest file (00-manifest-...) not found in headers. Found files: [${foundFiles}]`);
}
// 3. Парсим Манифест
const manifestRaw = fileMap.get(manifestKey);
const manifestObj = ProxyUtils.yaml.safeLoad(manifestRaw);
if (!manifestObj?.['x-substore']?.manifest) {
throw new Error("Invalid Manifest: missing x-substore.manifest structure.");
}
const manifestList = manifestObj['x-substore'].manifest;
const replacements = manifestObj['x-substore'].replacements || [];
// 4. Планирование порядка секций
const sectionOrder = [
"x-substore", "root", "hosts", "sniffer", "tun", "dns",
"proxies", "proxy-providers", "proxy-groups", "rule-providers", "rules"
];
const plan = {};
sectionOrder.forEach(s => plan[s] = []);
manifestList.forEach(entry => {
// Если секция в манифесте есть, а в нашем плане нет - добавляем динамически (на всякий случай)
if (!plan[entry.section]) plan[entry.section] = [];
plan[entry.section].push(entry);
});
// 5. Сборка
const finalChunks = [];
for (const sec of sectionOrder) {
if (!plan[sec] || plan[sec].length === 0) continue;
// Обработка секции
const secStr = processSection(sec, plan[sec], fileMap);
finalChunks.push(secStr);
}
let result = finalChunks.join("\n\n");
// 6. Replacements (Literal)
if (Array.isArray(replacements)) {
replacements.forEach(rep => {
if (rep.from && rep.to) {
result = result.split(rep.from).join(rep.to);
}
});
}
$content = result;
} catch (err) {
$content = `# CRITICAL ERROR in Assembler:\n# ${err.message}\n\n# Stack:\n${err.stack}`;
}

View File

@@ -0,0 +1,235 @@
/**********************
* Defaults (AmneziaWG)
* Если в исходнике нет параметра, берём отсюда.
* Если итоговое значение == 0, параметр пропускаем в amnezia-wg-option.
**********************/
const AMZ_DEFAULTS = {
Jc: 4,
Jmin: 10,
Jmax: 50,
S1: 110,
S2: 120,
H1: 0,
H2: 0,
H3: 0,
H4: 0,
};
/**********************
* Options from Sub Store
* Example URL:
* .../convert-awg-to-clash.js#dns=false&ipv6=false#noCache
*
* Требования:
* - dns=false => remote-dns-resolve: false (вне зависимости от входа)
* - ipv6=false => удалить IPv6 из allowed-ips (и вообще не добавлять ipv6-части)
**********************/
function normalizeOptions() {
const args = (typeof $arguments !== "undefined" && $arguments) ? $arguments : {};
const asBool = (v, def = true) => {
if (v === undefined || v === null || v === "") return def;
if (typeof v === "boolean") return v;
const s = String(v).toLowerCase().trim();
if (["1", "true", "yes", "y", "on"].includes(s)) return true;
if (["0", "false", "no", "n", "off"].includes(s)) return false;
return def;
};
return {
dns: asBool(args.dns, true),
ipv6: asBool(args.ipv6, true),
};
}
/**********************
* Parsing WG INI blocks
**********************/
function cleanLines(text) {
return String(text ?? "")
.replace(/\r\n/g, "\n")
.split("\n");
}
// Парсим один INI-фрагмент с [Interface] и [Peer] (один peer)
function parseIniOne(text) {
const lines = cleanLines(text)
.map((l) => l.trim())
.filter((l) => l.length > 0 && !l.startsWith("#") && !l.startsWith(";"));
let section = null;
const data = { Interface: {}, Peer: {} };
for (const line of lines) {
const mSec = line.match(/^\[(.+?)\]$/);
if (mSec) {
section = mSec[1];
continue;
}
const mKV = line.match(/^([^=]+?)\s*=\s*(.+)$/);
if (!mKV || !section) continue;
const key = mKV[1].trim();
const value = mKV[2].trim();
if (section === "Interface") data.Interface[key] = value;
else if (section === "Peer") data.Peer[key] = value;
}
return data;
}
// Разбиваем весь файл на блоки по заголовкам "##### ..."
function splitByHeaders(fullText) {
const lines = cleanLines(fullText);
const blocks = [];
let current = { name: "amz-wg", buf: [] };
const headerRe = /^#{5}\s*(.+)\s*$/;
for (const line of lines) {
const mh = line.match(headerRe);
if (mh) {
// закрываем предыдущий блок, если там что-то есть
if (current.buf.join("\n").trim().length > 0) blocks.push(current);
current = { name: mh[1].trim(), buf: [] };
continue;
}
current.buf.push(line);
}
if (current.buf.join("\n").trim().length > 0) blocks.push(current);
return blocks;
}
function splitList(val) {
return String(val || "")
.split(",")
.map((s) => s.trim())
.filter(Boolean);
}
function parseEndpoint(endpoint) {
// Поддержка:
// - host:port
// - [ipv6]:port
const s = String(endpoint || "").trim();
const v6 = s.match(/^\[(.+?)\]:(\d+)$/);
if (v6) return { host: v6[1], port: Number(v6[2]) };
const v4 = s.match(/^(.+?):(\d+)$/);
if (v4) return { host: v4[1], port: Number(v4[2]) };
return { host: "", port: 0 };
}
function toNumberOrNull(v) {
const s = String(v ?? "").trim();
if (s === "") return null;
if (/^-?\d+$/.test(s)) return Number(s);
return null;
}
function buildAmzOptions(interfaceObj) {
// Правило:
// - если в файле есть параметр => используем его
// - иначе берём из AMZ_DEFAULTS
// - если итог == 0 => пропускаем
const out = {};
const keys = Object.keys(AMZ_DEFAULTS);
for (const K of keys) {
const fromFile = interfaceObj[K];
const fileNum = toNumberOrNull(fromFile);
const fallback = AMZ_DEFAULTS[K];
const finalVal =
fileNum !== null ? fileNum : (fallback ?? 0);
if (Number(finalVal) !== 0) {
out[K.toLowerCase()] = Number(finalVal);
}
}
return out;
}
function filterAllowedIPs(allowed, enableIPv6) {
if (enableIPv6) return allowed;
// выкидываем всё, что похоже на IPv6
return allowed.filter((cidr) => !cidr.includes(":"));
}
function buildProxy(blockName, wg, options) {
const i = wg.Interface || {};
const p = wg.Peer || {};
const address = i.Address || "";
const dnsList = splitList(i.DNS);
const ep = parseEndpoint(p.Endpoint);
let allowed = splitList(p.AllowedIPs);
allowed = filterAllowedIPs(allowed, options.ipv6);
const proxy = {
name: blockName || "amz-wg",
type: "wireguard",
ip: address,
// ipv6 поле в твоём примере закомментировано, так что не добавляем вообще
"private-key": i.PrivateKey || "",
peers: [
{
server: ep.host,
port: ep.port,
"public-key": p.PublicKey || "",
...(p.PresharedKey ? { "pre-shared-key": p.PresharedKey } : {}),
"allowed-ips": allowed,
},
],
udp: true,
// dns=false => принудительно false
"remote-dns-resolve": options.dns ? true : false,
...(dnsList.length ? { dns: dnsList } : {}),
};
const amz = buildAmzOptions(i);
if (Object.keys(amz).length) {
proxy["amnezia-wg-option"] = amz;
}
return proxy;
}
/**********************
* ENTRYPOINT
**********************/
const opts = normalizeOptions();
// Вход: чаще всего $content, но на всякий пожарный берём $files[0]
const input = String($content ?? ($files && $files[0]) ?? "");
// Разбиваем по заголовкам ##### ...
const blocks = splitByHeaders(input);
// Для каждого блока парсим INI и строим proxy
const proxies = [];
for (const b of blocks) {
const iniText = b.buf.join("\n").trim();
if (!iniText) continue;
const wg = parseIniOne(iniText);
// минимальная валидация: нужны ключи
if (!wg.Interface?.PrivateKey || !wg.Peer?.PublicKey || !wg.Peer?.Endpoint) {
// пропускаем мусорные блоки, чтобы не ронять весь конвертер
continue;
}
proxies.push(buildProxy(b.name, wg, opts));
}
// Финальный YAML
$content = ProxyUtils.yaml.safeDump({ proxies });

View File

@@ -0,0 +1,28 @@
// Example:
// Script Operator
// 1. backend version(>2.14.88):
$server.name = 'prefix-' + $server.name
$server.ecn = true
$server['test-url'] = 'http://1.0.0.1/generate_204'
// 2. operator function
function operator(proxies, targetPlatform, context) {
return proxies.map( proxy => {
// Change proxy information here
return proxy;
});
}
// Script Filter
// 1. backend version(>2.14.119):
const port = Number($server.port)
return [80].includes(port)
// 2. filter function
function filter(proxies, targetPlatform) {
return proxies.map( proxy => {
// Return true if the current proxy is selected
return true;
});
}

View File

@@ -0,0 +1,59 @@
/**
* 节点名改为花里胡哨字体,仅支持英文字符和数字
*
* 【字体】
* 可参考https://www.dute.org/weird-fonts
* serif-bold, serif-italic, serif-bold-italic, sans-serif-regular, sans-serif-bold-italic, script-regular, script-bold, fraktur-regular, fraktur-bold, monospace-regular, double-struck-bold, circle-regular, square-regular, modifier-letter(小写没有 q, 用 ᵠ 替代. 大写缺的太多, 用小写替代)
*
* 【示例】
* 1⃣ 设置所有格式为 "serif-bold"
* #type=serif-bold
*
* 2⃣ 设置字母格式为 "serif-bold",数字格式为 "circle-regular"
* #type=serif-bold&num=circle-regular
*/
global.$arguments = { type: "serif-bold" };
function operator(proxies) {
const { type, num } = $arguments;
const TABLE = {
"serif-bold": ["𝟎","𝟏","𝟐","𝟑","𝟒","𝟓","𝟔","𝟕","𝟖","𝟗","𝐚","𝐛","𝐜","𝐝","𝐞","𝐟","𝐠","𝐡","𝐢","𝐣","𝐤","𝐥","𝐦","𝐧","𝐨","𝐩","𝐪","𝐫","𝐬","𝐭","𝐮","𝐯","𝐰","𝐱","𝐲","𝐳","𝐀","𝐁","𝐂","𝐃","𝐄","𝐅","𝐆","𝐇","𝐈","𝐉","𝐊","𝐋","𝐌","𝐍","𝐎","𝐏","𝐐","𝐑","𝐒","𝐓","𝐔","𝐕","𝐖","𝐗","𝐘","𝐙"],
"serif-italic": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "𝑎", "𝑏", "𝑐", "𝑑", "𝑒", "𝑓", "𝑔", "", "𝑖", "𝑗", "𝑘", "𝑙", "𝑚", "𝑛", "𝑜", "𝑝", "𝑞", "𝑟", "𝑠", "𝑡", "𝑢", "𝑣", "𝑤", "𝑥", "𝑦", "𝑧", "𝐴", "𝐵", "𝐶", "𝐷", "𝐸", "𝐹", "𝐺", "𝐻", "𝐼", "𝐽", "𝐾", "𝐿", "𝑀", "𝑁", "𝑂", "𝑃", "𝑄", "𝑅", "𝑆", "𝑇", "𝑈", "𝑉", "𝑊", "𝑋", "𝑌", "𝑍"],
"serif-bold-italic": ["0","1","2","3","4","5","6","7","8","9","𝒂","𝒃","𝒄","𝒅","𝒆","𝒇","𝒈","𝒉","𝒊","𝒋","𝒌","𝒍","𝒎","𝒏","𝒐","𝒑","𝒒","𝒓","𝒔","𝒕","𝒖","𝒗","𝒘","𝒙","𝒚","𝒛","𝑨","𝑩","𝑪","𝑫","𝑬","𝑭","𝑮","𝑯","𝑰","𝑱","𝑲","𝑳","𝑴","𝑵","𝑶","𝑷","𝑸","𝑹","𝑺","𝑻","𝑼","𝑽","𝑾","𝑿","𝒀","𝒁"],
"sans-serif-regular": ["𝟢", "𝟣", "𝟤", "𝟥", "𝟦", "𝟧", "𝟨", "𝟩", "𝟪", "𝟫", "𝖺", "𝖻", "𝖼", "𝖽", "𝖾", "𝖿", "𝗀", "𝗁", "𝗂", "𝗃", "𝗄", "𝗅", "𝗆", "𝗇", "𝗈", "𝗉", "𝗊", "𝗋", "𝗌", "𝗍", "𝗎", "𝗏", "𝗐", "𝗑", "𝗒", "𝗓", "𝖠", "𝖡", "𝖢", "𝖣", "𝖤", "𝖥", "𝖦", "𝖧", "𝖨", "𝖩", "𝖪", "𝖫", "𝖬", "𝖭", "𝖮", "𝖯", "𝖰", "𝖱", "𝖲", "𝖳", "𝖴", "𝖵", "𝖶", "𝖷", "𝖸", "𝖹"],
"sans-serif-bold": ["𝟬","𝟭","𝟮","𝟯","𝟰","𝟱","𝟲","𝟳","𝟴","𝟵","𝗮","𝗯","𝗰","𝗱","𝗲","𝗳","𝗴","𝗵","𝗶","𝗷","𝗸","𝗹","𝗺","𝗻","𝗼","𝗽","𝗾","𝗿","𝘀","𝘁","𝘂","𝘃","𝘄","𝘅","𝘆","𝘇","𝗔","𝗕","𝗖","𝗗","𝗘","𝗙","𝗚","𝗛","𝗜","𝗝","𝗞","𝗟","𝗠","𝗡","𝗢","𝗣","𝗤","𝗥","𝗦","𝗧","𝗨","𝗩","𝗪","𝗫","𝗬","𝗭"],
"sans-serif-italic": ["0","1","2","3","4","5","6","7","8","9","𝘢","𝘣","𝘤","𝘥","𝘦","𝘧","𝘨","𝘩","𝘪","𝘫","𝘬","𝘭","𝘮","𝘯","𝘰","𝘱","𝘲","𝘳","𝘴","𝘵","𝘶","𝘷","𝘸","𝘹","𝘺","𝘻","𝘈","𝘉","𝘊","𝘋","𝘌","𝘍","𝘎","𝘏","𝘐","𝘑","𝘒","𝘓","𝘔","𝘕","𝘖","𝘗","𝘘","𝘙","𝘚","𝘛","𝘜","𝘝","𝘞","𝘟","𝘠","𝘡"],
"sans-serif-bold-italic": ["0","1","2","3","4","5","6","7","8","9","𝙖","𝙗","𝙘","𝙙","𝙚","𝙛","𝙜","𝙝","𝙞","𝙟","𝙠","𝙡","𝙢","𝙣","𝙤","𝙥","𝙦","𝙧","𝙨","𝙩","𝙪","𝙫","𝙬","𝙭","𝙮","𝙯","𝘼","𝘽","𝘾","𝘿","𝙀","𝙁","𝙂","𝙃","𝙄","𝙅","𝙆","𝙇","𝙈","𝙉","𝙊","𝙋","𝙌","𝙍","𝙎","𝙏","𝙐","𝙑","𝙒","𝙓","𝙔","𝙕"],
"script-regular": ["0","1","2","3","4","5","6","7","8","9","𝒶","𝒷","𝒸","𝒹","","𝒻","","𝒽","𝒾","𝒿","𝓀","𝓁","𝓂","𝓃","","𝓅","𝓆","𝓇","𝓈","𝓉","𝓊","𝓋","𝓌","𝓍","𝓎","𝓏","𝒜","","𝒞","𝒟","","","𝒢","","","𝒥","𝒦","","","𝒩","𝒪","𝒫","𝒬","","𝒮","𝒯","𝒰","𝒱","𝒲","𝒳","𝒴","𝒵"],
"script-bold": ["0","1","2","3","4","5","6","7","8","9","𝓪","𝓫","𝓬","𝓭","𝓮","𝓯","𝓰","𝓱","𝓲","𝓳","𝓴","𝓵","𝓶","𝓷","𝓸","𝓹","𝓺","𝓻","𝓼","𝓽","𝓾","𝓿","𝔀","𝔁","𝔂","𝔃","𝓐","𝓑","𝓒","𝓓","𝓔","𝓕","𝓖","𝓗","𝓘","𝓙","𝓚","𝓛","𝓜","𝓝","𝓞","𝓟","𝓠","𝓡","𝓢","𝓣","𝓤","𝓥","𝓦","𝓧","𝓨","𝓩"],
"fraktur-regular": ["0","1","2","3","4","5","6","7","8","9","𝔞","𝔟","𝔠","𝔡","𝔢","𝔣","𝔤","𝔥","𝔦","𝔧","𝔨","𝔩","𝔪","𝔫","𝔬","𝔭","𝔮","𝔯","𝔰","𝔱","𝔲","𝔳","𝔴","𝔵","𝔶","𝔷","𝔄","𝔅","","𝔇","𝔈","𝔉","𝔊","","","𝔍","𝔎","𝔏","𝔐","𝔑","𝔒","𝔓","𝔔","","𝔖","𝔗","𝔘","𝔙","𝔚","𝔛","𝔜",""],
"fraktur-bold": ["0","1","2","3","4","5","6","7","8","9","𝖆","𝖇","𝖈","𝖉","𝖊","𝖋","𝖌","𝖍","𝖎","𝖏","𝖐","𝖑","𝖒","𝖓","𝖔","𝖕","𝖖","𝖗","𝖘","𝖙","𝖚","𝖛","𝖜","𝖝","𝖞","𝖟","𝕬","𝕭","𝕮","𝕯","𝕰","𝕱","𝕲","𝕳","𝕴","𝕵","𝕶","𝕷","𝕸","𝕹","𝕺","𝕻","𝕼","𝕽","𝕾","𝕿","𝖀","𝖁","𝖂","𝖃","𝖄","𝖅"],
"monospace-regular": ["𝟶","𝟷","𝟸","𝟹","𝟺","𝟻","𝟼","𝟽","𝟾","𝟿","𝚊","𝚋","𝚌","𝚍","𝚎","𝚏","𝚐","𝚑","𝚒","𝚓","𝚔","𝚕","𝚖","𝚗","𝚘","𝚙","𝚚","𝚛","𝚜","𝚝","𝚞","𝚟","𝚠","𝚡","𝚢","𝚣","𝙰","𝙱","𝙲","𝙳","𝙴","𝙵","𝙶","𝙷","𝙸","𝙹","𝙺","𝙻","𝙼","𝙽","𝙾","𝙿","𝚀","𝚁","𝚂","𝚃","𝚄","𝚅","𝚆","𝚇","𝚈","𝚉"],
"double-struck-bold": ["𝟘","𝟙","𝟚","𝟛","𝟜","𝟝","𝟞","𝟟","𝟠","𝟡","𝕒","𝕓","𝕔","𝕕","𝕖","𝕗","𝕘","𝕙","𝕚","𝕛","𝕜","𝕝","𝕞","𝕟","𝕠","𝕡","𝕢","𝕣","𝕤","𝕥","𝕦","𝕧","𝕨","𝕩","𝕪","𝕫","𝔸","𝔹","","𝔻","𝔼","𝔽","𝔾","","𝕀","𝕁","𝕂","𝕃","𝕄","","𝕆","","","","𝕊","𝕋","𝕌","𝕍","𝕎","𝕏","𝕐",""],
"circle-regular": ["⓪","①","②","③","④","⑤","⑥","⑦","⑧","⑨","ⓐ","ⓑ","ⓒ","ⓓ","ⓔ","ⓕ","ⓖ","ⓗ","ⓘ","ⓙ","ⓚ","ⓛ","ⓜ","ⓝ","ⓞ","ⓟ","ⓠ","ⓡ","ⓢ","ⓣ","ⓤ","ⓥ","ⓦ","ⓧ","ⓨ","ⓩ","Ⓐ","Ⓑ","Ⓒ","Ⓓ","Ⓔ","Ⓕ","Ⓖ","Ⓗ","Ⓘ","Ⓙ","Ⓚ","Ⓛ","Ⓜ","Ⓝ","Ⓞ","Ⓟ","Ⓠ","Ⓡ","Ⓢ","Ⓣ","Ⓤ","Ⓥ","Ⓦ","Ⓧ","Ⓨ","Ⓩ"],
"square-regular": ["0","1","2","3","4","5","6","7","8","9","🄰","🄱","🄲","🄳","🄴","🄵","🄶","🄷","🄸","🄹","🄺","🄻","🄼","🄽","🄾","🄿","🅀","🅁","🅂","🅃","🅄","🅅","🅆","🅇","🅈","🅉","🄰","🄱","🄲","🄳","🄴","🄵","🄶","🄷","🄸","🄹","🄺","🄻","🄼","🄽","🄾","🄿","🅀","🅁","🅂","🅃","🅄","🅅","🅆","🅇","🅈","🅉"],
"modifier-letter": ["⁰", "¹", "²", "³", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹", "ᵃ", "ᵇ", "ᶜ", "ᵈ", "ᵉ", "ᶠ", "ᵍ", "ʰ", "ⁱ", "ʲ", "ᵏ", "ˡ", "ᵐ", "ⁿ", "ᵒ", "ᵖ", "ᵠ", "ʳ", "ˢ", "ᵗ", "ᵘ", "ᵛ", "ʷ", "ˣ", "ʸ", "ᶻ", "ᴬ", "ᴮ", "ᶜ", "ᴰ", "ᴱ", "ᶠ", "ᴳ", "ʰ", "ᴵ", "ᴶ", "ᴷ", "ᴸ", "ᴹ", "ᴺ", "ᴼ", "ᴾ", "ᵠ", "ᴿ", "ˢ", "ᵀ", "ᵁ", "ᵛ", "ᵂ", "ˣ", "ʸ", "ᶻ"],
};
// charCode => index in `TABLE`
const INDEX = { "48": 0, "49": 1, "50": 2, "51": 3, "52": 4, "53": 5, "54": 6, "55": 7, "56": 8, "57": 9, "65": 36, "66": 37, "67": 38, "68": 39, "69": 40, "70": 41, "71": 42, "72": 43, "73": 44, "74": 45, "75": 46, "76": 47, "77": 48, "78": 49, "79": 50, "80": 51, "81": 52, "82": 53, "83": 54, "84": 55, "85": 56, "86": 57, "87": 58, "88": 59, "89": 60, "90": 61, "97": 10, "98": 11, "99": 12, "100": 13, "101": 14, "102": 15, "103": 16, "104": 17, "105": 18, "106": 19, "107": 20, "108": 21, "109": 22, "110": 23, "111": 24, "112": 25, "113": 26, "114": 27, "115": 28, "116": 29, "117": 30, "118": 31, "119": 32, "120": 33, "121": 34, "122": 35 };
return proxies.map(p => {
p.name = [...p.name].map(c => {
if (/[a-zA-Z0-9]/.test(c)) {
const code = c.charCodeAt(0);
const index = INDEX[code];
if (isNumber(code) && num) {
return TABLE[num][index];
} else {
return TABLE[type][index];
}
}
return c;
}).join("");
return p;
})
}
function isNumber(code) { return code >= 48 && code <= 57; }

View File

@@ -0,0 +1,328 @@
/**
* Sub-Store operator: Normalize + tag + country detect + per-country numbering
*
* Output format (default):
* 🇺🇸 USA-01 🔒 📺 ❻ ▫ws/vless/443
*
* Notes:
* - Numbering is computed per-country AFTER grouping the full list.
* - Tags (icons) do NOT affect numbering order.
* - GeoIP is optional and only used when server is an IP and utils.geoip.lookup exists.
*/
///////////////////////
// CONFIG (EDIT ME)
///////////////////////
// 1) Remove these patterns (marketing noise, brackets, separators, etc.)
const NOISE_PATTERNS = [
/\[[^\]]*]/g, // [ ... ]
/\([^)]*\)/g, // ( ... )
/\{[^}]*}/g, // { ... }
/\btraffic\b/gi,
/\bfree\b/gi,
/\bwebsite\b/gi,
/\bexpire\b/gi,
/\blow\s*ping\b/gi,
/\bai\s*studio\b/gi,
/\bno\s*p2p\b/gi,
/\b10\s*gbit\b/gi,
/\bvless\b/gi, // you said you don't want it in the visible name
/\bvmess\b/gi,
/\bssr?\b/gi,
/\btrojan\b/gi,
/\bhysteria2?\b/gi,
/\btuic\b/gi,
/[|]/g,
/[_]+/g,
/[-]{2,}/g
];
// 2) Keyword -> icon tags (if found in original name, icon is added; the keyword is removed from base name)
const ICON_RULES = [
{ regex: /\bYT\b/gi, icon: "📺" },
{ regex: /\bIPv6\b/gi, icon: "❻" },
{ regex: /\bNetflix\b|\bNF\b/gi, icon: "🎬" },
{ regex: /\bDisney\+?\b|\bDSNY\b/gi, icon: "🏰" },
{ regex: /\bHBO\b/gi, icon: "📼" },
{ regex: /\bPrime\b|\bAmazon\b/gi, icon: "📦" },
{ regex: /\bChatGPT\b|\bOpenAI\b/gi, icon: "🤖" },
{ regex: /\bSteam\b/gi, icon: "🎮" },
];
// 3) Optional “network” tag rules based on NAME text (not $server.network)
// (Useful if providers shove "BGP/IPLC" into the node name)
const NAME_NETWORK_TAGS = [
{ regex: /\bIPLC\b/gi, tag: "🛰️" },
{ regex: /\bBGP\b/gi, tag: "🧭" },
{ regex: /\bAnycast\b/gi, tag: "🌍" }
];
// 4) Country detection rules by NAME (regex). First match wins (priority = lower is earlier)
const COUNTRY_RULES = [
// USA
{ regex: /\b(USA|US|UNITED\s*STATES|AMERICA|NEW\s*YORK|NYC|LOS\s*ANGELES|LA|DALLAS|CHI(CAGO)?)\b/i, iso3: "USA", flag: "🇺🇸", priority: 10 },
// Germany
{ regex: /\b(DE|DEU|GER(MANY)?|FRANKFURT|BERLIN|MUNICH|MÜNCHEN)\b/i, iso3: "DEU", flag: "🇩🇪", priority: 20 },
// Netherlands
{ regex: /\b(NL|NLD|NETHERLANDS|HOLLAND|AMSTERDAM)\b/i, iso3: "NLD", flag: "🇳🇱", priority: 30 },
// UK
{ regex: /\b(UK|GB|GBR|UNITED\s*KINGDOM|LONDON|MANCHESTER)\b/i, iso3: "GBR", flag: "🇬🇧", priority: 40 },
// France
{ regex: /\b(FR|FRA|FRANCE|PARIS|MARSEILLE)\b/i, iso3: "FRA", flag: "🇫🇷", priority: 50 },
// Poland
{ regex: /\b(PL|POL|POLAND|WARSAW|WARSZAWA)\b/i, iso3: "POL", flag: "🇵🇱", priority: 60 },
// Finland
{ regex: /\b(FI|FIN|FINLAND|HELSINKI)\b/i, iso3: "FIN", flag: "🇫🇮", priority: 70 },
// Sweden
{ regex: /\b(SE|SWE|SWEDEN|STOCKHOLM)\b/i, iso3: "SWE", flag: "🇸🇪", priority: 80 },
// Norway
{ regex: /\b(NO|NOR|NORWAY|OSLO)\b/i, iso3: "NOR", flag: "🇳🇴", priority: 90 },
// Switzerland
{ regex: /\b(CH|CHE|SWITZERLAND|ZURICH|GENEVA)\b/i, iso3: "CHE", flag: "🇨🇭", priority: 100 },
// Estonia / Latvia / Lithuania
{ regex: /\b(EE|EST|ESTONIA|TALLINN)\b/i, iso3: "EST", flag: "🇪🇪", priority: 110 },
{ regex: /\b(LV|LVA|LATVIA|RIGA)\b/i, iso3: "LVA", flag: "🇱🇻", priority: 120 },
{ regex: /\b(LT|LTU|LITHUANIA|VILNIUS)\b/i, iso3: "LTU", flag: "🇱🇹", priority: 130 },
// Turkey
{ regex: /\b(TR|TUR|TURKEY|ISTANBUL)\b/i, iso3: "TUR", flag: "🇹🇷", priority: 140 },
// Singapore / Japan / Korea / Hong Kong
{ regex: /\b(SG|SGP|SINGAPORE)\b/i, iso3: "SGP", flag: "🇸🇬", priority: 200 },
{ regex: /\b(JP|JPN|JAPAN|TOKYO|OSAKA)\b/i, iso3: "JPN", flag: "🇯🇵", priority: 210 },
{ regex: /\b(KR|KOR|KOREA|SEOUL)\b/i, iso3: "KOR", flag: "🇰🇷", priority: 220 },
{ regex: /\b(HK|HKG|HONG\s*KONG)\b/i, iso3: "HKG", flag: "🇭🇰", priority: 230 },
];
// 5) GeoIP mapping (ISO2 -> ISO3 + flag) used only if utils.geoip.lookup(ip) returns ISO2
const ISO2_TO_ISO3 = {
US: { iso3: "USA", flag: "🇺🇸" },
DE: { iso3: "DEU", flag: "🇩🇪" },
NL: { iso3: "NLD", flag: "🇳🇱" },
GB: { iso3: "GBR", flag: "🇬🇧" },
FR: { iso3: "FRA", flag: "🇫🇷" },
PL: { iso3: "POL", flag: "🇵🇱" },
FI: { iso3: "FIN", flag: "🇫🇮" },
SE: { iso3: "SWE", flag: "🇸🇪" },
NO: { iso3: "NOR", flag: "🇳🇴" },
CH: { iso3: "CHE", flag: "🇨🇭" },
EE: { iso3: "EST", flag: "🇪🇪" },
LV: { iso3: "LVA", flag: "🇱🇻" },
LT: { iso3: "LTU", flag: "🇱🇹" },
TR: { iso3: "TUR", flag: "🇹🇷" },
SG: { iso3: "SGP", flag: "🇸🇬" },
JP: { iso3: "JPN", flag: "🇯🇵" },
KR: { iso3: "KOR", flag: "🇰🇷" },
HK: { iso3: "HKG", flag: "🇭🇰" },
};
// 6) Protocol icons (based on proxy.type)
const PROTOCOL_ICONS = {
ss: "🔒",
ssr: "☂️",
vmess: "🪁",
vless: "🌌",
trojan: "🐎",
http: "🌐",
socks5: "🧦",
snell: "🐌",
wireguard: "🐲",
hysteria: "🤪",
hysteria2: "⚡",
tuic: "🚅"
};
///////////////////////
// HELPERS
///////////////////////
function isIPv4(str) {
if (typeof str !== "string") return false;
const m = str.match(/^(\d{1,3})(\.\d{1,3}){3}$/);
if (!m) return false;
return str.split(".").every(oct => {
const n = Number(oct);
return n >= 0 && n <= 255 && String(n) === oct.replace(/^0+(\d)/, "$1"); // avoids "001" weirdness
});
}
function uniq(arr) {
return [...new Set(arr.filter(Boolean))];
}
function sanitizeBaseName(name) {
let s = String(name || "");
// Remove noise patterns
for (const re of NOISE_PATTERNS) s = s.replace(re, " ");
// Collapse spaces
s = s.replace(/\s+/g, " ").trim();
return s;
}
function extractIconTagsAndStrip(name) {
let s = String(name || "");
const tags = [];
for (const r of ICON_RULES) {
if (r.regex.test(s)) {
tags.push(r.icon);
s = s.replace(r.regex, " ");
}
}
for (const t of NAME_NETWORK_TAGS) {
if (t.regex.test(s)) {
tags.push(t.tag);
s = s.replace(t.regex, " ");
}
}
return { stripped: s.replace(/\s+/g, " ").trim(), tags: uniq(tags) };
}
function detectCountryByName(name) {
const n = String(name || "");
// Order by priority, then first match wins
const sorted = COUNTRY_RULES.slice().sort((a, b) => a.priority - b.priority);
for (const c of sorted) {
if (c.regex.test(n)) return { iso3: c.iso3, flag: c.flag, priority: c.priority, source: "name" };
}
return null;
}
function detectCountryByGeoIP(server, utils) {
if (!isIPv4(server)) return null;
if (!utils || !utils.geoip || typeof utils.geoip.lookup !== "function") return null;
try {
const geo = utils.geoip.lookup(server);
const iso2 = geo && (geo.country || geo.country_code || geo.iso_code);
if (!iso2 || typeof iso2 !== "string") return null;
const key = iso2.toUpperCase();
const mapped = ISO2_TO_ISO3[key];
if (mapped) return { iso3: mapped.iso3, flag: mapped.flag, priority: 900, source: "geoip" };
// Unknown ISO2: keep something sane
return { iso3: key, flag: "🏳️", priority: 950, source: "geoip" };
} catch (e) {
return null;
}
}
function pad2(n) {
const x = Number(n);
return x < 10 ? `0${x}` : String(x);
}
function safeStr(v) {
return (v === undefined || v === null) ? "" : String(v);
}
///////////////////////
// OPERATOR
///////////////////////
function operator(proxies, targetPlatform, utils) {
// Sub-Store sometimes passes utils as global $utils; sometimes as 3rd arg; sometimes not at all.
// We'll accept any of them without whining.
const U = utils || (typeof $utils !== "undefined" ? $utils : null);
const buckets = Object.create(null);
for (const proxy of proxies) {
const originalName = safeStr(proxy && proxy.name);
// 1) Extract tags (icons) from ORIGINAL name, then strip those keywords out
const iconStage = extractIconTagsAndStrip(originalName);
// 2) Sanitize remaining base name (remove marketing trash, brackets, etc.)
const cleanBase = sanitizeBaseName(iconStage.stripped);
// 3) Detect country (name first, then GeoIP)
const byName = detectCountryByName(originalName);
const byGeo = detectCountryByGeoIP(proxy && proxy.server, U);
const country = byName || byGeo || { iso3: "UNK", flag: "🏴‍☠️", priority: 9999, source: "fallback" };
// 4) Protocol icon (based on type)
const proto = PROTOCOL_ICONS[(proxy && proxy.type) || ""] || "🔌";
// 5) Network/type/port tag (from proxy fields)
const net = safeStr(proxy && proxy.network) || "net?";
const typ = safeStr(proxy && proxy.type) || "type?";
const port = safeStr(proxy && proxy.port) || "port?";
const metaTag = `▫️${net}/${typ}/${port}`;
// 6) Prepare bucket key
const key = country.iso3;
if (!buckets[key]) {
buckets[key] = {
country,
list: []
};
}
// Keep meta used for sorting and final formatting
buckets[key].list.push({
proxy,
_meta: {
cleanBase,
iconTags: iconStage.tags,
proto,
metaTag
}
});
}
// 7) Sort buckets by priority
const bucketKeys = Object.keys(buckets).sort((a, b) => {
return (buckets[a].country.priority || 9999) - (buckets[b].country.priority || 9999);
});
// 8) Sort inside each country bucket and rename with per-country numbering
const result = [];
for (const key of bucketKeys) {
const group = buckets[key];
group.list.sort((A, B) => {
// Tags do not affect numbering: sort only by sanitized base + server:port as tie-breaker
const an = A._meta.cleanBase.toLowerCase();
const bn = B._meta.cleanBase.toLowerCase();
if (an !== bn) return an.localeCompare(bn);
const as = `${safeStr(A.proxy.server)}:${safeStr(A.proxy.port)}`;
const bs = `${safeStr(B.proxy.server)}:${safeStr(B.proxy.port)}`;
return as.localeCompare(bs);
});
for (let i = 0; i < group.list.length; i++) {
const item = group.list[i];
const p = item.proxy;
const num = pad2(i + 1);
const tagStr = item._meta.iconTags.length ? ` ${item._meta.iconTags.join(" ")}` : "";
// Final name format:
// 🇩🇪 DEU-03 🌌 📺 ❻ ▫ws/vless/443
p.name = `${group.country.flag} ${group.country.iso3}-${num} ${item._meta.proto}${tagStr} ${item._meta.metaTag}`.replace(/\s+/g, " ").trim();
result.push(p);
}
}
return result;
}

View File

@@ -0,0 +1,499 @@
/**
* Sub-Store operator: Normalize + tag + country detect + per-country numbering
*
* Output format (default):
* 🇺🇸 USA-01 🔒 📺 ❻ ▫ws/vless/443
*
* Notes:
* - Numbering is computed per-country AFTER grouping the full list.
* - Tags (icons) do NOT affect numbering order.
* - GeoIP is optional and only used when server is an IP and utils.geoip.lookup exists.
*/
///////////////////////
// CONFIG (EDIT ME)
///////////////////////
const DEBUG_APPEND_ORIGINAL_NAME = false; // set true to enable debug mode (appends original name as comment)
// 1) Remove these patterns (marketing noise, brackets, separators, etc.)
const NOISE_PATTERNS = [
/\[[^\]]*]/g, // [ ... ]
/\([^)]*\)/g, // ( ... )
/\{[^}]*}/g, // { ... }
/\btraffic\b/gi,
/\bfree\b/gi,
/\bwebsite\b/gi,
/\bexpire\b/gi,
/\blow\s*ping\b/gi,
/\bai\s*studio\b/gi,
/\bno\s*p2p\b/gi,
/\b10\s*gbit\b/gi,
/\bvless\b/gi,
/\bvmess\b/gi,
/\bssr?\b/gi,
/\btrojan\b/gi,
/\bhysteria2?\b/gi,
/\btuic\b/gi,
/[|]/g,
/[_]+/g,
/[-]{2,}/g
];
// 2) Keyword -> icon tags (if found in original name, icon is added; the keyword is removed from base name)
// 🇫‌🇿‌ 🇺‌🇳‌ 🇩‌🇻‌ 🇻‌🇿‌ 🇵‌🇷‌ 🇦‌🇿‌ 🇬‌🇺‌🇦‌🇷‌🇩‌
const ICON_RULES = [
{ regex: /TEST/gi, icon: "🧪" },
{ regex: uWordBoundaryGroup("Low Ping"), icon: "⚡️" },
{ regex: uWordBoundaryGroup("10 Gbit"), icon: "🛤️" },
{ regex: uWordBoundaryGroup("YT|Russia|Россия"), icon: "📺" },
{ regex: uWordBoundaryGroup("IPv6"), icon: "🎱" },
{ regex: uWordBoundaryGroup("Gemini|AI Studio"), icon: "🤖" },
{ regex: uWordBoundaryGroup("Torrent|P2P|P2P-Torrents"), icon: "🧲" },
{ regex: uWordBoundaryGroup("local"), icon: "🚪" },
{ regex: uWordBoundaryGroup("neighbourhood"), icon: "🫂" },
{ regex: uWordBoundaryGroup("xfizz|x-fizz"), icon: "🇫‌" },
{ regex: uWordBoundaryGroup("unicade|uncd"), icon: "🇺‌" },
{ regex: uWordBoundaryGroup("vzdh|vezdehod"), icon: "🇻‌" },
{ regex: uWordBoundaryGroup("dvpn|d-vpn"), icon: "🇩‌" },
{ regex: uWordBoundaryGroup("proton"), icon: "🇵‌" },
{ regex: uWordBoundaryGroup("amnezia"), icon: "🇦‌" },
{ regex: uWordBoundaryGroup("adguard"), icon: "🇬‌‌" },
];
// 3) Optional “network” tag rules based on NAME text (not $server.network)
// (Useful if providers shove "BGP/IPLC" into the node name)
const NAME_NETWORK_TAGS = [
{ regex: uWordBoundaryGroup("IPLC"), tag: "🛰️" },
{ regex: uWordBoundaryGroup("BGP"), tag: "🧭" },
{ regex: uWordBoundaryGroup("Anycast"), tag: "🌍" }
];
// 4) Country detection rules by NAME (regex). First match wins (priority = lower is earlier)
const COUNTRY_RULES = [
{ regex: uWordBoundaryGroup("(Аргентина|Argentina|AR|ARG|ARGENTINA|BUENOS\s*AIRES)"), iso3: "ARG", flag: "🇦🇷", priority: 100 }, // Argentina
{ regex: uWordBoundaryGroup("(Australia|AU|AUS|AUSTRALIA|SYDNEY)"), iso3: "AUS", flag: "🇦🇺", priority: 110 }, // Australia
{ regex: uWordBoundaryGroup("(Austria|AT|AUT|AUSTRIA|VIENNA)"), iso3: "AUT", flag: "🇦🇹", priority: 120 }, // Austria
{ regex: uWordBoundaryGroup("(Беларусь|Белоруссия|BELARUS)"), iso3: "BLR", flag: "🇧🇾", priority: 130 }, // Belarus
{ regex: uWordBoundaryGroup("(Brazil|BR|BRA|BRAZIL|SAO\s*PAULO)"), iso3: "BRA", flag: "🇧🇷", priority: 140 }, // Brazil
{ regex: uWordBoundaryGroup("(Bulgaria|BG|BGR|BULGARIA|SOFIA)"), iso3: "BGR", flag: "🇧🇬", priority: 150 }, // Bulgaria
{ regex: uWordBoundaryGroup("(Canada|CA|CAN|CANADA|TORONTO)"), iso3: "CAN", flag: "🇨🇦", priority: 160 }, // Canada
{ regex: uWordBoundaryGroup("(КИТАЙ|China)"), iso3: "CHN", flag: "🇨🇳", priority: 170 }, // China
{ regex: uWordBoundaryGroup("(Czech\s*Republic|CZ|CZE|CZECH|PRAGUE)"), iso3: "CZE", flag: "🇨🇿", priority: 180 }, // Czech Republic
{ regex: uWordBoundaryGroup("(Denmark|DK|DNK|DENMARK|COPENHAGEN)"), iso3: "DNK", flag: "🇩🇰", priority: 190 }, // Denmark
{ regex: uWordBoundaryGroup("(Egypt|EG|EGY|EGYPT|CAIRO)"), iso3: "EGY", flag: "🇪🇬", priority: 200 }, // Egypt
{ regex: uWordBoundaryGroup("(Эстония|EE|EST|ESTONIA|TALLINN)"), iso3: "EST", flag: "🇪🇪", priority: 210 }, // Estonia
{ regex: uWordBoundaryGroup("(Финляндия|FI|FIN|FINLAND|HELSINKI)"), iso3: "FIN", flag: "🇫🇮", priority: 220 }, // Finland
{ regex: uWordBoundaryGroup("(Франция|FR|FRA|FRANCE|PARIS|MARSEILLE)"), iso3: "FRA", flag: "🇫🇷", priority: 230 }, // France
{ regex: uWordBoundaryGroup("(Georgia|GE|GEO|GEORGIA|TBILISI)"), iso3: "GEO", flag: "🇬🇪", priority: 240 }, // Georgia
{ regex: uWordBoundaryGroup("(Германия|DE|DEU|GER(MANY)?|FRANKFURT|BERLIN|MUNICH)"), iso3: "DEU", flag: "🇩🇪", priority: 250 }, // Germany
{ regex: uWordBoundaryGroup("(Гонконг|HK|HKG|HONG\s*KONG)"), iso3: "HKG", flag: "🇭🇰", priority: 260 }, // Hong Kong
{ regex: uWordBoundaryGroup("(India|IN|IND|INDIA|MUMBAI)"), iso3: "IND", flag: "🇮🇳", priority: 270 }, // India
{ regex: uWordBoundaryGroup("(Ireland|IE|IRL|IRELAND|DUBLIN)"), iso3: "IRL", flag: "🇮🇪", priority: 280 }, // Ireland
{ regex: uWordBoundaryGroup("(Israel|IL|ISR|ISRAEL|TEL\s*AVIV)"), iso3: "ISR", flag: "🇮🇱", priority: 290 }, // Israel
{ regex: uWordBoundaryGroup("(Italy|IT|ITA|ITALY|ROME)"), iso3: "ITA", flag: "🇮🇹", priority: 300 }, // Italy
{ regex: uWordBoundaryGroup("(Япония|JP|JPN|JAPAN|TOKYO|OSAKA)"), iso3: "JPN", flag: "🇯🇵", priority: 310 }, // Japan
{ regex: uWordBoundaryGroup("(Kazakhstan|KZ|KAZ|KAZAKHSTAN|ALMATY)"), iso3: "KAZ", flag: "🇰🇿", priority: 320 }, // Kazakhstan
{ regex: uWordBoundaryGroup("(Латвия|LV|LVA|LATVIA|RIGA)"), iso3: "LVA", flag: "🇱🇻", priority: 330 }, // Latvia
{ regex: uWordBoundaryGroup("(Литва|LT|LTU|LITHUANIA|VILNIUS)"), iso3: "LTU", flag: "🇱🇹", priority: 340 }, // Lithuania
{ regex: uWordBoundaryGroup("(Malaysia|MY|MYS|MALAYSIA|KUALA\s*LUMPUR)"), iso3: "MYS", flag: "🇲🇾", priority: 350 }, // Malaysia
{ regex: uWordBoundaryGroup("(Moldova|MD|MDA|MOLDOVA|CHISINAU)"), iso3: "MDA", flag: "🇲🇩", priority: 360 }, // Moldova
{ regex: uWordBoundaryGroup("(Нидерланды|NL|NLD|NETHERLANDS|HOLLAND|AMSTERDAM)"), iso3: "NLD", flag: "🇳🇱", priority: 370 }, // Netherlands
{ regex: uWordBoundaryGroup("(Nigeria|NG|NGA|NIGERIA|LAGOS)"), iso3: "NGA", flag: "🇳🇬", priority: 380 }, // Nigeria
{ regex: uWordBoundaryGroup("(Норвегия|NO|NOR|NORWAY|OSLO)"), iso3: "NOR", flag: "🇳🇴", priority: 390 }, // Norway
{ regex: uWordBoundaryGroup("(Philippines|PH|PHL|PHILIPPINES|MANILA)"), iso3: "PHL", flag: "🇵🇭", priority: 400 }, // Philippines
{ regex: uWordBoundaryGroup("(Польша|PL|POL|POLAND|WARSAW|WARSZAWA)"), iso3: "POL", flag: "🇵🇱", priority: 410 }, // Poland
{ regex: uWordBoundaryGroup("(Portugal|PT|PRT|PORTUGAL|LISBON)"), iso3: "PRT", flag: "🇵🇹", priority: 420 }, // Portugal
{ regex: uWordBoundaryGroup("(Romania|RO|ROU|ROMANIA|BUCHAREST)"), iso3: "ROU", flag: "🇷🇴", priority: 430 }, // Romania
{ regex: uWordBoundaryGroup("(Russia|RU|RUS|RUSSIA|MOSCOW)"), iso3: "RUS", flag: "🇷🇺", priority: 440 }, // Russia
{ regex: uWordBoundaryGroup("(Сингапур|SG|SGP|SINGAPORE)"), iso3: "SGP", flag: "🇸🇬", priority: 200 }, // Singapore
{ regex: uWordBoundaryGroup("(South Korea|Корея|KR|KOR|KOREA|SEOUL)"), iso3: "KOR", flag: "🇰🇷", priority: 450 }, // South Korea
{ regex: uWordBoundaryGroup("(Spain|ES|ESP|SPAIN|MADRID)"), iso3: "ESP", flag: "🇪🇸", priority: 460 }, // Spain
{ regex: uWordBoundaryGroup("(Швеция|SE|SWE|SWEDEN|STOCKHOLM)"), iso3: "SWE", flag: "🇸🇪", priority: 470 }, // Sweden
{ regex: uWordBoundaryGroup("(Швейцария|CH|CHE|SWITZERLAND|Switzerl)"), iso3: "CHE", flag: "🇨🇭", priority: 480 }, // Switzerland
{ regex: uWordBoundaryGroup("(Taiwan|TW|TWN|TAIWAN|TAIPEI)"), iso3: "TWN", flag: "🇹🇼", priority: 490 }, // Taiwan
{ regex: uWordBoundaryGroup("(Thailand|TH|THA|THAILAND|BANGKOK)"), iso3: "THA", flag: "🇹🇭", priority: 500 }, // Thailand
{ regex: uWordBoundaryGroup("(Турция|TR|TUR|TURKEY|ISTANBUL)"), iso3: "TUR", flag: "🇹🇷", priority: 510 }, // Turkey
{ regex: uWordBoundaryGroup("(UAE|United\s*Arab\s*Emirates|AE|ARE|DUBAI)"), iso3: "ARE", flag: "🇦🇪", priority: 520 }, // UAE
{ regex: uWordBoundaryGroup("(Великобритания|Англия|England|UK|GB|GBR|UNITED\s*KINGDOM)"), iso3: "GBR", flag: "🇬🇧", priority: 530 }, // UK
{ regex: uWordBoundaryGroup("(США|USA|US|UNITED\s*STATES|AMERICA|NEW\s*YORK|NYC)"), iso3: "USA", flag: "🇺🇸", priority: 540 }, // USA
{ regex: uWordBoundaryGroup("(Vietnam|VN|VNM|VIETNAM|HANOI)"), iso3: "VNM", flag: "🇻🇳", priority: 500 } // Vietnam
];
// 5) GeoIP mapping (ISO2 -> ISO3 + flag) used only if utils.geoip.lookup(ip) returns ISO2
const ISO2_TO_ISO3 = {
US: { iso3: "USA", flag: "🇺🇸" },
DE: { iso3: "DEU", flag: "🇩🇪" },
NL: { iso3: "NLD", flag: "🇳🇱" },
GB: { iso3: "GBR", flag: "🇬🇧" },
FR: { iso3: "FRA", flag: "🇫🇷" },
PL: { iso3: "POL", flag: "🇵🇱" },
FI: { iso3: "FIN", flag: "🇫🇮" },
SE: { iso3: "SWE", flag: "🇸🇪" },
NO: { iso3: "NOR", flag: "🇳🇴" },
CH: { iso3: "CHE", flag: "🇨🇭" },
EE: { iso3: "EST", flag: "🇪🇪" },
LV: { iso3: "LVA", flag: "🇱🇻" },
LT: { iso3: "LTU", flag: "🇱🇹" },
TR: { iso3: "TUR", flag: "🇹🇷" },
SG: { iso3: "SGP", flag: "🇸🇬" },
JP: { iso3: "JPN", flag: "🇯🇵" },
KR: { iso3: "KOR", flag: "🇰🇷" },
HK: { iso3: "HKG", flag: "🇭🇰" },
};
// 6) Protocol icons (based on proxy.type)
const PROTOCOL_ICONS = {
ss: "",
ssr: "",
vmess: "",
vless: "",
trojan: "",
http: "",
socks5: "",
snell: "",
wireguard: "",
hysteria: "",
hysteria2: "",
tuic: ""
};
const STANDARD_PORTS_BY_TYPE = {
wireguard: new Set(["51820"]),
vless: new Set(["443"]),
trojan: new Set(["443"]),
ss: new Set(["443"]),
};
const PROTOCOL_ICON_DEFAULT = ""; // fallback icon if type is unknown
const METATAG_RULES = {
// Keys are "network/type" OR "/type" (network-agnostic) OR "network/" (type-agnostic)
// Matching priority: exact "network/type" -> "/type" -> "network/" -> default
// 🅶🆃 🆃🆂 🆃🆅 🆆🆅 🆇🆅 🆆🅶 🅽🅸
pairMap: {
"grpc/trojan": "🅶🆃",
"tcp/ss": "🆃🆂‌",
"tcp/vless": "🆃🆅",
"ws/vless": "🆆🆅",
"xhttp/vless": "🆇🆅",
"/wireguard": "🆆🅶‌",
"/naive": "🅽🅸",
},
defaultPair: "▫️", // fallback if nothing matches
includeFallbackText: false, // if true, append "(net/type)" when defaultPair is used
};
// Port formatting: superscript digits with left padding to 4 chars
// 𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗
const PORT_FORMAT = {
padLeftTo: 3,
padChar: "0",
fancy: {
"0": "𝟎", "1": "𝟏", "2": "𝟐", "3": "𝟑", "4": "𝟒", "5": "𝟓", "6": "𝟔", "7": "𝟕", "8": "𝟖", "9": "𝟗",
},
};
///////////////////////
// HELPERS
///////////////////////
function normalizeToken(s) {
return String(s || "").trim().toLowerCase();
}
function uWordBoundaryGroup(inner) {
// Match if surrounded by non-letter/non-digit (Unicode-aware)
// We don't use lookbehind for max compatibility.
return new RegExp(`(?:^|[^\\p{L}\\p{N}])(?:${inner})(?=$|[^\\p{L}\\p{N}])`, "iu");
}
function portToFancy(port, type) {
let p = String(port ?? "").trim();
p = p.replace(/[^\d]/g, "");
if (!p) return "";
if (STANDARD_PORTS_BY_TYPE[type]?.has(p)) {
return "";
}
// left pad to fixed width
if (PORT_FORMAT.padLeftTo && p.length < PORT_FORMAT.padLeftTo) {
p = p.padStart(PORT_FORMAT.padLeftTo, PORT_FORMAT.padChar);
}
// map digits
let out = "";
for (const ch of p) out += PORT_FORMAT.fancy[ch] ?? ch;
return out;
}
function buildMetaTag(proxy) {
const net = safeStr(proxy && proxy.network) || "";
const typ = safeStr(proxy && proxy.type) || "";
const port = safeStr(proxy && proxy.port);
const { icon, matched } = metaPairIcon(net, typ);
const portSup = portToFancy(port, typ);
if (icon === METATAG_RULES.defaultPair && METATAG_RULES.includeFallbackText) {
return `${icon}${portSup}(${normalizeToken(net)}/${normalizeToken(typ)})`;
}
return `${icon}${portSup}`;
}
function metaPairIcon(network, type) {
const net = normalizeToken(network);
const typ = normalizeToken(type);
const exact = `${net}/${typ}`;
const typeOnly = `/${typ}`;
const netOnly = `${net}/`;
const m = METATAG_RULES.pairMap;
if (m[exact]) return { icon: m[exact], matched: exact };
if (m[typeOnly]) return { icon: m[typeOnly], matched: typeOnly };
if (m[netOnly]) return { icon: m[netOnly], matched: netOnly };
return { icon: METATAG_RULES.defaultPair, matched: null };
}
function isIPv4(str) {
if (typeof str !== "string") return false;
const m = str.match(/^(\d{1,3})(\.\d{1,3}){3}$/);
if (!m) return false;
return str.split(".").every(oct => {
const n = Number(oct);
return n >= 0 && n <= 255 && String(n) === oct.replace(/^0+(\d)/, "$1"); // avoids "001" weirdness
});
}
function uniq(arr) {
return [...new Set(arr.filter(Boolean))];
}
function sanitizeBaseName(name) {
let s = String(name || "");
// Remove noise patterns
for (const re of NOISE_PATTERNS) s = s.replace(re, " ");
// Collapse spaces
s = s.replace(/\s+/g, " ").trim();
return s;
}
function extractIconTagsAndStrip(name) {
let s = String(name || "");
const tags = [];
for (const r of ICON_RULES) {
if (r.regex.test(s)) {
tags.push(r.icon);
s = s.replace(r.regex, " ");
}
}
for (const t of NAME_NETWORK_TAGS) {
if (t.regex.test(s)) {
tags.push(t.tag);
s = s.replace(t.regex, " ");
}
}
return { stripped: s.replace(/\s+/g, " ").trim(), tags: uniq(tags) };
}
function detectCountryByName(name) {
const n = String(name || "");
// Order by priority, then first match wins
// Fast path: flag emoji
if (n.includes("🇦🇪")) return { iso3: "ARE", flag: "🇦🇪", priority: 1, source: "flag" };
if (n.includes("🇦🇷")) return { iso3: "ARG", flag: "🇦🇷", priority: 2, source: "flag" };
if (n.includes("🇦🇹")) return { iso3: "AUT", flag: "🇦🇹", priority: 3, source: "flag" };
if (n.includes("🇦🇺")) return { iso3: "AUS", flag: "🇦🇺", priority: 4, source: "flag" };
if (n.includes("🇧🇬")) return { iso3: "BGR", flag: "🇧🇬", priority: 5, source: "flag" };
if (n.includes("🇧🇾")) return { iso3: "BLR", flag: "🇧🇾", priority: 6, source: "flag" };
if (n.includes("🇧🇷")) return { iso3: "BRA", flag: "🇧🇷", priority: 7, source: "flag" };
if (n.includes("🇨🇦")) return { iso3: "CAN", flag: "🇨🇦", priority: 8, source: "flag" };
if (n.includes("🇨🇭")) return { iso3: "CHE", flag: "🇨🇭", priority: 9, source: "flag" };
if (n.includes("🇨🇳")) return { iso3: "CHN", flag: "🇨🇳", priority: 10, source: "flag" };
if (n.includes("🇨🇿")) return { iso3: "CZE", flag: "🇨🇿", priority: 11, source: "flag" };
if (n.includes("🇩🇪")) return { iso3: "DEU", flag: "🇩🇪", priority: 12, source: "flag" };
if (n.includes("🇩🇰")) return { iso3: "DNK", flag: "🇩🇰", priority: 13, source: "flag" };
if (n.includes("🇪🇪")) return { iso3: "EST", flag: "🇪🇪", priority: 14, source: "flag" };
if (n.includes("🇪🇬")) return { iso3: "EGY", flag: "🇪🇬", priority: 15, source: "flag" };
if (n.includes("🇪🇸")) return { iso3: "ESP", flag: "🇪🇸", priority: 16, source: "flag" };
if (n.includes("🇫🇮")) return { iso3: "FIN", flag: "🇫🇮", priority: 17, source: "flag" };
if (n.includes("🇫🇷")) return { iso3: "FRA", flag: "🇫🇷", priority: 18, source: "flag" };
if (n.includes("🇬🇧")) return { iso3: "GBR", flag: "🇬🇧", priority: 19, source: "flag" };
if (n.includes("🇬🇪")) return { iso3: "GEO", flag: "🇬🇪", priority: 20, source: "flag" };
if (n.includes("🇭🇰")) return { iso3: "HKG", flag: "🇭🇰", priority: 21, source: "flag" };
if (n.includes("🇮🇪")) return { iso3: "IRL", flag: "🇮🇪", priority: 22, source: "flag" };
if (n.includes("🇮🇱")) return { iso3: "ISR", flag: "🇮🇱", priority: 23, source: "flag" };
if (n.includes("🇮🇳")) return { iso3: "IND", flag: "🇮🇳", priority: 24, source: "flag" };
if (n.includes("🇮🇹")) return { iso3: "ITA", flag: "🇮🇹", priority: 25, source: "flag" };
if (n.includes("🇯🇵")) return { iso3: "JPN", flag: "🇯🇵", priority: 26, source: "flag" };
if (n.includes("🇰🇷")) return { iso3: "KOR", flag: "🇰🇷", priority: 27, source: "flag" };
if (n.includes("🇰🇿")) return { iso3: "KAZ", flag: "🇰🇿", priority: 28, source: "flag" };
if (n.includes("🇱🇹")) return { iso3: "LTU", flag: "🇱🇹", priority: 29, source: "flag" };
if (n.includes("🇱🇻")) return { iso3: "LVA", flag: "🇱🇻", priority: 30, source: "flag" };
if (n.includes("🇲🇩")) return { iso3: "MDA", flag: "🇲🇩", priority: 31, source: "flag" };
if (n.includes("🇲🇾")) return { iso3: "MYS", flag: "🇲🇾", priority: 32, source: "flag" };
if (n.includes("🇳🇬")) return { iso3: "NGA", flag: "🇳🇬", priority: 33, source: "flag" };
if (n.includes("🇳🇱")) return { iso3: "NLD", flag: "🇳🇱", priority: 34, source: "flag" };
if (n.includes("🇳🇴")) return { iso3: "NOR", flag: "🇳🇴", priority: 35, source: "flag" };
if (n.includes("🇵🇭")) return { iso3: "PHL", flag: "🇵🇭", priority: 36, source: "flag" };
if (n.includes("🇵🇱")) return { iso3: "POL", flag: "🇵🇱", priority: 37, source: "flag" };
if (n.includes("🇵🇹")) return { iso3: "PRT", flag: "🇵🇹", priority: 38, source: "flag" };
if (n.includes("🇷🇴")) return { iso3: "ROU", flag: "🇷🇴", priority: 39, source: "flag" };
if (n.includes("🇷🇺")) return { iso3: "RUS", flag: "🇷🇺", priority: 40, source: "flag" };
if (n.includes("🇸🇪")) return { iso3: "SWE", flag: "🇸🇪", priority: 41, source: "flag" };
if (n.includes("🇸🇬")) return { iso3: "SGP", flag: "🇸🇬", priority: 42, source: "flag" };
if (n.includes("🇹🇭")) return { iso3: "THA", flag: "🇹🇭", priority: 43, source: "flag" };
if (n.includes("🇹🇷")) return { iso3: "TUR", flag: "🇹🇷", priority: 44, source: "flag" };
if (n.includes("🇹🇼")) return { iso3: "TWN", flag: "🇹🇼", priority: 45, source: "flag" };
if (n.includes("🇺🇸")) return { iso3: "USA", flag: "🇺🇸", priority: 46, source: "flag" };
if (n.includes("🇻🇳")) return { iso3: "VNM", flag: "🇻🇳", priority: 47, source: "flag" };
const sorted = COUNTRY_RULES.slice().sort((a, b) => a.priority - b.priority);
for (const c of sorted) {
if (c.regex.test(n)) return { iso3: c.iso3, flag: c.flag, priority: c.priority, source: "name" };
}
return null;
}
function detectCountryByGeoIP(server, utils) {
if (!isIPv4(server)) return null;
if (!utils || !utils.geoip || typeof utils.geoip.lookup !== "function") return null;
try {
const geo = utils.geoip.lookup(server);
const iso2 = geo && (geo.country || geo.country_code || geo.iso_code);
if (!iso2 || typeof iso2 !== "string") return null;
const key = iso2.toUpperCase();
const mapped = ISO2_TO_ISO3[key];
if (mapped) return { iso3: mapped.iso3, flag: mapped.flag, priority: 900, source: "geoip" };
// Unknown ISO2: keep something sane
return { iso3: key, flag: "🏳️", priority: 950, source: "geoip" };
} catch (e) {
return null;
}
}
function pad2(n) {
const x = Number(n);
return x < 10 ? `0${x}` : String(x);
}
function safeStr(v) {
return (v === undefined || v === null) ? "" : String(v);
}
///////////////////////
// OPERATOR
///////////////////////
function operator(proxies, targetPlatform, utils) {
// Sub-Store sometimes passes utils as global $utils; sometimes as 3rd arg; sometimes not at all.
// We'll accept any of them without whining.
const U = utils || (typeof $utils !== "undefined" ? $utils : null);
const buckets = Object.create(null);
for (const proxy of proxies) {
const originalName = safeStr(proxy && proxy.name);
// 1) Extract tags (icons) from ORIGINAL name, then strip those keywords out
const iconStage = extractIconTagsAndStrip(originalName);
// 2) Sanitize remaining base name (remove marketing trash, brackets, etc.)
const cleanBase = sanitizeBaseName(iconStage.stripped);
// 3) Detect country (name first, then GeoIP)
const byName = detectCountryByName(originalName);
const byGeo = detectCountryByGeoIP(proxy && proxy.server, U);
const country = byName || byGeo || { iso3: "UNK", flag: "🏴‍☠️", priority: 9999, source: "fallback" };
// 4) Protocol icon (based on type)
const proto = PROTOCOL_ICONS[(proxy && proxy.type) || ""] || PROTOCOL_ICON_DEFAULT;
// 5) Network/type/port tag (from proxy fields)
const metaTag = buildMetaTag(proxy);
// 6) Prepare bucket key
const key = country.iso3;
if (!buckets[key]) {
buckets[key] = {
country,
list: []
};
}
// Keep meta used for sorting and final formatting
buckets[key].list.push({
proxy,
_meta: {
originalName,
cleanBase,
iconTags: iconStage.tags,
proto,
metaTag
}
});
}
// 7) Sort buckets by priority
const bucketKeys = Object.keys(buckets).sort((a, b) => {
return (buckets[a].country.priority || 9999) - (buckets[b].country.priority || 9999);
});
// 8) Sort inside each country bucket and rename with per-country numbering
const result = [];
for (const key of bucketKeys) {
const group = buckets[key];
group.list.sort((A, B) => {
// Tags do not affect numbering: sort only by sanitized base + server:port as tie-breaker
const an = A._meta.cleanBase.toLowerCase();
const bn = B._meta.cleanBase.toLowerCase();
if (an !== bn) return an.localeCompare(bn);
const as = `${safeStr(A.proxy.server)}:${safeStr(A.proxy.port)}`;
const bs = `${safeStr(B.proxy.server)}:${safeStr(B.proxy.port)}`;
return as.localeCompare(bs);
});
for (let i = 0; i < group.list.length; i++) {
const item = group.list[i];
const p = item.proxy;
const num = pad2(i + 1);
const debugSuffix = DEBUG_APPEND_ORIGINAL_NAME
? `${item._meta.originalName}`
: "";
const tagStr = item._meta.iconTags.length ? ` ${item._meta.iconTags.join(" ")}` : "";
p.name = `${group.country.flag}${item._meta.metaTag} ${group.country.iso3}-${num} ${item._meta.proto}${tagStr} ${debugSuffix}`
.replace(/\s+/g, " ")
.trim();
result.push(p);
}
}
return result;
}

View File

@@ -0,0 +1,110 @@
function safeStringify(obj) {
const seen = new WeakSet();
return JSON.stringify(
obj,
(k, v) => {
if (typeof v === "object" && v !== null) {
if (seen.has(v)) return "[Circular]";
seen.add(v);
}
if (typeof v === "function") return `[Function: ${v.name || "anonymous"}]`;
if (typeof v === "bigint") return v.toString();
return v;
},
2
);
}
function pickEnvSample() {
try {
const env = (typeof process !== "undefined" && process && process.env) ? process.env : null;
if (!env) return null;
// only show safe-ish keys, no full dump
const keys = Object.keys(env).sort();
const filtered = keys.filter(k =>
k.toLowerCase().includes("sub") ||
k.toLowerCase().includes("store") ||
k.toLowerCase().includes("script") ||
k.toLowerCase().includes("url") ||
k.toLowerCase().includes("option") ||
k.toLowerCase().includes("param")
);
const sample = {};
for (const k of filtered.slice(0, 50)) sample[k] = env[k];
return { keysCount: keys.length, filteredKeys: filtered.slice(0, 100), sample };
} catch (e) {
return { error: String(e) };
}
}
function getGlobalDollarKeys() {
try {
return Object.getOwnPropertyNames(globalThis).filter(k => k.startsWith("$")).sort();
} catch {
return [];
}
}
// Safe "typeof" probes: never throws even if variable doesn't exist
const probes = {
$content: typeof $content,
$files: typeof $files,
$options: typeof $options,
$params: typeof $params,
$args: typeof $args,
$arguments: typeof $arguments,
$argument: typeof $argument,
$argv: typeof $argv,
$ctx: typeof $ctx,
$context: typeof $context,
$request: typeof $request,
$req: typeof $req,
$url: typeof $url,
$scriptUrl: typeof $scriptUrl,
$script_url: typeof $script_url,
ProxyUtils: typeof ProxyUtils,
produceArtifact: typeof produceArtifact,
process: typeof process,
};
const values = {};
function maybeSet(name, getter) {
try {
const v = getter();
// Avoid huge outputs
if (typeof v === "string") values[name] = v.length > 800 ? v.slice(0, 800) + "…(truncated)" : v;
else values[name] = v;
} catch (e) {
values[name] = { error: String(e) };
}
}
maybeSet("$options", () => (typeof $options !== "undefined" ? $options : null));
maybeSet("$params", () => (typeof $params !== "undefined" ? $params : null));
maybeSet("$args", () => (typeof $args !== "undefined" ? $args : null));
maybeSet("$arguments", () => (typeof $arguments !== "undefined" ? $arguments : null));
maybeSet("$argument", () => (typeof $argument !== "undefined" ? $argument : null));
maybeSet("$ctx", () => (typeof $ctx !== "undefined" ? $ctx : null));
maybeSet("$request", () => (typeof $request !== "undefined" ? $request : null));
maybeSet("$url", () => (typeof $url !== "undefined" ? $url : null));
maybeSet("$scriptUrl", () => (typeof $scriptUrl !== "undefined" ? $scriptUrl : null));
maybeSet("$script_url", () => (typeof $script_url !== "undefined" ? $script_url : null));
maybeSet("$contentPreview", () => (typeof $content === "string" ? $content.slice(0, 300) : $content));
maybeSet("$contentLength", () => (typeof $content === "string" ? $content.length : null));
maybeSet("$files", () => (typeof $files !== "undefined" ? $files : null));
const report = {
probes,
values,
globalDollarKeys: getGlobalDollarKeys(),
envSample: pickEnvSample(),
};
$content = safeStringify(report);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10
icons/svg/akamai.svg Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -151.5 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M156.165577,152.930719 L135.306318,152.930719 L153.376906,116.343355 L153.6,116.343355 L156.165577,152.930719 L156.165577,152.930719 Z M157.057952,169.551198 L158.284967,184.052288 L181.263617,184.052288 L173.566885,99.611329 L139.322004,99.611329 L96.1533769,184.052288 L119.578214,184.052288 L126.828758,169.551198 L157.057952,169.551198 L157.057952,169.551198 Z M213.389107,147.018736 L216.847059,147.018736 L233.355991,124.820915 L254.438344,124.820915 L231.682789,153.153813 L245.737691,183.829194 L223.205229,183.829194 L214.058388,159.95817 L210.823529,159.95817 L205.692375,183.829194 L186.171678,183.829194 L204.019172,99.7228758 L223.428322,99.7228758 L213.389107,147.018736 Z M279.31329,159.511983 C285.67146,159.511983 289.91024,159.95817 288.683224,164.866231 C287.233115,171.224401 284.667538,172.116776 276.524619,172.116776 C273.512854,172.116776 268.047059,172.116776 269.497168,165.758606 C270.612636,160.404357 274.628322,159.511983 279.31329,159.511983 L279.31329,159.511983 Z M284.667538,183.829194 L303.853595,183.829194 L311.550327,147.018736 C316.0122,126.605664 307.980828,124.263181 288.348584,124.263181 C274.516776,124.263181 261.131155,124.040087 257.115468,142.556863 L276.301525,142.556863 C277.52854,137.202614 280.763399,136.198693 285.448366,136.198693 C293.925926,136.198693 293.702832,139.768192 292.252723,145.12244 L290.356427,154.492375 L289.464052,154.492375 C288.794771,147.688017 280.317211,147.911111 274.739869,147.911111 C260.684967,147.911111 252.430501,152.372985 249.418736,166.427887 C246.183878,181.48671 253.434423,184.721569 266.820044,184.721569 C273.624401,184.721569 282.548148,183.27146 285.783007,175.351634 L286.452288,175.351634 L284.667538,183.829194 L284.667538,183.829194 Z M343.118083,124.820915 L341.44488,133.298475 L342.114161,133.298475 C345.906754,126.271024 353.603486,124.374728 360.184749,124.374728 C368.662309,124.374728 376.805229,125.824837 375.68976,135.864052 L376.582135,135.864052 C379.370806,127.386492 388.07146,124.374728 395.545098,124.374728 C409.153813,124.374728 414.954248,129.95207 411.942484,143.560784 L403.24183,183.940741 L384.055773,183.940741 L391.306318,149.695861 C392.198693,143.337691 393.202614,138.875817 385.95207,138.875817 C378.701525,138.875817 375.912854,143.783878 374.685839,150.142048 L367.658388,183.717647 L348.472331,183.717647 L355.945969,148.022658 C356.838344,142.66841 357.396078,138.875817 350.591721,138.875817 C342.671895,138.875817 340.217865,143.114597 338.879303,150.142048 L331.851852,183.717647 L312.665795,183.717647 L325.382135,124.597821 L343.22963,124.597821 L343.22963,124.820915 L343.118083,124.820915 Z M442.283224,159.511983 C448.641394,159.511983 452.880174,159.95817 451.653159,164.866231 C450.426144,171.224401 447.637473,172.116776 439.494553,172.116776 C436.705882,172.116776 431.016993,172.116776 432.467102,165.758606 C433.582571,160.404357 437.375163,159.511983 442.283224,159.511983 L442.283224,159.511983 Z M447.414379,183.829194 L466.600436,183.829194 L474.297168,147.018736 C478.759041,126.605664 470.727669,124.263181 451.095425,124.263181 C437.263617,124.263181 423.877996,124.040087 419.862309,142.556863 L439.048366,142.556863 C440.275381,137.202614 443.51024,136.198693 448.195207,136.198693 C456.672767,136.198693 456.449673,139.768192 454.999564,145.12244 L453.103268,154.492375 L452.210893,154.492375 C451.541612,147.688017 443.064052,147.911111 437.48671,147.911111 C423.431808,147.911111 415.177342,152.372985 412.165577,166.427887 C408.930719,181.48671 416.181264,184.721569 429.566885,184.721569 C436.371242,184.721569 445.294989,183.27146 448.529847,175.351634 L449.199129,175.351634 L447.414379,183.829194 L447.414379,183.829194 Z M494.821786,183.829194 L475.63573,183.829194 L488.017429,124.709368 L507.203486,124.709368 L494.821786,183.829194 L494.821786,183.829194 Z M511.665359,108.646623 C511.665359,114.558606 506.757298,119.466667 500.845316,119.466667 C494.933333,119.466667 490.025272,114.558606 490.025272,108.646623 C490.025272,102.511547 494.933333,97.8265795 500.845316,97.8265795 C506.757298,97.8265795 511.665359,102.511547 511.665359,108.646623 L511.665359,108.646623 Z" fill="#F79838">
</path>
<path d="M106.192593,204.242266 C63.2470588,191.079739 32.1254902,151.48061 32.1254902,104.854031 C32.1254902,57.4466231 64.0278867,17.6244009 107.642702,4.68496732 C112.104575,3.45795207 110.87756,0.446187364 105.523312,0.446187364 C47.6305011,0.446187364 0.446187364,47.0727669 0.446187364,104.51939 C0.446187364,161.966013 47.2958606,208.592593 105.523312,208.592593 C110.87756,208.927233 111.100654,205.915468 106.192593,204.242266 L106.192593,204.242266 Z M52.0923747,128.948148 C51.869281,126.159477 51.6461874,123.370806 51.6461874,120.470588 C51.6461874,74.7363834 88.6797386,37.7028322 134.413943,37.7028322 C177.582571,37.7028322 190.745098,56.8888889 192.08366,55.7734205 C193.756863,54.3233115 176.355556,16.1742919 125.71329,16.1742919 C79.979085,16.1742919 42.9455338,53.2078431 42.9455338,98.9420479 C42.9455338,109.538998 45.0649237,119.578214 48.5228758,128.948148 C49.9729847,132.963834 52.3154684,132.963834 52.0923747,128.948148 Z M86.5603486,69.3821351 C107.865795,60.0122004 135.083224,59.7891068 161.631373,68.9359477 C179.478867,75.2941176 189.741176,83.9947712 190.745098,83.6601307 C192.195207,82.9908497 180.371242,64.4740741 159.065795,56.4427015 C133.298475,46.8496732 105.634858,51.7577342 85.4448802,67.7089325 C83.2139434,69.3821351 83.8832244,70.6091503 86.5603486,69.3821351 L86.5603486,69.3821351 Z" fill="#0098CC">
</path>

After

Width:  |  Height:  |  Size: 5.7 KiB

8
icons/svg/anime.svg Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
<path d="M38.892 14.296C26.973 19.323 15.061 32.693 15.01 41.102c-.009 1.359-2.437 8.367-13.59 39.218L.039 84.141l27.731-.321c31.091-.359 32.628-.667 41.006-8.237 18.829-17.01 3.415-50.678-20.822-45.48-20.01 4.292-21.144 34.431-1.379 36.658 12.603 1.421 18.192-11.422 8.707-20.006-1.841-1.666-2.037-1.62-4.623 1.079-2.699 2.817-2.699 2.82-.68 4.647 4.522 4.092 1.159 8.906-4.439 6.355-6.306-2.873-7.474-12.102-2.199-17.377 13.386-13.386 34.151 8.644 23.31 24.731-16.699 24.779-55.114-1.28-42.293-28.69 8.743-18.692 31.564-23.429 50.15-10.41l5.702 3.995 7.395-5.566c8.152-6.136 8.232-6.278 5.458-9.658-2.098-2.557-1.74-2.656-8.938 2.474l-3.978 2.835-8.663-4.293c-11.285-5.592-23.213-6.537-32.592-2.581M16 62.281c0 .371-1.105 3.609-2.455 7.196L11.09 76h15.259l-2.071-2.25c-1.138-1.237-3.467-4.476-5.174-7.196C17.397 63.834 16 61.911 16 62.281" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="-26 0 308 308" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<g transform="translate(165.000000, 48.000000)">
<path d="M1.01,79.465 L60.2123978,73.1509144 L90.888,79.52 L90.999,79.588 L34.441,82.962 L0.957,79.52 L1.01,79.465 L1.01,79.465 Z" fill="#5E1F18">
</path>
<path d="M0.958,79.521 L60.162,74.896 L60.569,74.303 L60.571,1.259 L60.164,0.424 L0.958,15.821 L0.958,79.521" fill="#8C3123">
</path>
<path d="M91,79.59 L60.162,74.896 L60.164,0.424 L90.999,15.852 L91,79.59" fill="#E05243">
</path>
</g>
<g transform="translate(165.000000, 176.000000)">
<path d="M0.958,4.115 L1.823,4.721 L60.172,8.68 L89.944,4.721 L90.999,4.142 L34.442,0.667 L0.958,4.115" fill="#F2B0A9">
</path>
<path d="M0.958,4.115 L60.172,8.52 L60.355,8.766 L60.31,82.708 L60.164,83.094 L0.958,67.819 L0.958,4.115" fill="#8C3123">
</path>
<path d="M90.999,4.142 L60.172,8.52 L60.164,83.094 L90.999,67.785 L90.999,4.142" fill="#E05243">
</path>
</g>
<g transform="translate(0.000000, 48.000000)">
<path d="M89.119,79.408 L30.5886718,74.3941406 L0.195,79.439 L0.002,79.59 L56.559,82.964 L89.433,79.588 L89.119,79.408 Z" fill="#5E1F18">
</path>
<path d="M0.002,79.59 L30.559,75.116 L31.458,74.479 L31.458,1.279 L30.559,0.424 L0.002,15.855 L0.002,79.59" fill="#8C3123">
</path>
<path d="M89.433,79.588 L30.559,75.116 L30.559,0.424 L89.436,15.821 L89.433,79.588" fill="#E05243">
</path>
</g>
<g transform="translate(0.000000, 176.000000)">
<path d="M89.433,4.142 L88.082,5.127 L30.559,9.44 L0.976,5.127 L0,4.142 L56.559,0.667 L89.433,4.142" fill="#F2B0A9">
</path>
<path d="M0,4.142 L30.558,8.482 L31.335,9.434 L31.418,81.767 L30.559,83.094 L0.002,67.785 L0,4.142" fill="#8C3123">
</path>
<path d="M89.433,4.142 L30.558,8.482 L30.559,83.094 L89.433,67.819 L89.433,4.142" fill="#E05243">
</path>
</g>
<g transform="translate(66.000000, 183.000000)">
<path d="M123.104,6.66 L62.001,0.634 L0.289,6.661 L1.159,7.396 L61.7,17.013 L122.233,7.396 L123.104,6.66" fill="#F2B0A9">
</path>
<path d="M0.289,6.661 L61.7,15.659 L62.323,16.492 L62.402,123.451 L61.7,124.637 L0.289,93.931 L0.289,6.661" fill="#8C3123">

After

Width:  |  Height:  |  Size: 2.9 KiB

5
icons/svg/azure.svg Normal file
View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<circle cx="512" cy="512" r="512" style="fill:#0078d4"/>
<path d="M729.08 730.5a33.88 33.88 0 0 0 32.13-44.76L623.89 279.07A33.88 33.88 0 0 0 591.81 256H432.17a33.88 33.88 0 0 0-32.09 23.07L262.8 685.76a33.88 33.88 0 0 0 32.13 44.74h99.16a33.88 33.88 0 0 0 32.11-23.07l20.44-60.49 103.46 76.87a33.85 33.85 0 0 0 20.21 6.69M505.8 468.4 581.6 693a11.29 11.29 0 0 1-10.67 14.91h-.63a11.29 11.29 0 0 1-6.74-2.22L369.32 561.38h101.51m132 146.54a33.54 33.54 0 0 0 .15-22.13L465.77 279.07l-.15-.42h126.21a11.29 11.29 0 0 1 10.71 7.66L739.79 693a11.29 11.29 0 0 1-7.07 14.31" style="fill:#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 813 B

10
icons/svg/ebay.svg Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -18 60 60" xmlns="http://www.w3.org/2000/svg">
<g fill="none" fill-rule="evenodd">
<path fill="#E53238" fill-rule="nonzero" d="M7.7732896,5.21819068 C3.5441438,5.21819068 0.019999394,6.99757845 0.019999394,12.3659101 C0.019999394,16.6188107 2.3897314,19.297032 7.8824908,19.297032 C14.3477258,19.297032 14.7621708,15.0733795 14.7621708,15.0733795 L11.6294594,15.0733795 C11.6294594,15.0733795 10.9577798,17.347654 7.6913886,17.347654 C5.0310022,17.347654 3.117548,15.5653377 3.117548,13.067162 L15.0897746,13.067162 L15.0897746,11.4995199 C15.0897746,9.02803874 13.5077606,5.21819068 7.7732896,5.21819068 L7.7732896,5.21819068 Z M7.6640882,7.22171802 C10.1965006,7.22171802 11.9229378,8.76030585 11.9229378,11.0663246 L3.1868362,11.0663246 C3.1868362,8.61820364 5.4402766,7.22171802 7.6640882,7.22171802 L7.6640882,7.22171802 Z"/>
<path fill="#0064D2" fill-rule="nonzero" d="M15.0875524,0.0198491484 L15.0875524,16.6010769 C15.0875524,17.5422799 15.019817,18.863837 15.019817,18.863837 L18.0077636,18.863837 C18.0077636,18.863837 18.1150112,17.914676 18.1150112,17.0472353 C18.1150112,17.0472353 19.5912498,19.337644 23.605252,19.337644 C27.832158,19.337644 30.703334,16.4272941 30.703334,12.2576112 C30.703334,8.3786154 28.066066,5.25880264 23.612076,5.25880264 C19.441229,5.25880264 18.145188,7.49246499 18.145188,7.49246499 L18.145188,0.0198491484 L15.0875524,0.0198491484 Z M22.840842,7.30971074 C25.71124,7.30971074 27.536498,9.42243689 27.536498,12.2576112 C27.536498,15.2978212 25.428386,17.2867359 22.861318,17.2867359 C19.7977472,17.2867359 18.145188,14.9144815 18.145188,12.284686 C18.145188,9.83422909 19.6280778,7.30971074 22.840842,7.30971074 Z"/>
<path fill="#F5AF02" fill-rule="nonzero" d="M38.12902,5.21819068 C31.76659,5.21819068 31.358542,8.67315451 31.358542,9.22524555 L34.525378,9.22524555 C34.525378,9.22524555 34.691446,7.20818063 37.910618,7.20818063 C40.002488,7.20818063 41.623462,8.15774975 41.623462,9.98333693 L41.623462,10.6331296 L37.910618,10.6331296 C32.981554,10.6331296 30.37573,12.0631587 30.37573,14.9650808 C30.37573,17.820989 32.783428,19.3748717 36.037134,19.3748717 C40.47143,19.3748717 41.899876,16.944918 41.899876,16.944918 C41.899876,17.9114206 41.975012,18.863837 41.975012,18.863837 L44.790298,18.863837 C44.790298,18.863837 44.681096,17.6832871 44.681096,16.9279962 L44.681096,10.3996104 C44.681096,6.11903722 41.199594,5.21819068 38.12902,5.21819068 L38.12902,5.21819068 Z M41.623462,12.5825076 L41.623462,13.4488979 C41.623462,14.5789069 40.920356,17.388266 36.781068,17.388266 C34.514408,17.388266 33.542568,16.2663838 33.542568,14.9650808 C33.542568,12.5977539 36.815324,12.5825076 41.623462,12.5825076 L41.623462,12.5825076 Z"/>
<polygon fill="#86B817" fill-rule="nonzero" points="42.976 5.76 46.538 5.76 51.651 15.919 56.753 5.76 59.98 5.76 50.688 23.846 47.303 23.846 49.984 18.804"/>
</g>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 32 32" xml:space="preserve">
<path d="M12,8c-3.3,0-6,2.7-6,6s2.7,6,6,6s6-2.7,6-6S15.3,8,12,8z M12,13c-0.3,0-0.6,0.1-0.7,0.3c-0.2,0.2-0.5,0.3-0.7,0.3
c-0.2,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1-0.1-1.4c0.6-0.6,1.4-1,2.2-1c0.6,0,1,0.4,1,1S12.6,13,12,13z"/>
<g>
<path d="M4,27c-0.6,0-1-0.4-1-1v-3c0-0.6,0.4-1,1-1s1,0.4,1,1v3C5,26.6,4.6,27,4,27z"/>
</g>
<g>
<path d="M28,27c-0.6,0-1-0.4-1-1v-3c0-0.6,0.4-1,1-1s1,0.4,1,1v3C29,26.6,28.6,27,28,27z"/>
</g>
<path d="M22,17h9v-4c0-0.6-0.4-1-1-1H19.7c0.2,0.6,0.3,1.3,0.3,2c0,4.4-3.6,8-8,8s-8-3.6-8-8c0-0.7,0.1-1.4,0.3-2H2
c-0.6,0-1,0.4-1,1v10c0,0.6,0.4,1,1,1h28c0.6,0,1-0.4,1-1v-4h-9c-0.6,0-1-0.4-1-1S21.4,17,22,17z"/>
</svg>

After

Width:  |  Height:  |  Size: 953 B

8
icons/svg/fastly.svg Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -156.5 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M348.443832,20.3483124 L348.443832,153.935945 L388.570661,153.935945 L388.570661,133.525132 L375.312437,133.525132 L375.312437,0 L348.440659,0.00317258293 L348.443832,20.3483124 Z M0,133.525132 L13.6405203,133.525132 L13.6405203,69.0750619 L0,69.0750619 L0,51.3504756 L13.6405203,49.1071422 L13.6405203,31.1649167 C13.6405203,9.43177181 18.3708415,0.000317258293 46.086526,0.000317258293 C52.0725555,0.000317258293 59.16772,0.884198864 65.3796373,2.00316887 L61.6975376,23.8502095 C57.4903754,23.1836498 55.4040848,23.0653125 52.7445086,23.0653125 C42.9799328,23.0653125 40.511346,24.0396127 40.511346,33.5802041 L40.511346,49.1071422 L60.78542,49.1071422 L60.78542,69.0750619 L40.511346,69.0750619 L40.511346,133.525132 L54.0097346,133.525132 L54.0097346,153.932772 L0,153.938483 L0,133.525132 Z M334.776345,127.074954 C330.572672,127.961691 326.895649,127.855092 324.237024,127.920447 C313.183745,128.192338 314.138693,124.558461 314.138693,114.13494 L314.138693,69.0750619 L335.179263,69.0750619 L335.179263,49.1071422 L314.138693,49.1071422 L314.138693,0 L287.266598,0 L287.266598,119.70663 C287.266598,143.209442 293.067031,153.935945 318.345538,153.935945 C324.332202,153.935945 332.558709,152.395339 338.770627,151.065075 L334.776345,127.074954 Z M253.724148,69.0385772 L253.724148,65.4637108 C245.595038,63.9811628 237.522718,63.9595892 233.143602,63.9595892 C220.638866,63.9595892 219.11444,70.5909221 219.11444,74.1854585 C219.11444,79.2707917 220.849526,82.0204694 234.396455,84.9823928 C254.198449,89.427816 274.085785,94.0661322 274.085785,118.620021 C274.085785,141.905828 262.10167,153.935945 236.875829,153.935945 C219.995467,153.935945 203.61669,150.312221 191.119886,147.140907 L191.119886,127.074954 L211.467881,127.074954 L211.456142,130.639668 C220.212471,132.330972 229.393609,132.161874 234.186747,132.161874 C247.524921,132.161874 249.682911,124.990567 249.682911,121.178074 C249.682911,115.88684 245.858046,113.345601 233.354896,110.81039 C209.799737,106.785652 191.105609,98.7434713 191.105609,74.816168 C191.105609,52.1683675 206.253106,43.2838662 231.479265,43.2838662 C248.569018,43.2838662 261.5636,45.934242 274.067384,49.1071422 L274.067384,69.0385772 L253.724148,69.0385772 Z M117.603208,127.014041 L117.603208,123.855417 L114.383988,123.855417 L114.383988,127.005157 C99.9626949,126.164423 88.4271833,114.577833 87.6746467,100.133063 L90.8745138,100.133063 L90.8745138,96.9138427 L87.6914614,96.9138427 C88.5464725,82.5693262 100.034395,71.0925074 114.383988,70.2558973 L114.383988,73.4221351 L117.603208,73.4221351 L117.603208,70.2470141 C131.748169,71.0030406 143.141549,82.0981976 144.372828,96.1118137 L144.372828,97.0353526 L141.14758,97.0353526 L141.14758,100.254255 L144.37378,100.254255 L144.374414,101.135916 C143.149163,115.156195 131.75261,126.257697 117.603208,127.014041 Z M171.253489,127.074954 L171.23604,43.4583583 L144.365848,43.4583583 L144.365848,51.2997143 C138.831595,47.979289 132.666949,45.6052452 126.096212,44.3882424 L126.248179,44.3882424 L126.248179,35.109389 L129.526726,35.109389 L129.526726,28.2851632 L102.470939,28.2851632 L102.470939,35.109389 L105.748852,35.109389 L105.748852,44.3882424 L105.9354,44.3882424 C80.2355742,49.1195153 60.7597221,71.6239151 60.7597221,98.6917582 C60.7597221,129.196778 85.488737,153.925793 115.993439,153.925793 C126.404587,153.925793 136.14061,151.04128 144.452777,146.033992 L149.293504,153.935945 L177.676066,153.935945 L177.676066,127.074954 L171.253489,127.074954 Z M456.578149,49.1071422 L512,49.1071422 L512,69.0557092 L498.751294,69.0557092 L464.763413,152.67516 C455.023583,176.164647 439.021075,198.273109 414.655638,198.273109 C408.662629,198.273109 400.686755,197.609087 395.156943,196.280092 L397.587142,171.89213 C401.137262,172.555834 405.785096,172.992699 408.224812,172.992699 C419.525553,172.992699 432.269818,165.990808 436.257755,153.800158 L401.819367,69.0557092 L388.570661,69.0557092 L388.570661,49.1071422 L444.021065,49.1071422 L444.021065,69.0557092 L430.775532,69.0557092 L450.286917,117.056572 L469.795129,69.0557092 L456.578149,69.0557092 L456.578149,49.1071422 Z M130.096839,86.6762348 L128.051792,84.6308706 L117.667294,93.6809807 C117.143183,93.4928465 116.582588,93.3856132 115.996612,93.3856132 C113.194269,93.3856132 110.925872,95.7206342 110.925872,98.5984842 C110.925872,101.479507 113.194269,103.814211 115.996612,103.814211 C118.797685,103.814211 121.071475,101.479507 121.071475,98.5984842 C121.071475,98.0521654 120.988671,97.5255167 120.836704,97.0302765 L130.096839,86.6762348" fill="#D52F2F">
</path>
</g>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" fill="none"><path fill="#EA4335" d="M10.313 5.376l1.887-1.5-.332-.414a5.935 5.935 0 00-5.586-1.217 5.89 5.89 0 00-3.978 4.084c-.03.113.312-.098.463-.056l2.608-.428s.127-.124.201-.205c1.16-1.266 3.126-1.432 4.465-.354l.272.09z"/><path fill="#4285F4" d="M13.637 6.3a5.835 5.835 0 00-1.77-2.838l-1.83 1.82a3.226 3.226 0 011.193 2.564v.323c.9 0 1.63.725 1.63 1.62 0 .893-.73 1.619-1.63 1.619l-3.257-.003-.325.035v2.507l.325.053h3.257a4.234 4.234 0 004.08-2.962A4.199 4.199 0 0013.636 6.3z"/><path fill="#34A853" d="M4.711 13.999H7.97v-2.594H4.71c-.232 0-.461-.066-.672-.161l-.458.14-1.313 1.297-.114.447a4.254 4.254 0 002.557.87z"/><path fill="#FBBC05" d="M4.711 5.572A4.234 4.234 0 00.721 8.44a4.206 4.206 0 001.433 4.688l1.89-1.884a1.617 1.617 0 01.44-3.079 1.63 1.63 0 011.714.936l1.89-1.878A4.24 4.24 0 004.71 5.572z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 256 157" enable-background="new 0 0 256 157" xml:space="preserve">
<path d="M253.823,41.499l-0.325,0.734c-2.41,5.503-8.319,9.204-14.332,9.204h-16.73v3.936c0,19.682-8.442,43.562-31.479,50.726
l-3.909,41.513c2.862,1.12,4.892,3.898,4.892,7.156h-11.96l-4.781-51.275l-39-6.766c-10.755,13.121-27.175,23.474-44.585,26.549
l-3.695,24.37c2.811,1.144,4.795,3.899,4.795,7.121H80.756l0.001-44.671c10.414-6.433,18.847-17.179,20.897-29.737
c0,0-43.871,42.034-56.708,49.933c-5.012,3.084-10.609,4.676-16.121,4.676c-6.622,0-13.123-2.296-18.348-7.06
c-9.654-8.802-11.272-23.402-3.78-34.105l0.722-1.035c5.007,5.223,11.765,7.918,18.623,7.918c4.441,0,8.925-1.131,13.003-3.438
c12.878-7.285,33.765-21.585,41.987-26.531c5.561-3.345,13.409-6.095,19.728-7.581c15.761-3.706,67.877-8.57,67.877-8.57
l53.797-52.336v16.513c-0.005,0-0.01-0.001-0.013-0.001c-0.027,0,0.013,0.012,0.013,0.012v-0.011
c0.079,0.006,0.411,0.059,1.616,0.298c4.89,0.973,9.251,3.723,12.227,7.723l5.686,7.642l10.742,4.341
C253.79,39.186,254.295,40.431,253.823,41.499z M151.684,105.406l-13.191-2.288c-4.227,4.708-9.067,8.946-14.301,12.598
l13.93,39.052h11.96c0-4.146-3.284-7.517-7.392-7.673l-5.613-27.44C142.607,115.672,147.418,110.796,151.684,105.406z
M215.871,147.169l-6.906-44.331c-3.616,3.299-8.228,6.044-12.473,7.63l13.996,44.3h11.96
C222.447,150.9,219.589,147.709,215.871,147.169z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.1" id="designs" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="800px" height="800px" viewBox="0 0 32 32" xml:space="preserve">
<style type="text/css">
.sketchy_een{fill:#111918;}
</style>
<path class="sketchy_een" d="M25.033,14.779c-0.05-0.342-0.164-0.698-0.348-0.992c-0.22-0.354-0.56-0.662-0.934-0.852
c-0.236-0.12-0.494-0.206-0.754-0.258c-0.18-0.036-0.364-0.064-0.546-0.07c-0.011,0-0.021,0-0.032,0
c-0.128,0-0.259,0.022-0.389,0.045c-0.097-0.221-0.211-0.432-0.384-0.614c-0.188-0.2-0.424-0.372-0.676-0.484
c-0.304-0.136-0.584-0.222-0.92-0.242c-0.027-0.002-0.054-0.003-0.081-0.003c-0.239,0-0.476,0.067-0.711,0.101
c-0.047,0.007-0.091,0.038-0.136,0.061c-0.109-0.181-0.205-0.369-0.323-0.543c-0.27-0.402-0.52-0.816-0.774-1.228
c-0.032-0.052-0.086-0.078-0.127-0.121c0.032-0.049,0.063-0.099,0.095-0.147c0.21-0.316,0.424-0.63,0.63-0.95
c0.198-0.308,0.376-0.63,0.56-0.948c0.386-0.672,0.71-1.384,0.982-2.109c0.126-0.336,0.222-0.68,0.284-1.034
c0.034-0.198,0.062-0.396,0.04-0.596c-0.016-0.132-0.034-0.266-0.056-0.398c-0.03-0.17-0.1-0.336-0.174-0.492
c-0.16-0.338-0.43-0.594-0.714-0.828c-0.13-0.106-0.258-0.216-0.392-0.316c-0.134-0.102-0.298-0.164-0.456-0.216
c-0.135-0.045-0.272-0.062-0.409-0.062c-0.192,0-0.385,0.034-0.574,0.072c-0.202,0.042-0.402,0.092-0.596,0.16
c-0.624,0.222-1.138,0.622-1.608,1.074c-0.357,0.343-0.671,0.73-0.978,1.12c-0.16-0.229-0.321-0.458-0.479-0.688
c-0.248-0.36-0.512-0.72-0.798-1.05c-0.07-0.078-0.152-0.146-0.228-0.218c-0.118-0.112-0.236-0.224-0.358-0.332
c-0.178-0.158-0.368-0.338-0.588-0.434c-0.252-0.112-0.414-0.15-0.69-0.182C11.342,1.002,11.292,1,11.241,1
c-0.176,0-0.359,0.03-0.523,0.07c-0.228,0.054-0.448,0.17-0.64,0.304C9.63,1.69,9.27,2.127,9.116,2.661
C9.002,3.063,8.962,3.499,8.96,3.915C8.956,4.377,8.984,4.827,9.124,5.269C9.268,5.722,9.46,6.166,9.656,6.6
c0.174,0.386,0.372,0.766,0.56,1.146c0.21,0.428,0.42,0.858,0.64,1.284c0.018,0.035,0.051,0.056,0.075,0.086
c-0.179,0.285-0.354,0.572-0.509,0.871c-0.386,0.748-0.746,1.513-1.074,2.287c-0.182,0.43-0.352,0.862-0.504,1.306
c-0.146,0.426-0.274,0.858-0.414,1.286c-0.036,0.112-0.038,0.226-0.02,0.337c-0.103,0.114-0.199,0.236-0.286,0.358
c-0.1,0.142-0.2,0.284-0.294,0.43c-0.172,0.262-0.302,0.544-0.434,0.826c-0.174,0.378-0.31,0.76-0.4,1.166
c-0.078,0.348-0.106,0.684-0.084,1.038c0.016,0.3,0.076,0.6,0.14,0.894c0.062,0.294,0.132,0.592,0.234,0.876
c0.108,0.304,0.218,0.604,0.306,0.914c0.196,0.704,0.43,1.399,0.672,2.089c-0.266,0.136-0.454,0.407-0.457,0.724
c-0.004,0.53,0.006,1.058,0.012,1.588c0.006,0.512,0,1.022,0.002,1.534c0.004,0.466,0.016,0.93,0.018,1.396
c0,0.186,0.008,0.372,0.01,0.556c0.004,0.162,0,0.324,0.016,0.484c0.02,0.218,0.072,0.402,0.232,0.562
c0.031,0.031,0.073,0.047,0.109,0.073c0.15,0.176,0.365,0.295,0.61,0.294c0.412-0.004,0.822-0.02,1.232-0.03
c0.168-0.002,0.336-0.002,0.506-0.002c0.186,0,0.374,0,0.564-0.006c0.762-0.022,1.524-0.054,2.287-0.066
c0.676-0.008,1.352-0.004,2.027,0c0.786,0.004,1.572,0.008,2.357-0.008c0.754-0.016,1.512-0.042,2.265-0.012
c0.163,0.006,0.307-0.059,0.432-0.15c0.198-0.007,0.388-0.085,0.53-0.225c0.096-0.098,0.164-0.214,0.202-0.348
c0.038-0.14,0.038-0.278,0-0.418c-0.008-0.044-0.016-0.087-0.023-0.13c-0.031-0.332-0.032-0.666-0.049-0.997
c-0.02-0.41-0.03-0.82-0.054-1.228c-0.026-0.414-0.05-0.828-0.058-1.242c-0.01-0.496-0.002-0.994,0.002-1.49
c0.003-0.323-0.202-0.604-0.485-0.725c-0.123-0.163-0.301-0.273-0.507-0.284c0.055-0.158,0.119-0.311,0.172-0.473
c0.13-0.402,0.272-0.796,0.384-1.204c0.1-0.358,0.218-0.708,0.308-1.068c0.084-0.339,0.168-0.677,0.251-1.015
c0.272,0.058,0.554,0.082,0.821,0.003c0.26-0.074,0.514-0.23,0.736-0.38c0.148-0.1,0.3-0.186,0.454-0.276
c0.206-0.122,0.396-0.274,0.562-0.446c0.244-0.25,0.44-0.532,0.614-0.834c0.17-0.294,0.334-0.584,0.464-0.898
c0.056-0.136,0.108-0.274,0.152-0.414c0.06-0.188,0.076-0.39,0.102-0.584C25.117,15.629,25.097,15.203,25.033,14.779z
M19.869,12.889c0.059-0.003,0.117-0.003,0.176,0c0.081,0.017,0.16,0.038,0.238,0.065c0.058,0.03,0.113,0.063,0.167,0.1
c0.049,0.042,0.096,0.087,0.141,0.135c0.03,0.048,0.057,0.097,0.082,0.148c0.059,0.156,0.107,0.315,0.144,0.479
c0.01,0.183-0.008,0.369-0.029,0.55c-0.027,0.16-0.065,0.309-0.122,0.461c-0.128,0.278-0.274,0.55-0.426,0.818
c-0.132,0.236-0.273,0.469-0.43,0.69c-0.073,0.086-0.147,0.169-0.231,0.245c-0.082,0.058-0.167,0.113-0.256,0.16
c-0.073,0.024-0.146,0.044-0.221,0.06c-0.039,0.001-0.079,0-0.118-0.002c-0.069-0.015-0.137-0.034-0.204-0.057
c-0.023-0.012-0.045-0.024-0.067-0.038c-0.018-0.017-0.036-0.035-0.053-0.053c-0.004-0.007-0.008-0.014-0.012-0.021
c-0.019-0.057-0.034-0.115-0.047-0.175c-0.013-0.18-0.005-0.356,0.016-0.537c-0.002,0.013-0.004,0.027-0.006,0.041
c0.022-0.177,0.043-0.354,0.066-0.531c0.039-0.229,0.099-0.455,0.143-0.683c0.04-0.208,0.084-0.416,0.132-0.622
c0.06-0.268,0.124-0.538,0.226-0.792c0.052-0.13,0.106-0.26,0.161-0.39c0.108,0.014,0.218,0.006,0.335-0.014
C19.74,12.914,19.804,12.901,19.869,12.889z M10.588,4.509c-0.038-0.379-0.041-0.763-0.002-1.143
c0.02-0.099,0.043-0.196,0.074-0.292c0.026-0.049,0.053-0.096,0.083-0.143c0.05-0.058,0.102-0.113,0.158-0.165
c0.057-0.037,0.115-0.071,0.175-0.103c0.036-0.011,0.073-0.02,0.11-0.028c0.052-0.003,0.104-0.004,0.156-0.003
c0.025,0.015,0.049,0.03,0.073,0.047c0.347,0.289,0.653,0.602,0.938,0.953c0.397,0.532,0.754,1.091,1.161,1.614
c-0.217,0.29-0.442,0.575-0.65,0.87c-0.334,0.472-0.635,0.965-0.943,1.455c-0.125-0.226-0.25-0.452-0.372-0.678
c-0.208-0.382-0.387-0.781-0.563-1.178C10.825,5.323,10.669,4.924,10.588,4.509z M10.763,12.845c0.252-0.585,0.51-1.167,0.806-1.731
c0.338-0.648,0.706-1.278,1.104-1.89c0.374-0.574,0.738-1.156,1.116-1.727c0.339-0.513,0.703-1.01,1.077-1.497
c0.352-0.451,0.717-0.898,1.103-1.322c0.342-0.374,0.693-0.739,1.086-1.061c0.167-0.121,0.344-0.233,0.529-0.324
c0.212-0.078,0.429-0.137,0.651-0.18c0.009,0,0.017,0,0.026-0.001c0.001,0,0.003,0.001,0.004,0.001
c0.032,0.019,0.062,0.04,0.091,0.062c0.154,0.124,0.305,0.251,0.437,0.4c0.01,0.017,0.02,0.035,0.029,0.052
c0.025,0.076,0.044,0.153,0.059,0.231c0.006,0.081,0.006,0.161,0.001,0.244c-0.053,0.323-0.129,0.634-0.237,0.948
c-0.111,0.328-0.243,0.65-0.377,0.969c-0.45,0.992-1.055,1.913-1.631,2.836c-0.28,0.448-0.562,0.888-0.87,1.32
c-0.281,0.395-0.572,0.786-0.866,1.171c-0.127,0.161-0.253,0.318-0.41,0.45c-0.31,0.262-0.268,0.782,0,1.05
c0.276,0.276,0.776,0.298,1.05,0c0.228-0.248,0.422-0.53,0.628-0.798c0.218-0.286,0.432-0.574,0.642-0.866
c0.054-0.075,0.107-0.152,0.161-0.228c0.173,0.246,0.344,0.493,0.493,0.752c0.142,0.25,0.264,0.504,0.428,0.74
c0.001,0.001,0.002,0.002,0.003,0.004c-0.079,0.212-0.163,0.421-0.228,0.637c-0.088,0.288-0.152,0.586-0.216,0.88
c-0.054,0.244-0.1,0.49-0.158,0.734c-0.084,0.352-0.114,0.714-0.162,1.072c-0.034,0.268-0.056,0.54-0.02,0.81
c0.044,0.328,0.1,0.662,0.3,0.938c0.234,0.324,0.53,0.55,0.902,0.696c0.284,0.11,0.622,0.17,0.924,0.134
c0.084-0.01,0.16-0.038,0.241-0.055c0.067,0.223,0.156,0.437,0.281,0.63c-0.016,0.038-0.04,0.072-0.049,0.114
c-0.096,0.442-0.188,0.886-0.274,1.33c-0.062,0.314-0.154,0.616-0.244,0.922c-0.193,0.664-0.372,1.342-0.629,1.986
c-0.033,0.07-0.068,0.139-0.103,0.209c-0.03,0.06-0.041,0.123-0.057,0.186c-0.126,0.004-0.252,0.008-0.378,0.01
c-0.706,0.01-1.41,0.018-2.115,0.016c-0.268,0-0.536,0-0.804,0.002c-0.482,0-0.964,0.002-1.446-0.006
c-0.774-0.01-1.548-0.052-2.321-0.074c-0.471-0.013-0.941-0.038-1.412-0.059c-0.006-0.028,0.002-0.057-0.009-0.085
c-0.17-0.462-0.342-0.922-0.508-1.384c-0.136-0.386-0.248-0.778-0.368-1.166c-0.106-0.338-0.23-0.666-0.32-1.008
c-0.069-0.266-0.138-0.533-0.183-0.803c-0.021-0.184-0.03-0.367-0.017-0.55c0.06-0.323,0.137-0.636,0.257-0.942
c0.188-0.433,0.416-0.863,0.692-1.246c0.057-0.07,0.117-0.138,0.181-0.201c0.078-0.05,0.158-0.096,0.24-0.139
c0.267-0.095,0.545-0.161,0.826-0.206c0.662-0.077,1.317-0.127,1.983-0.125c0.296,0,0.59,0.02,0.884,0.028
c0.223,0.007,0.452,0.01,0.674,0.032c0.085,0.013,0.171,0.028,0.253,0.052c0.005,0.003,0.01,0.006,0.016,0.009
c0.009,0.009,0.017,0.018,0.025,0.027c0.019,0.031,0.038,0.062,0.055,0.094c0.032,0.094,0.058,0.188,0.078,0.285
c0.004,0.077,0.003,0.154-0.004,0.232c-0.024,0.123-0.057,0.244-0.099,0.363c-0.055,0.107-0.121,0.207-0.191,0.304
c-0.097,0.111-0.211,0.203-0.328,0.293c-0.197,0.144-0.407,0.268-0.63,0.369c-0.267,0.113-0.539,0.224-0.823,0.273
c-0.279,0.034-0.542,0.073-0.797,0.222c-0.226,0.132-0.418,0.352-0.61,0.526c-0.31,0.282-0.286,0.802,0,1.086
c0.282,0.282,0.808,0.314,1.084,0c0.1-0.112,0.202-0.226,0.314-0.327c0.006-0.004,0.013-0.007,0.019-0.011
c0.041-0.012,0.084-0.021,0.127-0.029c0.213-0.027,0.422-0.057,0.628-0.13c0.2-0.07,0.4-0.15,0.596-0.234
c0.38-0.158,0.706-0.348,1.028-0.606c0.124-0.098,0.25-0.196,0.368-0.302c0.122-0.112,0.222-0.262,0.32-0.39
c0.324-0.424,0.464-0.954,0.506-1.478c0.022-0.278-0.026-0.57-0.104-0.836c-0.124-0.418-0.372-0.782-0.724-1.038
c-0.222-0.16-0.482-0.224-0.746-0.278c-0.286-0.058-0.582-0.072-0.874-0.09c-0.355-0.021-0.71-0.034-1.065-0.034
c-0.246,0-0.493,0.006-0.741,0.02c-0.306,0.016-0.606,0.048-0.908,0.086c-0.257,0.033-0.513,0.069-0.767,0.113
c0.031-0.114,0.062-0.228,0.095-0.341C10.476,13.605,10.609,13.225,10.763,12.845z M14.631,16.724
c-0.007,0.018-0.014,0.036-0.022,0.054c-0.001,0.002-0.002,0.004-0.003,0.005C14.615,16.763,14.623,16.743,14.631,16.724z
M14.604,16.789c-0.014,0.034-0.028,0.068-0.043,0.102c0.012-0.028,0.023-0.056,0.035-0.085
C14.599,16.801,14.602,16.795,14.604,16.789z M14.561,16.891c-0.001,0.002-0.002,0.005-0.003,0.008
c-0.007,0.016-0.014,0.033-0.021,0.049C14.545,16.929,14.553,16.91,14.561,16.891z M12.633,19.549c-0.001,0-0.002,0-0.003,0v0
C12.63,19.549,12.632,19.549,12.633,19.549z M12.623,19.55L12.623,19.55c-0.017,0.002-0.033,0.005-0.05,0.006
C12.59,19.555,12.607,19.552,12.623,19.55z M18.99,29.354c-0.336,0.004-0.672,0.006-1.008,0.01
c-0.722,0.006-1.444-0.004-2.163-0.008c-0.742-0.004-1.482,0.012-2.221,0.014c-0.762,0.004-1.524,0.01-2.287,0.024
c-0.625,0.012-1.249-0.005-1.873-0.017c0.001-0.103,0.002-0.205,0.002-0.308c0-0.458-0.012-0.918-0.024-1.376
c-0.025-0.871-0.004-1.743,0.02-2.614c0.635,0.009,1.27-0.001,1.906-0.001c0.774,0,1.548,0.044,2.321,0.052
c0.75,0.008,1.5,0.012,2.249,0.012c0.31,0,0.62,0.004,0.93,0.006c0.394,0.004,0.79,0.01,1.186,0.004
c0.484-0.006,0.968-0.028,1.453-0.026c0.025,0.814,0.078,1.628,0.115,2.443c0.02,0.452,0.026,0.904,0.038,1.356
c0.003,0.14,0.005,0.281,0.009,0.421c-0.099,0.001-0.198,0.008-0.297,0.008C19.226,29.354,19.108,29.352,18.99,29.354z
M23.515,15.994c-0.035,0.191-0.09,0.375-0.157,0.556c-0.08,0.175-0.173,0.341-0.266,0.511c-0.084,0.151-0.165,0.305-0.262,0.449
c-0.098,0.118-0.205,0.23-0.32,0.332c-0.192,0.129-0.403,0.229-0.597,0.357c-0.107,0.071-0.215,0.142-0.329,0.202
c-0.005,0.001-0.009,0.003-0.014,0.004c-0.023,0-0.046,0-0.069-0.001c-0.072-0.016-0.143-0.035-0.214-0.059
c-0.046-0.023-0.09-0.048-0.134-0.075c-0.035-0.032-0.068-0.065-0.099-0.1c-0.021-0.033-0.04-0.067-0.058-0.101
c-0.056-0.165-0.094-0.335-0.133-0.505c-0.004-0.015-0.015-0.025-0.019-0.039c0.134-0.155,0.26-0.317,0.376-0.484
c0.368-0.532,0.684-1.114,0.926-1.711c0.145-0.356,0.174-0.733,0.186-1.115c0.049-0.002,0.097-0.01,0.145-0.009
c0.139,0.026,0.273,0.061,0.407,0.105c0.093,0.048,0.181,0.106,0.267,0.167c0.058,0.051,0.111,0.105,0.162,0.163
c0.031,0.046,0.059,0.093,0.084,0.141c0.056,0.159,0.098,0.321,0.127,0.487C23.543,15.511,23.539,15.752,23.515,15.994z"/>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512 512" xml:space="preserve">
<g>
<g>
<path d="M384,209.455c-6.435,0-11.636,5.201-11.636,11.636c0,53.818-40.809,98.234-93.091,104.041v-34.223
c0-6.435-5.201-11.636-11.636-11.636c-32.081,0-58.182-26.1-58.182-58.182c0-32.081,26.1-58.182,58.182-58.182
c32.081,0,58.182,26.1,58.182,58.182c0,16.524-7.063,32.326-19.398,43.369c-4.783,4.282-5.19,11.636-0.908,16.431
s11.66,5.19,16.431,0.908c17.245-15.441,27.148-37.574,27.148-60.707c0-44.905-36.55-81.455-81.455-81.455
s-81.455,36.55-81.455,81.455c0,40.972,30.394,74.961,69.818,80.628v59.008c0,6.435,5.201,11.636,11.636,11.636
c6.435,0,11.636-5.201,11.636-11.636v-12.23c65.14-5.9,116.364-60.753,116.364-127.406
C395.636,214.656,390.435,209.455,384,209.455z"/>
</g>
</g>
<g>
<g>
<path d="M267.636,174.545c-25.67,0-46.545,20.876-46.545,46.545c0,6.435,5.201,11.636,11.636,11.636
c6.435,0,11.636-5.201,11.636-11.636c0-12.835,10.438-23.273,23.273-23.273c6.435,0,11.636-5.201,11.636-11.636
S274.071,174.545,267.636,174.545z"/>
</g>
</g>
<g>
<g>
<path d="M453.818,0c-32.081,0-58.182,26.1-58.182,58.182c0,10.449,2.991,20.119,7.831,28.602l-47.558,41.612
c-50.071-47.697-129.617-46.964-178.781,2.188c-4.55,4.55-4.55,11.904,0,16.454s11.904,4.55,16.454,0
c40.832-40.832,107.299-40.82,147.991-0.128l5.399,5.562c2.281,2.351,5.318,3.537,8.355,3.537c2.723,0,5.469-0.954,7.657-2.874
l55.796-48.815c9.763,7.447,21.818,12.044,35.037,12.044c32.081,0,58.182-26.1,58.182-58.182C512,26.1,485.9,0,453.818,0z
M453.818,93.091c-19.247,0-34.909-15.663-34.909-34.909c0-19.247,15.663-34.909,34.909-34.909
c19.247,0,34.909,15.663,34.909,34.909S473.065,93.091,453.818,93.091z"/>
</g>
</g>
<g>
<g>
<path d="M267.636,395.636c-32.081,0-58.182,26.1-58.182,58.182c0,32.081,26.1,58.182,58.182,58.182
c32.081,0,58.182-26.1,58.182-58.182C325.818,421.737,299.718,395.636,267.636,395.636z M267.636,488.727
c-19.247,0-34.909-15.663-34.909-34.909c0-19.247,15.663-34.909,34.909-34.909c19.247,0,34.909,15.663,34.909,34.909
C302.545,473.065,286.883,488.727,267.636,488.727z"/>
</g>
</g>
<g>
<g>
<path d="M151.273,209.455H91.439c-5.201-20.026-23.261-34.909-44.893-34.909C20.876,174.545,0,195.421,0,221.091
c0,25.67,20.876,46.545,46.545,46.545c21.632,0,39.692-14.883,44.893-34.909h59.834c6.435,0,11.636-5.201,11.636-11.636
C162.909,214.656,157.708,209.455,151.273,209.455z M46.545,244.364c-12.835,0-23.273-10.438-23.273-23.273
c0-12.835,10.438-23.273,23.273-23.273s23.273,10.438,23.273,23.273C69.818,233.926,59.38,244.364,46.545,244.364z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512 512" xml:space="preserve">
<g>
<g>
<g>
<path d="M392.04,171.636c-3.223-5.574-10.356-7.482-15.895-4.259l-39.005,22.516c-16.908-20.713-41.553-34.828-69.504-37.935
v-35.596c0-6.435-5.201-11.636-11.636-11.636c-6.435,0-11.636,5.201-11.636,11.636v35.596
c-23.575,2.595-45.405,12.975-62.417,29.987c-2.537,2.537-4.911,5.178-7.145,7.913l-38.947-22.481
c-5.574-3.212-12.684-1.315-15.895,4.259c-3.212,5.574-1.303,12.684,4.259,15.895l38.016,21.946
c-7.098,14.289-10.95,30.092-10.95,46.511c0,6.435,5.213,11.636,11.636,11.636h46.825c1.059,23.017,5.248,45.312,12.439,62.348
c-15.593-7.133-28.881-19.014-37.469-34.525c-1.396-2.525-3.665-4.433-6.4-5.364l-4.189-1.443
c-3.165-1.117-6.691-0.756-9.6,0.919l-40.308,23.273c-5.574,3.212-7.482,10.333-4.259,15.895
c3.212,5.574,10.333,7.471,15.895,4.259l32.919-19.014c17.164,25.798,44.916,42.589,75.59,46.022v35.642
c0,6.435,5.201,11.636,11.636,11.636c6.435,0,11.636-5.201,11.636-11.636v-35.596c31.476-3.503,58.775-20.98,75.532-46.092
l32.977,19.049c1.827,1.059,3.828,1.559,5.807,1.559c4.026,0,7.936-2.083,10.089-5.818c3.212-5.574,1.303-12.684-4.259-15.895
l-34.001-19.631c4.422-11.59,6.947-24.099,6.947-37.213c0-16.71-4.026-32.454-11.02-46.487l38.074-21.981
C393.355,184.32,395.263,177.21,392.04,171.636z M255.999,337.455c-6.237,0-20.783-24.413-22.97-69.83h45.94
C276.782,313.041,262.236,337.455,255.999,337.455z M233.017,244.352c0.57-11.439,1.955-22.481,4.119-32.442
c1.361-6.284-2.641-12.474-8.913-13.836c-6.26-1.373-12.474,2.641-13.836,8.913c-2.49,11.52-4.049,24.262-4.643,37.376h-34.362
c5.655-39.424,39.645-69.818,80.617-69.818c6.237,0,20.783,24.401,22.97,69.807H233.017z M289.791,330.019
c7.203-17.036,11.404-39.354,12.463-62.394h11.927v-23.273h-11.927c-1.059-23.028-5.26-45.335-12.463-62.371
c28.067,12.87,47.662,41.169,47.662,74.019C337.454,288.849,317.858,317.149,289.791,330.019z"/>
<path d="M131.897,116.364c1.932,0,3.887-0.477,5.69-1.501l95.569-53.76c6.144,5.353,14.068,8.716,22.842,8.716
c19.247,0,34.909-15.663,34.909-34.909C290.908,15.663,275.246,0,255.999,0S221.09,15.663,221.09,34.909
c0,2.036,0.268,4.015,0.605,5.958l-95.511,53.725c-5.597,3.154-7.587,10.24-4.433,15.837
C123.88,114.223,127.825,116.364,131.897,116.364z M255.999,23.273c6.423,0,11.636,5.213,11.636,11.636
c0,6.423-5.213,11.636-11.636,11.636s-11.636-5.213-11.636-11.636C244.363,28.486,249.576,23.273,255.999,23.273z"/>
<path d="M313.727,77.068l94.359,55.889c-1.571,7.994-0.512,16.535,3.875,24.122c4.655,8.076,12.183,13.859,21.19,16.268
c3.014,0.803,6.063,1.21,9.088,1.21c6.051,0,12.02-1.583,17.396-4.678c16.675-9.635,22.412-31.023,12.788-47.697
c-9.635-16.663-31.011-22.423-47.686-12.788c-0.012,0-0.012,0-0.023,0c-1.757,1.024-3.328,2.234-4.841,3.491l-94.289-55.843
c-5.551-3.281-12.684-1.443-15.942,4.084C306.373,66.665,308.2,73.798,313.727,77.068z M436.363,129.559
c5.574-3.212,12.707-1.28,15.895,4.259c3.212,5.562,1.292,12.695-4.259,15.895c-2.7,1.548-5.841,1.967-8.832,1.164
c-3.002-0.791-5.504-2.723-7.052-5.422C428.892,139.892,430.801,132.771,436.363,129.559z"/>
<path d="M198.283,434.932l-94.359-55.901c1.571-7.994,0.512-16.535-3.863-24.122c-9.635-16.663-30.999-22.388-47.709-12.788
c-16.663,9.635-22.388,31.034-12.765,47.686c4.655,8.076,12.183,13.859,21.19,16.268c3.014,0.803,6.063,1.21,9.088,1.21
c6.063,0,12.02-1.583,17.396-4.678c1.769-1.024,3.34-2.234,4.852-3.503l94.289,55.855c1.862,1.105,3.91,1.629,5.923,1.629
c3.98,0,7.854-2.036,10.019-5.702C205.637,445.335,203.81,438.202,198.283,434.932z M75.636,382.441
c-2.7,1.559-5.853,1.955-8.832,1.164c-3.002-0.791-5.504-2.723-7.052-5.423c-3.212-5.562-1.292-12.695,4.236-15.895
c1.827-1.059,3.828-1.559,5.807-1.559c4.026,0,7.959,2.095,10.1,5.818C83.118,372.108,81.198,379.241,75.636,382.441z"/>
<path d="M374.422,397.138l-95.581,53.772c-6.144-5.364-14.068-8.727-22.842-8.727c-19.247,0-34.909,15.663-34.909,34.909
c0,19.247,15.663,34.909,34.909,34.909s34.909-15.663,34.909-34.909c0-2.036-0.268-4.003-0.605-5.946l95.523-53.737
c5.597-3.154,7.587-10.24,4.433-15.837C387.129,395.962,380.031,393.949,374.422,397.138z M255.999,488.727
c-6.423,0-11.636-5.213-11.636-11.636c0-6.423,5.213-11.636,11.636-11.636s11.636,5.213,11.636,11.636
C267.636,483.514,262.422,488.727,255.999,488.727z"/>
<path d="M58.181,172.404v130.141c0,6.435,5.201,11.636,11.636,11.636c6.435,0,11.636-5.201,11.636-11.636V172.404
c13.51-4.817,23.273-17.617,23.273-32.768c0-19.247-15.663-34.909-34.909-34.909c-19.247,0-34.909,15.663-34.909,34.909
C34.908,154.787,44.671,167.587,58.181,172.404z M69.817,128c6.423,0,11.636,5.213,11.636,11.636s-5.213,11.636-11.636,11.636
s-11.636-5.213-11.636-11.636S63.394,128,69.817,128z"/>
<path d="M453.817,339.596V209.455c0-6.435-5.201-11.636-11.636-11.636s-11.636,5.201-11.636,11.636v130.141
c-13.51,4.817-23.273,17.617-23.273,32.768c0,19.247,15.663,34.909,34.909,34.909s34.909-15.663,34.909-34.909
C477.09,357.213,467.327,344.413,453.817,339.596z M442.181,384c-6.423,0-11.636-5.213-11.636-11.636s5.213-11.636,11.636-11.636
c6.423,0,11.636,5.213,11.636,11.636S448.604,384,442.181,384z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -3.5 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M142.076578,191.086817 C142.076578,159.280656 116.294759,133.494615 84.4885969,133.494615 C52.6782136,133.494615 26.896394,159.280656 26.896394,191.086817 C26.896394,222.892979 52.6782136,248.67902 84.4885969,248.67902 C116.294759,248.67902 142.076578,222.892979 142.076578,191.086817" fill="#FF6600" transform="translate(84.486486, 191.086817) scale(1, -1) translate(-84.486486, -191.086817) ">
</path>
<path d="M255.979703,110.454356 C255.979703,78.652416 230.197884,52.862153 198.391722,52.862153 C166.581339,52.862153 140.799519,78.652416 140.799519,110.454356 C140.799519,142.260518 166.581339,168.050781 198.391722,168.050781 C230.197884,168.050781 255.979703,142.260518 255.979703,110.454356" fill="#FFCC00" transform="translate(198.389611, 110.456467) scale(1, -1) translate(-198.389611, -110.456467) ">
</path>
<path d="M115.200498,109.176452 C115.200498,77.3745125 89.4186786,51.5842495 57.6082953,51.5842495 C25.8063553,51.5842495 0.0203140271,77.3745125 0.0203140271,109.176452 C0.0203140271,140.982614 25.8063553,166.772877 57.6082953,166.772877 C89.4186786,166.772877 115.200498,140.982614 115.200498,109.176452" fill="#0089CC" transform="translate(57.610406, 109.178563) scale(1, -1) translate(-57.610406, -109.178563) ">
</path>
<path d="M230.385749,191.086817 C230.385749,159.280656 204.603929,133.494615 172.789324,133.494615 C140.987384,133.494615 115.201343,159.280656 115.201343,191.086817 C115.201343,222.892979 140.987384,248.67902 172.789324,248.67902 C204.603929,248.67902 230.385749,222.892979 230.385749,191.086817" fill="#009939" transform="translate(172.793546, 191.086817) scale(1, -1) translate(-172.793546, -191.086817) ">
</path>
<path d="M185.592001,57.9843213 C185.592001,26.1781597 159.805959,0.392118349 127.999798,0.392118349 C96.1936359,0.392118349 70.4075946,26.1781597 70.4075946,57.9843213 C70.4075946,89.790483 96.1936359,115.576524 127.999798,115.576524 C159.805959,115.576524 185.592001,89.790483 185.592001,57.9843213" fill="#BF0000" transform="translate(127.999798, 57.984321) scale(1, -1) translate(-127.999798, -57.984321) ">
</path>
<path d="M140.798675,57.9788331 C140.798675,56.76721 140.904217,55.580917 140.980207,54.3861807 C166.525612,60.2796505 185.590734,83.1189569 185.590734,110.454356 C185.590734,111.665979 185.485192,112.856494 185.409202,114.05123 C159.863796,108.153539 140.798675,85.3142322 140.798675,57.9788331" fill="#FC0007" transform="translate(163.194704, 84.218705) scale(1, -1) translate(-163.194704, -84.218705) ">
</path>
<path d="M148.39686,162.570614 C158.322038,145.219495 176.973434,133.495881 198.394255,133.495881 C207.124696,133.495881 215.369643,135.496959 222.787141,138.975626 C212.866185,156.326744 194.214789,168.050358 172.789746,168.050358 C164.059305,168.050358 155.814358,166.049281 148.39686,162.570614" fill="#1CD306" transform="translate(185.592001, 150.773120) scale(1, -1) translate(-185.592001, -150.773120) ">
</path>
<path d="M115.200498,191.086817 C115.200498,177.015947 120.258075,164.139813 128.642338,154.138646 C137.018157,164.139813 142.075734,177.015947 142.075734,191.086817 C142.075734,205.157688 137.018157,218.033822 128.642338,228.034989 C120.258075,218.033822 115.200498,205.157688 115.200498,191.086817" fill="#0F7504" transform="translate(128.638116, 191.086817) scale(1, -1) translate(-128.638116, -191.086817) ">
</path>

After

Width:  |  Height:  |  Size: 5.0 KiB

4
icons/svg/meta.svg Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" ?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 32 32" id="Camada_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">
.st0{fill:#FFFFFF;}
</style><path d="M6,2h20c2.2,0,4,1.8,4,4v20c0,2.2-1.8,4-4,4H6c-2.2,0-4-1.8-4-4V6C2,3.8,3.8,2,6,2z"/><path class="st0" d="M7.4,18.6c0-3.6,1.8-7.2,3.9-7.2c1.1,0,2.1,0.7,3.6,2.8c-1.4,2.1-2.2,3.5-2.2,3.5c-1.9,2.9-2.5,3.6-3.6,3.6 C8,21.2,7.4,20.3,7.4,18.6 M19.7,17.3l-1.3-2.1c-0.3-0.6-0.7-1.1-1-1.6c1.2-1.8,2.1-2.7,3.3-2.7c2.4,0,4.3,3.5,4.3,7.8 c0,1.6-0.5,2.6-1.6,2.6C22.2,21.2,21.7,20.5,19.7,17.3 M16.3,12.1c-1.8-2.2-3.2-3.1-5-3.1C7.7,9,5,13.7,5,18.6c0,3.1,1.5,5,4,5 c1.8,0,3.1-0.8,5.4-4.9c0,0,1-1.7,1.6-2.9c0.2,0.4,0.5,0.8,0.7,1.2l1.1,1.8c2.1,3.5,3.3,4.7,5.4,4.7c2.4,0,3.8-2,3.8-5.1 c0-5.2-2.8-9.5-6.2-9.5C19,9,17.6,10.4,16.3,12.1"/></svg>

After

Width:  |  Height:  |  Size: 969 B

13
icons/svg/numbers/n01.svg Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 496.158 496.158" xml:space="preserve">
<path style="fill:#56B48C;" d="M248.082,0.003C111.07,0.003,0,111.061,0,248.085c0,137,111.07,248.07,248.082,248.07
c137.006,0,248.076-111.07,248.076-248.07C496.158,111.061,385.088,0.003,248.082,0.003z"/>
<path style="fill:#FFFFFF;" d="M278.767,145.419c-3.126-4.003-7.276-6.006-12.451-6.006c-4.591,0-7.716,0.879-9.375,2.637
c-1.662,1.758-5.226,6.445-10.693,14.063c-5.47,7.617-11.744,14.502-18.823,20.654c-7.082,6.152-16.53,12.012-28.345,17.578
c-7.91,3.712-13.429,6.738-16.553,9.082c-3.126,2.344-4.688,6.006-4.688,10.986c0,4.298,1.586,8.082,4.761,11.353
c3.172,3.273,6.812,4.907,10.913,4.907c8.592,0,25.292-9.521,50.098-28.564V335.41c0,7.814,1.806,13.722,5.42,17.725
c3.612,4.003,8.397,6.006,14.355,6.006c13.378,0,20.068-9.814,20.068-29.443V161.972
C283.455,154.941,281.892,149.425,278.767,145.419z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

19
icons/svg/numbers/n02.svg Normal file
View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 496.158 496.158" xml:space="preserve">
<path style="fill:#56B48C;" d="M248.082,0.003C111.07,0.003,0,111.061,0,248.085c0,137,111.07,248.07,248.082,248.07
c137.006,0,248.076-111.07,248.076-248.07C496.158,111.061,385.088,0.003,248.082,0.003z"/>
<path style="fill:#FFFFFF;" d="M319.783,325.595c-4.005-3.124-9.814-4.688-17.432-4.688h-76.465c2.44-3.71,4.834-6.885,7.178-9.521
c5.468-6.64,15.55-15.967,30.249-27.979c14.696-12.012,25.17-20.824,31.421-26.44c6.249-5.614,12.378-13.378,18.384-23.291
c6.006-9.911,9.009-20.922,9.009-33.032c0-7.713-1.442-15.161-4.321-22.339c-2.882-7.178-6.91-13.5-12.085-18.97
c-5.177-5.468-11.183-9.764-18.018-12.891c-10.547-4.688-23.291-7.031-38.232-7.031c-12.403,0-23.218,1.831-32.446,5.493
s-16.846,8.473-22.852,14.429c-6.006,5.958-10.524,12.598-13.55,19.922c-3.028,7.324-4.541,14.355-4.541,21.094
c0,5.566,1.611,9.961,4.834,13.184s7.274,4.834,12.158,4.834c5.566,0,9.789-1.758,12.671-5.273
c2.879-3.516,5.468-8.544,7.764-15.088c2.293-6.542,3.93-10.547,4.907-12.012c7.324-11.229,17.381-16.846,30.176-16.846
c6.054,0,11.646,1.369,16.772,4.102c5.127,2.735,9.178,6.569,12.158,11.499c2.978,4.933,4.468,10.524,4.468,16.772
c0,5.763-1.392,11.646-4.175,17.651s-6.837,11.865-12.158,17.578c-5.324,5.713-11.989,11.403-19.995,17.065
c-4.493,3.028-11.964,9.352-22.412,18.97c-10.451,9.62-22.169,21.167-35.156,34.644c-3.126,3.321-6.006,7.887-8.643,13.696
c-2.637,5.812-3.955,10.474-3.955,13.989c0,5.47,2.051,10.231,6.152,14.282c4.102,4.054,9.814,6.079,17.139,6.079H306.6
c6.445,0,11.254-1.659,14.429-4.98c3.172-3.319,4.761-7.372,4.761-12.158C325.789,332.97,323.786,328.722,319.783,325.595z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

24
icons/svg/numbers/n03.svg Normal file
View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 496.158 496.158" xml:space="preserve">
<path style="fill:#56B48C;" d="M248.082,0.003C111.07,0.003,0,111.061,0,248.085c0,137,111.07,248.07,248.082,248.07
c137.006,0,248.076-111.07,248.076-248.07C496.158,111.061,385.088,0.003,248.082,0.003z"/>
<path style="fill:#FFFFFF;" d="M319.637,269.711c-2.637-6.395-6.569-12.231-11.792-17.505c-5.226-5.273-11.646-9.961-19.263-14.063
c7.91-6.64,13.989-13.451,18.237-20.435c4.248-6.981,6.372-15.355,6.372-25.122c0-7.42-1.465-14.355-4.395-20.801
s-7.276-12.108-13.037-16.992c-5.763-4.882-12.55-8.617-20.361-11.206c-7.814-2.586-16.457-3.882-25.928-3.882
c-10.84,0-20.654,1.538-29.443,4.614s-16.139,7.155-22.046,12.231c-5.91,5.079-10.4,10.426-13.477,16.04
c-3.076,5.617-4.614,10.963-4.614,16.04c0,5.273,1.634,9.499,4.907,12.671c3.271,3.175,6.859,4.761,10.767,4.761
c3.319,0,6.249-0.586,8.789-1.758c2.538-1.172,4.296-2.783,5.273-4.834c1.659-3.809,3.49-7.86,5.493-12.158
c2-4.296,4.125-7.812,6.372-10.547c2.245-2.733,5.296-4.93,9.155-6.592c3.856-1.659,8.764-2.49,14.722-2.49
c8.789,0,15.77,2.71,20.947,8.13c5.175,5.42,7.764,11.891,7.764,19.409c0,9.865-3.248,17.432-9.741,22.705
c-6.496,5.273-14.234,7.91-23.218,7.91h-6.006c-6.935,0-12.158,1.442-15.674,4.321c-3.516,2.882-5.273,6.665-5.273,11.353
c0,4.786,1.465,8.521,4.395,11.206c2.93,2.687,7.079,4.028,12.451,4.028c1.172,0,3.809-0.194,7.91-0.586
c4.102-0.389,7.127-0.586,9.082-0.586c11.133,0,19.823,3.248,26.074,9.741c6.249,6.496,9.375,15.454,9.375,26.88
c0,7.716-1.831,14.502-5.493,20.361s-8.302,10.279-13.916,13.257c-5.617,2.98-11.451,4.468-17.505,4.468
c-10.547,0-18.727-3.296-24.536-9.888c-5.812-6.592-11.256-16.674-16.333-30.249c-0.783-2.245-2.442-4.175-4.98-5.786
c-2.541-1.611-5.177-2.417-7.91-2.417c-5.47,0-10.034,1.735-13.696,5.2c-3.662,3.468-5.493,8.034-5.493,13.696
c0,4.395,1.538,9.961,4.614,16.699s7.617,13.257,13.623,19.556s13.646,11.549,22.925,15.747c9.276,4.198,19.775,6.299,31.494,6.299
c11.522,0,22.046-1.831,31.567-5.493s17.748-8.739,24.683-15.234c6.933-6.493,12.181-13.891,15.747-22.192
c3.563-8.299,5.347-16.894,5.347-25.781C323.592,283.018,322.273,276.109,319.637,269.711z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

7
icons/svg/paypal.svg Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="24" cy="24" r="20" fill="#0070BA"/>
<path d="M32.3305 18.0977C32.3082 18.24 32.2828 18.3856 32.2542 18.5351C31.2704 23.5861 27.9046 25.331 23.606 25.331H21.4173C20.8916 25.331 20.4486 25.7127 20.3667 26.2313L19.2461 33.3381L18.9288 35.3527C18.8755 35.693 19.1379 36 19.4815 36H23.3634C23.8231 36 24.2136 35.666 24.286 35.2127L24.3241 35.0154L25.055 30.3772L25.1019 30.1227C25.1735 29.6678 25.5648 29.3338 26.0245 29.3338H26.6051C30.3661 29.3338 33.3103 27.8068 34.1708 23.388C34.5303 21.5421 34.3442 20.0008 33.393 18.9168C33.1051 18.59 32.748 18.3188 32.3305 18.0977Z" fill="white" fill-opacity="0.6"/>
<path d="M31.3009 17.6871C31.1506 17.6434 30.9955 17.6036 30.8364 17.5678C30.6766 17.5328 30.5127 17.5018 30.3441 17.4748C29.754 17.3793 29.1074 17.334 28.4147 17.334H22.5676C22.4237 17.334 22.2869 17.3666 22.1644 17.4254C21.8948 17.5551 21.6944 17.8104 21.6459 18.1229L20.402 26.0013L20.3662 26.2311C20.4481 25.7126 20.8911 25.3308 21.4168 25.3308H23.6055C27.9041 25.3308 31.2699 23.5851 32.2537 18.5349C32.2831 18.3854 32.3078 18.2398 32.33 18.0975C32.0811 17.9655 31.8115 17.8525 31.5212 17.7563C31.4496 17.7324 31.3757 17.7094 31.3009 17.6871Z" fill="white" fill-opacity="0.8"/>
<path d="M21.6461 18.1231C21.6946 17.8105 21.895 17.5552 22.1646 17.4264C22.2879 17.3675 22.4239 17.3349 22.5678 17.3349H28.4149C29.1077 17.3349 29.7542 17.3803 30.3444 17.4757C30.513 17.5027 30.6768 17.5338 30.8367 17.5687C30.9957 17.6045 31.1508 17.6443 31.3011 17.688C31.3759 17.7103 31.4498 17.7334 31.5222 17.7564C31.8125 17.8527 32.0821 17.9664 32.331 18.0976C32.6237 16.231 32.3287 14.9601 31.3194 13.8093C30.2068 12.5424 28.1986 12 25.629 12H18.169C17.6441 12 17.1963 12.3817 17.1152 12.9011L14.0079 32.5969C13.9467 32.9866 14.2473 33.3381 14.6402 33.3381H19.2458L20.4022 26.0014L21.6461 18.1231Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.2901 9.1698L7.70015 3.0698C4.95015 1.6198 1.96015 4.5498 3.35015 7.3298L4.97015 10.5698C5.42015 11.4698 5.42015 12.5298 4.97015 13.4298L3.35015 16.6698C1.96015 19.4498 4.95015 22.3698 7.70015 20.9298L19.2901 14.8298C21.5701 13.6298 21.5701 10.3698 19.2901 9.1698Z" stroke="#292D32" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 590 B

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path opacity="0.4" d="M16.19 2H7.81C4.17 2 2 4.17 2 7.81V16.18C2 19.83 4.17 22 7.81 22H16.18C19.82 22 21.99 19.83 21.99 16.19V7.81C22 4.17 19.83 2 16.19 2Z" fill="#292D32"/>
<path d="M11.9995 10.6899C11.2795 10.6899 10.6895 11.2799 10.6895 11.9999C10.6895 12.7199 11.2795 13.3099 11.9995 13.3099C12.7195 13.3099 13.3095 12.7199 13.3095 11.9999C13.3095 11.2799 12.7195 10.6899 11.9995 10.6899Z" fill="#292D32"/>
<path d="M6.99945 10.6899C6.27945 10.6899 5.68945 11.2799 5.68945 11.9999C5.68945 12.7199 6.27945 13.3099 6.99945 13.3099C7.71945 13.3099 8.30945 12.7199 8.30945 11.9999C8.30945 11.2799 7.71945 10.6899 6.99945 10.6899Z" fill="#292D32"/>
<path d="M16.9995 10.6899C16.2795 10.6899 15.6895 11.2799 15.6895 11.9999C15.6895 12.7199 16.2795 13.3099 16.9995 13.3099C17.7195 13.3099 18.3095 12.7199 18.3095 11.9999C18.3095 11.2799 17.7195 10.6899 16.9995 10.6899Z" fill="#292D32"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

5
icons/svg/reddit.svg Normal file
View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 2C8.27812 2 2 8.27812 2 16C2 23.7219 8.27812 30 16 30C23.7219 30 30 23.7219 30 16C30 8.27812 23.7219 2 16 2Z" fill="#FC471E"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.0193 8.90951C20.0066 8.98984 20 9.07226 20 9.15626C20 10.0043 20.6716 10.6918 21.5 10.6918C22.3284 10.6918 23 10.0043 23 9.15626C23 8.30819 22.3284 7.6207 21.5 7.6207C21.1309 7.6207 20.7929 7.7572 20.5315 7.98359L16.6362 7L15.2283 12.7651C13.3554 12.8913 11.671 13.4719 10.4003 14.3485C10.0395 13.9863 9.54524 13.7629 9 13.7629C7.89543 13.7629 7 14.6796 7 15.8103C7 16.5973 7.43366 17.2805 8.06967 17.6232C8.02372 17.8674 8 18.1166 8 18.3696C8 21.4792 11.5817 24 16 24C20.4183 24 24 21.4792 24 18.3696C24 18.1166 23.9763 17.8674 23.9303 17.6232C24.5663 17.2805 25 16.5973 25 15.8103C25 14.6796 24.1046 13.7629 23 13.7629C22.4548 13.7629 21.9605 13.9863 21.5997 14.3485C20.2153 13.3935 18.3399 12.7897 16.2647 12.7423L17.3638 8.24143L20.0193 8.90951ZM12.5 18.8815C13.3284 18.8815 14 18.194 14 17.3459C14 16.4978 13.3284 15.8103 12.5 15.8103C11.6716 15.8103 11 16.4978 11 17.3459C11 18.194 11.6716 18.8815 12.5 18.8815ZM19.5 18.8815C20.3284 18.8815 21 18.194 21 17.3459C21 16.4978 20.3284 15.8103 19.5 15.8103C18.6716 15.8103 18 16.4978 18 17.3459C18 18.194 18.6716 18.8815 19.5 18.8815ZM12.7773 20.503C12.5476 20.3462 12.2372 20.4097 12.084 20.6449C11.9308 20.8802 11.9929 21.198 12.2226 21.3548C13.3107 22.0973 14.6554 22.4686 16 22.4686C17.3446 22.4686 18.6893 22.0973 19.7773 21.3548C20.0071 21.198 20.0692 20.8802 19.916 20.6449C19.7628 20.4097 19.4524 20.3462 19.2226 20.503C18.3025 21.1309 17.1513 21.4449 16 21.4449C15.3173 21.4449 14.6345 21.3345 14 21.1137C13.5646 20.9621 13.1518 20.7585 12.7773 20.503Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

7
icons/svg/samsung.svg Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg xmlns="http://www.w3.org/2000/svg"
aria-label="Samsung" role="img"
viewBox="0 0 512 512" fill="#117cad"><rect
width="512" height="512"
rx="15%"
fill="#034ea2"/><path fill="#ffffff" d="m72,224c-16 0-23 5-22 20 3 12 25 19 27 23l0 4c0 2-1 4-5 4-4 0-6-3-6-5l0-5-16 0c-1 16 11 21 22 21 14 0 21-4 21-17 1-19-24-20-26-28 0 -1 0-1 0-3 0-1 1-4 5-4 4 0 5 3 5 5l0 4 15 0 0-4c0-13-12-15-20-15zm353,15 0,33c1,21 39,17 39,0 l 0-20-17 0 0 8 5 0 0 11c-1 5-13 5-13 0 0-11 0-21 0-31 0-5 11-5 12 0l0 5 13 0 0-6c-1-20-39-17-39 0zm-160-15c-16 0-23 5-22 20 3 12 25 19 27 23l0 4c0 2-1 4-5 4-4 0-6-3-6-5l0-5-16 0c-1 16 11 21 22 21 14 0 21-4 21-17 1-19-24-20-26-28 0 -1 0-1 0-3 0-1 1-4 5-4 4 0 5 3 5 5l0 4 15 0 0-4c0-13-12-15-20-15zm-100 1-1 59 15 0 0-53 11 53 15 0 9-53 0 53 15 0-1-59-24 0-7 45-7-45-24 0zm135 0 0 43c0 1 0 3 0 2 1 11 9 15 21 15 11 0 20-4 20-15 0 0 0-3 0,-4l0-41-15 0 0 43c0 1 0 1 0 3 0 1-1 4-7 4-4 0-5-3-5-4 0 0 0-1 0-3l0-43zm-185 0-11 59 16 0 8-53 8 53 16 0-11-59zm243 0 0 59 15 0 0-48 15 48 21 0 0-59-15 0 0 47-13-47z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="si-glyph si-glyph-hat">
<title>629</title>
<defs>
</defs>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(0.000000, 3.000000)" fill="#434343">
<path d="M12.708,5.211 C12.278,6.128 10.548,7.239 8,7.239 C5.468,7.239 3.667,6.142 3.288,5.226 C1.375,5.312 0,6.456 0,7.136 C0,8.264 3.581,9.864 8,9.864 C12.418,9.864 16,8.264 16,7.136 C16,6.447 14.625,5.569 12.708,5.211 L12.708,5.211 Z" class="si-glyph-fill">
</path>
<path d="M10.077,0.197 C9.561,0.197 8.495,0.551 8.012,0.551 C7.529,0.551 6.463,0.197 5.948,0.197 C4.834,0.197 4.138,1.569 4.041,2.094 L4.021,4.521 C4.583,5.027 5.632,5.663 6.782,5.759 C7.182,5.792 7.604,5.812 8.043,5.812 C8.48,5.812 8.901,5.792 9.302,5.759 C10.452,5.662 11.376,5.105 11.97,4.538 L11.965,2.125 C11.879,1.579 11.181,0.197 10.077,0.197 L10.077,0.197 Z" class="si-glyph-fill">
</path>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 365.789 365.789" xml:space="preserve">
<g id="XMLID_7_">
<path id="XMLID_8_" d="M137.743,18.96v139.676c0,62.873,51.15,114.023,114.022,114.023c62.873,0,114.023-51.15,114.023-114.023
V18.96H137.743z M225.575,98.13c0,14.77-12.017,26.787-26.787,26.787S172.001,112.9,172.001,98.13
c0-14.771,12.017-26.787,26.787-26.787S225.575,83.359,225.575,98.13z M277.957,98.13c0-14.771,12.017-26.787,26.787-26.787
s26.787,12.017,26.787,26.787c0,14.77-12.017,26.787-26.787,26.787S277.957,112.9,277.957,98.13z M219.562,172.001
c3.773,8.898,17.209,15.894,32.204,15.894s28.432-6.996,32.205-15.894h33.146c-1.503,13.065-8.85,25.31-20.672,34.176
c-12.122,9.092-27.989,14.1-44.679,14.1c-16.688,0-32.556-5.007-44.678-14.1c-11.823-8.867-19.17-21.111-20.673-34.176H219.562z"/>
<path id="XMLID_13_" d="M177.154,284.553l-1.181-0.703h-29.747c-3.772-8.898-17.209-15.894-32.203-15.894
c-14.995,0-28.432,6.996-32.205,15.894H48.673c1.503-13.065,8.85-25.31,20.672-34.176c12.124-9.093,27.991-14.1,44.679-14.1
c1.293,0,2.678,0.041,4.356,0.129l8.923,0.469l-4.268-7.85c-11.563-21.271-17.675-45.369-17.675-69.687V93.13H0v139.676
c0,62.873,51.15,114.023,114.023,114.023c34.758,0,67.232-15.701,89.099-43.077l4.313-5.402l-6.48-2.406
C192.743,292.895,184.736,289.063,177.154,284.553z M61.045,145.512c14.771,0,26.787,12.017,26.787,26.787
c0,14.771-12.017,26.787-26.787,26.787c-14.77,0-26.786-12.017-26.786-26.787C34.259,157.529,46.275,145.512,61.045,145.512z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" width="800px" height="800px" viewBox="-0.5 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m22.171 19.68-7.352-11.311v-5.407h1.708v-2.962h-10.429v2.965h1.722v5.407l-7.366 11.308c-.285.431-.455.96-.455 1.528 0 1.542 1.25 2.792 2.792 2.792h.003 17.031c1.544-.003 2.795-1.255 2.795-2.8 0-.565-.167-1.091-.455-1.531l.007.011zm-.905 2.302c-.282.513-.818.854-1.434.854-.002 0-.004 0-.006 0h-17.032c-.001 0-.002 0-.003 0-.904 0-1.636-.732-1.636-1.636 0-.33.098-.638.266-.895l-.004.006 7.549-11.6v-5.751h4.686v5.754l7.541 11.6c.17.251.272.561.272.895 0 .285-.074.553-.204.785l.004-.008z"/><path d="m14.412 12.351h-6.191l-5.655 8.698c-.03.045-.048.1-.048.159 0 .051.013.098.036.14l-.001-.001c.05.087.142.145.248.146h17.031.001c.106 0 .198-.058.247-.145l.001-.001c.022-.04.036-.088.036-.138 0-.059-.018-.115-.049-.16l.001.001z"/></svg>

After

Width:  |  Height:  |  Size: 969 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.544 1.49857C16.8278 1.08878 16.0621 1.24503 15.3437 1.54072C14.6378 1.83126 13.769 2.3458 12.7076 2.97441L12.0804 3.34588C11.394 3.75237 11.2339 3.83012 11.0785 3.84959C10.9285 3.86837 10.7686 3.83515 10.0272 3.60702L9.34735 3.3978C8.20554 3.0464 7.26483 2.75689 6.52104 2.64685C5.74973 2.53274 4.98782 2.57927 4.38078 3.13487C3.77784 3.68672 3.65464 4.4423 3.68494 5.22709C3.71433 5.98815 3.89821 6.96778 4.12234 8.16182L4.25502 8.86874C4.3996 9.63911 4.41777 9.81347 4.38149 9.97264C4.34436 10.1356 4.24727 10.294 3.77952 10.9431L3.3514 11.5371C2.62441 12.5457 2.03065 13.3695 1.67313 14.0516C1.30926 14.7457 1.08259 15.4902 1.40213 16.2436C1.72676 17.009 2.42603 17.3422 3.17507 17.5274C3.90291 17.7074 4.88842 17.7975 6.08514 17.907L6.79813 17.9723C7.57839 18.0437 7.73636 18.0742 7.85944 18.1446C7.98151 18.2144 8.08585 18.3329 8.53855 18.9671L8.95248 19.5469C9.64616 20.5187 10.2182 21.32 10.74 21.8553C11.2791 22.4083 11.9187 22.8384 12.743 22.7351C13.5531 22.6337 14.0878 22.0723 14.5134 21.4115C14.9307 20.7636 15.3538 19.842 15.8718 18.7137L16.1769 18.0494C16.2869 17.8098 16.3703 17.6316 16.4373 17.4962C16.4477 17.5079 16.4585 17.5194 16.4697 17.5306L20.4697 21.5306C20.7626 21.8235 21.2374 21.8235 21.5303 21.5306C21.8232 21.2377 21.8232 20.7628 21.5303 20.4699L17.6859 16.6255C17.7093 16.6173 17.7333 16.6088 17.758 16.6002L18.441 16.361C19.5975 15.956 20.5446 15.6243 21.2233 15.2696C21.9207 14.9051 22.5191 14.4235 22.7004 13.628C22.8839 12.8228 22.5399 12.1402 22.0536 11.5343C21.5851 10.9503 20.8613 10.2874 19.9839 9.48369L19.4604 9.00421C18.8892 8.48099 18.7829 8.36232 18.7259 8.22792C18.6669 8.08891 18.6544 7.91704 18.6665 7.12305L18.6775 6.39777C18.6962 5.17362 18.7114 4.1698 18.6122 3.41751C18.511 2.65005 18.2629 1.90987 17.544 1.49857ZM13.4178 4.29716C14.5467 3.62858 15.3217 3.17189 15.9146 2.92782C16.5071 2.68397 16.7019 2.74496 16.7991 2.80054C16.8936 2.8546 17.0424 2.98631 17.1251 3.61361C17.2081 4.24305 17.1965 5.13504 17.1767 6.43877L17.1647 7.21994C17.1547 7.82701 17.1461 8.34464 17.345 8.81361C17.5457 9.2869 17.9243 9.63271 18.3612 10.0316L18.4472 10.1103L18.9225 10.5456C19.8602 11.4046 20.4962 11.9901 20.8837 12.473C21.2622 12.9446 21.2697 13.1551 21.2379 13.2947C21.2039 13.444 21.0914 13.646 20.5285 13.9402C19.9583 14.2382 19.1162 14.5352 17.8865 14.9659L17.1539 15.2223C16.5752 15.4242 16.0914 15.593 15.7122 15.94C15.3345 16.2857 15.1202 16.7539 14.8621 17.3179L14.5343 18.0319C13.9843 19.2298 13.6047 20.0522 13.2524 20.5992C12.9015 21.1439 12.6931 21.2297 12.5566 21.2468C12.4345 21.2621 12.2378 21.2428 11.8141 20.8082C11.3826 20.3655 10.8767 19.6606 10.1351 18.6219L9.75937 18.0955L9.69049 17.9988C9.34758 17.5169 9.04872 17.0968 8.60434 16.8426C8.16092 16.5889 7.64642 16.5426 7.05381 16.4893L6.93485 16.4785L6.28697 16.4192C5.00882 16.3022 4.1387 16.2205 3.53516 16.0712C2.93966 15.924 2.82806 15.764 2.78306 15.6579C2.73296 15.5398 2.7003 15.3229 3.00168 14.748C3.30352 14.1721 3.83249 13.435 4.60438 12.364L5.06497 11.7251C5.42825 11.2224 5.73046 10.8041 5.844 10.3059C5.95834 9.80418 5.86331 9.30141 5.75053 8.70473L5.60821 7.94698C5.36962 6.67572 5.20841 5.80603 5.18383 5.16922C5.15965 4.54303 5.27846 4.34669 5.39353 4.24137C5.50449 4.13981 5.69883 4.04154 6.30151 4.1307C6.91831 4.22195 7.7488 4.4753 8.96802 4.85048L9.6966 5.0748C10.2652 5.25066 10.7542 5.40192 11.2649 5.33796C11.7704 5.27465 12.2154 5.01032 12.7422 4.69734L13.4178 4.29716Z" fill="#1C274C"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.04582 10.8715C8.52718 10.6007 8.6979 9.99103 8.42713 9.50967C8.15637 9.02831 7.54665 8.85759 7.0653 9.12836L3.50974 11.1284C3.18725 11.3098 2.99128 11.6544 3.0003 12.0243C3.00931 12.3942 3.22184 12.7289 3.55279 12.8944L5.63258 13.9343L3.50974 15.1284C3.18725 15.3098 2.99128 15.6544 3.0003 16.0243C3.00931 16.3942 3.22184 16.7289 3.55279 16.8944L11.5528 20.8944C11.8343 21.0351 12.1657 21.0351 12.4472 20.8944L20.4472 16.8944C20.7782 16.7289 20.9907 16.3942 20.9997 16.0243C21.0087 15.6544 20.8128 15.3098 20.4903 15.1284L18.3674 13.9343L20.4472 12.8944C20.7782 12.7289 20.9907 12.3942 20.9997 12.0243C21.0087 11.6544 20.8128 11.3098 20.4903 11.1284L16.9347 9.12836C16.4533 8.85759 15.8436 9.02831 15.5729 9.50967C15.3021 9.99103 15.4728 10.6007 15.9542 10.8715L17.8679 11.948L12 14.8819L6.13213 11.948L8.04582 10.8715ZM16.2077 15.0141L12.4472 16.8944C12.1657 17.0351 11.8343 17.0351 11.5528 16.8944L7.7923 15.0141L6.13213 15.948L12 18.8819L17.8679 15.948L16.2077 15.0141Z" fill="#152C70"/>
<path d="M12.4472 3.10557C12.1657 2.96481 11.8343 2.96481 11.5528 3.10557L3.55279 7.10557C3.214 7.27496 3 7.62123 3 8C3 8.37877 3.214 8.72504 3.55279 8.89443L11.5528 12.8944C11.8343 13.0352 12.1657 13.0352 12.4472 12.8944L20.4472 8.89443C20.786 8.72504 21 8.37877 21 8C21 7.62123 20.786 7.27496 20.4472 7.10557L12.4472 3.10557Z" fill="#4296FF"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

7
icons/svg/vk.svg Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg xmlns="http://www.w3.org/2000/svg"
aria-label="VK" role="img"
viewBox="0 0 512 512"><rect
width="512" height="512"
rx="15%"
fill="#5281b8"/><path fill="#ffffff" d="M274 363c5-1 14-3 14-15 0 0-1-30 13-34s32 29 51 42c14 9 25 8 25 8l51-1s26-2 14-23c-1-2-9-15-39-42-31-30-26-25 11-76 23-31 33-50 30-57-4-7-20-6-20-6h-57c-6 0-9 1-12 6 0 0-9 25-21 45-25 43-35 45-40 42-9-5-7-24-7-37 0-45 7-61-13-65-13-2-59-4-73 3-7 4-11 11-8 12 3 0 12 1 17 7 8 13 9 75-2 81-15 11-53-62-62-86-2-6-5-7-12-9H79c-6 0-15 1-11 13 27 56 83 193 184 192z"/></svg>

After

Width:  |  Height:  |  Size: 656 B

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 58 58" xml:space="preserve">
<rect y="5.5" style="fill:#38454F;" width="58" height="38"/>
<path style="fill:#61B872;" d="M13.962,21.5h-2.924C10.465,21.5,10,21.035,10,20.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C15,21.035,14.535,21.5,13.962,21.5z"/>
<path style="fill:#48A0DC;" d="M24.962,21.5h-2.924C21.465,21.5,21,21.035,21,20.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C26,21.035,25.535,21.5,24.962,21.5z"/>
<path style="fill:#EBBA16;" d="M35.962,21.5h-2.924C32.465,21.5,32,21.035,32,20.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C37,21.035,36.535,21.5,35.962,21.5z"/>
<path style="fill:#BF4D90;" d="M46.962,21.5h-2.924C43.465,21.5,43,21.035,43,20.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C48,21.035,47.535,21.5,46.962,21.5z"/>
<path style="fill:#DD352E;" d="M13.962,32.5h-2.924C10.465,32.5,10,32.035,10,31.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C15,32.035,14.535,32.5,13.962,32.5z"/>
<path style="fill:#A4E869;" d="M24.962,32.5h-2.924C21.465,32.5,21,32.035,21,31.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C26,32.035,25.535,32.5,24.962,32.5z"/>
<path style="fill:#50508A;" d="M35.962,32.5h-2.924C32.465,32.5,32,32.035,32,31.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C37,32.035,36.535,32.5,35.962,32.5z"/>
<path style="fill:#BE7C6D;" d="M46.962,32.5h-2.924C43.465,32.5,43,32.035,43,31.462v-2.924c0-0.573,0.465-1.038,1.038-1.038h2.924
c0.573,0,1.038,0.465,1.038,1.038v2.924C48,32.035,47.535,32.5,46.962,32.5z"/>
<polygon style="fill:#AFB6BB;" points="30,49.5 30,43.5 28,43.5 28,49.5 15,49.5 15,52.5 43,52.5 43,49.5 "/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" ?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 12.7 12.7" id="svg8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs2">
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5343">
<path d="m 3.0688351,285.55677 c -1.613568,1.19596 -2.5662181,3.08478 -2.56883509,5.09323 0,3.50701 2.84299219,6.35 6.35000009,6.35 C 10.357008,297 13.2,294.15701 13.2,290.65 c -0.0022,-0.84296 -0.452078,-2.71271 -0.500228,-2.45359 -0.02424,0.84121 -0.571809,2.35322 -0.602031,2.23138 -0.0026,-0.50621 -0.2876,-1.42626 -0.305098,-1.19509 0.02804,1.40695 -1.48374,3.17677 -2.3076623,3.50038 -0.8310457,0.36942 -1.7371637,0.56412 -2.6117267,0.56534 -0.1736918,2e-5 -1.1686519,-0.13807 -1.6443439,-0.70435 -0.826376,-0.89253 -0.00201,-1.09994 0.4625039,-1.27331 0.5055862,-0.18871 1.030887,-0.30969 1.5203212,-0.42013 0.7456988,-0.16826 0.4710618,-0.52626 0.1049028,-0.6289 -0.9266939,-0.25976 -2.044886,0.33543 -2.8654579,0.30593 -0.848406,-0.0291 -0.804618,-1.69621 -0.1405601,-1.76217 0.7394212,-0.0734 1.6665151,-0.51079 1.461779,-0.65673 -0.8303549,-0.61672 -0.9617369,-0.79081 -1.0595549,-1.16418 -0.1480201,-0.565 0.341282,-1.03557 0.05777,-0.96356 -0.2596169,0.08 -0.4110678,0.15641 -0.5988619,0.25715 -0.1672929,0.0897 -0.293814,0.0546 -0.6751841,0.002 -0.3249449,-0.045 -0.3870058,-0.0557 -0.3755009,-0.25673 0.0115,-0.20097 0.07295,-0.52125 -0.05223,-0.47648 z" id="path5345" style="fill:#7aafff;fill-opacity:1;stroke:none;stroke-width:2.01045942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
</clipPath>
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4543">
<path d="m 1.7760088,291.5696 c -1.82613339,0.17434 -3.2940315,0.91934 -3.4903996,2.16451 -0.2629054,1.66729 1.5678591,3.34127 4.0891213,3.73893 1.2172084,0.19119 2.434234,0.053 3.3807423,-0.38387 0.7310194,0.5283 1.669357,0.90078 2.6704721,1.06008 2.5212691,0.39771 4.7783381,-0.6315 5.0412801,-2.2988 0.262905,-1.6673 -1.490667,-1.94329 -4.257163,-2.17938 -2.7664958,-0.23609 -3.6163896,-1.68839 -5.7470448,-2.04575 -0.5660191,-0.0893 -1.1380808,-0.10817 -1.6870084,-0.0557 z" id="path4545" style="opacity:1;vector-effect:none;fill:#666666;fill-opacity:1;stroke:none;stroke-width:2.11666656;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"/>
</clipPath>
</defs>
<g id="layer1" transform="translate(0,-284.3)">
<circle cx="6.3499999" cy="290.64999" id="path4514" r="6.3499999" style="fill:#aaccff;fill-opacity:1;stroke:none;stroke-width:1.74658811;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>

After

Width:  |  Height:  |  Size: 6.4 KiB

12
icons/svg/wan/vlan-1.svg Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 32 32" id="icon" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>
.cls-1 {
fill: none;
}
</style>
</defs>
<path d="M30,17V15H17V11h2a2.0023,2.0023,0,0,0,2-2V4a2.0023,2.0023,0,0,0-2-2H13a2.0023,2.0023,0,0,0-2,2V9a2.0023,2.0023,0,0,0,2,2h2v4H2v2H8v4H6a2.0023,2.0023,0,0,0-2,2v5a2.0023,2.0023,0,0,0,2,2h6a2.0023,2.0023,0,0,0,2-2V23a2.0023,2.0023,0,0,0-2-2H10V17H22v4H20a2.0023,2.0023,0,0,0-2,2v5a2.0023,2.0023,0,0,0,2,2h6a2.0023,2.0023,0,0,0,2-2V23a2.0023,2.0023,0,0,0-2-2H24V17ZM13,4h6V9H13ZM12,28H6V23h6Zm14,0H20V23h6Z" transform="translate(0 0)"/>
<rect id="_Transparent_Rectangle_" data-name="&lt;Transparent Rectangle&gt;" class="cls-1" width="32" height="32"/>
</svg>

After

Width:  |  Height:  |  Size: 889 B

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg xmlns="http://www.w3.org/2000/svg"
aria-label="WireGuard" role="img"
viewBox="0 0 512 512"><rect
width="512" height="512"
rx="15%"
fill="#88171a"/><path d="m238 53l35 8 0 2c-15 2-30-4-45-5 11 7 23 11 35 15-19 16-35-5-56 9 20 10 19 8 21 27-9 1-24 10-27 16 13 3 28 0 41 8-4 3-14 7-18 10 9 2 20-2 25 1 19 16 54 38 64 60 17 37-22 77-60 83-53 11-83 66-64 117 19 50 78 72 125 46 66-40 56-108 16-145-2-2-4-2-6 0-14 9-29 17-45 24 36 8 41 35 37 54-13 48-78 37-85-4-3-19 7-38 24-46 59-26 87-30 104-97 6-38-3-58-31-80-11-11-33-18-40-35-1-2 1-6 3-6 10-2 49-3 49-1 7 7 13-4 16-9-10-2-21-1-29-1-1 0-3-2-4-3 1 -1 3-2 4-2h41c0-7-9-17-18-19v3c-8 1-16-1-24-4-4-3-7-9-11-11-16-9-33-16-54-16-10 0-17 1-23 1zm74 30l3 3-4 2c-2 1-3 0-4-1-2-3 4-5 5-4zm-120 96c-54 33-51 109-3 139 4 2 6 2 8-1 12-15 23-22 36-30-25-4-38-16-37-33-4-60 83-54 74 2-2 10-8 19-16 25 27-6 47-21 55-48 2-8 2-19-2-26-30-44-75-53-115-28zm-62 195c16-7 33-10 49-13 1-13 5-26 13-36-30 0-55 20-62 49z" fill="#ffffff"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><title>WireGuard icon</title><path d="M23.98 11.645S24.533 0 11.735 0C.418 0 .064 11.17.064 11.17S-1.6 24 11.997 24C25.04 24 23.98 11.645 23.98 11.645zM8.155 7.576c2.4-1.47 5.469-.571 6.618 1.638.218.419.246 1.063.108 1.503-.477 1.516-1.601 2.366-3.145 2.728.455-.39.817-.832.933-1.442a2.112 2.112 0 0 0-.364-1.677 2.14 2.14 0 0 0-2.465-.75c-.95.36-1.47 1.228-1.377 2.294.087.99.839 1.632 2.245 1.876-.21.111-.372.193-.53.281a5.113 5.113 0 0 0-1.644 1.43c-.143.192-.24.208-.458.075-2.827-1.729-3.009-6.067.078-7.956zM6.04 18.258c-.455.116-.895.286-1.359.438.227-1.532 2.021-2.943 3.539-2.782a3.91 3.91 0 0 0-.74 2.072c-.504.093-.98.155-1.44.272zM15.703 3.3c.448.017.898.01 1.347.02a2.324 2.324 0 0 1 .334.047 3.249 3.249 0 0 1-.34.434c-.16.15-.341.296-.573.069-.055-.055-.187-.042-.283-.044-.447-.005-.894-.02-1.34-.003a8.323 8.323 0 0 0-1.154.118c-.072.013-.178.25-.146.338.078.207.191.435.359.567.619.49 1.277.928 1.9 1.413.604.472 1.167.99 1.51 1.7.446.928.46 1.9.267 2.877-.322 1.63-1.147 2.98-2.483 3.962-.538.395-1.205.62-1.821.903-.543.25-1.1.465-1.644.712-.98.446-1.53 1.51-1.369 2.615.149 1.015 1.04 1.862 2.059 2.037 1.223.21 2.486-.586 2.785-1.83.336-1.397-.423-2.646-1.845-3.024l-.256-.066c.38-.17.708-.291 1.012-.458q.793-.437 1.558-.925c.15-.096.231-.096.36.014.977.846 1.56 1.898 1.724 3.187.27 2.135-.74 4.096-2.646 5.101-2.948 1.555-6.557-.215-7.208-3.484-.558-2.8 1.418-5.34 3.797-5.83 1.023-.211 1.958-.637 2.685-1.425.47-.508.697-.944.775-1.141a3.165 3.165 0 0 0 .217-1.158 2.71 2.71 0 0 0-.237-.992c-.248-.566-1.2-1.466-1.435-1.656l-2.24-1.754c-.079-.065-.168-.06-.36-.047-.23.016-.815.048-1.067-.018.204-.155.76-.38 1-.56-.726-.49-1.554-.314-2.315-.46.176-.328 1.046-.831 1.541-.888a7.323 7.323 0 0 0-.135-.822c-.03-.111-.154-.22-.263-.283-.262-.154-.541-.281-.843-.434a1.755 1.755 0 0 1 .906-.28 3.385 3.385 0 0 1 .908.088c.54.123.97.042 1.399-.324-.338-.136-.676-.26-1.003-.407a9.843 9.843 0 0 1-.942-.493c.85.118 1.671.437 2.54.32l.022-.118-2.018-.47c1.203-.11 2.323-.128 3.384.388.299.146.61.266.897.432.14.08.233.24.348.365.09.098.164.23.276.29.424.225.89.234 1.366.223l.01-.16c.479.15 1.017.702 1.017 1.105-.776 0-1.55-.003-2.325.004-.083 0-.165.061-.247.094.078.046.155.128.235.131z M14.703 2.153a.118.118 0 0 0-.016.19.179.179 0 0 0 .246.065c.075-.038.148-.078.238-.125-.072-.062-.13-.114-.19-.163-.106-.087-.193-.032-.278.033z"/></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 512 512" xml:space="preserve">
<g>
<g>
<g>
<path d="M495.156,342.381h-25.212V91.195c0-9.303-7.542-16.844-16.844-16.844H58.901c-9.303,0-16.844,7.542-16.844,16.844
v251.186H16.844C7.542,342.381,0,349.923,0,359.226v44.016c0,18.972,15.435,34.407,34.406,34.407c12.315,0,435.419,0,443.188,0
c18.972,0,34.406-15.435,34.406-34.407v-44.016C512,349.923,504.459,342.381,495.156,342.381z M75.745,108.04h360.511v234.342
c-6.856,0-352.822,0-360.511,0V108.04z M195.836,403.961H34.406c-0.395,0-0.718-0.322-0.718-0.719V376.07
c7.084,0,153.529,0,162.147,0V403.961z M282.476,403.96h-52.952V376.07h52.952V403.96z M478.312,403.242
c0,0.396-0.322,0.719-0.718,0.719h-161.43V376.07c8.634,0,155.088,0,162.147,0V403.242z"/>
<path d="M400.412,127.038H111.588c-9.302,0-16.844,7.542-16.844,16.844v162.657c0,9.302,7.542,16.844,16.844,16.844h288.825
c9.304,0,16.844-7.542,16.844-16.844V143.882C417.257,134.579,409.715,127.038,400.412,127.038z M383.568,289.695H128.432
V160.726h255.136V289.695z"/>
<path d="M256,281.758c31.513,0,59.168-20.146,68.813-50.131c1.079-3.354,1.079-6.962,0-10.315
c-9.645-29.985-37.3-50.131-68.813-50.131c-31.513,0-59.168,20.146-68.813,50.131c-1.079,3.354-1.079,6.962,0,10.315
C196.832,261.612,224.487,281.758,256,281.758z M256,204.868c14.95,0,28.271,8.486,34.669,21.6
c-6.399,13.115-19.72,21.6-34.669,21.6c-14.949,0-28.271-8.486-34.67-21.6C227.729,213.354,241.051,204.868,256,204.868z"/>
<circle cx="255.999" cy="226.465" r="13.827"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

10
icons/svg/yandex-2.svg Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -155.5 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M83.1452991,0 L56.2637363,0 C29.3821734,0 6.25152625,20.004884 6.25152625,58.7643468 C6.25152625,81.8949939 17.5042735,99.3992674 36.8840049,108.151404 L0.625152625,173.167277 C-0.625152625,175.042735 0.625152625,176.918193 2.5006105,176.918193 L19.3797314,176.918193 C20.6300366,176.918193 21.8803419,176.29304 22.5054945,175.042735 L55.6385836,111.277167 L67.5164835,111.277167 L67.5164835,175.042735 C67.5164835,175.667888 68.1416361,176.918193 69.3919414,176.918193 L84.3956044,176.918193 C85.6459096,176.918193 86.2710623,176.29304 86.2710623,175.042735 L86.2710623,2.5006105 C85.6459096,0.625152625 85.020757,0 83.1452991,0 L83.1452991,0 Z M67.5164835,96.2735043 L57.5140415,96.2735043 C14.3785104,96.2735043 17.5042735,15.003663 55.6385836,15.003663 L68.1416361,15.003663 L68.1416361,96.2735043 L67.5164835,96.2735043 Z" fill="#FF0000">
</path>
<path d="M173.167277,58.7643468 L158.163614,58.7643468 C156.913309,58.7643468 156.288156,59.3894994 156.288156,60.6398046 L156.288156,105.650794 L128.781441,105.650794 L128.781441,60.6398046 C128.781441,59.3894994 128.156288,58.7643468 126.905983,58.7643468 L112.527473,58.7643468 C111.277167,58.7643468 110.652015,59.3894994 110.652015,60.6398046 L110.652015,175.042735 C110.652015,176.29304 111.277167,176.918193 112.527473,176.918193 L127.531136,176.918193 C128.781441,176.918193 129.406593,176.29304 129.406593,175.042735 L129.406593,120.029304 L156.913309,120.029304 L156.913309,175.042735 C156.913309,176.29304 157.538462,176.918193 158.788767,176.918193 L173.79243,176.918193 C175.042735,176.918193 175.667888,176.29304 175.667888,175.042735 L175.667888,60.6398046 C175.042735,59.3894994 174.417582,58.7643468 173.167277,58.7643468 L173.167277,58.7643468 Z M510.749695,161.289377 C510.749695,160.664225 510.124542,160.664225 509.499389,160.664225 C503.247863,160.664225 465.113553,178.793651 465.113553,118.778999 C465.113553,92.5225885 475.115995,55.6385836 498.871795,77.5189255 C499.496947,78.1440781 500.1221,78.1440781 500.747253,78.1440781 C501.372405,78.1440781 501.997558,77.5189255 502.622711,76.2686203 L508.874237,65.6410256 C509.499389,65.015873 509.499389,64.3907204 509.499389,63.7655678 C509.499389,62.5152625 508.249084,61.8901099 506.998779,61.2649573 C465.738706,40.6349206 444.483516,78.7692308 444.483516,123.155067 C444.483516,180.669109 486.368742,188.796093 510.124542,171.291819 C511.374847,170.666667 511.374847,169.416361 511.374847,168.791209 L510.749695,161.289377 L510.749695,161.289377 Z M408.224664,111.90232 L436.981685,60.014652 C437.606838,59.3894994 436.981685,58.1391941 436.356532,58.1391941 L421.978022,58.1391941 C417.601954,58.1391941 416.351648,59.3894994 415.101343,62.5152625 C413.851038,65.6410256 392.595849,110.026862 390.095238,111.90232 L390.095238,60.014652 C390.095238,59.3894994 389.470085,58.1391941 388.844933,58.1391941 L373.216117,58.1391941 C372.590965,58.1391941 371.965812,58.7643468 371.965812,60.014652 L371.965812,175.042735 C371.965812,175.667888 372.590965,176.918193 373.216117,176.918193 L388.844933,176.918193 C390.095238,176.918193 390.095238,176.29304 390.095238,175.042735 L390.095238,115.653236 C391.970696,116.903541 418.227106,171.291819 418.852259,173.167277 C420.102564,175.667888 422.603175,176.918193 425.728938,176.918193 L441.357753,176.918193 C442.608059,176.918193 442.608059,176.29304 441.982906,175.042735 L408.224664,111.90232 L408.224664,111.90232 Z M271.316239,161.91453 L268.190476,161.91453 C264.43956,161.91453 263.814408,160.664225 263.814408,157.538462 L263.814408,60.014652 C263.814408,58.7643468 263.189255,58.1391941 262.564103,58.1391941 L214.42735,58.1391941 C213.177045,58.1391941 212.551893,58.7643468 212.551893,60.014652 C212.551893,86.2710623 213.177045,130.031746 195.672772,161.91453 L190.671551,161.91453 C189.421245,161.91453 188.796093,162.539683 188.796093,163.789988 L188.796093,198.173382 C188.796093,199.423687 190.046398,200.04884 190.671551,200.04884 L201.924298,200.04884 C204.424908,200.04884 205.675214,198.173382 205.675214,196.297924 L205.675214,176.918193 L256.312576,176.918193 L256.312576,198.173382 C256.312576,198.798535 256.937729,200.04884 258.188034,200.04884 L270.691087,200.04884 C271.941392,200.04884 273.81685,198.798535 273.81685,196.297924 L273.81685,163.789988 C273.191697,162.539683 272.566545,161.91453 271.316239,161.91453 L271.316239,161.91453 Z M245.059829,161.91453 L210.051282,161.91453 C220.053724,145.660562 229.431013,119.404151 229.431013,73.1428571 L245.059829,73.1428571 L245.059829,161.91453 L245.059829,161.91453 Z M320.078144,55.6385836 C294.446886,55.6385836 282.568987,87.5213675 282.568987,122.529915 C282.568987,180.043956 322.578755,188.796093 350.08547,171.916972 C351.335775,171.291819 351.335775,170.666667 351.335775,170.041514 L349.460317,161.91453 C349.460317,161.289377 348.835165,160.664225 347.58486,160.664225 C337.582418,160.664225 302.573871,178.168498 302.573871,121.279609 C315.076923,122.529915 315.076923,122.529915 352.586081,122.529915 C351.960928,93.7728938 348.835165,55.6385836 320.078144,55.6385836 L320.078144,55.6385836 Z M303.199023,108.151404 C303.199023,62.5152625 333.206349,53.7631258 333.206349,106.901099 C320.078144,106.901099 314.45177,106.901099 303.199023,108.151404 L303.199023,108.151404 Z" fill="#000000">
</path>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,65 @@
# GUIDE: https://wiki.metacubex.one/en/config/proxies/wg/#wireguard_1
# NETHERLANDS
# [Interface]
# PrivateKey = aOzeKSSrGTqEwVsltHh10L1MbbVsHnRHbFNDzen6/k8=
# Address = 10.136.22.215/32
# DNS = 8.8.4.4,1.1.1.1
# MTU = 1280
# Jc = 43
# Jmin = 50
# Jmax = 70
# S1 = 110
# S2 = 120
# H1 = 1593635057
# H2 = 430880481
# H3 = 1214405368
# H4 = 1739253821
# [Peer]
# PublicKey = hXvwetCANoEol0j80d8XuDmgNGwP+Ui25BH2MKxGJBE=
# PresharedKey = q1zJdX6ZE+gJWQ+JwDgzZ7Un1lgJ1ENtdBV7iwGIZcg=
# AllowedIPs = 0.0.0.0/0,::/0
# PersistentKeepalive = 25
# Endpoint = [nl03awg.kcufwfgnkr.net:60136](http://nl03awg.kcufwfgnkr.net:60136/)
proxies:
- name: "vzd-wg-netherlands"
type: wireguard #
ip: 10.136.22.215/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: aOzeKSSrGTqEwVsltHh10L1MbbVsHnRHbFNDzen6/k8= #
peers:
- server: nl03awg.kcufwfgnkr.net #
port: 60136 #
public-key: hXvwetCANoEol0j80d8XuDmgNGwP+Ui25BH2MKxGJBE= #
pre-shared-key: q1zJdX6ZE+gJWQ+JwDgzZ7Un1lgJ1ENtdBV7iwGIZcg= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
mtu: 1280 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: false # Option whether to force remote DNS resolution
dns: [1.1.1.1, 8.8.4.4]
amnezia-wg-option:
jc: 43
jmin: 50
jmax: 70
s1: 110
s2: 120
h1: 1593635057
h2: 430880481
h3: 1214405368
h4: 1739253821
- name: "cadian-adguard"
type: socks5
server: 192.168.0.3
port: 1080
username: adguard
password: adguard
# tls: true
# fingerprint: xxxx
# skip-cert-verify: true
udp: true
# ip-version: ipv6

View File

@@ -1,6 +0,0 @@
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpER1E3THlXRHBSOVFrU2ZvZi1zcnN3@151.243.101.40:2060#%E2%9A%A1%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%20-%20GB_T074055
vmess://eyJhZGQiOiAiMTUxLjI0My4xMDEuNDAiLCAiYWlkIjogIjAiLCAiaG9zdCI6ICJnb29nbGUuY29tIiwgImlkIjogImEzZTc1OTM2LTBlNDQtNGJjOS1iOTdlLWExZmRiMjc2Y2NhNCIsICJuZXQiOiAidGNwIiwgInBhdGgiOiAiLyIsICJwb3J0IjogODA4MSwgInBzIjogIlx1MjZhMVx1MDQxMlx1MDQzNVx1MDQzYlx1MDQzOFx1MDQzYVx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0ZiAtIEdCX1QwNzQwNTUiLCAic2N5IjogImF1dG8iLCAidGxzIjogIm5vbmUiLCAidHlwZSI6ICJodHRwIiwgInYiOiAiMiJ9
vmess://eyJhZGQiOiAiMTUxLjI0My4xMDEuNDAiLCAiYWlkIjogIjAiLCAiaG9zdCI6ICJnb29nbGUuY29tIiwgImlkIjogImEzZTc1OTM2LTBlNDQtNGJjOS1iOTdlLWExZmRiMjc2Y2NhNCIsICJuZXQiOiAid3MiLCAicGF0aCI6ICIvIiwgInBvcnQiOiA4MDgwLCAicHMiOiAiXHUyNmExXHUwNDEyXHUwNDM1XHUwNDNiXHUwNDM4XHUwNDNhXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDNkXHUwNDM4XHUwNDRmIC0gR0JfVDA3NDA1NSIsICJzY3kiOiAiYXV0byIsICJ0bHMiOiAibm9uZSIsICJ0eXBlIjogIiIsICJ2IjogIjIifQ==
vless://ca1a269d-6409-4bbf-a4e2-1e9cb04490e2@151.243.101.40:8443?security=reality&type=tcp&headerType=&path=&host=&sni=discordapp.com&fp=chrome&pbk=SbVKOEMjK0sIlbwg4akyBg5mL5KZwwB-ed4eEE7YnRc&sid=6ba85179e30d4fc2#%E2%9A%A1%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%20-%20GB_T074055
vless://ca1a269d-6409-4bbf-a4e2-1e9cb04490e2@151.243.101.40:2053?security=reality&type=grpc&headerType=&serviceName=xyz&authority=&mode=gun&sni=discordapp.com&fp=chrome&pbk=SbVKOEMjK0sIlbwg4akyBg5mL5KZwwB-ed4eEE7YnRc&sid=#%E2%9A%A1%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%20-%20GB_T074055
trojan://TEx16RQixr5cJ3rCBz1Ddw@151.243.101.40:2058?security=tls&type=ws&headerType=&path=%2F&host=&sni=uk.hydranet.space&fp=#%E2%9A%A1%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B1%D1%80%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%20-%20GB_T074055

View File

@@ -0,0 +1,159 @@
# GUIDE: https://wiki.metacubex.one/en/config/proxies/wg/#wireguard_1
# KAZAKHSTAN
# [Interface]
# + Address = 100.70.184.183/32
# + DNS = 8.8.8.8, 8.8.4.4
# + PrivateKey = reZgTReg3y4wff6p5lBDzDTA+R+46t7h3CJrveI+Dsg=
# + Jc = 4
# + Jmin = 10
# + Jmax = 50
# + S1 = 110
# + S2 = 20
# + H1 = 211644422
# + H2 = 533572853
# + H3 = 237534087
# + H4 = 1314455475
# [Peer]
# + PublicKey = 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc=
# PresharedKey = WIBgPDNngeueVAuO4I+Yo0zP41NMiFDE/D7nh3Vjulw=
# + AllowedIPs = 0.0.0.0/0, ::/0
# + Endpoint = 5.189.202.78:46358
# PersistentKeepalive = 25
# POLAND
# [Interface]
# Address = 100.71.64.86/32
# DNS = 8.8.8.8, 8.8.4.4
# PrivateKey = /K20yRTTw44Ged/fXjdf4hSLnr33igHMl0SAXy0aMCE=
# Jc = 2
# Jmin = 10
# Jmax = 50
# S1 = 18
# S2 = 122
# H1 = 1512494805
# H2 = 1147470590
# H3 = 1658720028
# H4 = 1826833034
# [Peer]
# PublicKey = Z01PDi29KeHvdtThNoSmXdxG4zyT1yFbulcI7AA5nQg=
# PresharedKey = uExSfwmdNaUTiJmyNNMuoDavJEKdrdsAqNaVcZ/U00Y=
# AllowedIPs = 0.0.0.0/0, ::/0
# Endpoint = 212.23.222.12:37089
# PersistentKeepalive = 25
# USA
# [Interface]
# Address = 100.71.64.155/32
# DNS = 8.8.8.8, 8.8.4.4
# PrivateKey = Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg=
# Jc = 3
# Jmin = 10
# Jmax = 50
# S1 = 145
# S2 = 34
# H1 = 203715079
# H2 = 914012290
# H3 = 174842657
# H4 = 1514769902
# [Peer]
# PublicKey = ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs=
# PresharedKey = oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk=
# AllowedIPs = 0.0.0.0/0, ::/0
# Endpoint = 5.8.93.236:42854
# PersistentKeepalive = 25
proxies:
name: "💫 amz-wg-usa"
type: wireguard #
ip: 100.71.64.155/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg= #
peers:
- server: 5.8.93.236 #
port: 42854 #
public-key: ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs= #
pre-shared-key: oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 3
jmin: 10
jmax: 50
s1: 145
s2: 34
h1: 203715079
h2: 914012290
h3: 174842657
h4: 1514769902
name: "💫 amz-wg-poland"
type: wireguard #
ip: 100.71.64.86/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: /K20yRTTw44Ged/fXjdf4hSLnr33igHMl0SAXy0aMCE= #
peers:
- server: 212.23.222.12 #
port: 37089 #
public-key: Z01PDi29KeHvdtThNoSmXdxG4zyT1yFbulcI7AA5nQg= #
pre-shared-key: uExSfwmdNaUTiJmyNNMuoDavJEKdrdsAqNaVcZ/U00Y= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 2
jmin: 10
jmax: 50
s1: 18
s2: 122
h1: 1512494805
h2: 1147470590
h3: 1658720028
h4: 1826833034
name: "💫 amz-wg-kazakhstan"
type: wireguard #
ip: 100.70.184.183/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: ZiA7zQ9osP4nEoB5jryU99gpHFg6cTprfiaA1nV/pks= #
peers:
- server: 5.189.202.78 #
port: 46358 #
public-key: 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc= #
pre-shared-key: aJ4XS6+QgVasEcGP+5DInldM5i/YSR6PPmmix0wMtFA= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 4
jmin: 10
jmax: 50
s1: 110
s2: 20
h1: 211644422
h2: 533572853
h3: 237534087
h4: 1314455475
# AmneziaWG v1.5
# i1: <b 0xf6ab3267fa><c><b 0xf6ab><t><r 10><wt 10>
# i2: <b 0xf6ab3267fa><r 100>
# i3: ""
# i4: ""
# i5: ""
# j1: <b 0xffffffff><c><b 0xf6ab><t><r 10>
# j2: <c><b 0xf6ab><t><wt 1000>
# j3: <t><b 0xf6ab><c><r 10>
# itime: 60

View File

@@ -2,36 +2,209 @@
# KAZAKHSTAN
# [Interface]
# + Address = 100.70.184.183/32
# DNS = 8.8.8.8, 8.8.4.4
# + DNS = 8.8.8.8, 8.8.4.4
# + PrivateKey = reZgTReg3y4wff6p5lBDzDTA+R+46t7h3CJrveI+Dsg=
# Jc = 4
# Jmin = 10
# Jmax = 50
# S1 = 110
# S2 = 20
# H1 = 211644422
# H2 = 533572853
# H3 = 237534087
# H4 = 1314455475
# + Jc = 4
# + Jmin = 10
# + Jmax = 50
# + S1 = 110
# + S2 = 20
# + H1 = 211644422
# + H2 = 533572853
# + H3 = 237534087
# + H4 = 1314455475
# [Peer]
# PublicKey = 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc=
# + PublicKey = 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc=
# PresharedKey = WIBgPDNngeueVAuO4I+Yo0zP41NMiFDE/D7nh3Vjulw=
# AllowedIPs = 0.0.0.0/0, ::/0
# + AllowedIPs = 0.0.0.0/0, ::/0
# + Endpoint = 5.189.202.78:46358
# PersistentKeepalive = 25
# POLAND
# [Interface]
# Address = 100.71.64.86/32
# DNS = 8.8.8.8, 8.8.4.4
# PrivateKey = /K20yRTTw44Ged/fXjdf4hSLnr33igHMl0SAXy0aMCE=
# Jc = 2
# Jmin = 10
# Jmax = 50
# S1 = 18
# S2 = 122
# H1 = 1512494805
# H2 = 1147470590
# H3 = 1658720028
# H4 = 1826833034
# [Peer]
# PublicKey = Z01PDi29KeHvdtThNoSmXdxG4zyT1yFbulcI7AA5nQg=
# PresharedKey = uExSfwmdNaUTiJmyNNMuoDavJEKdrdsAqNaVcZ/U00Y=
# AllowedIPs = 0.0.0.0/0, ::/0
# Endpoint = 212.23.222.12:37089
# PersistentKeepalive = 25
# USA
# [Interface]
# Address = 100.71.64.155/32
# DNS = 8.8.8.8, 8.8.4.4
# PrivateKey = Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg=
# Jc = 3
# Jmin = 10
# Jmax = 50
# S1 = 145
# S2 = 34
# H1 = 203715079
# H2 = 914012290
# H3 = 174842657
# H4 = 1514769902
# [Peer]
# PublicKey = ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs=
# PresharedKey = oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk=
# AllowedIPs = 0.0.0.0/0, ::/0
# Endpoint = 5.8.93.236:42854
# PersistentKeepalive = 25
# VEZDEHOD NETHERLANDS
# [Interface]
# PrivateKey = mJd8aibZI0iuQqPxpTdbs1Enb9+Ury7ido20lu2NrWo=
# Address = 10.136.82.167/32
# DNS = 1.1.1.1, 8.8.4.4
# MTU = 1380
# Jc = 43
# Jmin = 50
# Jmax = 70
# S1 = 110
# S2 = 120
# H1 = 1593635057
# H2 = 430880481
# H3 = 1214405368
# H4 = 1739253821
# [Peer]
# PublicKey = gbUPMNfaxgRSGD3xcnnbAJSclxfnOyh4U1qqmYMWmCI=
# PresharedKey = SCz82d6cfj9bfdlUyHwEBYC3u4T3znL6wFpJ7dMQYbM=
# AllowedIPs = 0.0.0.0/0, ::/0
# PersistentKeepalive = 25
# Endpoint = nl02awg.kcufwfgnkr.net:60136
proxies:
name: "💫 kz-wg-amnezia"
type: wireguard
ip: 100.70.184.183/32
private-key: reZgTReg3y4wff6p5lBDzDTA+R+46t7h3CJrveI+Dsg=
- name: "vzd-wg-netherlands"
type: wireguard #
ip: 10.136.82.167/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: mJd8aibZI0iuQqPxpTdbs1Enb9+Ury7ido20lu2NrWo= #
peers:
- server: 5.189.202.78
port: 46358
public-key: 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc=
allowed-ips: ['0.0.0.0/0', '::/0']
# reserved: [209,98,59] # 如果需要自己填
udp: true
mtu: <预设MTU> # 按需设置,不用直接删除
remote-dns-resolve: true # 按需设置,不用直接删除
dns: <使用的DNS> # 按需设置,不用直接删除
- server: nl02awg.kcufwfgnkr.net #
port: 60136 #
public-key: gbUPMNfaxgRSGD3xcnnbAJSclxfnOyh4U1qqmYMWmCI= #
pre-shared-key: SCz82d6cfj9bfdlUyHwEBYC3u4T3znL6wFpJ7dMQYbM= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
mtu: 1380 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [1.1.1.1, 8.8.4.4]
amnezia-wg-option:
jc: 43
jmin: 50
jmax: 70
s1: 110
s2: 120
h1: 1593635057
h2: 430880481
h3: 1214405368
h4: 1739253821
- name: "amz-wg-usa"
type: wireguard #
ip: 100.71.64.155/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg= #
peers:
- server: 5.8.93.236 #
port: 42854 #
public-key: ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs= #
pre-shared-key: oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 3
jmin: 10
jmax: 50
s1: 145
s2: 34
h1: 203715079
h2: 914012290
h3: 174842657
h4: 1514769902
- name: "amz-wg-poland"
type: wireguard #
ip: 100.71.64.86/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: /K20yRTTw44Ged/fXjdf4hSLnr33igHMl0SAXy0aMCE= #
peers:
- server: 212.23.222.12 #
port: 37089 #
public-key: Z01PDi29KeHvdtThNoSmXdxG4zyT1yFbulcI7AA5nQg= #
pre-shared-key: uExSfwmdNaUTiJmyNNMuoDavJEKdrdsAqNaVcZ/U00Y= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 2
jmin: 10
jmax: 50
s1: 18
s2: 122
h1: 1512494805
h2: 1147470590
h3: 1658720028
h4: 1826833034
- name: "amz-wg-kazakhstan"
type: wireguard #
ip: 100.70.184.183/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: ZiA7zQ9osP4nEoB5jryU99gpHFg6cTprfiaA1nV/pks= #
peers:
- server: 5.189.202.78 #
port: 46358 #
public-key: 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc= #
pre-shared-key: aJ4XS6+QgVasEcGP+5DInldM5i/YSR6PPmmix0wMtFA= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 4
jmin: 10
jmax: 50
s1: 110
s2: 20
h1: 211644422
h2: 533572853
h3: 237534087
h4: 1314455475
# AmneziaWG v1.5
# i1: <b 0xf6ab3267fa><c><b 0xf6ab><t><r 10><wt 10>
# i2: <b 0xf6ab3267fa><r 100>
# i3: ""
# i4: ""
# i5: ""
# j1: <b 0xffffffff><c><b 0xf6ab><t><r 10>
# j2: <c><b 0xf6ab><t><wt 1000>
# j3: <t><b 0xf6ab><c><r 10>
# itime: 60

View File

@@ -0,0 +1,159 @@
# GUIDE: https://wiki.metacubex.one/en/config/proxies/wg/#wireguard_1
# KAZAKHSTAN
# [Interface]
# + Address = 100.70.184.183/32
# + DNS = 8.8.8.8, 8.8.4.4
# + PrivateKey = reZgTReg3y4wff6p5lBDzDTA+R+46t7h3CJrveI+Dsg=
# + Jc = 4
# + Jmin = 10
# + Jmax = 50
# + S1 = 110
# + S2 = 20
# + H1 = 211644422
# + H2 = 533572853
# + H3 = 237534087
# + H4 = 1314455475
# [Peer]
# + PublicKey = 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc=
# PresharedKey = WIBgPDNngeueVAuO4I+Yo0zP41NMiFDE/D7nh3Vjulw=
# + AllowedIPs = 0.0.0.0/0, ::/0
# + Endpoint = 5.189.202.78:46358
# PersistentKeepalive = 25
# POLAND
# [Interface]
# Address = 100.71.64.86/32
# DNS = 8.8.8.8, 8.8.4.4
# PrivateKey = /K20yRTTw44Ged/fXjdf4hSLnr33igHMl0SAXy0aMCE=
# Jc = 2
# Jmin = 10
# Jmax = 50
# S1 = 18
# S2 = 122
# H1 = 1512494805
# H2 = 1147470590
# H3 = 1658720028
# H4 = 1826833034
# [Peer]
# PublicKey = Z01PDi29KeHvdtThNoSmXdxG4zyT1yFbulcI7AA5nQg=
# PresharedKey = uExSfwmdNaUTiJmyNNMuoDavJEKdrdsAqNaVcZ/U00Y=
# AllowedIPs = 0.0.0.0/0, ::/0
# Endpoint = 212.23.222.12:37089
# PersistentKeepalive = 25
# USA
# [Interface]
# Address = 100.71.64.155/32
# DNS = 8.8.8.8, 8.8.4.4
# PrivateKey = Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg=
# Jc = 3
# Jmin = 10
# Jmax = 50
# S1 = 145
# S2 = 34
# H1 = 203715079
# H2 = 914012290
# H3 = 174842657
# H4 = 1514769902
# [Peer]
# PublicKey = ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs=
# PresharedKey = oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk=
# AllowedIPs = 0.0.0.0/0, ::/0
# Endpoint = 5.8.93.236:42854
# PersistentKeepalive = 25
proxies:
name: "💫 amz-wg-usa"
type: wireguard #
ip: 100.71.64.155/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: Vuk0huRtjGpA7KtWuQN/kJE0CRFOFs3JysN71nDFGqg= #
peers:
- server: 5.8.93.236 #
port: 42854 #
public-key: ZqTlR9tYsMacuawQQaU6UCoXdT1exYJD2tzFXTpN9zs= #
pre-shared-key: oOJNRLL+5aOgimi28Lwq18w6xCrry4AFLt68fhbUSlk= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 3
jmin: 10
jmax: 50
s1: 145
s2: 34
h1: 203715079
h2: 914012290
h3: 174842657
h4: 1514769902
name: "💫 amz-wg-poland"
type: wireguard #
ip: 100.71.64.86/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: /K20yRTTw44Ged/fXjdf4hSLnr33igHMl0SAXy0aMCE= #
peers:
- server: 212.23.222.12 #
port: 37089 #
public-key: Z01PDi29KeHvdtThNoSmXdxG4zyT1yFbulcI7AA5nQg= #
pre-shared-key: uExSfwmdNaUTiJmyNNMuoDavJEKdrdsAqNaVcZ/U00Y= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 2
jmin: 10
jmax: 50
s1: 18
s2: 122
h1: 1512494805
h2: 1147470590
h3: 1658720028
h4: 1826833034
name: "💫 amz-wg-kazakhstan"
type: wireguard #
ip: 100.70.184.183/32 # The IPv4 address used by this machine in the Wireguard network
# ipv6: # The IPv6 address used by this machine in the Wireguard network
private-key: ZiA7zQ9osP4nEoB5jryU99gpHFg6cTprfiaA1nV/pks= #
peers:
- server: 5.189.202.78 #
port: 46358 #
public-key: 5uUhd8S8MjnULEEAiSQysBi+JO6zfrXC0QIIsqsjUkc= #
pre-shared-key: aJ4XS6+QgVasEcGP+5DInldM5i/YSR6PPmmix0wMtFA= # Optional
allowed-ips: ['0.0.0.0/0', '::/0'] #
# reserved: # Optional value of the Wireguard protocol reserved field, required by some WARP nodes
udp: true #
# mtu: 1408 #
# dialer-proxy: # An identifier for an outbound proxy. When the value is not empty, the specified proxy/proxy-group will be used to make connections.
remote-dns-resolve: true # Option whether to force remote DNS resolution
dns: [8.8.8.8, 8.8.4.4]
amnezia-wg-option:
jc: 4
jmin: 10
jmax: 50
s1: 110
s2: 20
h1: 211644422
h2: 533572853
h3: 237534087
h4: 1314455475
# AmneziaWG v1.5
# i1: <b 0xf6ab3267fa><c><b 0xf6ab><t><r 10><wt 10>
# i2: <b 0xf6ab3267fa><r 100>
# i3: ""
# i4: ""
# i5: ""
# j1: <b 0xffffffff><c><b 0xf6ab><t><r 10>
# j2: <c><b 0xf6ab><t><wt 1000>
# j3: <t><b 0xf6ab><c><r 10>
# itime: 60

View File

@@ -0,0 +1,20 @@
[Interface]
PrivateKey = gArBNZID8qVF9VKHcVWU/sJrPLHgk6VB5VYTzoIEn0U=
Address = 10.136.11.36/32
DNS = 1.1.1.1, 8.8.4.4
MTU = 1380
Jc = 43
Jmin = 50
Jmax = 70
S1 = 110
S2 = 120
H1 = 1593635057
H2 = 430880481
H3 = 1214405368
H4 = 1739253821
[Peer]
PublicKey = gbUPMNfaxgRSGD3xcnnbAJSclxfnOyh4U1qqmYMWmCI=
PresharedKey = iWlsGgLucNELlsmK4+nkAmT49NSkaERpKKjIjDNCG04=
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Endpoint = nl02awg.kcufwfgnkr.net:60136

View File

@@ -1,67 +0,0 @@
payload:
- DOMAIN-SUFFIX,4pda.to
- DOMAIN-SUFFIX,airchina.com
- DOMAIN-SUFFIX,amnezia.org
- DOMAIN-SUFFIX,api.notion.com
- DOMAIN-SUFFIX,forum.funkypenguin.co.nz
- DOMAIN-SUFFIX,getoutline.com
- DOMAIN-SUFFIX,ggpht.com
- DOMAIN-SUFFIX,gl-inet.com
- DOMAIN-SUFFIX,googleapis.com
- DOMAIN-SUFFIX,googlevideo.com
- DOMAIN-SUFFIX,gvt1.com
- DOMAIN-SUFFIX,habr.com
- DOMAIN-SUFFIX,hashicorp.com
- DOMAIN-SUFFIX,ifconfig.me
- DOMAIN-SUFFIX,ILook.tv
- DOMAIN-SUFFIX,img.notionusercontent.com
- DOMAIN-SUFFIX,ipinfo.io
- DOMAIN-SUFFIX,knowyourmeme.com
- DOMAIN-SUFFIX,kym-cdn.com
- DOMAIN-SUFFIX,medium.com
- DOMAIN-SUFFIX,metacubex.one
- DOMAIN-SUFFIX,notifiarr.wiki
- DOMAIN-SUFFIX,notion.com
- DOMAIN-SUFFIX,notion.site
- DOMAIN-SUFFIX,notion.so
- DOMAIN-SUFFIX,notionusercontent.com
- DOMAIN-SUFFIX,onshape.com
- DOMAIN-SUFFIX,plati.market
- DOMAIN-SUFFIX,play.google.com
- DOMAIN-SUFFIX,rustorka.com
- DOMAIN-SUFFIX,rutracker.cc
- DOMAIN-SUFFIX,rutracker.org
- DOMAIN-SUFFIX,secure.notion-static.com
- DOMAIN-SUFFIX,t.co
- DOMAIN-SUFFIX,video.google.com
- DOMAIN-SUFFIX,youtu.be
- DOMAIN-SUFFIX,youtube.com
- DOMAIN-SUFFIX,youtubeeducation.com
- DOMAIN-SUFFIX,youtubekids.com
- DOMAIN-SUFFIX,youtube-nocookie.com
- DOMAIN-SUFFIX,youtube-ui.l.google.com
- DOMAIN-SUFFIX,ytimg.com
- DOMAIN-SUFFIX,ytimg.l.google.com
- DOMAIN-SUFFIX,zerolab.net
- DOMAIN-SUFFIX,l.google.com
- DOMAIN-SUFFIX,youtubei.googleapis.com
- DOMAIN-SUFFIX,nhacmp3youtube.com
- DOMAIN-SUFFIX,googleusercontent.com
- DOMAIN-SUFFIX,chatgpt.com
- DOMAIN-SUFFIX,auth.openai.com
- DOMAIN-SUFFIX,auth0.openai.com
- DOMAIN-SUFFIX,cdn.oaistatic.com
- DOMAIN-SUFFIX,openai.com
- DOMAIN-SUFFIX,files.oaiusercontent.com
- DOMAIN-SUFFIX,instagram.com
- DOMAIN-SUFFIX,copilot.microsoft.com
- DOMAIN-SUFFIX,microsoft.com
- DOMAIN-SUFFIX,live.com
- DOMAIN-SUFFIX,google.dev
- DOMAIN-SUFFIX,gstatic.com
- DOMAIN-SUFFIX,alkalimakersuite-pa.clients6.google.com
- DOMAIN-SUFFIX,fonts.googleapis.com
- DOMAIN-SUFFIX,developerprofiles-pa.googleapis.com
- DOMAIN-SUFFIX,ankiweb.net
- DOMAIN-SUFFIX,onplanners.com
- DOMAIN-SUFFIX,assetdamage.world

View File

@@ -0,0 +1,3 @@
payload:
- SRC-IP-CIDR,192.168.10.103/32
- SRC-IP-CIDR,192.168.10.86/32

View File

@@ -1,5 +0,0 @@
payload:
- DOMAIN-SUFFIX,aeza.net
- DOMAIN-SUFFIX,open.ru
- DOMAIN-SUFFIX,bm-bank.ru
- DOMAIN-SUFFIX,shamanlanding.org

View File

@@ -1,42 +0,0 @@
payload:
- SRC-IP-CIDR,192.168.10.1/24
- SRC-IP-CIDR,192.168.11.1/24
- SRC-IP-CIDR,192.168.12.1/24
- SRC-IP-CIDR,192.168.13.1/24
- SRC-IP-CIDR,192.168.21.1/24
- SRC-IP-CIDR,192.168.22.1/24
- SRC-IP-CIDR,192.168.23.1/24
- SRC-IP-CIDR,192.168.31.1/24
- SRC-IP-CIDR,192.168.32.1/24
- SRC-IP-CIDR,192.168.33.1/24
- SRC-IP-CIDR,192.168.41.1/24
- SRC-IP-CIDR,192.168.42.1/24
- SRC-IP-CIDR,192.168.43.1/24
- SRC-IP-CIDR,192.168.51.1/24
- SRC-IP-CIDR,192.168.52.1/24
- SRC-IP-CIDR,192.168.53.1/24
- SRC-IP-CIDR,192.168.61.1/24
- SRC-IP-CIDR,192.168.62.1/24
- SRC-IP-CIDR,192.168.63.1/24
- SRC-IP-CIDR,192.168.71.1/24
- SRC-IP-CIDR,192.168.72.1/24
- SRC-IP-CIDR,192.168.73.1/24
- SRC-IP-CIDR,192.168.71.1/24
- SRC-IP-CIDR,192.168.72.1/24
- SRC-IP-CIDR,192.168.73.1/24
- SRC-IP-CIDR,192.168.81.1/24
- SRC-IP-CIDR,192.168.82.1/24
- SRC-IP-CIDR,192.168.83.1/24
- SRC-IP-CIDR,192.168.91.1/24
- SRC-IP-CIDR,192.168.92.1/24
- SRC-IP-CIDR,192.168.93.1/24

View File

@@ -1,45 +0,0 @@
payload:
# SRC-IP-CIDR,192.168.10.1/24
- SRC-IP-CIDR,192.168.14.1/24
- SRC-IP-CIDR,192.168.15.1/24
- SRC-IP-CIDR,192.168.16.1/24
- SRC-IP-CIDR,192.168.20.1/24
- SRC-IP-CIDR,192.168.24.1/24
- SRC-IP-CIDR,192.168.25.1/24
- SRC-IP-CIDR,192.168.26.1/24
- SRC-IP-CIDR,192.168.30.1/24
- SRC-IP-CIDR,192.168.34.1/24
- SRC-IP-CIDR,192.168.35.1/24
- SRC-IP-CIDR,192.168.36.1/24
- SRC-IP-CIDR,192.168.40.1/24
- SRC-IP-CIDR,192.168.44.1/24
- SRC-IP-CIDR,192.168.45.1/24
- SRC-IP-CIDR,192.168.46./24
- SRC-IP-CIDR,192.168.50.1/24
- SRC-IP-CIDR,192.168.54.1/24
- SRC-IP-CIDR,192.168.55.1/24
- SRC-IP-CIDR,192.168.56.1/24
- SRC-IP-CIDR,192.168.60.1/24
- SRC-IP-CIDR,192.168.64.1/24
- SRC-IP-CIDR,192.168.65.1/24
- SRC-IP-CIDR,192.168.66.1/24
- SRC-IP-CIDR,192.168.70.1/24
- SRC-IP-CIDR,192.168.74.1/24
- SRC-IP-CIDR,192.168.75.1/24
- SRC-IP-CIDR,192.168.76.1/24
- SRC-IP-CIDR,192.168.80.1/24
- SRC-IP-CIDR,192.168.84.1/24
- SRC-IP-CIDR,192.168.85.1/24
- SRC-IP-CIDR,192.168.86.1/24
- SRC-IP-CIDR,192.168.90.1/24
- SRC-IP-CIDR,192.168.94.1/24
- SRC-IP-CIDR,192.168.95.1/24
- SRC-IP-CIDR,192.168.96.1/24

View File

@@ -1,2 +0,0 @@
payload:
- SRC-IP-CIDR,100.98.0.0/16

View File

@@ -1,5 +1,5 @@
payload:
- DOMAIN-SUFFIX,ifconfig.me
- DOMAIN-SUFFIX,ipinfo.io
- DOMAIN-SUFFIX,pervertium.com
- DOMAIN-SUFFIX,tubesafari.com
- SRC-IP-CIDR,192.168.10.203/32
- SRC-IP-CIDR,192.168.10.204/32
- SRC-IP-CIDR,100.98.138.18/32 # DTS-TAB-S7-NET
- SRC-IP-CIDR,192.168.0.101/32 # DTS-TAB-S7-NET

View File

@@ -1,3 +1,3 @@
payload:
- DOMAIN-SUFFIX,twilio.com
- DOMAIN-SUFFIX,webrtc.org
- SRC-IP-CIDR,192.168.24.22/32

View File

@@ -0,0 +1,21 @@
payload:
- SRC-IP-CIDR,192.168.11.1/24
- SRC-IP-CIDR,192.168.21.1/24
- SRC-IP-CIDR,192.168.31.1/24
- SRC-IP-CIDR,192.168.41.1/24
- SRC-IP-CIDR,192.168.51.1/24
- SRC-IP-CIDR,192.168.61.1/24
- SRC-IP-CIDR,192.168.71.1/24
- SRC-IP-CIDR,192.168.81.1/24
- SRC-IP-CIDR,192.168.91.1/24
- SRC-IP-CIDR,192.168.10.91/32
- SRC-IP-CIDR,192.168.10.164/32
- SRC-IP-CIDR,192.168.10.91/32
- SRC-IP-CIDR,192.168.10.71/32
- SRC-IP-CIDR,192.168.10.200/32
- SRC-IP-CIDR,192.168.10.201/32
- SRC-IP-CIDR,192.168.10.202/32
- SRC-IP-CIDR,192.168.10.203/32
- SRC-IP-CIDR,192.168.10.204/32

View File

@@ -0,0 +1,11 @@
payload:
- SRC-IP-CIDR,192.168.12.1/24
- SRC-IP-CIDR,192.168.22.1/24
- SRC-IP-CIDR,192.168.32.1/24
- SRC-IP-CIDR,192.168.42.1/24
- SRC-IP-CIDR,192.168.52.1/24
- SRC-IP-CIDR,192.168.62.1/24
- SRC-IP-CIDR,192.168.72.1/24
- SRC-IP-CIDR,192.168.82.1/24
- SRC-IP-CIDR,192.168.92.1/24

View File

@@ -0,0 +1,11 @@
payload:
- SRC-IP-CIDR,192.168.13.1/24
- SRC-IP-CIDR,192.168.23.1/24
- SRC-IP-CIDR,192.168.33.1/24
- SRC-IP-CIDR,192.168.43.1/24
- SRC-IP-CIDR,192.168.53.1/24
- SRC-IP-CIDR,192.168.63.1/24
- SRC-IP-CIDR,192.168.73.1/24
- SRC-IP-CIDR,192.168.83.1/24
- SRC-IP-CIDR,192.168.93.1/24

View File

@@ -0,0 +1,10 @@
payload:
- SRC-IP-CIDR,192.168.14.1/24
- SRC-IP-CIDR,192.168.24.1/24
- SRC-IP-CIDR,192.168.34.1/24
- SRC-IP-CIDR,192.168.44.5/24
- SRC-IP-CIDR,192.168.54.5/24
- SRC-IP-CIDR,192.168.64.5/24
- SRC-IP-CIDR,192.168.74.5/24
- SRC-IP-CIDR,192.168.84.5/24
- SRC-IP-CIDR,192.168.94.5/24

View File

@@ -0,0 +1,20 @@
payload:
- SRC-IP-CIDR,192.168.15.1/24
- SRC-IP-CIDR,192.168.25.1/24
- SRC-IP-CIDR,192.168.35.1/24
- SRC-IP-CIDR,192.168.41.5/24
- SRC-IP-CIDR,192.168.51.5/24
- SRC-IP-CIDR,192.168.61.5/24
- SRC-IP-CIDR,192.168.71.5/24
- SRC-IP-CIDR,192.168.81.5/24
- SRC-IP-CIDR,192.168.91.5/24
- SRC-IP-CIDR,192.168.10.1/32
- SRC-IP-CIDR,192.168.10.2/32
- SRC-IP-CIDR,192.168.10.3/32
- SRC-IP-CIDR,192.168.10.4/32
- SRC-IP-CIDR,192.168.10.5/32
- SRC-IP-CIDR,192.168.10.6/32
- SRC-IP-CIDR,192.168.10.7/32
- SRC-IP-CIDR,192.168.10.8/32
- SRC-IP-CIDR,192.168.10.9/32

View File

@@ -1,18 +1,11 @@
payload:
- SRC-IP-CIDR,192.168.19.1/24
- SRC-IP-CIDR,192.168.29.1/24
- SRC-IP-CIDR,192.168.39.1/24
- SRC-IP-CIDR,192.168.49.1/24
- SRC-IP-CIDR,192.168.59.1/24
- SRC-IP-CIDR,192.168.69.1/24
- SRC-IP-CIDR,192.168.79.1/24
- SRC-IP-CIDR,192.168.89.1/24
- SRC-IP-CIDR,192.168.99.1/24

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
payload:
- GEOSITE,refilter
- GEOIP,re-filter,no-resolve

View File

@@ -0,0 +1,2 @@
payload:
- GEOSITE,win-spy

View File

@@ -13,6 +13,9 @@ payload:
# IP-ASN: 1
# IP-CIDR: 2
# TOTAL: 36
- GEOSITE,category-ai-!cn
- GEOSITE,category-ai-chat-!cn
- DOMAIN,servd-anthropic-website.b-cdn.net
- DOMAIN-SUFFIX,anthropic.com
- DOMAIN-SUFFIX,claude.ai

View File

@@ -0,0 +1,9 @@
payload:
- DOMAIN,webtoons.com
- DOMAIN,www.webtoons.com
- DOMAIN-SUFFIX,webtoons.com
- DOMAIN-SUFFIX,webtoons.xyz
- DOMAIN-SUFFIX,webtoons-static.pstatic.net
- DOMAIN-SUFFIX,webtoon-phinf.pstatic.net
- DOMAIN-KEYWORD,webtoons
- DOMAIN-SUFFIX,line.me

View File

@@ -3,6 +3,10 @@
##FETCH##
payload:
# Own
- DOMAIN-SUFFIX,cryptocloud.plus
- DOMAIN-SUFFIX,exodus.io
- DOMAIN-SUFFIX,payeer.com
- DOMAIN-SUFFIX,pocket-exchange.com
- DOMAIN-SUFFIX,volet.com

View File

@@ -0,0 +1,2 @@
payload:
- GEOSITE, category-entertainment

View File

@@ -2,6 +2,8 @@
##FETCH## https://github.com/blackmatrix7/ios_rule_script/blob/master/rule/Clash/Rockstar/Rockstar.yaml
payload:
- GEOSITE,category-games-!cn
- DOMAIN,eaasserts-a.akamaihd.net
- DOMAIN,originasserts.akamaized.net
- DOMAIN,gog.salesmanago.com

View File

@@ -2,4 +2,10 @@
##FETCH##
payload:
- GEOSITE,category-novel
- DOMAIN-SUFFIX,libgen.li
- DOMAIN-SUFFIX,gaminik.net
- DOMAIN-SUFFIX,gaminik.cn
- DOMAIN-SUFFIX,langbag.com

View File

@@ -3,18 +3,11 @@
##FETCH## https://github.com/blackmatrix7/ios_rule_script/blob/master/rule/Clash/Reddit/Reddit.yaml
payload:
- GEOSITE,newscorp
- DOMAIN-SUFFIX,habr.com
- DOMAIN-SUFFIX,medium.com
- DOMAIN-SUFFIX,redd.it
- DOMAIN-SUFFIX,reddit.com
- DOMAIN-SUFFIX,redditmail.com
- DOMAIN-SUFFIX,redditmedia.com
- DOMAIN-SUFFIX,redditstatic.com
- DOMAIN-SUFFIX,reddituploads.com
- DOMAIN-SUFFIX,reddituploads.com.cdn-cf.behance.net
- DOMAIN-SUFFIX,reddituploads.com.cdn-cf.dropbox.com
- DOMAIN-SUFFIX,d1f1eryiqyjs0r.cloudfront.net
- DOMAIN-SUFFIX,d3lar09xbwlsge.cloudfront.net
- DOMAIN-SUFFIX,d3q1qj9jzsu8nw.cloudfront.net

View File

@@ -5,6 +5,8 @@ payload:
- DOMAIN-KEYWORD,fisting
- DOMAIN-KEYWORD,punishworld
- DOMAIN-SUFFIX,asstr-mirror.org
- DOMAIN-SUFFIX,tnaflix.com
- DOMAIN-KEYWORD,bdsm
- DOMAIN-SUFFIX,phncdn.com
- DOMAIN-SUFFIX,phprcdn.com
@@ -61,3 +63,11 @@ payload:
- DOMAIN-SUFFIX,sxyprn.net
- DOMAIN-SUFFIX,fapcat.com
- DOMAIN-SUFFIX,redwap.me
- DOMAIN-SUFFIX,pervertium.com
- DOMAIN-SUFFIX,tubesafari.com
- DOMAIN-SUFFIX,growcdnssedge.com
- DOMAIN-SUFFIX,flixcdn.com
- DOMAIN-SUFFIX,noodlemagazine.com
- DOMAIN-SUFFIX,pvvstream.pro

View File

@@ -1,7 +1,5 @@
payload:
- DOMAIN-SUFFIX,globus.ru
- DOMAIN-SUFFIX,samokat.ru
- DOMAIN-SUFFIX,smartmed.pro
- DOMAIN-SUFFIX,megamarket.ru
- DOMAIN-SUFFIX,anextel.ru
- DOMAIN-SUFFIX,2gis.com
- DOMAIN-SUFFIX,rg.ru

View File

@@ -6,6 +6,7 @@ payload:
- DOMAIN-SUFFIX,rutracker.org
- DOMAIN-SUFFIX,rustorka.com
- DOMAIN-SUFFIX,rustorka.top
- DOMAIN-SUFFIX,rutracker.cc
- DOMAIN-KEYWORD,piratebay

View File

@@ -2,4 +2,5 @@
##FETCH##
payload:
- DOMAIN-KEYWORD,aliexpress
- GEOSITE,alibaba
#- DOMAIN-KEYWORD,aliexpress

View File

@@ -0,0 +1,2 @@
payload:
- GEOIP,cloudfront,no-resolve

View File

@@ -3,6 +3,8 @@
##FETCH##
payload:
- GEOIP,cloudflare,no-resolve
- DOMAIN-SUFFIX,cf-ipfs.com
- DOMAIN-SUFFIX,cf-ns.com
- DOMAIN-SUFFIX,cf-ns.net
@@ -16,6 +18,7 @@ payload:
- DOMAIN-SUFFIX,cloudflare-dns.com
- DOMAIN-SUFFIX,cloudflare-ipfs.com
- DOMAIN-SUFFIX,cloudflare-quic.com
- DOMAIN-SUFFIX,cloudflare-ech.com
- DOMAIN-SUFFIX,cloudflare.com
- DOMAIN-SUFFIX,cloudflare.net
- DOMAIN-SUFFIX,cloudflare.tv

View File

@@ -3,6 +3,8 @@
##EXCLUDE## *instagram*
payload:
- GEOIP,facebook,no-resolve
- DOMAIN-SUFFIX,cdninstagram.com
- DOMAIN-SUFFIX,fb.com
- DOMAIN-SUFFIX,fb.me
@@ -15,31 +17,4 @@ payload:
- DOMAIN-SUFFIX,oculus.com
- DOMAIN-SUFFIX,oculuscdn.com
- DOMAIN-SUFFIX,rocksdb.org
- DOMAIN-SUFFIX,whatsapp.com
- DOMAIN-SUFFIX,whatsapp.net
- DOMAIN-KEYWORD,facebook
- IP-ASN,32934
- IP-CIDR,3.123.36.126/32
- IP-CIDR,35.157.215.84/32
- IP-CIDR,35.157.217.255/32
- IP-CIDR,52.58.209.134/32
- IP-CIDR,54.93.124.31/32
- IP-CIDR,54.162.243.80/32
- IP-CIDR,54.173.34.141/32
- IP-CIDR,54.235.23.242/32
- IP-CIDR,169.45.248.118/32
- IP-CIDR,103.4.96.0/22,no-resolve
- IP-CIDR,129.134.0.0/17,no-resolve
- IP-CIDR,157.240.0.0/17,no-resolve
- IP-CIDR,173.252.64.0/19,no-resolve
- IP-CIDR,173.252.96.0/19,no-resolve
- IP-CIDR,179.60.192.0/22,no-resolve
- IP-CIDR,185.60.216.0/22,no-resolve
- IP-CIDR,204.15.20.0/22,no-resolve
- IP-CIDR,31.13.24.0/21,no-resolve
- IP-CIDR,31.13.64.0/18,no-resolve
- IP-CIDR,45.64.40.0/22,no-resolve
- IP-CIDR,66.220.144.0/20,no-resolve
- IP-CIDR,69.171.224.0/19,no-resolve
- IP-CIDR,69.63.176.0/20,no-resolve
- IP-CIDR,74.119.76.0/22,no-resolve

View File

@@ -0,0 +1,6 @@
##FETCH## https://github.com/blackmatrix7/ios_rule_script/blob/master/rule/Clash/Cloudflare/Cloudflare.yaml
##FETCH##
payload:
- GEOIP,fastly,no-resolve

View File

@@ -2,6 +2,8 @@
##FETCH##
payload:
- GEOSITE,google-gemini
- DOMAIN,ai.google.dev
- DOMAIN,alkalimakersuite-pa.clients6.google.com
- DOMAIN,makersuite.google.com

View File

@@ -2,6 +2,8 @@
##FETCH## https://github.com/blackmatrix7/ios_rule_script/blob/master/rule/Clash/GitHub/GitHub.yaml
payload:
- GEOSITE,github
- DOMAIN-SUFFIX,atom.io
- DOMAIN-SUFFIX,dependabot.com
- DOMAIN-SUFFIX,ghcr.io

Some files were not shown because too many files have changed in this diff Show More