1
0
mirror of https://github.com/privacyguides/privacyguides.org.git synced 2025-07-04 10:32:41 +00:00

Compare commits

..

243 Commits

Author SHA1 Message Date
68928f71eb Improvements to the browser page (#1255)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-17 16:12:50 +09:30
1c8fcd812c Update cloud storage intro description (#1254) 2022-05-16 15:09:32 -05:00
7c1a693dec Edit uBlockOrigin to not recommend installing all filter lists (#1238) 2022-05-16 11:13:11 -04:00
fa8e48aa43 Remove Disroot email recommendation (#1117)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-16 22:43:08 +09:30
396a220960 Updates to account deletion article (#1250)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-16 17:06:04 +09:30
7b24cd39b6 Fix source consistency (#1249) 2022-05-16 14:19:21 +09:30
185af90a16 Grammar and wording fixes (#1244)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-16 14:01:18 +09:30
b2f6e52ae8 Rename "email cloaking" to "email aliasing" on overview page (#1245) 2022-05-15 21:35:34 -05:00
fa835f8b35 Rename "MullvadDNS" to just "Mullvad" (#1246) 2022-05-16 02:32:01 +00:00
a86c4b6517 Add "learn more" links to subsections (#1243) 2022-05-15 20:37:00 -05:00
ba1817deb7 Change "Attention" to "Warning" in Warning Box Message (#1242) 2022-05-15 18:45:31 -05:00
e8db5ce8af Update Safari Privacy Report instruction (#1240) 2022-05-15 16:07:11 -05:00
0a2cc8aa81 GDPR rights for account deletion (#1239) 2022-05-16 04:50:02 +09:30
d2d73c63c4 Move files into basics dir (#1236) 2022-05-16 04:07:37 +09:30
72fe29ef70 Add account deletion guide (#1224)
Co-Authored-By: Daniel Nathan Gray <dng@disroot.org>
2022-05-16 02:38:53 +09:30
d687b114c9 fix aA (#1234)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-15 23:14:49 +09:30
4cec0a0c94 Add Brave (#1233)
Co-authored-by: Tommy <contact@tommytran.io>
2022-05-15 22:59:29 +09:30
48a328b022 Link to Arkenfox articles that describe usage (#1232) 2022-05-15 19:44:38 +09:30
01245acdb2 Maintain aspect ratio of YouTube embeds (#1231) 2022-05-14 23:34:16 -05:00
58206b76f2 Remove ControlD DNS (#1222)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-15 00:36:59 +09:30
5eea29d0ce Update "What is DNSSEC?" (#1223) 2022-05-13 18:48:34 -05:00
3810c7e28e Fix typo in MFA guide (#1218) 2022-05-13 13:28:28 -05:00
ce619b6e6a Consistency fix (#1220) 2022-05-13 13:06:44 -05:00
7587dcb2a6 Add F-Droid Download link for Bromite (#1215)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-14 00:12:27 +09:30
e05326e07a Improved the description for ToS;DR (#1216)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-13 23:20:03 +09:30
b2cfa819ae Fix 'macOS' capitalizations (#1213) 2022-05-13 10:35:24 +01:00
c0edc33898 Make headings consistent and remove redundant descriptions (#1207)
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
2022-05-12 18:00:41 -05:00
7ceaa9822c Remove type column from dns table (#1209) 2022-05-12 17:53:02 -05:00
b3004d9008 Detail Safari Private Browsing (#1210)
* Detail Safari Private Browsing

* Remove macOS instructions

* Reorder info

* open -> expand
2022-05-12 17:37:40 -05:00
06e7dbf3f4 Fix wording in cloud storage page (#1205)
* Fix wording in cloud storage page

* Grammar fixes and deleted reduntant info
2022-05-12 16:51:21 -05:00
fc338ea696 Make the instructions more consistent in the browser section (#1204) 2022-05-12 06:51:24 -05:00
6b760d27d0 Fix wording on Firefox sync (#1198)
* Fix wording on Firefox sync
2022-05-12 06:50:45 -05:00
3d90fcc7e5 Fix VPN link (#1197) 2022-05-11 09:06:30 -05:00
df57b8c4e6 Moved the "an", so it feels more correct in a way (#1195) 2022-05-11 06:23:37 -05:00
1d764d03f7 Fix redundant text in the Firefox card (#1193)
* Fix redundant text

* Improved the wording
2022-05-10 22:58:19 -05:00
e78fb0d387 Grammar fix in FreedomBox card (#1194) 2022-05-10 22:40:19 -05:00
70c7b614c1 Update Syncthing description (#1192)
* Update Syncthing description
2022-05-10 22:13:46 -05:00
cd4ce7b55e Fix private keys protection link (#1187)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-09 18:39:13 +09:30
f2a7710aed Bump crowdin/github-action from 1.4.8 to 1.4.9
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1.4.8 to 1.4.9.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](https://github.com/crowdin/github-action/compare/1.4.8...1.4.9)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 04:19:04 +00:00
5eaceb9a8e Fix link in orgmode description (#1186)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-08 20:08:32 +09:30
f9d8426174 Team member Mastodon profile verification 2022-05-05 13:35:24 -05:00
6ee7c34951 Add context to browser configuration options (#1177)
Co-authored-by: lexi <git@lx-is.lol>
2022-05-05 12:25:48 -05:00
cb498b015e Update Cryptomator (#1178)
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
2022-05-05 12:06:39 -05:00
bfb5c88e79 Re-recommend Snowflake (#1176) 2022-05-04 11:10:53 -05:00
d318a6abb0 Update Startpage recommendation (#1175) 2022-05-04 01:35:20 -04:00
238fe7a365 Fix & update Shelter icons (#1174) 2022-05-03 22:10:39 -05:00
c32a64e05c [ImgBot] Optimize images (#1151) 2022-05-03 22:08:32 -05:00
b179d0e09e Minor updates to email page (#1172)
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
2022-05-03 14:14:18 -05:00
b16f4869d6 Droid-ify rebranded as Neo Store (#1171)
Co-authored-by: Jonah Aragon <github@aragon.science>
2022-05-03 13:53:50 -05:00
a846da33ad Add Joplin privacy policy (#1169) 2022-05-03 08:50:04 +01:00
6c044312c2 Minor updates to email aliasing section (#1161)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 16:01:44 +09:30
8a498988e7 Minor wording update to "Do I Need A VPN?" (#1162)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 15:54:42 +09:30
0d781d327b Add more detail to Proton Calendar & Tutanota Calendar (#1163)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 15:52:23 +09:30
8173006301 Add proper Qubes OS download link (#1166)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 15:45:11 +09:30
ed0430bc3a Update legal fair use link (#1167)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 15:39:43 +09:30
137a553ace Show backers on donation page (#1152) 2022-05-03 15:36:27 +09:30
cebf65a89b Fixes OnlyOffice links (#1168) 2022-05-03 15:17:19 +09:30
f34576d18a Mullvad now accepts Monero (#1160) 2022-05-02 21:29:53 -05:00
ffe674124e Update email aliasing service (#1133) 2022-05-02 21:26:48 -05:00
57f497df54 Publish website statistics (#1159) 2022-05-02 12:30:46 -05:00
ab8cabf8e0 Enable Mastodon Profile Verification
Closes #1158
2022-05-02 11:10:24 -05:00
c01b285fe4 Publish repo mirrors (#1157) 2022-05-02 10:56:33 -05:00
45a5a5d2ca Correct i2p android link (#1156) 2022-05-03 01:11:42 +09:30
79537bf1b3 Remove ".onion" check from email providers (#1153)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 00:37:08 +09:30
967882b0b7 Link to Mastodon instead of Twitter (#1155)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-05-03 00:35:21 +09:30
ec9ee8fbc3 Update WKD keys (#1121)
Co-Authored-By: Daniel Nathan Gray <dng@disroot.org>
2022-05-01 20:28:13 -05:00
44f7b7edd8 Fix OnlyOffice description (#1150)
Co-authored-by: Jonah Aragon <github@aragon.science>
2022-05-02 01:26:39 +00:00
9d48a93a76 Add download links to dnscrypt-proxy (#1148) 2022-04-29 14:07:41 -05:00
b295c24a18 Correct link for feedback API 2022-04-29 13:31:48 -05:00
a80a1aa9ac Update mkdocs-material-insiders (#1147) 2022-04-29 10:25:07 -05:00
e4654a71eb Enable feedback widget (#1146) 2022-04-29 09:57:23 -05:00
c1a4eec75e Fix what typo in DNS (#1145) 2022-04-29 23:36:56 +09:30
f5775be4be Clarify details about GPG Suite licensing (#1141) 2022-04-29 08:43:52 -05:00
48ca20b104 Update Syncthing download links (#1142)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-29 22:23:15 +09:30
77de2ba46f Fix broken gpg suite link (#1139) 2022-04-29 15:14:44 +09:30
b7916aa0f1 Update footer social links (#1136)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-29 13:48:33 +09:30
95845ea5e1 Update Startpage logos (#1135)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-29 13:45:11 +09:30
656eeaaab5 Add privacy policies for email providers (#1134)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-29 13:31:31 +09:30
269e9323df Update DuckDuckGo description and logos (#1132)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-29 13:21:28 +09:30
7ba8db2287 Update Firefox for Android description (#1131)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-29 12:57:41 +09:30
8bfa10b6e4 Replace "users" with friendlier terms (#1125)
Co-Authored-By: lexi <git@lx-is.lol>
2022-04-27 20:45:13 -05:00
b9797310ab Yubico and Nitrokey mini icons (#1128) 2022-04-27 20:44:36 -05:00
686e9b7bcf Fixes for donation page (#1129) 2022-04-27 20:44:20 -05:00
c7e207b934 Update Session description (#1124) 2022-04-27 16:56:49 -05:00
40d85c7120 Session messenger update (#1118) 2022-04-27 21:25:31 +00:00
ea5a202af4 Add privacy policies (#1119) 2022-04-27 16:11:29 -05:00
e151d96dd9 Enable SSH Git commit signing (#1122) 2022-04-27 16:04:13 -05:00
afa81ce50a Move email cloaking services and self-hosted email up (#1123) 2022-04-27 16:03:03 -05:00
0fbc894173 Add link to PrivateBin instances list (#1107)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-27 14:37:21 +09:30
e6f5b7456e Fix link, Canary Mail in Encryption Software (#1113)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-27 14:31:39 +09:30
42a301e763 Privacy plugin stats exemption 2022-04-26 23:23:40 -05:00
13210d90bc Add online services and donation information (#1110) 2022-04-26 23:15:21 -05:00
6c297d4f77 Fix broken PR preview teardowns 2022-04-26 23:13:24 -05:00
669311205f Plausible analytics (#1112) 2022-04-26 21:52:59 -05:00
0f4a35d003 Optimized PR Previews 2022-04-26 21:52:13 -05:00
8aacb15e21 Add Element web app link (#1106) 2022-04-26 13:53:02 -05:00
c62de5d29f Use surge.sh for PR previews (#1108) 2022-04-26 13:48:56 -05:00
fce88ba49a Formatting fixes (#1103)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-27 00:57:45 +09:30
25d0374939 Remove CTemplar recommendation (#1104)
https://ctemplar.com/ctemplar-is-shutting-down/

Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-27 00:57:34 +09:30
4dfed7d77d Update SearXNG wording and mention it is a fork (#1101)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-26 00:42:36 +09:30
073e904954 Change SearX to more maintained SearXNG (#1099) 2022-04-24 15:22:52 -05:00
9c0f39f19d Update primary button text (#1095)
Co-Authored-By: Daniel Nathan Gray <dng@disroot.org>
2022-04-24 15:19:48 -05:00
e5b494ecb8 Enable Cloudflare Pages (#1100) 2022-04-24 13:12:18 -05:00
ca24eb6ba5 Make the Android pages more consistent (#1086)
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-25 00:46:26 +09:30
b88beee846 Reduce reliance on external web resources (#1093)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-25 00:26:23 +09:30
33dc6b1211 Less reliance on external resources 2022-04-25 00:22:06 +09:30
313696132a Reduce the number of admonitions across the site (#1092)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-25 00:20:38 +09:30
480e7d5978 Set toc_depth of 4 (#1089)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-24 23:14:11 +09:30
945744e5e9 Fix missing tools entries (#1097)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-24 14:11:26 +09:30
fb8c62fc9c Add more abbreviations (#1087)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-24 00:17:01 +09:30
c8bd1533d8 General site-wide consistency updates (#1085)
Co-Authored-By: Daniel Gray <dng@disroot.org>
2022-04-23 17:53:49 +09:30
ba59882e94 Replace emojis with icons (#1084)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-23 13:24:01 +09:30
07a4a3009d Fix capitalization of KeePassXC and KeePassDX (#1081)
Signed-off-by: Jonah Aragon <jonah@triplebit.net>
2022-04-22 21:53:12 -05:00
8591a1afc1 Merge Android security and overview pages (#1083)
Co-Authored-By: Tommy <contact@tommytran.io>
2022-04-22 21:30:07 -05:00
0be5f75da0 Minor video streaming phrasing updates (#1077)
Signed-off-by: Jonah Aragon <jonah@triplebit.net>
2022-04-23 02:10:34 +00:00
82a251ba35 Remove redundant paragraph on Android overview (#1082) 2022-04-22 22:07:38 -04:00
1dbbabd570 Use dropdown for download links (#1078) 2022-04-23 01:12:10 +00:00
ac8b551d4a Use "set up" instead of "setup" (#1079)
Co-Authored-By: taivlam <47955724+taivlam@users.noreply.github.com>
2022-04-22 19:47:18 -05:00
e1e18378ed Custom Android OS (#1067)
Co-Authored-By: Tommy <contact@tommytran.io>
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-23 03:59:49 +09:30
35ec0bf432 Move Google privacy features to security overview (#1074)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-23 03:03:18 +09:30
40e005c517 Move NewPipe x SponsorBlock to sub-section
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-23 02:52:46 +09:30
504d54e7b2 Split Linux into separate articles (#1066)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-23 02:48:07 +09:30
97640d4f70 Use abbreviations across site (#1060)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-22 12:06:26 -05:00
a4298c0992 Remove WireGuard TM reference (#1073) 2022-04-22 11:11:04 -05:00
4ea12e8831 Don't use "out of the box" phrase (#1070) 2022-04-22 17:42:11 +09:30
23d72ffc43 Use proper filenames 2022-04-21 15:43:42 -05:00
46d646bd5b Show last revision date on documentation (#1062) 2022-04-21 14:25:01 -05:00
e5879a60f5 Remove flag SVGs (#1064) 2022-04-21 14:24:21 -05:00
bbb7ff3a43 Split Android page into separate articles and update device recommendations (#1053)
Co-authored-by: Tad <8296104+SkewedZeppelin@users.noreply.github.com>
2022-04-21 19:09:01 +00:00
396adfb3a8 Fix Datura firewall link (#1061)
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
2022-04-21 12:05:06 -05:00
629db03c02 Fix capitalization of Firefox Sync (#1059) 2022-04-21 11:03:55 -05:00
52b7c1af6a Enable header permalinks 2022-04-21 11:02:41 -05:00
296a5b6404 Fix capitalization of Exif (#1058)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-22 01:10:24 +09:30
ee70136f42 Fix capitalization of VoIP (#1057)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-22 01:08:52 +09:30
2c0c7fdf7e Wireshark not Wireguard, and typo (#1056)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-22 01:06:38 +09:30
994efbb991 Fix capitalization of FreeTube (#1055)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-22 01:05:43 +09:30
ea81e5fa0e Fix Neomutt typo on the email clients page (#1051)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-21 13:50:25 +09:30
d1f9813c3b Use privacyguides fork of mkdocs-material-insiders 2022-04-20 19:59:16 -05:00
95ae693dd0 Update DNS section on tools overview page (#1054)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-21 09:59:52 +09:30
96f98f4908 searx.me link fix (#1048) 2022-04-18 02:09:11 -04:00
8df2ebed45 Correct spelling of YouTube (#1043)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-17 15:50:51 +09:30
99c6845c98 More consistent wording (#1041)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-17 03:05:42 +09:30
62713d50d3 Reduce number of EXIF links (#1030) 2022-04-16 18:40:57 +09:30
14aaaefd69 Removed OBS as it is not involved with testing (#1040) 2022-04-16 09:09:07 +00:00
84b507b2ae Mention OpenQA (#1033) 2022-04-16 07:47:55 +00:00
4582bbfc64 Link to ECS (#1032) 2022-04-16 07:44:28 +00:00
f59c3ba228 Correct 2 typos on MFA page (#1039)
Correct spelling of "separate" and "document"

Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-16 16:57:32 +09:30
8e903c59f6 Minor fix on Linux page (#1038)
Mostly 1 typo and stylization corrections:

* spelling of SD card, according to [Wikipedia](https://en.wikipedia.org/wiki/SD_card)
* use modern stylization of Xfce, according to [Wikipedia](https://en.wikipedia.org/wiki/Xfce)
* Capitalize Vaultwarden, according to its [Wiki](https://github.com/dani-garcia/vaultwarden/wiki)

Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-16 16:55:50 +09:30
ff5b3ee504 Update to relative link in passwords (#1037) 2022-04-16 15:17:12 +09:30
74c61e2e84 Support asset localization (#1027)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-15 15:30:56 +09:30
e43acf1bdc Delete SVGs now we use Mermaid (#1028) 2022-04-15 04:54:05 +09:30
0e2fba583f Fix ControlD display name in DNS table (#1026)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-15 04:52:15 +09:30
da1407eb48 MFA page grammatical fixes #1017
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
Co-authored-by: Daniel Gray <dng@disroot.org>
2022-04-15 03:08:29 +09:30
002aec543f Add manual deployment trigger 2022-04-14 10:09:08 -05:00
569df8a18f Update deploy.yml 2022-04-14 10:00:38 -05:00
28a5f9b2a4 Use relative links to files (#1025) 2022-04-14 14:10:16 +00:00
d2c9864497 Use annotations for tool notes (#1016) 2022-04-14 09:07:15 -05:00
e4311b2689 Add right arrow to link (#1022) 2022-04-14 07:48:35 -05:00
b9e0058739 Add right arrows on Learn more... links (#1015)
Co-authored-by: elitejake <74049394+elitejake@users.noreply.github.com>
2022-04-14 09:41:17 +00:00
4556849ec8 ProtonVPN supports port forwarding Windows (#1019) 2022-04-14 09:38:46 +00:00
779ae1e61a Clarify macOS DNS, use consistent style (#1006)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-14 18:30:02 +09:30
e340ed095c Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-14 04:12:06 +00:00
e812c17394 Update GitHub templates 2022-04-13 21:37:30 -05:00
39daf99deb Update contribution instructions 2022-04-13 20:42:43 -05:00
74f852d2f4 Update Quad9 logging information and DNS server footnotes (#1001) 2022-04-14 01:22:01 +00:00
2fdb3c5f88 Crowdin automatic source updates (#1013) 2022-04-13 20:13:37 -05:00
214ed8e876 Fix link to news aggregators (#1012) 2022-04-13 19:46:05 -05:00
a379164f87 Remove CHANGELOG.md (#1011) 2022-04-14 00:38:37 +00:00
e39f063568 Add support for localization (#995) 2022-04-13 19:19:13 -05:00
7f71093e33 Fix a typo in notices.md (#1008) 2022-04-13 19:15:06 -05:00
bd6ef18a5b Fix a typo in email-clients.md (#1009) 2022-04-13 19:14:37 -05:00
00a13b8fb2 Fix a link in video-streaming.md (#1002)
Co-authored-by: Jonah Aragon <jonah@triplebit.net>
2022-04-13 11:31:24 -05:00
987cffd998 Consistency of search engine source (#998) 2022-04-13 21:22:31 +09:30
f8a6732b38 Remove Social Networks & Social News Aggregators (#953)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-13 16:10:42 +09:30
cd08f12848 Mark .md files as linguist-detectable 2022-04-12 17:37:31 -05:00
9bdc882abd Add Apple Mail to tools overview (#993)
Signed-off-by: lexi <git@lx-is.lol>
2022-04-12 16:26:14 -05:00
9137cb9d06 Add link to discussions in navbar (#994)
Signed-off-by: Jonah Aragon <jonah@triplebit.net>
2022-04-12 16:10:31 -05:00
f2033c9c2f Bump actions/cache from 3.0.1 to 3.0.2 (#989)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 09:10:29 -05:00
0db05bad0a Unsticky sidebar without JS (#981)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-12 13:15:22 +09:30
be558ebfd6 Add release instructions 2022-04-11 22:28:30 -05:00
4ae2e9453c Add changelog, deploy on tagged releases (#987) 2022-04-11 22:10:10 -05:00
834d30ac8c Move articles to blog.privacyguides.org (#985) 2022-04-11 22:01:50 -05:00
a1a20eeeb0 Correct Privacy Guides logo icon 2022-04-11 17:03:42 -05:00
eb6d634d3a Imagepipe F-Droid link correction (#984) 2022-04-11 16:43:43 -05:00
d87bb6b0de Fix EoL cost formula (#973) 2022-04-12 02:30:20 +09:30
8f45e51a9e Fix typo in metapho button (#976)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-12 02:18:19 +09:30
fb6503a200 Re-word to avoid mistake on comprehension (#975) 2022-04-12 01:33:40 +09:30
41beef9fae Add RSS page (#895) 2022-04-11 21:19:13 +09:30
1beaa6c2b7 MFA/YubiKey clarifications (#972) 2022-04-11 18:16:42 +09:30
8d64d97d82 Bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 15:34:41 +09:30
ee4c683e1a Bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 15:34:07 +09:30
65a4dbbf37 Minor update to Metadata Removal article (#971)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-11 15:31:05 +09:30
4b28596983 Move "More places to setup 2FA" to intro (#968) 2022-04-11 12:59:35 +09:30
90292634a8 Replace Proton Calender logo with vector (#967)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-11 03:13:52 +09:30
f6a176b30c Use dark mode logo when in dark mode (in readme) (#965)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-10 23:49:06 +09:30
6673523a71 MFA page update, split recommendations (#862)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-10 23:44:00 +09:30
ce85dc9bf9 Update macOS shortcut image (#964)
Signed-off-by: lexi <git@lx-is.lol>
2022-04-09 17:23:15 -04:00
f7bbd36aef De-indent "Where to get your applications" (#955) 2022-04-09 21:38:59 +09:30
e156345ecf Use styilization of mailcow (#958)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-09 19:34:46 +09:30
c2c8d6fba1 Add link to VPN criteria (#963)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-09 19:30:01 +09:30
aa63bb7378 Remove redundant instructions (#962) 2022-04-09 09:42:48 +00:00
b028b389a9 Integrating Metadata Removal (#919) 2022-04-09 08:07:13 +00:00
24215dc880 Fix FairEmail F-Droid download link (#961) 2022-04-09 03:25:32 -04:00
aabc5827e3 Revert "Change Picocrypt URL (#887)"
This reverts commit 55a4058ef4.
2022-04-09 13:32:04 +09:30
6be4ce2575 Remove old assets unlikely to be ever used again (#954) 2022-04-09 01:20:45 +09:30
8a50bac101 Change "Browser extensions" to "Additional Resources" (#948)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-08 16:29:21 +09:30
0665669173 Remove Pass, use gopass instead (#952)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-08 16:26:44 +09:30
51fc9076cb Update broken links on privacy policy (#946) 2022-04-08 02:54:16 -04:00
d185d5cdc8 Add PG logo (#939)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-08 02:19:19 +09:30
e37fa65be1 Fixed broken links (#938) 2022-04-08 01:36:13 +09:30
72ef50f914 Update outdated licenses in Notices (#934)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-07 23:41:26 +09:30
8776541daa Should I use encrypted DNS update (#926)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-07 22:44:50 +09:30
a98a1e4c5b Fix broken link (#933) 2022-04-07 18:52:08 +09:30
b0dbd8330e Correct 2 minor typos (#932)
* Fix typo in android.md

* Insert space in "Qubes OS"
2022-04-07 04:53:06 -04:00
881df3e5da Update NextDNS ECS availability (#929) 2022-04-06 17:50:50 -08:00
f8b6efb995 Remove Croc from recommendations (#927)
Co-authored-by: Tommy <contact@tommytran.io>
2022-04-06 20:49:52 +00:00
dc94c77dad Require Monero instead of Bitcoin for criteria (#924)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-06 22:14:43 +09:30
2582abe3d7 Fix Tomb logo (#925) 2022-04-06 22:03:40 +09:30
Tad
5e7dc85052 Detail the DivestOS hardening (#904)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-06 17:21:12 +09:30
9a6e6c617d Fix the missing DecSync logo in the tools page (#909)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-06 14:29:00 +09:30
9aff2ad351 Fixed warning on the DNS provider page (#922)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-06 13:48:07 +09:30
be3febe40a Use Public Sans & DM Mono Fonts (#921)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-06 13:29:24 +09:30
2f726c9f4b Split DNS page into 2 pages (#916) 2022-04-05 22:50:44 -05:00
6e14cdfadc Use correct stylization of software project names (#920) 2022-04-05 22:49:44 -05:00
0923783611 Improve wording in the 'How to get involved' section (#917)
* Update wording

Co-authored-by: Freddy <freddy@privacyguides.org>
2022-04-05 19:32:54 +01:00
1e6485fb3c Netlify PR Previews (#915) 2022-04-05 12:29:24 -05:00
9df67861c9 Dark mode CSS fix 2022-04-05 11:31:08 -05:00
4343ae6c02 Remove homepage footer (#914)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-06 01:57:02 +09:30
ffdb89720c Page formatting consistency (#913) 2022-04-05 10:49:24 -05:00
e49aa04efc Fix homepage button (#912) 2022-04-05 10:48:48 -05:00
7d24b5c0c1 Remove deleted blog posts 2022-04-05 14:32:11 +01:00
122f21fce2 Remove old indexes (#911) 2022-04-05 22:58:58 +09:30
3ec675cd05 Update hardware key recommendation (#875) 2022-04-05 08:12:47 -05:00
1b71db4575 Typo 2022-04-05 14:07:34 +01:00
f7a3eaa0cb Archive old blog posts (#910) 2022-04-05 08:04:34 -05:00
5b1f1a14f3 Add VPN, Email and missing mini icons (#907) 2022-04-05 18:18:26 +09:30
24d068bc27 Updating minor factual error 2022-04-05 09:45:08 +01:00
bca3748ca7 Meta information (#898)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-05 16:15:34 +09:30
866e75955a Add TOSDR disclaimer on overview page (#903)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-05 14:30:28 +09:30
5c520ab865 Update the BitLocker image to match the Windows 11 style and rephrase the beginning of the BitLocker description to clarify that BitLocker may not be enabled by default. (#905)
Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-05 14:27:38 +09:30
97e5b9ab0a Minor fixes to blog post (April 4, 2022)
* spelling of WhatsApp
* use spelling of Sudoku from Wikipedia
* cite Tim Wu quote from his book *The Attention Merchants*
    * since other references had sources
    * Originally I wanted to use this paywalled FT
    [article](https://archive.ph/tg90W), but even the article cites Wu's
    book.
* other grammar fixes

Signed-off-by: Daniel Gray <dng@disroot.org>
2022-04-05 14:19:58 +09:30
799c520437 Minor edits 2022-04-04 21:14:32 +01:00
e7ade0215a Add Apple Mail, fix opening and macgpg description (#839) 2022-04-05 04:50:04 +09:30
646 changed files with 6718 additions and 33894 deletions

1
.allowed_signers Normal file
View File

@ -0,0 +1 @@
jonah@privacyguides.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUp+Gi8ZpTDDbZC+GY+3QnFfxkI9rAu07bceyoHDp9O

12
.gitattributes vendored
View File

@ -1,2 +1,14 @@
# Auto detect text files and perform LF normalization
* text=auto
docs/** -linguist-documentation
.git* text
*.json text
*.js text
*.md text linguist-detectable
*.{yml,yaml} text
*.{htm,html} text diff=html
*.svg text
*.png binary
*.{jpeg,jpg} binary

16
.github/CODEOWNERS vendored
View File

@ -1,21 +1,13 @@
# Additional Co-Owners are added to the TOP of this file.
# High-traffic pages
/index.html @JonahAragon @dngray
/blog.html @JonahAragon
/docs/index.md @JonahAragon @dngray
/theme/overrides/ @JonahAragon
# Org/legal
/notices.md @JonahAragon
/privacy-policy.md @JonahAragon
# Org
/docs/about/ @JonahAragon
LICENSE @JonahAragon
# Website dev
/_sass/ @JonahAragon
/_layouts/ @JonahAragon
Gemfile @JonahAragon
Gemfile.lock @JonahAragon
_config.yml @JonahAragon
# Ops
/.github/ @JonahAragon
/.well-known/ @JonahAragon

View File

@ -1,7 +1,6 @@
---
name: "Website Issue"
about: Report a bug with the website. (NO CONTENT ISSUES)
title: "Website Issue | "
---
<!--

View File

@ -1,4 +1,3 @@
blank_issues_enabled: false
contact_links:
- name: Suggest a New Provider or Software
url: https://github.com/privacyguides/privacyguides.org/discussions/new
@ -9,3 +8,6 @@ contact_links:
- name: Share an Idea
url: https://github.com/privacyguides/privacyguides.org/discussions/new
about: Suggest a new feature/section/page or anything else for the website.
- name: Report a Translation Issue
url: https://crowdin.com/project/privacyguides/discussions
about: Please report an issue with website translations on Crowdin.

View File

@ -1,6 +1,4 @@
<!-- Submitting a PR? Awesome!! -->
## Description
<!-- Please use a descriptive title for your PR, it will be included in our changelog -->
Resolves: # <!-- Did you solve an open GitHub issue? Put the number here so we mark it complete! -->

View File

@ -1,46 +0,0 @@
name: Build Website
on:
pull_request:
branches:
- main
env:
PYTHON_VERSION: 3.x
jobs:
build:
name: Build website
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python runtime
uses: actions/setup-python@v3
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Cache files
uses: actions/cache@v3.0.1
with:
key: ${{ github.ref }}
path: .cache
- name: Install Python dependencies
run: |
pip install mkdocs
pip install mkdocs-material
- name: Build website
run: |
mkdocs build
mv .well-known site/
tar cvf site.tar site
mkdocs --version
- name: Package website
uses: actions/upload-artifact@v2
with:
name: generated-site
path: site.tar

27
.github/workflows/crowdin.yml vendored Normal file
View File

@ -0,0 +1,27 @@
name: 💬 Crowdin Upload
on:
push:
branches: [ main ]
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: crowdin action
uses: crowdin/github-action@1.4.9
with:
upload_sources: true
upload_sources_args: '--auto-update --delete-obsolete'
upload_translations: false
download_translations: false
config: crowdin.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@ -1,8 +1,9 @@
name: Deploy Website
name: 📦 Deploy Website
on:
push:
branches:
- main
workflow_dispatch:
release:
types: [published]
env:
PYTHON_VERSION: 3.x
@ -15,39 +16,38 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: '0'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
submodules: 'true'
- name: Set up Python runtime
uses: actions/setup-python@v3
with:
python-version: ${{ env.PYTHON_VERSION }}
python-version: '3.7'
- name: Cache files
uses: actions/cache@v3.0.1
uses: actions/cache@v3.0.2
with:
key: ${{ github.ref }}
path: .cache
- name: Install Python dependencies
run: |
pip install 'mkdocs>=1.3.0'
- name: Install mkdocs-material Insiders build
if: github.event.repository.fork == false
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
git clone --depth 1 https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git
pip install -e mkdocs-material-insiders
pip install pipenv
pipenv install
- name: Build website
run: |
mkdocs build --config-file mkdocs.production.yml
pipenv run mkdocs build
mv .well-known site/
tar cvf site.tar site
mkdocs --version
pipenv run mkdocs --version
- name: Package website
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: generated-site
path: site.tar
@ -60,7 +60,7 @@ jobs:
steps:
- name: Download generated Jekyll site
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: generated-site
- run: tar xvf site.tar

31
.github/workflows/mirror.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: 🪞 Push to Mirrors
on: [ push, delete, create ]
# Ensures that only one mirror task will run at a time.
concurrency:
group: git-mirror
jobs:
git-mirror:
runs-on: ubuntu-latest
steps:
- name: Mirror to GitLab
uses: wearerequired/git-mirror-action@v1
env:
SSH_PRIVATE_KEY: ${{ secrets.ACTIONS_SSH_KEY }}
with:
source-repo: "git@github.com:privacyguides/privacyguides.org.git"
destination-repo: "git@gitlab.com:privacyguides/privacyguides.org.git"
- name: Cleanup
run: |
sudo rm -rf privacyguides.org.git
- name: Mirror to Codeberg
uses: wearerequired/git-mirror-action@v1
env:
SSH_PRIVATE_KEY: ${{ secrets.ACTIONS_SSH_KEY }}
with:
source-repo: "git@github.com:privacyguides/privacyguides.org.git"
destination-repo: "git@codeberg.org:privacyguides/privacyguides.org.git"

44
.github/workflows/preview.yml vendored Normal file
View File

@ -0,0 +1,44 @@
name: 🔂 Surge PR Preview
on:
pull_request_target:
types: [opened, synchronize, reopened]
# Ensures that only one mirror task will run at a time.
concurrency:
group: surge-sh
jobs:
preview:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: write
environment: preview
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: '0'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
ssh-key: ${{ secrets.ACTIONS_SSH_KEY }}
submodules: 'true'
- name: Set up Python runtime
uses: actions/setup-python@v3
with:
python-version: '3.7'
- name: Deploy to surge.sh
uses: afc163/surge-preview@v1
with:
surge_token: ${{ secrets.SURGE_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
dist: site
failOnError: 'true'
build: |
pip install pipenv
pipenv install
pipenv run mkdocs build

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "mkdocs-material-insiders"]
path = mkdocs-material
url = git@github.com:privacyguides/mkdocs-material-insiders.git

View File

@ -6,3 +6,4 @@ no-hard-tabs:
spaces-per-tab: 4
emphasis-style:
style: "asterisk"
no-duplicate-header: false

Binary file not shown.

17
Pipfile Normal file
View File

@ -0,0 +1,17 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
mkdocs = "*"
mkdocs-material = {path = "./mkdocs-material"}
mkdocs-static-i18n = "*"
mkdocs-git-revision-date-localized-plugin = "*"
typing-extensions = "*"
[dev-packages]
scour = "*"
[requires]
python_version = "3.7"

603
Pipfile.lock generated Normal file
View File

@ -0,0 +1,603 @@
{
"_meta": {
"hash": {
"sha256": "2d68765ce86bf264f0a29d6b9f31202a71615d6aad4653cffc874bd095267d29"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.7"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"babel": {
"hashes": [
"sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2",
"sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"
],
"markers": "python_version >= '3.6'",
"version": "==2.10.1"
},
"cairocffi": {
"hashes": [
"sha256:108a3a7cb09e203bdd8501d9baad91d786d204561bd71e9364e8b34897c47b91"
],
"markers": "python_version >= '3.7'",
"version": "==1.3.0"
},
"cairosvg": {
"hashes": [
"sha256:98c276b7e4f0caf01e5c7176765c104ffa1aa1461d63b2053b04ab663cf7052b",
"sha256:b0b9929cf5dba005178d746a8036fcf0025550f498ca54db61873322384783bc"
],
"markers": "python_version >= '3.5'",
"version": "==2.5.2"
},
"certifi": {
"hashes": [
"sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
"sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
],
"version": "==2021.10.8"
},
"cffi": {
"hashes": [
"sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3",
"sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2",
"sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636",
"sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20",
"sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728",
"sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27",
"sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66",
"sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443",
"sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0",
"sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7",
"sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39",
"sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605",
"sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a",
"sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37",
"sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029",
"sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139",
"sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc",
"sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df",
"sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14",
"sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880",
"sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2",
"sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a",
"sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e",
"sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474",
"sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024",
"sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8",
"sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0",
"sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e",
"sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a",
"sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e",
"sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032",
"sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6",
"sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e",
"sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b",
"sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e",
"sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954",
"sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962",
"sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c",
"sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4",
"sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55",
"sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962",
"sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023",
"sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c",
"sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6",
"sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8",
"sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382",
"sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7",
"sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc",
"sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997",
"sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"
],
"version": "==1.15.0"
},
"charset-normalizer": {
"hashes": [
"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
],
"markers": "python_version >= '3'",
"version": "==2.0.12"
},
"click": {
"hashes": [
"sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
"sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
],
"markers": "python_version >= '3.7'",
"version": "==8.1.3"
},
"cssselect2": {
"hashes": [
"sha256:3a83b2a68370c69c9cd3fcb88bbfaebe9d22edeef2c22d1ff3e1ed9c7fa45ed8",
"sha256:5b5d6dea81a5eb0c9ca39f116c8578dd413778060c94c1f51196371618909325"
],
"markers": "python_version >= '3.7'",
"version": "==0.6.0"
},
"defusedxml": {
"hashes": [
"sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69",
"sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.7.1"
},
"ghp-import": {
"hashes": [
"sha256:5f8962b30b20652cdffa9c5a9812f7de6bcb56ec475acac579807719bf242c46",
"sha256:947b3771f11be850c852c64b561c600fdddf794bab363060854c1ee7ad05e071"
],
"version": "==2.0.2"
},
"gitdb": {
"hashes": [
"sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd",
"sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"
],
"markers": "python_version >= '3.6'",
"version": "==4.0.9"
},
"gitpython": {
"hashes": [
"sha256:1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704",
"sha256:5b68b000463593e05ff2b261acff0ff0972df8ab1b70d3cdbd41b546c8b8fc3d"
],
"markers": "python_version >= '3.7'",
"version": "==3.1.27"
},
"idna": {
"hashes": [
"sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
"sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
],
"markers": "python_version >= '3'",
"version": "==3.3"
},
"importlib-metadata": {
"hashes": [
"sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6",
"sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"
],
"markers": "python_version >= '3.7'",
"version": "==4.11.3"
},
"jinja2": {
"hashes": [
"sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8",
"sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"
],
"markers": "python_version >= '3.6'",
"version": "==3.0.3"
},
"lxml": {
"hashes": [
"sha256:078306d19a33920004addeb5f4630781aaeabb6a8d01398045fcde085091a169",
"sha256:0c1978ff1fd81ed9dcbba4f91cf09faf1f8082c9d72eb122e92294716c605428",
"sha256:1010042bfcac2b2dc6098260a2ed022968dbdfaf285fc65a3acf8e4eb1ffd1bc",
"sha256:1d650812b52d98679ed6c6b3b55cbb8fe5a5460a0aef29aeb08dc0b44577df85",
"sha256:20b8a746a026017acf07da39fdb10aa80ad9877046c9182442bf80c84a1c4696",
"sha256:2403a6d6fb61c285969b71f4a3527873fe93fd0abe0832d858a17fe68c8fa507",
"sha256:24f5c5ae618395ed871b3d8ebfcbb36e3f1091fd847bf54c4de623f9107942f3",
"sha256:28d1af847786f68bec57961f31221125c29d6f52d9187c01cd34dc14e2b29430",
"sha256:31499847fc5f73ee17dbe1b8e24c6dafc4e8d5b48803d17d22988976b0171f03",
"sha256:31ba2cbc64516dcdd6c24418daa7abff989ddf3ba6d3ea6f6ce6f2ed6e754ec9",
"sha256:330bff92c26d4aee79c5bc4d9967858bdbe73fdbdbacb5daf623a03a914fe05b",
"sha256:5045ee1ccd45a89c4daec1160217d363fcd23811e26734688007c26f28c9e9e7",
"sha256:52cbf2ff155b19dc4d4100f7442f6a697938bf4493f8d3b0c51d45568d5666b5",
"sha256:530f278849031b0eb12f46cca0e5db01cfe5177ab13bd6878c6e739319bae654",
"sha256:545bd39c9481f2e3f2727c78c169425efbfb3fbba6e7db4f46a80ebb249819ca",
"sha256:5804e04feb4e61babf3911c2a974a5b86f66ee227cc5006230b00ac6d285b3a9",
"sha256:5a58d0b12f5053e270510bf12f753a76aaf3d74c453c00942ed7d2c804ca845c",
"sha256:5f148b0c6133fb928503cfcdfdba395010f997aa44bcf6474fcdd0c5398d9b63",
"sha256:5f7d7d9afc7b293147e2d506a4596641d60181a35279ef3aa5778d0d9d9123fe",
"sha256:60d2f60bd5a2a979df28ab309352cdcf8181bda0cca4529769a945f09aba06f9",
"sha256:6259b511b0f2527e6d55ad87acc1c07b3cbffc3d5e050d7e7bcfa151b8202df9",
"sha256:6268e27873a3d191849204d00d03f65c0e343b3bcb518a6eaae05677c95621d1",
"sha256:627e79894770783c129cc5e89b947e52aa26e8e0557c7e205368a809da4b7939",
"sha256:62f93eac69ec0f4be98d1b96f4d6b964855b8255c345c17ff12c20b93f247b68",
"sha256:6d6483b1229470e1d8835e52e0ff3c6973b9b97b24cd1c116dca90b57a2cc613",
"sha256:6f7b82934c08e28a2d537d870293236b1000d94d0b4583825ab9649aef7ddf63",
"sha256:6fe4ef4402df0250b75ba876c3795510d782def5c1e63890bde02d622570d39e",
"sha256:719544565c2937c21a6f76d520e6e52b726d132815adb3447ccffbe9f44203c4",
"sha256:730766072fd5dcb219dd2b95c4c49752a54f00157f322bc6d71f7d2a31fecd79",
"sha256:74eb65ec61e3c7c019d7169387d1b6ffcfea1b9ec5894d116a9a903636e4a0b1",
"sha256:7993232bd4044392c47779a3c7e8889fea6883be46281d45a81451acfd704d7e",
"sha256:80bbaddf2baab7e6de4bc47405e34948e694a9efe0861c61cdc23aa774fcb141",
"sha256:86545e351e879d0b72b620db6a3b96346921fa87b3d366d6c074e5a9a0b8dadb",
"sha256:891dc8f522d7059ff0024cd3ae79fd224752676447f9c678f2a5c14b84d9a939",
"sha256:8a31f24e2a0b6317f33aafbb2f0895c0bce772980ae60c2c640d82caac49628a",
"sha256:8b99ec73073b37f9ebe8caf399001848fced9c08064effdbfc4da2b5a8d07b93",
"sha256:986b7a96228c9b4942ec420eff37556c5777bfba6758edcb95421e4a614b57f9",
"sha256:a1547ff4b8a833511eeaceacbcd17b043214fcdb385148f9c1bc5556ca9623e2",
"sha256:a2bfc7e2a0601b475477c954bf167dee6d0f55cb167e3f3e7cefad906e7759f6",
"sha256:a3c5f1a719aa11866ffc530d54ad965063a8cbbecae6515acbd5f0fae8f48eaa",
"sha256:a9f1c3489736ff8e1c7652e9dc39f80cff820f23624f23d9eab6e122ac99b150",
"sha256:aa0cf4922da7a3c905d000b35065df6184c0dc1d866dd3b86fd961905bbad2ea",
"sha256:ad4332a532e2d5acb231a2e5d33f943750091ee435daffca3fec0a53224e7e33",
"sha256:b2582b238e1658c4061ebe1b4df53c435190d22457642377fd0cb30685cdfb76",
"sha256:b6fc2e2fb6f532cf48b5fed57567ef286addcef38c28874458a41b7837a57807",
"sha256:b92d40121dcbd74831b690a75533da703750f7041b4bf951befc657c37e5695a",
"sha256:bbab6faf6568484707acc052f4dfc3802bdb0cafe079383fbaa23f1cdae9ecd4",
"sha256:c0b88ed1ae66777a798dc54f627e32d3b81c8009967c63993c450ee4cbcbec15",
"sha256:ce13d6291a5f47c1c8dbd375baa78551053bc6b5e5c0e9bb8e39c0a8359fd52f",
"sha256:db3535733f59e5605a88a706824dfcb9bd06725e709ecb017e165fc1d6e7d429",
"sha256:dd10383f1d6b7edf247d0960a3db274c07e96cf3a3fc7c41c8448f93eac3fb1c",
"sha256:e01f9531ba5420838c801c21c1b0f45dbc9607cb22ea2cf132844453bec863a5",
"sha256:e11527dc23d5ef44d76fef11213215c34f36af1608074561fcc561d983aeb870",
"sha256:e1ab2fac607842ac36864e358c42feb0960ae62c34aa4caaf12ada0a1fb5d99b",
"sha256:e1fd7d2fe11f1cb63d3336d147c852f6d07de0d0020d704c6031b46a30b02ca8",
"sha256:e9f84ed9f4d50b74fbc77298ee5c870f67cb7e91dcdc1a6915cb1ff6a317476c",
"sha256:ec4b4e75fc68da9dc0ed73dcdb431c25c57775383fec325d23a770a64e7ebc87",
"sha256:f10ce66fcdeb3543df51d423ede7e238be98412232fca5daec3e54bcd16b8da0",
"sha256:f63f62fc60e6228a4ca9abae28228f35e1bd3ce675013d1dfb828688d50c6e23",
"sha256:fa56bb08b3dd8eac3a8c5b7d075c94e74f755fd9d8a04543ae8d37b1612dd170",
"sha256:fa9b7c450be85bfc6cd39f6df8c5b8cbd76b5d6fc1f69efec80203f9894b885f"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==4.8.0"
},
"markdown": {
"hashes": [
"sha256:76df8ae32294ec39dcf89340382882dfa12975f87f45c3ed1ecdb1e8cefc7006",
"sha256:9923332318f843411e9932237530df53162e29dc7a4e2b91e35764583c46c9a3"
],
"markers": "python_version >= '3.6'",
"version": "==3.3.6"
},
"markupsafe": {
"hashes": [
"sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003",
"sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88",
"sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5",
"sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7",
"sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a",
"sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603",
"sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1",
"sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135",
"sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247",
"sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6",
"sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601",
"sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77",
"sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02",
"sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e",
"sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63",
"sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f",
"sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980",
"sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b",
"sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812",
"sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff",
"sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96",
"sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1",
"sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925",
"sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a",
"sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6",
"sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e",
"sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f",
"sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4",
"sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f",
"sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3",
"sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c",
"sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a",
"sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417",
"sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a",
"sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a",
"sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37",
"sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452",
"sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933",
"sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a",
"sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"
],
"markers": "python_version >= '3.7'",
"version": "==2.1.1"
},
"mergedeep": {
"hashes": [
"sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8",
"sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"
],
"markers": "python_version >= '3.6'",
"version": "==1.3.4"
},
"mkdocs": {
"hashes": [
"sha256:26bd2b03d739ac57a3e6eed0b7bcc86168703b719c27b99ad6ca91dc439aacde",
"sha256:b504405b04da38795fec9b2e5e28f6aa3a73bb0960cb6d5d27ead28952bd35ea"
],
"index": "pypi",
"version": "==1.3.0"
},
"mkdocs-git-revision-date-localized-plugin": {
"hashes": [
"sha256:f3e020b445e7b4fb4e58ccd46b07adecbca0f85ac1659e1a63e38b8779c81ba7",
"sha256:ffcf206b5108d9f729af6cd42377d2e0e25c080817fdad0119549ac924b526f3"
],
"index": "pypi",
"version": "==1.0.1"
},
"mkdocs-material": {
"path": "./mkdocs-material",
"version": "==8.2.12+insiders.4.13.2"
},
"mkdocs-material-extensions": {
"hashes": [
"sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44",
"sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2"
],
"markers": "python_version >= '3.6'",
"version": "==1.0.3"
},
"mkdocs-static-i18n": {
"hashes": [
"sha256:5d69b4eb284931bd048a36f923367f2a7bd0dc7b0438008dce8ca1a8feee99e2"
],
"index": "pypi",
"version": "==0.45"
},
"packaging": {
"hashes": [
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
"sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
],
"markers": "python_version >= '3.6'",
"version": "==21.3"
},
"pillow": {
"hashes": [
"sha256:01ce45deec9df310cbbee11104bae1a2a43308dd9c317f99235b6d3080ddd66e",
"sha256:0c51cb9edac8a5abd069fd0758ac0a8bfe52c261ee0e330f363548aca6893595",
"sha256:17869489de2fce6c36690a0c721bd3db176194af5f39249c1ac56d0bb0fcc512",
"sha256:21dee8466b42912335151d24c1665fcf44dc2ee47e021d233a40c3ca5adae59c",
"sha256:25023a6209a4d7c42154073144608c9a71d3512b648a2f5d4465182cb93d3477",
"sha256:255c9d69754a4c90b0ee484967fc8818c7ff8311c6dddcc43a4340e10cd1636a",
"sha256:35be4a9f65441d9982240e6966c1eaa1c654c4e5e931eaf580130409e31804d4",
"sha256:3f42364485bfdab19c1373b5cd62f7c5ab7cc052e19644862ec8f15bb8af289e",
"sha256:3fddcdb619ba04491e8f771636583a7cc5a5051cd193ff1aa1ee8616d2a692c5",
"sha256:463acf531f5d0925ca55904fa668bb3461c3ef6bc779e1d6d8a488092bdee378",
"sha256:4fe29a070de394e449fd88ebe1624d1e2d7ddeed4c12e0b31624561b58948d9a",
"sha256:55dd1cf09a1fd7c7b78425967aacae9b0d70125f7d3ab973fadc7b5abc3de652",
"sha256:5a3ecc026ea0e14d0ad7cd990ea7f48bfcb3eb4271034657dc9d06933c6629a7",
"sha256:5cfca31ab4c13552a0f354c87fbd7f162a4fafd25e6b521bba93a57fe6a3700a",
"sha256:66822d01e82506a19407d1afc104c3fcea3b81d5eb11485e593ad6b8492f995a",
"sha256:69e5ddc609230d4408277af135c5b5c8fe7a54b2bdb8ad7c5100b86b3aab04c6",
"sha256:6b6d4050b208c8ff886fd3db6690bf04f9a48749d78b41b7a5bf24c236ab0165",
"sha256:7a053bd4d65a3294b153bdd7724dce864a1d548416a5ef61f6d03bf149205160",
"sha256:82283af99c1c3a5ba1da44c67296d5aad19f11c535b551a5ae55328a317ce331",
"sha256:8782189c796eff29dbb37dd87afa4ad4d40fc90b2742704f94812851b725964b",
"sha256:8d79c6f468215d1a8415aa53d9868a6b40c4682165b8cb62a221b1baa47db458",
"sha256:97bda660702a856c2c9e12ec26fc6d187631ddfd896ff685814ab21ef0597033",
"sha256:a325ac71914c5c043fa50441b36606e64a10cd262de12f7a179620f579752ff8",
"sha256:a336a4f74baf67e26f3acc4d61c913e378e931817cd1e2ef4dfb79d3e051b481",
"sha256:a598d8830f6ef5501002ae85c7dbfcd9c27cc4efc02a1989369303ba85573e58",
"sha256:a5eaf3b42df2bcda61c53a742ee2c6e63f777d0e085bbc6b2ab7ed57deb13db7",
"sha256:aea7ce61328e15943d7b9eaca87e81f7c62ff90f669116f857262e9da4057ba3",
"sha256:af79d3fde1fc2e33561166d62e3b63f0cc3e47b5a3a2e5fea40d4917754734ea",
"sha256:c24f718f9dd73bb2b31a6201e6db5ea4a61fdd1d1c200f43ee585fc6dcd21b34",
"sha256:c5b0ff59785d93b3437c3703e3c64c178aabada51dea2a7f2c5eccf1bcf565a3",
"sha256:c7110ec1701b0bf8df569a7592a196c9d07c764a0a74f65471ea56816f10e2c8",
"sha256:c870193cce4b76713a2b29be5d8327c8ccbe0d4a49bc22968aa1e680930f5581",
"sha256:c9efef876c21788366ea1f50ecb39d5d6f65febe25ad1d4c0b8dff98843ac244",
"sha256:de344bcf6e2463bb25179d74d6e7989e375f906bcec8cb86edb8b12acbc7dfef",
"sha256:eb1b89b11256b5b6cad5e7593f9061ac4624f7651f7a8eb4dfa37caa1dfaa4d0",
"sha256:ed742214068efa95e9844c2d9129e209ed63f61baa4d54dbf4cf8b5e2d30ccf2",
"sha256:f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97",
"sha256:fb89397013cf302f282f0fc998bb7abf11d49dcff72c8ecb320f76ea6e2c5717"
],
"markers": "python_version >= '3.7'",
"version": "==9.1.0"
},
"pycparser": {
"hashes": [
"sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
"sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
],
"version": "==2.21"
},
"pygments": {
"hashes": [
"sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb",
"sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"
],
"markers": "python_version >= '3.6'",
"version": "==2.12.0"
},
"pymdown-extensions": {
"hashes": [
"sha256:1baa22a60550f731630474cad28feb0405c8101f1a7ddc3ec0ed86ee510bcc43",
"sha256:5b7432456bf555ce2b0ab3c2439401084cda8110f24f6b3ecef952b8313dfa1b"
],
"markers": "python_version >= '3.7'",
"version": "==9.4"
},
"pyparsing": {
"hashes": [
"sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954",
"sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06"
],
"markers": "python_full_version >= '3.6.8'",
"version": "==3.0.8"
},
"python-dateutil": {
"hashes": [
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.8.2"
},
"pytz": {
"hashes": [
"sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7",
"sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"
],
"version": "==2022.1"
},
"pyyaml": {
"hashes": [
"sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293",
"sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b",
"sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57",
"sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b",
"sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4",
"sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07",
"sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba",
"sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9",
"sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287",
"sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513",
"sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0",
"sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0",
"sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92",
"sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f",
"sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2",
"sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc",
"sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c",
"sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86",
"sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4",
"sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c",
"sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34",
"sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b",
"sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c",
"sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb",
"sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737",
"sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3",
"sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d",
"sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53",
"sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78",
"sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803",
"sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a",
"sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174",
"sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"
],
"markers": "python_version >= '3.6'",
"version": "==6.0"
},
"pyyaml-env-tag": {
"hashes": [
"sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb",
"sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"
],
"markers": "python_version >= '3.6'",
"version": "==0.1"
},
"requests": {
"hashes": [
"sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61",
"sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
"version": "==2.27.1"
},
"six": {
"hashes": [
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"smmap": {
"hashes": [
"sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94",
"sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"
],
"markers": "python_version >= '3.6'",
"version": "==5.0.0"
},
"tinycss2": {
"hashes": [
"sha256:b2e44dd8883c360c35dd0d1b5aad0b610e5156c2cb3b33434634e539ead9d8bf",
"sha256:fe794ceaadfe3cf3e686b22155d0da5780dd0e273471a51846d0a02bc204fec8"
],
"markers": "python_version >= '3.6'",
"version": "==1.1.1"
},
"typing-extensions": {
"hashes": [
"sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708",
"sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"
],
"index": "pypi",
"version": "==4.2.0"
},
"urllib3": {
"hashes": [
"sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
"sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
"version": "==1.26.9"
},
"watchdog": {
"hashes": [
"sha256:03b43d583df0f18782a0431b6e9e9965c5b3f7cf8ec36a00b930def67942c385",
"sha256:0908bb50f6f7de54d5d31ec3da1654cb7287c6b87bce371954561e6de379d690",
"sha256:0b4a1fe6201c6e5a1926f5767b8664b45f0fcb429b62564a41f490ff1ce1dc7a",
"sha256:177bae28ca723bc00846466016d34f8c1d6a621383b6caca86745918d55c7383",
"sha256:19b36d436578eb437e029c6b838e732ed08054956366f6dd11875434a62d2b99",
"sha256:1d1cf7dfd747dec519486a98ef16097e6c480934ef115b16f18adb341df747a4",
"sha256:1e877c70245424b06c41ac258023ea4bd0c8e4ff15d7c1368f17cd0ae6e351dd",
"sha256:340b875aecf4b0e6672076a6f05cfce6686935559bb6d34cebedee04126a9566",
"sha256:351e09b6d9374d5bcb947e6ac47a608ec25b9d70583e9db00b2fcdb97b00b572",
"sha256:3fd47815353be9c44eebc94cc28fe26b2b0c5bd889dafc4a5a7cbdf924143480",
"sha256:49639865e3db4be032a96695c98ac09eed39bbb43fe876bb217da8f8101689a6",
"sha256:4d0e98ac2e8dd803a56f4e10438b33a2d40390a72750cff4939b4b274e7906fa",
"sha256:6e6ae29b72977f2e1ee3d0b760d7ee47896cb53e831cbeede3e64485e5633cc8",
"sha256:7f14ce6adea2af1bba495acdde0e510aecaeb13b33f7bd2f6324e551b26688ca",
"sha256:81982c7884aac75017a6ecc72f1a4fedbae04181a8665a34afce9539fc1b3fab",
"sha256:81a5861d0158a7e55fe149335fb2bbfa6f48cbcbd149b52dbe2cd9a544034bbd",
"sha256:ae934e34c11aa8296c18f70bf66ed60e9870fcdb4cc19129a04ca83ab23e7055",
"sha256:b26e13e8008dcaea6a909e91d39b629a39635d1a8a7239dd35327c74f4388601",
"sha256:b3750ee5399e6e9c69eae8b125092b871ee9e2fcbd657a92747aea28f9056a5c",
"sha256:b61acffaf5cd5d664af555c0850f9747cc5f2baf71e54bbac164c58398d6ca7b",
"sha256:b9777664848160449e5b4260e0b7bc1ae0f6f4992a8b285db4ec1ef119ffa0e2",
"sha256:bdcbf75580bf4b960fb659bbccd00123d83119619195f42d721e002c1621602f",
"sha256:d802d65262a560278cf1a65ef7cae4e2bc7ecfe19e5451349e4c67e23c9dc420",
"sha256:ed6d9aad09a2a948572224663ab00f8975fae242aa540509737bb4507133fa2d"
],
"markers": "python_version >= '3.6'",
"version": "==2.1.7"
},
"webencodings": {
"hashes": [
"sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
"sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
],
"version": "==0.5.1"
},
"zipp": {
"hashes": [
"sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad",
"sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"
],
"markers": "python_version >= '3.7'",
"version": "==3.8.0"
}
},
"develop": {
"scour": {
"hashes": [
"sha256:6881ec26660c130c5ecd996ac6f6b03939dd574198f50773f2508b81a68e0daf"
],
"index": "pypi",
"version": "==0.38.2"
},
"six": {
"hashes": [
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
}
}
}

View File

@ -1,8 +1,13 @@
<!-- markdownlint-disable MD041 -->
<div align="center">
<a href="https://privacyguides.org">
<a href="https://privacyguides.org#gh-light-mode-only">
<img src="/docs/assets/img/layout/privacy-guides-logo.svg" width="500px" alt="Privacy Guides" />
</a>
<a href="https://privacyguides.org#gh-dark-mode-only">
<img src="/docs/assets/img/layout/privacy-guides-logo-dark.svg" width="500px" alt="Privacy Guides" />
</a>
<p><em>Your central privacy and security resource to protect yourself online.</em></p>
<a href="https://opencollective.com/privacyguides">
@ -12,6 +17,9 @@
<p><a href="https://www.reddit.com/r/PrivacyGuides/">
<img src="https://img.shields.io/reddit/subreddit-subscribers/PrivacyGuides?label=Subscribe%20to%20r%2FPrivacyGuides&style=social">
</a>
<a href="https://mastodon.social/@privacyguides">
<img src="https://img.shields.io/mastodon/follow/107604420394178246?style=social">
</a>
<a href="https://twitter.com/privacy_guides">
<img src="https://img.shields.io/twitter/follow/privacy_guides?style=social">
</a>
@ -30,13 +38,56 @@
</a>
<a href="https://github.com/privacyguides/privacyguides.org/pulls?q=is%3Apr+is%3Aclosed">
<img src="https://img.shields.io/github/issues-pr-closed-raw/privacyguides/privacyguides.org">
</a>
<a href="https://crowdin.com/project/privacyguides">
<img src="https://badges.crowdin.net/privacyguides/localized.svg">
</a></p>
</div>
## About
**Privacy Guides** is a socially motivated website that provides information for protecting your data security and privacy. We are a non-profit collective operated entirely by volunteer team members and contributors.
Our current list of team members can be found [here](https://github.com/orgs/privacyguides/people). Additionally, [many people](https://github.com/privacyguides/privacyguides.org/graphs/contributors) have made contributions to the project, and you can too!
## Contributing
- 💬 [Start a discussion or suggest an idea](https://github.com/privacyguides/privacyguides.org/discussions)
- 💖 [Sponsor the project](https://github.com/sponsors/privacyguides)
- 🈴 [Help translate the site](https://crwd.in/privacyguides) [[Matrix chat](https://matrix.to/#/#pg-i18n:aragon.sh)]
- 📝 Edit the site, everything's accessible in this repo
- Browse our [open issues](https://github.com/privacyguides/privacyguides.org/issues) to see what needs to be updated
- View some contribution tips on our [contributor's wiki](https://github.com/privacyguides/privacyguides.org/wiki)
## Mirrors
[![GitHub](https://img.shields.io/static/v1?logo=github&label=&message=GitHub&color=000&style=for-the-badge)](https://github.com/privacyguides/privacyguides.org)
[![Gitea](https://img.shields.io/static/v1?logo=gitea&label=&message=Gitea&color=000&style=for-the-badge)](https://code.privacyguides.dev/privacyguides/privacyguides.org)
[![GitLab](https://img.shields.io/static/v1?logo=gitlab&label=&message=GitLab&color=000&style=for-the-badge)](https://gitlab.com/privacyguides/privacyguides.org)
[![Codeberg](https://img.shields.io/static/v1?logo=codeberg&label=&message=Codeberg&color=000&style=for-the-badge)](https://codeberg.org/privacyguides/privacyguides.org)
## Developing
1. Clone this repository: `git clone https://github.com/privacyguides/privacyguides.org`
1. Clone this repository and submodules: `git clone --recurse-submodules https://github.com/privacyguides/privacyguides.org`
2. Install [Python 3.6+](https://www.python.org/downloads/)
3. Install [mkdocs-material](https://squidfunk.github.io/mkdocs-material/getting-started/): `pip install mkdocs-material`
4. Serve the site locally: `mkdocs serve`
- The site will be available at `http://localhost:8000/`.
3. Install **pipenv**: `pip install pipenv`
4. Start a pipenv shell: `pipenv shell`
5. Install dependencies: `pipenv install --dev`
6. Serve the site locally: `mkdocs serve`
- The site will be available at `http://localhost:8000`
- You can build the site locally with `mkdocs build`
- This version of the site should be identical to the live, production version
## Releasing
1. Create a new tag: `git tag -s v2.X.X -m 'Some message'`
- [View existing tags](https://github.com/privacyguides/privacyguides.org/tags)
- Tag [numbering](https://semver.org/): Increment the MINOR (2nd) number when making significant changes (adding/deleting pages, etc.), increment the PATCH (3rd) number when making minor changes (typos, bug fixes). Probably leave the MAJOR number at 2 until a massive redesign (v1 -> v2 was the Jekyll to MkDocs transition).
2. Push the tag to GitHub: `git push --tags`
3. [Create a new release](https://github.com/privacyguides/privacyguides.org/releases/new) selecting the new tag
- Title the release the same as the tag version number without the `v`, i.e. `2.X.X`
- For more significant releases, add a **short** title, for example [2.3.0 - Localization Support](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.3.0) or [2.2.0 - Removing Social Networks](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.2.0)
- GitHub should let you auto-generate release notes based on PR titles
- Mark more significant changes in bold, see [2.3.0](https://github.com/privacyguides/privacyguides.org/releases/tag/v2.3.0) for example
4. Publish release, it will be deployed to the live site automatically
- When publishing more significant releases (generally any with a MINOR version increment) check the "Create a discussion for this release" box to post an announcement

18
crowdin.yml Normal file
View File

@ -0,0 +1,18 @@
project_id_env: CROWDIN_PROJECT_ID
api_token_env: CROWDIN_PERSONAL_TOKEN
"preserve_hierarchy": true
files:
- source: "/docs/**/*.en.*"
translation: "/docs/**/%file_name%.%locale_with_underscore%.%file_extension%"
translation_replace:
"en.": ""
update_option: update_as_unapproved
- source: "/theme/overrides/*.en.html"
translation: "/theme/overrides/%file_name%.%locale_with_underscore%.html"
translation_replace:
"en.": ""
- source: "/includes/*.en.md"
translation: "/includes/%file_name%.%locale_with_underscore%.md"
translation_replace:
"en.": ""
update_option: update_as_unapproved

11
docs/about.en.md Normal file
View File

@ -0,0 +1,11 @@
---
title: "About Privacy Guides"
---
**Privacy Guides** is a socially motivated website that provides information for protecting your data security and privacy. We are a non-profit collective operated entirely by volunteer team members and contributors.
Our current list of team members can be found [here on GitHub](https://github.com/orgs/privacyguides/people). Additionally, [many people](https://github.com/privacyguides/privacyguides.org/graphs/contributors) have made contributions to the project. You can too, we're open sourced on GitHub!
Our team members review all changes made to the website and handle administrative duties such as web hosting and financials, however they do not personally profit from any contributions made to this site. Our financials are transparently hosted by the Open Collective Foundation 501(c)(3) at [opencollective.com/privacyguides](https://opencollective.com/privacyguides). Donations to Privacy Guides are generally tax deductible in the United States.
:fontawesome-brands-creative-commons: :fontawesome-brands-creative-commons-zero: Unless otherwise noted, the original content on this website is made available under a [CC0 1.0 Universal Public Domain Dedication](https://github.com/privacyguides/privacyguides.org/blob/main/LICENSE). This means that it is completely free of copyright and can be used or reshared as you wish. Though not strictly required, we do kindly request you attribute us by linking back to our homepage from your project.

45
docs/about/donate.en.md Normal file
View File

@ -0,0 +1,45 @@
---
title: Supporting Us
---
<!-- markdownlint-disable MD036 -->
It takes a lot of [people](https://github.com/privacyguides/privacyguides.org/graphs/contributors) and [work](https://github.com/privacyguides/privacyguides.org/pulse/monthly) to keep Privacy Guides up to date and spreading the word about privacy and mass surveillance. If you like what we do, the best way to help out is by getting involved by [editing the site](https://github.com/privacyguides/privacyguides.org) or [contributing translations](https://crowdin.com/project/privacyguides).
If you want to support us financially, the most convenient method for us is contributing via Open Collective, a website operated by our fiscal host. Open Collective accepts payments via credit/debit card, PayPal, and bank transfers.
[Donate on OpenCollective.com](https://opencollective.com/privacyguides/donate){ .md-button .md-button--primary }
Donations made directly to us Open Collective are generally tax-deductible in the US, because our fiscal host (the Open Collective Foundation) is a registered 501(c)3 organization. You will receive a receipt from the Open Collective Foundation after donating. Privacy Guides does not provide financial advice, and you should contact your tax advisor to find out whether this is applicable to you.
If you already make use of GitHub sponsorships, you can also sponsor our organization there.
[Sponsor us on GitHub](https://github.com/sponsors/privacyguides){ .md-button }
## Backers
A special thanks to all those who support our mission! :heart:
*Please note: This section loads a widget directly from Open Collective. This section does not reflect donations made outside of Open Collective, and we have no control over the specific donors featured in this section.*
<script src="https://opencollective.com/privacyguides/banner.js"></script>
## How We Use Donations
Privacy Guides is a **non-profit** organization. We use donations for a variety of purposes, including:
**Domain Registrations**
: We have a few domain names like `privacyguides.org` which cost us around $10 yearly to maintain their registration.
**Web Hosting**
: Traffic to this website uses hundreds of gigabytes of data per month, we use a variety of service providers to keep up with this traffic.
**Online Services**
: We host [internet services](https://privacyguides.net) for testing and showcasing different privacy-products we like and [recommend](../tools.md). Some of which are made publicly available for our community's use (SearXNG, Tor, etc.), and some are provided for our team members (email, etc.).
**Product Purchases**
: We occasionally purchase products and services for the purposes of testing our [recommended tools](../tools.md).
We are still working with our fiscal host (the Open Collective Foundation) to receive cryptocurrency donations, at the moment the accounting is unfeasible for many smaller transactions, but this should change in the future. In the meantime, if you wish to make a sizable (> $100) cryptocurrency donation please reach out to [jonah@privacyguides.org](mailto:jonah@privacyguides.org).

43
docs/about/notices.en.md Normal file
View File

@ -0,0 +1,43 @@
---
title: "Notices and Disclaimers"
hide:
- toc
---
## Legal Disclaimer
Privacy Guides is not a law firm. As such, the Privacy Guides website and contributors are not providing legal advice. The material and recommendations in our website and guides do not constitute legal advice nor does contributing to the website or communicating with Privacy Guides or other contributors about our website create an attorney-client relationship.
Running this website, like any human endeavor, involves uncertainty and trade-offs. We hope this website helps, but it may include mistakes and cant address every situation. If you have any questions about your situation, we encourage you to do your own research, seek out other experts, and engage in discussions with the Privacy Guides community. If you have any legal questions, you should consult with your own legal counsel before moving forward.
Privacy Guides is an open source project contributed to under licenses that include terms that, for the protection of the website and its contributors, make clear that the Privacy Guides project and website is offered "as-is", without warranty, and disclaiming liability for damages resulting from using the website or any recommendations contained within. Privacy Guides does not warrant or make any representations concerning the accuracy, likely results, or reliability of the use of the materials on the website or otherwise relating to such materials on the website or on any third-party sites linked on this site.
Privacy Guides additionally does not warrant that this website will be constantly available, or available at all.
## Licenses
Unless otherwise noted, all content on this website is made freely available under the terms of the [Creative Commons CC0 1.0 Universal](https://github.com/privacyguides/privacyguides.org/blob/main/LICENSE).
This does not include third-party code embedded in this repository, or code where a superseding license is otherwise noted. The following are notable examples, but this list may not be all-inclusive:
* [MathJax](https://github.com/privacyguides/privacyguides.org/blob/main/docs/javascripts/mathjax.js) is licensed under the [Apache License 2.0](https://github.com/privacyguides/privacyguides.org/blob/main/docs/javascripts/LICENSE.mathjax.txt).
Portions of this notice itself were adopted from [opensource.guide](https://github.com/github/opensource.guide/blob/master/notices.md) on GitHub. That resource and this page itself are released under [CC-BY-4.0](https://github.com/github/opensource.guide/blob/master/LICENSE).
This means that you can use the human-readable content in this repository for your own project, per the terms outlined in the CC0 1.0 Universal text. You **may not** use the Privacy Guides branding in your own project without express approval from this project. Privacy Guides's brand trademarks include the "Privacy Guides" wordmark and shield logo.
We believe that the logos and other images in `assets` obtained from third-party providers are either in the public domain or **fair use**. In a nutshell, legal [fair use doctrine](https://www.copyright.gov/fair-use/more-info.html) allows the use of copyrighted images in order to identify the subject matter for purposes of public comment. However, these logos and other images may still be subject to trademark laws in one or more jurisdictions. Before using this content, please ensure that it is used to identify the entity or organization that owns the trademark and that you have the right to use it under the laws which apply in the circumstances of your intended use. *When copying content from this website, you are solely responsible for ensuring that you do not infringe someone else's trademark or copyright.*
When you contribute to this repository you are doing so under the above licenses.
## Acceptable Use
You may not use this website in any way that causes or may cause damage to the website or impairment of the availability or accessibility of Privacy Guides, or in any way which is unlawful, illegal, fraudulent, harmful, or in connection with any unlawful, illegal, fraudulent, or harmful purpose or activity.
You must not conduct any systematic or automated data collection activities on or in relation to this website without express written consent from Aragon Ventures LLC, including:
* Excessive Automated Scans
* Denial of Service Attacks
* Scraping
* Data Mining
* 'Framing' (IFrames)

View File

@ -0,0 +1,60 @@
---
title: "Privacy Policy"
---
Privacy Guides is a community project operated by a number of active volunteer contributors. The public list of team members [can be found on GitHub](https://github.com/orgs/privacyguides/people).
## Data We Collect From Visitors
The privacy of our website visitors is important to us, so we do not track any individual people. As a visitor to our website:
- No personal information is collected
- No information such as cookies is stored in the browser
- No information is shared with, sent to or sold to third-parties
- No information is shared with advertising companies
- No information is mined and harvested for personal and behavioral trends
- No information is monetized
You can view the data we collect at [stats.privacyguides.net/privacyguides.org](https://stats.privacyguides.net/privacyguides.org).
We run a self-hosted installation of [Plausible Analytics](https://plausible.io) to collect some anonymous usage data for statistical purposes. The goal is to track overall trends in our website traffic, it is not to track individual visitors. All the data is in aggregate only. No personal data is collected.
Data collected includes referral sources, top pages, visit duration, information from the devices (device type, operating system, country and browser) used during the visit and more. You can learn more about how Plausible works and collects information in a privacy-respecting manner [here](https://plausible.io/data-policy).
## Data We Collect From Account Holders
On some websites and services we provide, many features may require an account. For example, an account may be required to post and reply to topics on a forum platform.
To sign up for most accounts, we will collect a name, username, email, and password. In the event a website requires more information than just that data, that will be clearly marked and noted in a separate privacy statement per-site.
We use your account data to identify you on the website and to create pages specific to you, such as your profile page. We will also use your account data to publish a public profile for you on our services.
We use your email to:
- Notify you about posts and other activity on the websites or services.
- Reset your password and help keep your account secure.
- Contact you in special circumstances related to your account.
- Contact you about legal requests, such as DMCA takedown requests.
On some websites and services you may provide additional information for your account, such as a short biography, avatar, your location, or your birthday. We make that information available to everyone who can access the website or service in question. This information is not required to use any of our services and can be erased at any time.
We will store your account data as long as your account remains open. After closing an account, we may retain some or all of your account data in the form of backups or archives for up to 90 days.
## Contacting Us
The Privacy Guides team generally does not have access to personal data outside of limited access granted via some moderation panels. Inquiries regarding your personal information should be sent directly to:
```
Jonah Aragon
Services Administrator
jonah@privacyguides.org
```
For all other inquiries, you can contact any member of our team.
For complaints under GDPR more generally, you may lodge complaints with your local data protection supervisory authorities.
## About This Policy
We will post any new versions of this statement [here](privacy-policy.en.md). We may change how we announce changes in future versions of this document. In the meantime we may update our contact information at any time without announcing a change. Please refer to the [Privacy Policy](privacy-policy.en.md) for the latest contact information at any time.
A full revision [history](https://github.com/privacyguides/privacyguides.org/commits/main/docs/about/privacy-policy.en.md) of this page can be found on GitHub.

331
docs/android.en.md Normal file
View File

@ -0,0 +1,331 @@
---
title: "Android"
icon: 'fontawesome/brands/android'
---
These are the Android operating systems, devices, and apps we recommend to maximize your mobile device's security and privacy. We also have additional Android-related information:
- [General Android Overview and Recommendations :material-arrow-right:](android/overview.md)
- [GrapheneOS vs CalyxOS Comparison :material-arrow-right:](android/grapheneos-vs-calyxos.md)
## AOSP Derivatives
We recommend installing one of these custom Android operating systems on your device, listed in order of preference, depending on your device's compatibility with these operating systems.
!!! note
End-of-life devices (such as GrapheneOS or CalyxOS's "extended support" devices) do not have full security patches (firmware updates) due to the OEM discontinuing support. These devices cannot be considered completely secure regardless of installed software.
### GrapheneOS
!!! recommendation
![GrapheneOS logo](assets/img/android/grapheneos.svg#only-light){ align=right }
![GrapheneOS logo](assets/img/android/grapheneos-dark.svg#only-dark){ align=right }
**GrapheneOS** is the best choice when it comes to privacy and security.
GrapheneOS provides additional [security hardening](https://en.wikipedia.org/wiki/Hardening_(computing)) and privacy improvements. It has a [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), network and sensor permissions, and various other [security features](https://grapheneos.org/features). GrapheneOS also comes with full firmware updates and signed builds, so verified boot is fully supported.
[Homepage](https://grapheneos.org/){ .md-button .md-button--primary } [Privacy Policy](https://grapheneos.org/faq#privacy-policy){ .md-button }
GrapheneOS supports [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play), which runs [Google Play Services](https://en.wikipedia.org/wiki/Google_Play_Services) fully sandboxed like any other regular app. This means you can take advantage of most Google Play Services, such as [push notifications](https://firebase.google.com/docs/cloud-messaging/), while giving you full control over their permissions and access, and while containing them to a specific work profile or user [profile](android/overview.md#user-profiles) of your choice.
Google Pixel phones are the only devices that currently meet GrapheneOS's [hardware security requirements](https://grapheneos.org/faq#device-support).
### CalyxOS
!!! recommendation
![CalyxOS logo](assets/img/android/calyxos.svg){ align=right }
**CalyxOS** is a system with some privacy features on top of AOSP, including [Datura](https://calyxos.org/docs/tech/datura-details) firewall, [Signal](https://signal.org) integration in the dialer app, and a built in panic button. CalyxOS also comes with firmware updates and signed builds, so verified boot is fully supported.
[Homepage](https://calyxos.org/){ .md-button .md-button--primary } [Privacy Policy](https://calyxinstitute.org/legal/privacy-policy){ .md-button }
For people who need Google Play Services, CalyxOS optionally includes [microG](https://microg.org/). CalyxOS also includes alternate location services, [Mozilla](https://location.services.mozilla.com/) and [DejaVu](https://github.com/n76/DejaVu).
CalyxOS only [supports](https://calyxos.org/docs/guide/device-support/) Google Pixel phones. However, support for the OnePlus 8T/9 and Fairphone 4 is [currently in beta](https://calyxos.org/news/2022/04/01/fairphone4-oneplus8t-oneplus9-test-builds/).
### DivestOS
!!! recommendation
![DivestOS logo](assets/img/android/divestos.svg){ align=right }
**DivestOS** is a soft-fork of [LineageOS](https://lineageos.org/).
DivestOS inherits many [supported devices](https://divestos.org/index.php?page=devices&base=LineageOS) from LineageOS. It has signed builds, making it possible to have [verified boot](https://source.android.com/security/verifiedboot) on some non-Pixel devices.
[Homepage](https://divestos.org){ .md-button .md-button--primary } [Privacy Policy](https://divestos.org/index.php?page=privacy_policy){ .md-button }
DivestOS has automated kernel vulnerability ([CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures)) [patching](https://gitlab.com/divested-mobile/cve_checker), fewer proprietary blobs, a custom [hosts](https://divested.dev/index.php?page=dnsbl) file, and [F-Droid](https://www.f-droid.org) as the app store. It includes [UnifiedNlp](https://github.com/microg/UnifiedNlp) for network location. Its hardened WebView, [Mulch](https://gitlab.com/divested-mobile/mulch), enables [CFI](https://en.wikipedia.org/wiki/Control-flow_integrity) for all architectures and includes [network state partitioning](https://developer.mozilla.org/en-US/docs/Web/Privacy/State_Partitioning).
DivestOS also includes kernel patches from GrapheneOS and enables all available kernel security features via [defconfig hardening](https://github.com/Divested-Mobile/DivestOS-Build/blob/master/Scripts/Common/Functions.sh#L758). All kernels newer than version 3.4 include full page [sanitization](https://lwn.net/Articles/334747/) and all ~22 Clang-compiled kernels have [`-ftrivial-auto-var-init=zero`](https://reviews.llvm.org/D54604?id=174471) enabled.
DivestOS implements some system hardening patches originally developed for GrapheneOS. DivestOS 16.0, 17.1, and 18.1 implements GrapheneOS's [`INTERNET`](https://developer.android.com/training/basics/network-ops/connecting) permission toggle, [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), [exec-spawning](android/grapheneos-vs-calyxos.md#additional-hardening), [JNI](https://en.wikipedia.org/wiki/Java_Native_Interface) [constification](https://en.wikipedia.org/wiki/Const_(computer_programming)), and partial [bionic](https://en.wikipedia.org/wiki/Bionic_(software)) hardening patchsets. 17.1 and 18.1 feature GrapheneOS's per-network full [MAC randomization](https://en.wikipedia.org/wiki/MAC_address#Randomization) option, and [`ptrace_scope`](https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html) control, and automatic reboot/Wi-Fi/Bluetooth [timeout options](https://grapheneos.org/features).
!!! warning
DivestOS firmware update [status](https://gitlab.com/divested-mobile/firmware-empty/-/blob/master/STATUS) and quality control varies across the devices it supports. We still recommend GrapheneOS or CalyxOS depending on your device's compatibility. For other devices, DivestOS is a good alternative.
Not all of the supported devices have verified boot, and some perform it better than others.
## Android Devices
Avoid buying phones from mobile network operators. These often have a **locked bootloader** and do not support [OEM unlocking](https://source.android.com/devices/bootloader/locking_unlocking). These phone variants will prevent you from installing any kind of alternative Android distribution.
Be very **careful** about buying second hand phones from online marketplaces. Always check the reputation of the seller. If the device is stolen there's a possibility of [IMEI blacklisting](https://www.gsma.com/security/resources/imei-blacklisting/). There is also a risk involved with you being associated with the activity of the previous owner.
A few more tips regarding Android devices and operating system compatibility:
- Do not buy devices that have reached or are near their end-of-life, additional firmware updates must be provided by the manufacturer.
- Do not buy preloaded LineageOS or /e/ OS phones or any Android phones without proper [Verified Boot](https://source.android.com/security/verifiedboot) support and firmware updates. These devices also have no way for you to check whether they've been tampered with.
- In short, if a device or Android distribution is not listed here, there is probably a good reason, so check our [discussions](https://github.com/privacyguides/privacyguides.org/discussions) page.
### Google Pixel
!!! recommendation
![Google Pixel 6](assets/img/android/google-pixel.png){ align=right }
**Google Pixel** devices are known to have good security and properly support [Verified Boot](https://source.android.com/security/verifiedboot), even when installing custom operating systems.
Beginning with the **Pixel 6** and **6 Pro**, Pixel devices receive a minimum of 5 years of guaranteed security updates, ensuring a much longer lifespan compared to the 2-4 years competing OEMs typically offer.
[Store](https://store.google.com/category/phones){ .md-button .md-button--primary }
Unless you have a need for specific [CalyxOS features](https://calyxos.org/features/) that are unavailable on GrapheneOS, we strongly recommend GrapheneOS over other operating system choices on Pixel devices.
The installation of GrapheneOS on a Pixel phone is easy with their [web installer](https://grapheneos.org/install/web). If you don't feel comfortable doing it yourself and are willing to spend a bit of extra money, check out the [NitroPhone](https://shop.nitrokey.com/shop) as they come preloaded with GrapheneOS from the reputable [Nitrokey](https://www.nitrokey.com/about) company.
A few more tips for purchasing a Google Pixel:
- If you're after a bargain on a Pixel device, we suggest buying an "**a**" model, just after the next flagship is released. Discounts are usually available because Google will be trying to clear their stock.
- Consider price beating options and specials offered at brick and mortar stores.
- Look at online community bargain sites in your country. These can alert you to good sales.
- Google provides a list showing the [support cycle](https://support.google.com/nexus/answer/4457705) for each one of their devices. The price per day for a device can be calculated as: $\text{Cost} \over \text {EOL Date }-\text{ Current Date}$, meaning that the longer use of the device the lower cost per day.
### Other Devices
!!! important
Google Pixel phones are the **only** devices we recommend for purchase. Pixel phones have stronger hardware security than any other Android devices currently on the market, due to proper AVB support for third party operating systems and Google's custom [Titan](https://security.googleblog.com/2021/10/pixel-6-setting-new-standard-for-mobile.html) security chips acting as the Secure Element.
Secure Elements are more limited than the processor's Trusted Execution Environment used by most other phones as they are only used for secrets storage, hardware attestation and rate limiting but not running "trusted" programs. Phones without a Secure Element have to use the TEE for secrets storage, rate limiting, *and* trusted computing, which results in a larger attack surface.
The following OEMs are only mentioned as they have phones compatible with the operating systems recommended by us. If you are purchasing a new device, we only recommend purchasing a Google Pixel.
When purchasing a device, we recommend getting one as new as possible. The software and firmware of mobile devices are only supported for a limited time, so buying new extends that lifespan as much as possible.
#### OnePlus
If you are unable to obtain a Google Pixel, recent OnePlus devices are the next best option if you want to run a custom OS without privileged Play Services. OnePlus 8 and later devices will receive 4 years of security updates from their initial launch date. CalyxOS has [experimental support](https://calyxos.org/news/2022/04/01/fairphone4-oneplus8t-oneplus9-test-builds/) for the **OnePlus 8T** and **9**.
DivestOS has support for most OnePlus devices up to the **OnePlus 7T Pro**, with varying levels of support.
#### Fairphone
!!! danger
The Fairphone 3 and 4 are not secure by default, as the [stock bootloader trusts the public AVB signing key](https://forum.fairphone.com/t/bootloader-avb-keys-used-in-roms-for-fairphone-3-4/83448/11). This breaks verified boot on a stock Fairphone device, as the system will boot alternative Android operating systems such (such as /e/) [without any warning](https://source.android.com/security/verifiedboot/boot-flow#locked-devices-with-custom-root-of-trust) about custom operating system usage.
This problem is somewhat mitigated when you install a custom operating system such as CalyxOS or DivestOS and trust the developer's signing keys rather than the stock system keys, however a vulnerability in CalyxOS or DivestOS's recovery environments could still potentially allow an attacker to bypass AVB. **To reiterate, you must install a custom operating system with custom boot keys to use Fairphone devices in a secure manner.**
CalyxOS has [experimental support](https://calyxos.org/news/2022/04/01/fairphone4-oneplus8t-oneplus9-test-builds/) for the **Fairphone 4**. DivestOS has builds available for the **Fairphone 3**.
Fairphone markets their devices as receiving 6 years of support. However, the SoC (Qualcomm Snapdragon 750G on the Fairphone 4) has a considerably shorter EOL date. This means that firmware security updates from Qualcomm for the Fairphone 4 will end in September 2023, regardless of whether Fairphone continues to release software security updates.
## General Apps
### Orbot
!!! recommendation
![Orbot logo](assets/img/android/orbot.svg){ align=right }
**Orbot** is a free proxy app that routes your connections through the Tor Network.
[Homepage](https://orbot.app/){ .md-button .md-button--primary }
??? downloads
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=org.torproject.android)
- [:pg-f-droid: F-Droid](https://guardianproject.info/fdroid)
- [:fontawesome-brands-github: Source](https://github.com/guardianproject/orbot)
- [:fontawesome-brands-gitlab: Source](https://gitlab.com/guardianproject/orbot)
Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using [VpnService](https://developer.android.com/reference/android/net/VpnService) and can be used with the VPN killswitch in :gear: **Settings****Network & internet****VPN** → :gear: → **Block connections without VPN**.
For resistance against traffic analysis attacks, consider enabling *Isolate Destination Address* in :material-menu: → **Settings****Connectivity**. This will use a completely different Tor Circuit (different middle relay and exit nodes) for every domain you connect to.
!!! tip
Orbot is often outdated on the Guardian Project's [F-Droid repository](https://guardianproject.info/fdroid) and [Google Play](https://play.google.com/store/apps/details?id=org.torproject.android) so consider downloading directly from the [GitHub repository](https://github.com/guardianproject/orbot) instead.
All versions are signed using the same signature so they should be compatible with each other.
### Shelter
!!! recommendation
![Shelter logo](assets/img/android/shelter.svg){ align=right }
**Shelter** is an app that helps you leverage the Android work profile to isolate other apps.
Shelter supports blocking contact search cross profiles and sharing files across profiles via the default file manager ([DocumentsUI](https://source.android.com/devices/architecture/modular-system/documentsui)).
[Project Info](https://gitea.angry.im/PeterCxy/Shelter#shelter){ .md-button .md-button--primary }
??? downloads
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=net.typeblog.shelter)
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/net.typeblog.shelter)
- [:fontawesome-brands-github: Source](https://github.com/PeterCxy/Shelter)
!!! warning
As CalyxOS includes a device controller, we recommend using their built in work profile instead.
Shelter is recommended over [Insular](https://secure-system.gitlab.io/Insular/) and [Island](https://github.com/oasisfeng/island) as it supports [contact search blocking](https://secure-system.gitlab.io/Insular/faq.html).
When using Shelter, you are placing complete trust in its developer as Shelter would be acting as a [Device Admin](https://developer.android.com/guide/topics/admin/device-admin) for the work profile and has extensive access to the data stored within it.
### Auditor
!!! recommendation
![Auditor logo](assets/img/android/auditor.svg#only-light){ align=right }
![Auditor logo](assets/img/android/auditor-dark.svg#only-dark){ align=right }
**Auditor** is an app which leverages hardware security features to provide device integrity monitoring for [supported devices](https://attestation.app/about#device-support). Currently it works with GrapheneOS and the device's stock operating system.
[Website](https://attestation.app){ .md-button .md-button--primary }
??? downloads
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.attestation.auditor)
- [:fontawesome-brands-github: Source](https://github.com/GrapheneOS/Auditor)
Auditor performs attestation and intrusion detection by:
- Using a [Trust On First Use (TOFU)](https://en.wikipedia.org/wiki/Trust_on_first_use) model between an *auditor* and *auditee*, the pair establish a private key in the [hardware-backed keystore](https://source.android.com/security/keystore/) of the *Auditor*.
- The *auditor* can either be another instance of the Auditor app or the [Remote Attestation Service](https://attestation.app).
- The *auditor* records the current state and configuration of the *auditee*.
- Should tampering with the operating system of the *auditee* after the pairing is complete, the auditor will be aware of the change in the device state and configurations.
- You will be alerted to the change.
No personally identifiable information is submitted to the attestation service. We recommend that you sign up with an anonymous account and enable remote attestation for continuous monitoring.
If your [threat model](basics/threat-modeling.md) requires privacy you could consider using Orbot or a VPN to hide your IP address from the attestation service.
To make sure that your hardware and operating system is genuine, [perform local attestation](https://grapheneos.org/install/web#verifying-installation) immediately after the device has been installed and prior to any internet connection.
### Secure Camera
!!! recommendation
![Secure camera logo](assets/img/android/secure_camera.svg#only-light){ align=right }
![Secure camera logo](assets/img/android/secure_camera-dark.svg#only-dark){ align=right }
**Secure Camera** is an camera app focused on privacy and security which can capture images, videos, and QR codes. CameraX vendor extensions (Portrait, HDR, Night Sight, Face Retouch, and Auto) are also supported on available devices.
[Source Code](https://github.com/GrapheneOS/Camera){ .md-button .md-button--primary }
??? downloads
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.camera.play)
- [:fontawesome-brands-github: Source](https://github.com/GrapheneOS/Camera/releases)
Main privacy features include:
- Auto removal of [Exif](https://en.wikipedia.org/wiki/Exif) metadata (enabled by default)
- Use of the new [Media](https://developer.android.com/training/data-storage/shared/media) API, therefore [storage permissions](https://developer.android.com/training/data-storage) are not required
- Microphone permission not required unless you want to record sound
!!! note
Metadata is not currently deleted from video files but that is planned.
The image orientation metadata is not deleted. If you enable location (in Secure Camera) that **won't** be deleted either. If you want to delete that later you will need to use an external app such as [Scrambled Exif](https://gitlab.com/juanitobananas/scrambled-exif/).
### Secure PDF Viewer
!!! recommendation
![Secure PDF Viewer logo](assets/img/android/secure_pdf_viewer.svg#only-light){ align=right }
![Secure PDF Viewer logo](assets/img/android/secure_pdf_viewer-dark.svg#only-dark){ align=right }
**Secure PDF Viewer** is a PDF viewer based on [pdf.js](https://en.wikipedia.org/wiki/PDF.js) that doesn't require any permissions. The PDF is fed into a [sandboxed](https://en.wikipedia.org/wiki/Sandbox_(software_development)) [webview](https://developer.android.com/guide/webapps/webview). This means that it doesn't require permission directly to access content or files.
[Content-Security-Policy](https://en.wikipedia.org/wiki/Content_Security_Policy) is used to enforce that the JavaScript and styling properties within the WebView are entirely static content.
[App Info](https://github.com/GrapheneOS/PdfViewer#readme){ .md-button .md-button--primary }
??? downloads
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play)
- [:fontawesome-brands-github: Source](https://github.com/GrapheneOS/PdfViewer/releases)
### PrivacyBlur
!!! recommendation
![PrivacyBlur logo](assets/img/android/privacyblur.svg){ align=right }
**PrivacyBlur** is a free app which can blur sensitive portions of pictures before sharing them online.
[Website](https://privacyblur.app/){ .md-button .md-button--primary }
??? downloads
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=de.mathema.privacyblur)
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/de.mathema.privacyblur/)
- [:fontawesome-brands-github: Source](https://github.com/MATHEMA-GmbH/privacyblur)
!!! warning
You should **never** use blur to redact [text in images](https://bishopfox.com/blog/unredacter-tool-never-pixelation). If you want to redact text in an image, draw a box over the text. For this we suggest [Pocket Paint](https://github.com/Catrobat/Paintroid) or [Imagepipe](https://codeberg.org/Starfish/Imagepipe).
## App Stores
### GrapheneOS's App Store
GrapheneOS's app store is available on [GitHub](https://github.com/GrapheneOS/Apps/releases). It supports Android 12 and above and is capable of updating itself. The app store has standalone applications built by the GrapheneOS project such as the [Auditor](https://attestation.app/), [Camera](https://github.com/GrapheneOS/Camera), and [PDF Viewer](https://github.com/GrapheneOS/PdfViewer). If you are looking for these applications, we highly recommend that you get them from GrapheneOS's app store instead of the Play Store, as the apps on their store are signed by the GrapheneOS's project own signature that Google does not have access to.
### Aurora Store
The Google Play Store requires a Google account to login which is not great for privacy. The [Aurora Store](https://auroraoss.com/download/AuroraStore/) (a Google Play Store proxy) does not, and works most of the time.
### F-Droid
F-Droid is often recommended as an alternative to Google Play, particularly in the privacy community. The option to add third party repositories and not be confined to Google's walled garden has led to its popularity. F-Droid additionally has [reproducible builds](https://f-droid.org/en/docs/Reproducible_Builds/) for some applications, and is dedicated to free and open source software. However, there are problems with the official F-Droid client, their quality control, and how they build, sign and deliver packages, outlined in this [post](https://wonderfall.dev/fdroid-issues/).
Sometimes the official F-Droid repository may fall behind on updates. F-Droid maintainers reuse package IDs while signing apps with their own keys, which is not ideal as it does give the F-Droid team ultimate trust. The Google Play version of some apps may contain unwanted telemetry or lack features that are available in the F-Droid version.
We have these general tips:
- Check if the app developers have their own F-Droid repository first, e.g. [Bitwarden](https://bitwarden.com/), [Samourai Wallet](https://www.samouraiwallet.com/), or [Newpipe](https://newpipe.net/), which have their own repositories with less telemetry, additional features or faster updates. This is the ideal situation and you should be using these repositories if possible.
- Check if an app is available on the [IzzyOnDroid](https://apt.izzysoft.de/fdroid/) repository. The IzzyOnDroid repository pulls builds directly from GitHub and is the next best thing to the developers' own repositories. We recommend that you download the GitHub builds and install them manually first, then use IzzyOnDroid for any subsequent updates. This will ensure that the signature of the applications you get from IzzyOnDroid matches that of the developer and the packages have not been tampered with.
- Check if there are any differences between the F-Droid version and the Google Play Store version. Some applications like [IVPN](https://www.ivpn.net/) do not include certain features (eg [AntiTracker](https://www.ivpn.net/knowledgebase/general/antitracker-faq/)) in their Google Play Store build out of fear of censorship by Google.
Evaluate whether the additional features in the F-Droid build are worth the slower updates. Also think about whether faster updates from the Google Play Store are worth the potential privacy issues in your [threat model](basics/threat-modeling.md).
#### Neo Store
The official F-Droid client targets a [low API level](https://wonderfall.dev/fdroid-issues/#3-low-target-api-level-sdk-for-client--apps) and does not utilize the [seamless updates](https://www.androidcentral.com/google-will-finally-bring-seamless-app-updates-alternative-app-stores-android-12) feature introduced in Android 12. Targeting lower API levels means that the F-Droid client cannot take advantage of the new improvements in the application sandboxes that comes with higher API levels. For automatic updates to work, the F-Droid client requires that the [Privileged Extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/) be included in the operating system, granting it more privileges than what a normal app would have, which is not great for security.
To mitigate these problems, we recommend [Neo Store](https://github.com/NeoApplications/Neo-Store) as it supports seamless updates on Android 12 and above without needing any special privileges and targets a higher API level.
!!! recommendation
![Neo Store logo](assets/img/android/neo-store.png){ align=right }
**Neo Store** is a modern F-Droid client made with MaterialUI, forked from [Foxy Droid](https://github.com/kitsunyan/foxy-droid).
Unlike the official F-Droid client, Neo Store supports seamless updates on Android 12 and above without the need for a privileged extension. If your Android distribution is on Android 12 or above and does not include the [F-Droid privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/), it is highly recommended that you use Neo Store instead of the official client.
??? downloads
- [:fontawesome-brands-android: APK Download](https://android.izzysoft.de/repo/apk/com.looker.droidify)
- [:fontawesome-brands-github: Source](https://github.com/NeoApplications/Neo-Store)
--8<-- "includes/abbreviations.en.md"

View File

@ -1,414 +0,0 @@
---
title: "Android"
icon: 'fontawesome/brands/android'
---
Android is a secure operating system that has strong [app sandboxing](https://source.android.com/security/app-sandbox), [Verified Boot](https://source.android.com/security/verifiedboot), and a robust [permission](https://developer.android.com/guide/topics/permissions/overview) control system.
The main privacy concern with most Android devices is that they usually include [Google Play Services](https://developers.google.com/android/guides/overview). This component is proprietary, [closed source](https://en.wikipedia.org/wiki/Proprietary_software), has a privileged role on your phone, and may collect private user information. It is neither a part of the [Android Open Source Project](https://source.android.com/) (AOSP) nor is it included with the below derivatives.
## AOSP Derivatives
### GrapheneOS
!!! recommendation
![GrapheneOS logo](/assets/img/android/grapheneos.svg#only-light){ align=right }
![GrapheneOS logo](/assets/img/android/grapheneos-dark.svg#only-dark){ align=right }
**GrapheneOS** is the best choice when it comes to privacy and security.
GrapheneOS provides additional [security hardening](https://en.wikipedia.org/wiki/Hardening_(computing)) and privacy improvements. It has a [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), network and sensor permissions, and various other [security features](https://grapheneos.org/features). GrapheneOS also comes with full firmware updates and signed builds, so [verified boot](https://source.android.com/security/verifiedboot) is fully supported.
[Visit grapheneos.org](https://grapheneos.org/){ .md-button .md-button--primary } [Privacy Policy](https://grapheneos.org/faq#privacy-policy){ .md-button }
Notably, GrapheneOS supports [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play). Google Play Services can be run fully sandboxed like a regular user app and contained in a work profile or user [profile](/android/#android-security-privacy) of your choice. This means that you can run apps dependant on Play Services, such as those that require push notifications using Google's [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/) service. GrapheneOS allows you to take advantage of most [Google Play Services](https://en.wikipedia.org/wiki/Google_Play_Services) whilst having full user control over their permissions and access.
Currently, only [Pixel phones](https://grapheneos.org/faq#device-support) meet its hardware security requirement and are supported.
!!! attention
GrapheneOS's "extended support" devices do not have full security patches (firmware updates) due to the original equipment manufacturer (OEM) discontinuing support. These devices cannot be considered completely secure.
### CalyxOS
!!! recommendation
![CalyxOS logo](/assets/img/android/calyxos.svg){ align=right }
**CalyxOS** is a decent alternative to GrapheneOS.
It has some privacy features on top of AOSP, including [Datura firewall](https://calyxos.org/docs/tech/datura-details), [Signal](https://signal.org) integration in the dialer app, and a built in panic button. CalyxOS also comes with firmware updates and signed builds, so [verified boot](https://source.android.com/security/verifiedboot) is fully supported.
To accomodate users who need Google Play Services, CalyxOS optionally includes [MicroG](https://microg.org/). With MicroG, CalyxOS also bundles in the [Mozilla](https://location.services.mozilla.com/) and [DejaVu](https://github.com/n76/DejaVu) location services.
Currently, CalyxOS only supports [Pixel phones](https://calyxos.org/docs/guide/device-support/).
[Visit calyxos.org](https://calyxos.org/){ .md-button .md-button--primary } [Privacy Policy](https://calyxinstitute.org/legal/privacy-policy){ .md-button }
!!! attention
CalyxOS's "extended support" does not have full security patches due to the original equipment manufacturer (OEM) discontinuing support; therefore, they cannot be considered completely secure.
### DivestOS
!!! recommendation
![DivestOS logo](/assets/img/android/divestos.svg){ align=right }
**DivestOS** is a [soft-fork](https://en.wikipedia.org/wiki/Fork_(software_development)#Forking_of_free_and_open-source_software) of [LineageOS](https://lineageos.org/).
DivestOS inherits many [supported devices](https://divestos.org/index.php?page=devices&base=LineageOS) from LineageOS. It has signed builds, making it possible to have [verified boot](https://source.android.com/security/verifiedboot) on some non-Pixel devices.
[Visit divestos.org](https://divestos.org){ .md-button .md-button--primary } [Privacy Policy](https://divestos.org/index.php?page=privacy_policy){ .md-button }
DivestOS has automated kernel vulnerability ([CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures)) [patching](https://gitlab.com/divested-mobile/cve_checker), fewer proprietary blobs, a custom [hosts](https://divested.dev/index.php?page=dnsbl) file, and [F-Droid](https://www.f-droid.org) as the app store. It includes [UnifiedNlp](https://github.com/microg/UnifiedNlp) for network location and some hardening with [Mulch Webview](https://gitlab.com/divested-mobile/mulch). Users can also select the [Bromite SystemWebView](https://www.bromite.org/system_web_view) in ⚙️ Settings → Developer options → Webview implementation. DivestOS also includes kernel patches from GrapheneOS and enables security features in [defconfig](https://github.com/Divested-Mobile/DivestOS-Build/blob/master/Scripts/Common/Functions.sh#L698).
DivestOS 16.0, 17.1, and 18.1 implements GrapheneOS's [`INTERNET`](https://developer.android.com/training/basics/network-ops/connecting) permission toggle and [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc).
!!! attention
DivestOS firmware update [status](https://gitlab.com/divested-mobile/firmware-empty/-/blob/master/STATUS) varies across the devices it supports. For Pixel phones, we still recommend using GrapheneOS or CalyxOS. For other supported devices, DivestOS is a good alternative.
Not all of the supported devices have [verified boot](https://source.android.com/security/verifiedboot), and some perform it better than others.
## Android security and privacy features
### User Profiles
Multiple user profiles (Settings → System → Multiple users) are the simplest way to isolate in Android. With user profiles you can limit a user from making calls, SMS or installing apps on the device. Each profile is encrypted using its own encryption key and cannot access the data of any other profiles. Even the device owner cannot view the data of other profiles without knowing their password. Multiple user profiles is a more secure method of isolation.
### Work Profile
[Work Profiles](https://support.google.com/work/android/answer/6191949) are another way to isolate individual apps and may be more convenient than separate user profiles.
A **device controller** such as [Shelter](#recommended-apps) is required, unless you're using CalyxOS which includes one.
The work profile is dependent on a device controller to function. Features such as *File Shuttle* and *contact search blocking* or any kind of isolation features must be implemented by the controller. The user must also fully trust the device controller app, as it has full access to the data inside of the work profile.
This method is generally less secure than a secondary user profile; however, it does allow you the convenience of running apps in both the work and personal profiles simultaneously.
### Verified Boot
[Verified Boot](https://source.android.com/security/verifiedboot) is an important part of the Android security model. It provides protection against [evil maid](https://en.wikipedia.org/wiki/Evil_maid_attack) attacks, malware persistence, and ensures security updates cannot be downgraded with [rollback protection](https://source.android.com/security/verifiedboot/verified-boot#rollback-protection).
Android 10 and above has moved away from full-disk encryption (FDE) to more flexible [file-based encryption](https://source.android.com/security/encryption/file-based).
Each user's data is encrypted using their own unique encryption key, and the operating system files are left unencrypted. Verified Boot ensures the integrity of the operating system files preventing an adversary with physical access from tampering or installing malware on the device. In the unlikely case that malware is able to exploit other parts of the system and gain higher privileged access, Verified Boot will prevent and revert changes to the system partition upon reboot of the device.
Unfortunately, original equipment manufacturers (OEMs) are only obliged to support Verified Boot on their stock Android distribution. Only a few OEMs such as Google support custom Android Verified Boot (AVB) key enrollment on their devices. Some AOSP derivatives such as LineageOS or /e/ OS do not support Verified Boot even on hardware with Verified Boot support for third party operating systems. We recommend that you check for support **before** purchasing a new device. AOSP derivatives which do not support Verified Boot are **not** recommended.
### VPN Killswitch
Android 7 and above supports a VPN killswitch and it is available without the need to install third party apps. This feature can prevent leaks if the VPN is disconnected. It can be found in ⚙️ Settings → Network & internet → VPN → ⚙️ → Block connections without VPN.
### Global Toggles
Modern Android devices have global toggles for disabling [Bluetooth](https://en.wikipedia.org/wiki/Bluetooth) and location services. Android 12 introduced toggles for the camera and microphone. When not in use, we recommend disabling these features. Apps cannot use disabled features (even if granted individual permission) until re-enabled.
## Recommended Apps
### Orbot
!!! recommendation
![Orbot logo](/assets/img/android/orbot.svg){ align=right }
**Orbot** is a free proxy app that routes your connections through the Tor Network.
[Visit orbot.app](https://orbot.app/){ .md-button .md-button--primary }
**Downloads**
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=org.torproject.android)
- [:pg-f-droid: F-Droid](https://guardianproject.info/fdroid)
- [:fontawesome-brands-github: GitHub](https://github.com/guardianproject/orbot)
- [:fontawesome-brands-gitlab: GitLab](https://gitlab.com/guardianproject/orbot)
Orbot can proxy individual apps if they support SOCKS or HTTP proxying. It can also proxy all your network connections using [VpnService](https://developer.android.com/reference/android/net/VpnService) and can be used with the VPN killswitch (⚙️ Settings → Network & internet → VPN → ⚙️ → Block connections without VPN).
For resistance against traffic analysis attacks, consider enabling *Isolate Destination Address* ( ⁝ →Settings → Connectivity). This will use a completely different Tor Circuit (different middle relay and exit nodes) for every domain you connect to.
!!! attention
Orbot is often outdated on the Guardian Project's [F-Droid repository](https://guardianproject.info/fdroid) and [Google Play](https://play.google.com/store/apps/details?id=org.torproject.android) so consider downloading directly from the [GitHub repository](https://github.com/guardianproject/orbot) instead.
All versions are signed using the same signature so they should be compatible with each other.
### Shelter
!!! recommendation
![Shelter logo](/assets/img/android/shelter.svg){ align=right }
**Shelter** is an app that helps you leverage the Android work profile to isolate other apps.
Shelter supports blocking contact search cross profiles and sharing files across profiles via the default file manager ([DocumentsUI](https://source.android.com/devices/architecture/modular-system/documentsui)).
[Visit gitea.angry.im](https://gitea.angry.im/PeterCxy/Shelter){ .md-button .md-button--primary }
**Downloads:**
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=net.typeblog.shelter)
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/net.typeblog.shelter)
- [:fontawesome-brands-github: GitHub](https://github.com/PeterCxy/Shelter)
- [:fontawesome-brands-git-alt: Source](https://gitea.angry.im/PeterCxy/Shelter)
!!! attention
As CalyxOS includes a device controller, we recommend using their built in work profile instead.
Shelter is recommended over [Insular](https://secure-system.gitlab.io/Insular/) and [Island](https://github.com/oasisfeng/island) as it supports [contact search blocking](https://secure-system.gitlab.io/Insular/faq.html).
When using Shelter, you are placing complete trust in its developer as Shelter would be acting as a [Device Admin](https://developer.android.com/guide/topics/admin/device-admin) for the work profile and has extensive access to the data stored within it.
### Auditor
!!! recommendation
![Auditor logo](/assets/img/android/auditor.svg#only-light){ align=right }
![Auditor logo](/assets/img/android/auditor-dark.svg#only-dark){ align=right }
**Auditor** is an app which leverages hardware security features to provide device integrity monitoring for [supported devices](https://attestation.app/about#device-support). Currently it works with GrapheneOS and the device's stock operating system.
[Visit attestation.app](https://attestation.app){ .md-button .md-button--primary }
**Downloads:**
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.attestation.auditor)
- [:fontawesome-brands-github: GitHub](https://github.com/GrapheneOS/Auditor)
Auditor performs attestation and intrusion detection by:
- Using a [Trust On First Use (TOFU)](https://en.wikipedia.org/wiki/Trust_on_first_use) model between an *auditor* and *auditee*, the pair establish a private key in the [hardware-backed keystore](https://source.android.com/security/keystore/) of the *Auditor*.
- The *auditor* can either be another instance of the Auditor app or the [Remote Attestation Service](https://attestation.app).
- The *auditor* records the current state and configuration of the *auditee*.
- Should tampering with the operating system of the *auditee* after the pairing is complete, the auditor will be aware of the change in the device state and configurations.
- The user will be alerted to the change.
No personally identifiable information is submitted to the attestation service. We recommend that you sign up with an anonymous account and enable remote attestation for continuous monitoring.
If your [threat model](/threat-modeling/) requires privacy you could consider using Orbot or a VPN to hide your IP address from the attestation service.
To make sure that your hardware and operating system is genuine, [perform local attestation](https://grapheneos.org/install/web#verifying-installation) immediately after the device has been installed and prior to any internet connection.
### Secure Camera
!!! recommendation
![Secure camera logo](/assets/img/android/secure_camera.svg#only-light){ align=right }
![Secure camera logo](/assets/img/android/secure_camera-dark.svg#only-dark){ align=right }
**Secure Camera** is an camera app focused on privacy and security which can capture images, videos, and QR codes. CameraX vendor extensions (Portrait, HDR, Night Sight, Face Retouch, and Auto) are also supported on available devices.
[Visit github.com](https://github.com/GrapheneOS/Camera){ .md-button .md-button--primary }
**Downloads:**
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.camera.play)
- [:fontawesome-brands-github: GitHub](https://github.com/GrapheneOS/Camera/releases)
Main privacy features include:
- Auto removal of [Exif](https://en.wikipedia.org/wiki/Exif) metadata (enabled by default)
- Use of the new [Media](https://developer.android.com/training/data-storage/shared/media) API, therefore [storage permissions](https://developer.android.com/training/data-storage) are not required
- Microphone permission not required unless you want to record sound
!!! note
Metadata is not currently deleted from video files but that is planned.
The image orientation metadata is not deleted. If you enable location (in Secure Camera) that **won't** be deleted either. If you want to delete that later you will need to use an external app such as [Scrambled Exif](https://gitlab.com/juanitobananas/scrambled-exif/).
### Secure PDF Viewer
!!! recommendation
![Secure PDF Viewer logo](/assets/img/android/secure_pdf_viewer.svg#only-light){ align=right }
![Secure PDF Viewer logo](/assets/img/android/secure_pdf_viewer-dark.svg#only-dark){ align=right }
**Secure PDF Viewer** is a PDF viewer based on [pdf.js](https://en.wikipedia.org/wiki/PDF.js) that doesn't require any permissions. The PDF is fed into a [sandboxed](https://en.wikipedia.org/wiki/Sandbox_(software_development)) [webview](https://developer.android.com/guide/webapps/webview). This means that it doesn't require permission directly to access content or files.
[Content-Security-Policy](https://en.wikipedia.org/wiki/Content_Security_Policy) is used to enforce that the JavaScript and styling properties within the WebView are entirely static content.
[Visit github.com](https://github.com/GrapheneOS/PdfViewer){ .md-button .md-button--primary }
**Downloads:**
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=app.grapheneos.pdfviewer.play)
- [:fontawesome-brands-github: GitHub](https://github.com/GrapheneOS/PdfViewer/releases)
### PrivacyBlur
!!! recommendation
![PrivacyBlur logo](/assets/img/android/privacyblur.svg){ align=right }
**PrivacyBlur** is a free app which can blur sensitive portions of pictures before sharing them online.
[Visit privacyblur.app](https://privacyblur.app/){ .md-button .md-button--primary }
**Downloads:**
- [:fontawesome-brands-google-play: Google Play](https://play.google.com/store/apps/details?id=de.mathema.privacyblur)
- [:pg-f-droid: F-Droid](https://f-droid.org/en/packages/de.mathema.privacyblur/)
- [:fontawesome-brands-github: GitHub](https://github.com/MATHEMA-GmbH/privacyblur)
!!! warning
You should **never** use blur to redact [text in images](https://bishopfox.com/blog/unredacter-tool-never-pixelation). If you want to redact text in an image, draw a box over the text. For this we suggest [Pocket Paint](https://github.com/Catrobat/Paintroid) or [Imagepipe](https://codeberg.org/Starfish/Imagepipe).
## General Recommendations
### Avoid Root
[Rooting](https://en.wikipedia.org/wiki/Rooting_(Android)) Android phones can decrease security significantly as it weakens the complete [Android security model](https://en.wikipedia.org/wiki/Android_(operating_system)#Security_and_privacy). This can decrease privacy should there be an exploit that is assisted by the decreased security. Common rooting methods involve directly tampering with the boot partition, making it impossible to perform successful [Verified Boot](https://source.android.com/security/verifiedboot). Apps that require root will also modify the system partition meaning that Verified Boot would have to remain disabled. Having root exposed directly in the user interface also increases the [attack surface](https://en.wikipedia.org/wiki/Attack_surface) of your device and may assist in [privilege escalation](https://en.wikipedia.org/wiki/Privilege_escalation) vulnerabilities and [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) policy bypasses.
Adblockers (AdAway) which modify the [hosts file](https://en.wikipedia.org/wiki/Hosts_(file)) and firewalls (AFWall+) which require root access persistently are dangerous and should not be used. They are also not the correct way to solve their intended purposes. For Adblocking we suggest encrypted [DNS](/dns) or [VPN](/providers/vpn/) server blocking solutions instead. RethinkDNS, TrackerControl and AdAway in non-root mode will take up the VPN slot (by using a local loopback VPN) preventing you from using privacy enhancing services such as Orbot or a real VPN server.
AFWall+ works based on the [packet filtering](https://en.wikipedia.org/wiki/Firewall_(computing)#Packet_filter) approach and may be bypassable in some situations.
We do not believe that the security sacrifices made by rooting a phone are worth the questionable privacy benefits of those apps.
### Firmware Updates
Firmware updates are critical for maintaining security and without them your device cannot be secure. Original equipment manufacturers (OEMs)—in other words, phone manufacturers—have support agreements with their partners to provide the closed source components for a limited support period. These are detailed in the monthly [Android Security Bulletins](https://source.android.com/security/bulletin).
As the components of the phone such as the processor and radio technologies rely on closed source components, the updates must be provided by the respective manufacturers. Therefore it is important that you purchase a device within an active support cycle. [Qualcomm](https://www.qualcomm.com/news/releases/2020/12/16/qualcomm-and-google-announce-collaboration-extend-android-os-support-and) and [Samsung](https://news.samsung.com/us/samsung-galaxy-security-extending-updates-knox/) support their devices for 4 years while cheaper products often have shorter support. With the introduction of the [Pixel 6](https://support.google.com/pixelphone/answer/4457705), Google now makes their own system on chip (SoC) and they will provide 5 years of support.
Devices that have reached their end-of-life (EoL) and are no longer supported by the SoC manufacturer, cannot receive firmware updates from OEM vendors or after market Android distributors. This means that security issues with those devices will remain unfixed.
### Android Versions
It's important to not use an [end-of-life](https://endoflife.date/android) version of Android. Newer versions of Android not only receive security updates for the operating system but also important privacy enhancing updates too. For example, [prior to Android 10](https://developer.android.com/about/versions/10/privacy/changes), any user apps with the [`READ_PHONE_STATE`](https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE) permission could access sensitive and unique serial numbers of your phone such as [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity), [MEID](https://en.wikipedia.org/wiki/Mobile_equipment_identifier), your SIM card's [IMSI](https://en.wikipedia.org/wiki/International_mobile_subscriber_identity), whereas now they must be system apps to do so. System apps are only provided by the OEM or Android distribution.
### Android Permissions
[Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) grant users control over what apps are allowed to access. Google regularly makes [improvements](https://developer.android.com/about/versions/11/privacy/permissions) on the permission system in each successive version. All user installed apps are strictly [sandboxed](https://source.android.com/security/app-sandbox), therefore there is no need to install any antivirus apps. The savings you make from not purchasing or subscribing to security apps is better spent on paying for a supported device in the future.
Should you want to run an app that you're unsure about, consider using a user or work [profile](/android/#android-security-privacy).
### Advanced Protection Program
If you have a Google account we suggest enrolling in the [Advanced Protection Program](https://landing.google.com/advancedprotection/). It is available at no cost to anyone with two or more hardware security keys with [U2F](https://en.wikipedia.org/wiki/Universal_2nd_Factor) support.
The Advanced Protection Program provides enhanced threat monitoring and enables:
- Stricter two factor authentication; e.g. that [U2F](https://en.wikipedia.org/wiki/Universal_2nd_Factor) or [FIDO2](https://en.wikipedia.org/wiki/WebAuthn) **must** be used and disallows the use of [SMS OTPs](https://en.wikipedia.org/wiki/One-time_password#SMS), [TOTP](https://en.wikipedia.org/wiki/Time-based_one-time_password), and [OAuth](https://en.wikipedia.org/wiki/OAuth)
- Only Google and verified third party apps can access account data
- Scanning of incoming emails on Gmail accounts for [phishing](https://en.wikipedia.org/wiki/Phishing#Email_phishing) attempts
- Stricter [safe browser scanning](https://www.google.com/chrome/privacy/whitepaper.html#malware) with Google Chrome
- Stricter recovery process for accounts with lost credentials
For users that are using the privileged Google Play Services (common on stock operating systems), the Advanced Protection Program also comes with [additional benefits](https://support.google.com/accounts/answer/9764949?hl=en) such as:
- Not allowing app installation outside of the Google Play Store, the OS vendor's app store, or via [`adb`](https://en.wikipedia.org/wiki/Android_Debug_Bridge)
- Mandatory automatic device scanning with [Play Protect](https://support.google.com/googleplay/answer/2812853?hl=en#zippy=%2Chow-malware-protection-works%2Chow-privacy-alerts-work)
- Warning the user about unverified applications
### SafetyNet and Play Integrity API
[SafetyNet](https://developer.android.com/training/safetynet/attestation) and the [Play Integrity APIs](https://developer.android.com/google/play/integrity) are generally used for [banking apps](https://grapheneos.org/usage#banking-apps). Many banking apps will work fine in GrapheneOS with sandboxed Play services, however some non-financal apps have their own crude anti-tampering mechanisms which might fail. GrapheneOS passes the `basicIntegrity` check, but not the certification check `ctsProfileMatch`. Devices with Android 8 or later have hardware attestation support which cannot be bypassed without leaked keys or serious vulnerabilities.
As for Google Wallet, we don't recommend this due to their [privacy policy](https://payments.google.com/payments/apis-secure/get_legal_document?ldo=0&ldt=privacynotice&ldl=en), which states you must opt-out if you don't want your credit rating and personal information shared with affiliate marketing services.
### Advertising ID
All devices with Google Play Services installed automatically generate an [advertising ID](https://support.google.com/googleplay/android-developer/answer/6048248?hl=en) used for targeted advertising. Disable this feature to limit the data collected about you.
On Android distributions with [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play), go to ⚙️ Settings → Apps → Sandboxed Google Play → Google Settings → Ads and select **Delete advertising ID**.
On Android distributions with privileged Google Play Services (such as stock OSes), the setting may be in one of several locations. Check
- ⚙️ Settings → Google → Ads
- ⚙️ Settings → Privacy → Ads
Depending on your system, you will either be given the option to delete your advertising ID or to "Opt out of interest-based ads". You should delete the advertising ID if you are given the option to, and if you are not, we recommend that you opt out of interested-based ads and then reset your advertising ID.
### Android Device Shopping
Google Pixels are known to have good security and properly support [Verified Boot](https://source.android.com/security/verifiedboot). Some other phones such as the Fairphone and OnePlus devices also support custom Android Verified Boot (AVB) key enrollment. However, there have been issues with their older models. In the past they were using [test keys](https://social.coop/@dazinism/105346943304083054) or not doing proper verification, making Verified Boot on those devices useless.
Avoid buying phones from mobile network operators. These often have a **locked bootloader** and do not support [OEM unlocking](https://source.android.com/devices/bootloader/locking_unlocking). These phone variants will prevent you from installing any kind of alternative Android distribution. Phones that cannot be unlocked will often have an [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) starting with "35", that includes phones from purchased from Verizon, Telus, Rogers, EE, etc.
Be very **careful** about buying second hand phones from online marketplaces. Always check the reputation of the seller. If the device is stolen there's a possibility of [IMEI blacklisting](https://www.gsma.com/security/resources/imei-blacklisting/). There is also a risk involved with you being associated with the activity of the previous owner.
We have these general tips:
- If you're after a bargain on a Pixel device, we suggest buying an "**a**" model, just after the next flagship is released. Discounts are usually available because Google will be trying to clear their stock.
- Consider price beating options and specials offered at [brick and mortar](https://en.wikipedia.org/wiki/Brick_and_mortar) stores.
- Look at online community bargain sites in your country. These can alert you to good sales.
- The price per day for a device can be calculated as $\text {EoL Date}-\text{Current Date} \over \text{Cost}$. Google provides a [list](https://support.google.com/nexus/answer/4457705) of their supported devices.
- Do not buy devices that have reached or are near their end-of-life, additional firmware updates must be provided by the manufacturer.
- Do not buy preloaded LineageOS or /e/ OS phones or any Android phones without proper [Verified Boot](https://source.android.com/security/verifiedboot) support and firmware updates. These devices also have no way for you to check whether they've been tampered with.
- In short, if a device or Android distribution is not listed here, there is probably a good reason, so check our [discussions](https://github.com/privacyguides/privacyguides.org/discussions) page.
The installation of GrapheneOS on a Pixel phone is easy with their [web installer](https://grapheneos.org/install/web). If you don't feel comfortable doing it yourself and are willing to spend a bit of extra money, check out the [NitroPhone](https://shop.nitrokey.com/shop) as they come preloaded with GrapheneOS from the reputable [Nitrokey](https://www.nitrokey.com/about) company. The GrapheneOS project is not currently affiliated with any vendor and cannot ensure the quality or security of their products.
A [CalyxOS membership](https://calyxinstitute.org/membership/calyxos) also entitles you to a device preloaded with CalyxOS.
## GrapheneOS's App Store
GrapheneOS's app store is available on [GitHub](https://github.com/GrapheneOS/Apps/releases). It supports Android 12 and above and is capable of updating itself. The app store has standalone applications built by the GrapheneOS project such as the [Auditor](https://attestation.app/), [Camera](https://github.com/GrapheneOS/Camera), and [PDF Viewer](https://github.com/GrapheneOS/PdfViewer). If you are looking for these applications, we highly recommend that you get them from GrapheneOS's app store instead of the Play Store, as the apps on their store are signed by the GrapheneOS's project own signature that Google does not have access to.
## F-Droid
F-Droid is often recommended as an alternative to Google Play, particularly in the privacy community. The option to add third party repositories and not be confined to Google's [walled garden](https://en.wikipedia.org/wiki/Closed_platform) has led to its popularity. F-Droid additionally has [reproducible builds](https://f-droid.org/en/docs/Reproducible_Builds/) for some applications, and is dedicated to free and open source software. However, there are problems with the official F-Droid client, their quality control, and how they build, sign and deliver packages, outlined in this [post](https://wonderfall.dev/fdroid-issues/).
### Droid-ify
The official F-Droid client targets a [low API level](https://wonderfall.dev/fdroid-issues/#3-low-target-api-level-sdk-for-client--apps) and does not utilize the [seamless updates](https://www.androidcentral.com/google-will-finally-bring-seamless-app-updates-alternative-app-stores-android-12) feature introduced in Android 12. Targeting lower API levels means that the F-Droid client cannot take advantage of the new improvements in the application sandboxes that comes with higher API levels. For automatic updates to work, the F-Droid client requires that the [Privileged Extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/) be included in the operating system, granting it more privileges than what a normal app would have, which is not great for security.
To mitigate these problems, we recommend [Droid-ify](https://github.com/Iamlooker/Droid-ify) as it supports seamless updates on Android 12 and above without needing any special privileges and targets a higher API level.
!!! recommendation
![Droid-ify logo](assets/img/android/droid-ify.png){ align=right }
**Droid-ify** is a modern F-Droid client made with MaterialUI, forked from [Foxy Droid](https://github.com/kitsunyan/foxy-droid).
Unlike the official F-Droid client, Droid-ify supports seamless updates on Android 12 and above without the need for a privileged extension. If your Android distribution is on Android 12 or above and does not include the [F-Droid privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged/), it is highly recommended that you use Droid-ify instead of the official client.
**Downloads:**
- [:fontawesome-brands-android: APK Download](https://android.izzysoft.de/repo/apk/com.looker.droidify)
- [:fontawesome-brands-github: GitHub](https://github.com/Iamlooker/Droid-ify)
### Where to get your applications
Sometimes the official F-Droid repository may fall behind on updates. F-Droid maintainers reuse package IDs while signing apps with their own keys, which is not ideal as it does give the F-Droid team ultimate trust. The Google Play version of some apps may contain unwanted telemetry or lack features that are available in the F-Droid version. The Google Play Store requires a Google account to login which is not great for privacy. The [Aurora Store](https://auroraoss.com/download/AuroraStore/) (a Google Play Store proxy) does not always work, though it does most of the time.
We have these general tips:
- Check if the app developers have their own F-Droid repository first, e.g. [Bitwarden](https://bitwarden.com/), [Samourai Wallet](https://www.samouraiwallet.com/), or [Newpipe](https://newpipe.net/), which have their own repositories with less telemetry, additional features or faster updates. This is the ideal situation and you should be using these repositories if possible.
- Check if an app is available on the [IzzyOnDroid](https://apt.izzysoft.de/fdroid/) repository. The IzzyOnDroid repository pulls builds directly from GitHub and is the next best thing to the developers' own repositories. We recommend that you download the GitHub builds and install them manually first, then use IzzyOnDroid for any subsequent updates. This will ensure that the signature of the applications you get from IzzyOnDroid matches that of the developer and the packages have not been tampered with.
- Check if there are any differences between the F-Droid version and the Google Play Store version. Some applications like [IVPN](https://www.ivpn.net/) do not include certain features (eg [AntiTracker](https://www.ivpn.net/knowledgebase/general/antitracker-faq/)) in their Google Play Store build out of fear of censorship by Google.
Evaluate whether the additional features in the F-Droid build are worth the slower updates. Also think about whether faster updates from the Google Play Store are worth the potential privacy isues in your [threat model](/threat-modeling/).
## Security comparison of GrapheneOS and CalyxOS
### Profiles
CalyxOS includes a device controller app so there is no need to install a third party app like [Shelter](/android/#recommended-apps). GrapheneOS plans to introduce nested profile support with better isolation in the future.
GrapheneOS extends the [user profile](/android/#android-security-privacy) feature allowing a user to press an "End Session" button. This button clears the encryption key from memory. There are plans to add a [cross profile notifications system](https://github.com/GrapheneOS/os-issue-tracker/issues/88) in the future.
### Sandboxed Google Play vs Privileged MicroG
When Google Play services are used on GrapheneOS, they run as a user app and are contained within a user or work profile.
Sandboxed Google Play is confined using the highly restrictive, default [`untrusted_app`](https://source.android.com/security/selinux/concepts) domain provided by [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux). Permissions for apps to use Google Play Services can be revoked at any time by the user.
MicroG is a reimplementation of Google Play Services. This means it needs to be updated every time Android has a major version update (or the Android API changes). It also needs to run in the highly privileged [`system_app`](https://source.android.com/security/selinux/concepts) SELinux domain like normal Google Play Services and requires access to [signature spoofing](https://madaidans-insecurities.github.io/android.html#microg-signature-spoofing) so this is less secure than the Sandboxed Google Play approach. We do not believe MicroG provides any privacy advantages over Sandboxed Google Play except for the option to *shift trust* of the location backend from Google to another provider such as Mozilla or DejaVu.
From a usability point of view, Sandboxed Google Play also works well with far more applications than MicroG, thanks to its support for services like [Google Play Games](https://play.google.com/googleplaygames) and [In-app Billing API](https://android-doc.github.io/google/play/billing/api.html).
### Privileged App Extensions
Android 12 comes with special support for seamless app updates with [third party app stores](https://android-developers.googleblog.com/2020/09/listening-to-developer-feedback-to.html). The popular Free and Open Source Software (FOSS) repository [F-Droid](https://f-droid.org) doesn't implement this feature and requires a [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged) to be included with the Android distribution in order to have unattended app installation.
GrapheneOS doesn't compromise on security; therefore, they do not include the F-Droid extension. Users have to confirm all updates manually if they want to use F-Droid. Alternatively, they can use the Droid-ify client which does support seamless app updates in Android 12. GrapheneOS officially recommends [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play) instead. Many FOSS Android apps are also in Google Play but sometimes they are not (like [NewPipe](/video-streaming)).
CalyxOS includes the [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged), which may lower device security. Seamless app updates should be possible with [Aurora Store](https://auroraoss.com) in Android 12.
### Additional hardening
GrapheneOS improves upon [AOSP](https://source.android.com/) security with:
- **Hardened WebView:** Vanadium WebView requires [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) processes on the [WebView](https://developer.android.com/reference/android/webkit/WebView) process and disables legacy [32-bit](https://en.wikipedia.org/wiki/32-bit_computing) processes. It uses hardened compiler options such as [`-fwrapv`](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html) and [`-fstack-protector-strong`](https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Optimize-Options.html), which can help protect against [stack buffer overflows](https://en.wikipedia.org/wiki/Stack_buffer_overflow). [API](https://en.wikipedia.org/wiki/API)s such as the [battery status API](https://chromestatus.com/feature/4537134732017664) are disabled for privacy reasons. All system apps on GrapheneOS use the Vanadium WebView which means user installed apps that use WebView will also benefit from Vanadium's hardening. The [Vanadium patch set](https://github.com/GrapheneOS/Vanadium/tree/12/patches) is a lot more comprehensive than CalyxOS's [Chromium patch set](https://gitlab.com/CalyxOS/chromium-patches) which is derived from it.
- **Hardened Kernel:** GrapheneOS kernel includes some hardening from the [linux-hardened](https://github.com/GrapheneOS/linux-hardened) project and the [Kernel Self Protection Project (KSPP)](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project). CalyxOS uses the [same kernel](https://calyxos.org/docs/development/build/kernel/) as regular Android with some minor modifications.
- **Hardened Memory Allocator:** GrapheneOS uses the [hardened malloc](https://github.com/GrapheneOS/hardened_malloc) subproject as its memory allocator. This focuses on hardening against [memory heap corruption](https://en.wikipedia.org/wiki/Memory_corruption). CalyxOS uses the default AOSP [Scudo Malloc](https://source.android.com/devices/tech/debug/scudo), which is generally [less effective](https://twitter.com/danielmicay/status/1033671709197398016). Hardened Malloc has uncovered vulnerabilities in AOSP which have been [fixed](https://github.com/GrapheneOS/platform_system_core/commit/be11b59725aa6118b0e1f0712572e835c3d50746) by GrapheneOS such as [CVE-2021-0703](https://nvd.nist.gov/vuln/detail/CVE-2021-0703).
- **Secure Exec Spawning:** GrapheneOS [spawns](https://en.wikipedia.org/wiki/Spawn_(computing)) fresh processes as opposed to using the [Zygote model](https://ayusch.com/android-internals-the-android-os-boot-process) used by AOSP and CalyxOS. The Zygote model weakens [Address Space Layout Randomization](https://en.wikipedia.org/wiki/Address_space_layout_randomization) (ASLR) and is considered [less secure](https://wenke.gtisc.gatech.edu/papers/morula.pdf). Creating [fresh processes](https://grapheneos.org/usage#exec-spawning) is safer but will have some performance penalty when launching a new application. These penalties are not really noticeable unless you have an [old device](https://support.google.com/nexus/answer/4457705) with slow storage such as the Pixel 3a/3a XL as it has [eMMC](https://en.wikipedia.org/wiki/MultiMediaCard#eMMC).
**Please note that these are just a few examples and are not an extensive list of GrapheneOS's hardening**. For a more complete list, please read GrapheneOS' [official documentation](https://grapheneos.org/features).

View File

@ -0,0 +1,46 @@
---
title: "GrapheneOS vs CalyxOS"
icon: 'material/cellphone-cog'
---
## Profiles
CalyxOS includes a device controller app so there is no need to install a third party app like Shelter.
GrapheneOS extends the user profile feature, allowing you to end a current session. To do this, select *End Session* which will clear the encryption key from memory. There are plans to add a [cross profile notifications system](https://github.com/GrapheneOS/os-issue-tracker/issues/88) in the future. GrapheneOS plans to introduce nested profile support with better isolation in the future.
## Sandboxed Google Play vs Privileged microG
When Google Play services are used on GrapheneOS, they run as a user app and are contained within a user or work profile.
Sandboxed Google Play is confined using the highly restrictive, default [`untrusted_app`](https://source.android.com/security/selinux/concepts) domain provided by [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux). Permissions for apps to use Google Play Services can be revoked at any time.
microG is an open-source re-implementation of Google Play Services. This means it needs to be updated every time Android has a major version update (or the Android API changes). It also needs to run in the highly privileged [`system_app`](https://source.android.com/security/selinux/concepts) SELinux domain like regular Google Play Services, and it requires an operating system that allows [signature spoofing](https://github.com/microg/GmsCore/wiki/Signature-Spoofing), which allows system apps to insecurely masquerade as other apps. This is less secure than Sandboxed Google Play's approach, which does not need access to sensitive system APIs.
When using Sandboxed Play Services, you have the option to reroute location requests to the Play Services API back to the OS location API which uses satellite based location services. With microG, you have the option to either not use a network location backend at all, *shift trust* to another location backend like Mozilla, or use [DejaVu](https://github.com/n76/DejaVu), a location backend that locally collects and saves RF-based location data to an offline database which can be used when GPS is not available.
Network location providers like Play Services or Mozilla rely the on the MAC addresses of surrounding WiFi access points and Bluetooth devices being submitted for location approximation. Choosing a network location like Mozilla to use with microG provides little to no privacy benefit over Google because you are still submitting the same data and trusting them to not profile you.
Local RF location backends like DejaVu require that the phone has a working GPS first for the local RF data collected to be useful. This makes them ineffective as location providers, as the job of a location provider is to assist location approximation when satellite based services are not working.
If your threat model requires protecting your location or the MAC addresses of nearby devices, rerouting location requests to the OS location API is probably the best option. The benefit brought by microG's custom location backend is minimal at best when compared to Sandboxed Play Services.
In terms of application compatibility, Sandboxed Google Play outperforms microG due to its support for many services which microG has not yet implemented, like [Google Play Games](https://play.google.com/googleplaygames) and [In-app Billing API](https://android-doc.github.io/google/play/billing/api.html). Authentication using [FIDO](security/multi-factor-authentication#fido-fast-identity-online) with online services on Android also relies on Play Services, and the feature is not yet implemented in microG.
## Privileged App Extensions
Android 12 comes with special support for seamless app updates with [third party app stores](https://android-developers.googleblog.com/2020/09/listening-to-developer-feedback-to.html). The popular Free and Open Source Software (FOSS) repository [F-Droid](https://f-droid.org) doesn't implement this feature and requires a [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged) to be included with the Android distribution in order to have unattended app installation.
GrapheneOS does not include F-Droid, because all updates have to be manually installed, which poses a security risk. However, you can use the [Neo Store](../android.md#neo-store) client for F-Droid which does support seamless (background) app updates in Android 12. GrapheneOS officially recommends [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play) instead. Many FOSS Android apps are also in Google Play but sometimes they are not (like [NewPipe](../video-streaming.md)).
CalyxOS includes the [privileged extension](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged), which may lower device security. Seamless app updates should be possible with [Aurora Store](https://auroraoss.com) in Android 12.
## Additional hardening
GrapheneOS improves upon [AOSP](https://source.android.com/) security with:
- **Hardened WebView:** Vanadium WebView requires [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) processes on the [WebView](https://developer.android.com/reference/android/webkit/WebView) process and disables legacy [32-bit](https://en.wikipedia.org/wiki/32-bit_computing) processes. It uses hardened compiler options such as [`-fwrapv`](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html) and [`-fstack-protector-strong`](https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gcc/Optimize-Options.html), which can help protect against [stack buffer overflows](https://en.wikipedia.org/wiki/Stack_buffer_overflow). [API](https://en.wikipedia.org/wiki/API)s such as the [battery status API](https://chromestatus.com/feature/4537134732017664) are disabled for privacy reasons. All system apps on GrapheneOS use the Vanadium WebView which means that apps which use WebView will also benefit from Vanadium's hardening. The [Vanadium patch set](https://github.com/GrapheneOS/Vanadium/tree/12/patches) is a lot more comprehensive than CalyxOS's [Chromium patch set](https://gitlab.com/CalyxOS/chromium-patches) which is derived from it.
- **Hardened Kernel:** GrapheneOS kernel includes some hardening from the [linux-hardened](https://github.com/GrapheneOS/linux-hardened) project and the [Kernel Self Protection Project (KSPP)](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project). CalyxOS uses the [same kernel](https://calyxos.org/docs/development/build/kernel/) as regular Android with some minor modifications.
- **Hardened Memory Allocator:** GrapheneOS uses the [hardened malloc](https://github.com/GrapheneOS/hardened_malloc) subproject as its memory allocator. This focuses on hardening against [memory heap corruption](https://en.wikipedia.org/wiki/Memory_corruption). CalyxOS uses the default AOSP [Scudo Malloc](https://source.android.com/devices/tech/debug/scudo), which is generally [less effective](https://twitter.com/danielmicay/status/1033671709197398016). Hardened Malloc has uncovered vulnerabilities in AOSP which have been [fixed](https://github.com/GrapheneOS/platform_system_core/commit/be11b59725aa6118b0e1f0712572e835c3d50746) by GrapheneOS such as [CVE-2021-0703](https://nvd.nist.gov/vuln/detail/CVE-2021-0703).
- **Secure Exec Spawning:** GrapheneOS [spawns](https://en.wikipedia.org/wiki/Spawn_(computing)) fresh processes as opposed to using the [Zygote model](https://ayusch.com/android-internals-the-android-os-boot-process) used by AOSP and CalyxOS. The Zygote model weakens [Address Space Layout Randomization](https://en.wikipedia.org/wiki/Address_space_layout_randomization) (ASLR) and is considered [less secure](https://wenke.gtisc.gatech.edu/papers/morula.pdf). Creating [fresh processes](https://grapheneos.org/usage#exec-spawning) is safer but will have some performance penalty when launching a new application. These penalties are not really noticeable unless you have an [old device](https://support.google.com/nexus/answer/4457705) with slow storage such as the Pixel 3a/3a XL as it has [eMMC](https://en.wikipedia.org/wiki/MultiMediaCard#eMMC).
**Please note that these are just a few examples and are not an extensive list of GrapheneOS's hardening**. For a more complete list, please read GrapheneOS' [official documentation](https://grapheneos.org/features).

126
docs/android/overview.en.md Normal file
View File

@ -0,0 +1,126 @@
---
title: Android Overview
icon: material/cellphone-check
---
Android is a secure operating system that has strong [app sandboxing](https://source.android.com/security/app-sandbox), [Verified Boot](https://source.android.com/security/verifiedboot) (AVB), and a robust [permission](https://developer.android.com/guide/topics/permissions/overview) control system.
## Choosing an Android Distribution
When you buy an Android phone, the device's default operating system often comes with invasive integration with apps and services that are not part of the [Android Open Source Project](https://source.android.com/). An example of such is Google Play Services, which has unrevokable privileges to access your files, contacts storage, call logs, SMS messages, location, camera, microphone, hardware identifiers, and so on. These apps and services increase the attack surface of your device and are the source of various privacy concerns with Android.
This problem could be solved by using a custom Android distribution that does not come with such invasive integration. Unfortunately, many custom Android distributions often violate the Android security model by not supporting critical security features such as AVB, rollback protection, firmware updates, and so on. Some distributions also ship [`userdebug`](https://source.android.com/setup/build/building#choose-a-target) builds which expose root via [ADB](https://developer.android.com/studio/command-line/adb) and require [more permissive](https://github.com/LineageOS/android_system_sepolicy/search?q=userdebug&type=code) SELinux policies to accomodate debugging features, resulting in a further increased attack surface and weakened security model.
Ideally, when choosing a custom Android distribution, you should make sure that it upholds the Android security model. At the very least, the distribution should have production builds, support for AVB, rollback protection, timely firmware and operating system updates, and SELinux in [enforcing mode](https://source.android.com/security/selinux/concepts#enforcement_levels). All of our recommended Android distributions satisfy these criteria.
[Our Android System Recommendations :material-arrow-right:](../android.md){ .md-button }
## Avoid Rooting
[Rooting](https://en.wikipedia.org/wiki/Rooting_(Android)) Android phones can decrease security significantly as it weakens the complete [Android security model](https://en.wikipedia.org/wiki/Android_(operating_system)#Security_and_privacy). This can decrease privacy should there be an exploit that is assisted by the decreased security. Common rooting methods involve directly tampering with the boot partition, making it impossible to perform successful Verified Boot. Apps that require root will also modify the system partition meaning that Verified Boot would have to remain disabled. Having root exposed directly in the user interface also increases the [attack surface](https://en.wikipedia.org/wiki/Attack_surface) of your device and may assist in [privilege escalation](https://en.wikipedia.org/wiki/Privilege_escalation) vulnerabilities and SELinux policy bypasses.
Adblockers which modify the [hosts file](https://en.wikipedia.org/wiki/Hosts_(file)) (AdAway) and firewalls (AFWall+) which require root access persistently are dangerous and should not be used. They are also not the correct way to solve their intended purposes. For Adblocking we suggest encrypted [DNS](../dns.md) or [VPN](../vpn.md) server blocking solutions instead. RethinkDNS, TrackerControl and AdAway in non-root mode will take up the VPN slot (by using a local loopback VPN) preventing you from using privacy enhancing services such as Orbot or a real VPN server.
AFWall+ works based on the [packet filtering](https://en.wikipedia.org/wiki/Firewall_(computing)#Packet_filter) approach and may be bypassable in some situations.
We do not believe that the security sacrifices made by rooting a phone are worth the questionable privacy benefits of those apps.
## Verified Boot
[Verified Boot](https://source.android.com/security/verifiedboot) is an important part of the Android security model. It provides protection against [evil maid](https://en.wikipedia.org/wiki/Evil_maid_attack) attacks, malware persistence, and ensures security updates cannot be downgraded with [rollback protection](https://source.android.com/security/verifiedboot/verified-boot#rollback-protection).
Android 10 and above has moved away from full-disk encryption to more flexible [file-based encryption](https://source.android.com/security/encryption/file-based). Your data is encrypted using unique encryption keys, and the operating system files are left unencrypted.
Verified Boot ensures the integrity of the operating system files, thereby preventing an adversary with physical access from tampering or installing malware on the device. In the unlikely case that malware is able to exploit other parts of the system and gain higher privileged access, Verified Boot will prevent and revert changes to the system partition upon rebooting device.
Unfortunately, OEMs are only obliged to support Verified Boot on their stock Android distribution. Only a few OEMs such as Google support custom AVB key enrollment on their devices. Additionally, some AOSP derivatives such as LineageOS or /e/ OS do not support Verified Boot even on hardware with Verified Boot support for third party operating systems. We recommend that you check for support **before** purchasing a new device. AOSP derivatives which do not support Verified Boot are **not** recommended.
## Firmware Updates
Firmware updates are critical for maintaining security and without them your device cannot be secure. OEMs have support agreements with their partners to provide the closed source components for a limited support period. These are detailed in the monthly [Android Security Bulletins](https://source.android.com/security/bulletin).
As the components of the phone such as the processor and radio technologies rely on closed source components, the updates must be provided by the respective manufacturers. Therefore it is important that you purchase a device within an active support cycle. [Qualcomm](https://www.qualcomm.com/news/releases/2020/12/16/qualcomm-and-google-announce-collaboration-extend-android-os-support-and) and [Samsung](https://news.samsung.com/us/samsung-galaxy-security-extending-updates-knox/) support their devices for 4 years, while cheaper products often have shorter support cycles. With the introduction of the [Pixel 6](https://support.google.com/pixelphone/answer/4457705), Google now makes their own SoC and they will provide a minimum of 5 years of support.
EOL devices which are no longer supported by the SoC manufacturer cannot receive firmware updates from OEM vendors or after market Android distributors. This means that security issues with those devices will remain unfixed.
## Android Versions
It's important to not use an [end-of-life](https://endoflife.date/android) version of Android. Newer versions of Android not only receive security updates for the operating system but also important privacy enhancing updates too. For example, [prior to Android 10](https://developer.android.com/about/versions/10/privacy/changes), any apps with the [`READ_PHONE_STATE`](https://developer.android.com/reference/android/Manifest.permission#READ_PHONE_STATE) permission could access sensitive and unique serial numbers of your phone such as [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity), [MEID](https://en.wikipedia.org/wiki/Mobile_equipment_identifier), your SIM card's [IMSI](https://en.wikipedia.org/wiki/International_mobile_subscriber_identity), whereas now they must be system apps to do so. System apps are only provided by the OEM or Android distribution.
## Android Permissions
[Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) grant you control over what apps are allowed to access. Google regularly makes [improvements](https://developer.android.com/about/versions/11/privacy/permissions) on the permission system in each successive version. All apps you install are strictly [sandboxed](https://source.android.com/security/app-sandbox), therefore there is no need to install any antivirus apps. The savings you make from not purchasing or subscribing to security apps is better spent on paying for a supported device in the future.
Should you want to run an app that you're unsure about, consider using a user or work [profile](android/#android-security-privacy).
## User Profiles
Multiple user profiles can be found in **Settings****System****Multiple users** and are the simplest way to isolate in Android.
With user profiles, you can impose restrictions on a specific profile, such as: making calls, using SMS, or installing apps on the device. Each profile is encrypted using its own encryption key and cannot access the data of any other profiles. Even the device owner cannot view the data of other profiles without knowing their password. Multiple user profiles is a more secure method of isolation.
## Work Profile
[Work Profiles](https://support.google.com/work/android/answer/6191949) are another way to isolate individual apps and may be more convenient than separate user profiles.
A **device controller** such as [Shelter](#recommended-apps) is required, unless you're using CalyxOS which includes one.
The work profile is dependent on a device controller to function. Features such as *File Shuttle* and *contact search blocking* or any kind of isolation features must be implemented by the controller. You must also fully trust the device controller app, as it has full access to your data inside of the work profile.
This method is generally less secure than a secondary user profile; however, it does allow you the convenience of running apps in both the work and personal profiles simultaneously.
## VPN Killswitch
Android 7 and above supports a VPN killswitch and it is available without the need to install third party apps. This feature can prevent leaks if the VPN is disconnected. It can be found in (:gear: **Settings****Network & internet****VPN** → :gear: → **Block connections without VPN**).
## Global Toggles
Modern Android devices have global toggles for disabling Bluetooth and location services. Android 12 introduced toggles for the camera and microphone. When not in use, we recommend disabling these features. Apps cannot use disabled features (even if granted individual permission) until re-enabled.
## Google
If you are using a device with Google services, either your stock operating system or an operating system that safely sandboxes Google Play Services like GrapheneOS, there are a number of additional changes you can make to improve your privacy. We still recommend avoiding Google services entirely, or limiting Google Play services to a specific user/work profile by combining a device controller like *Shelter* with GrapheneOS's Sandboxed Google Play.
### Advanced Protection Program
If you have a Google account we suggest enrolling in the [Advanced Protection Program](https://landing.google.com/advancedprotection/). It is available at no cost to anyone with two or more hardware security keys with [FIDO](../basics/multi-factor-authentication.md#fido-fast-identity-online) support.
The Advanced Protection Program provides enhanced threat monitoring and enables:
- Stricter two factor authentication; e.g. that [FIDO](../basics/multi-factor-authentication.md#fido-fast-identity-online) **must** be used and disallows the use of [SMS OTPs](../basics/multi-factor-authentication.md#sms-or-email-mfa), [TOTP](../basics/multi-factor-authentication.md#time-based-one-time-password-totp), and [OAuth](https://en.wikipedia.org/wiki/OAuth)
- Only Google and verified third party apps can access account data
- Scanning of incoming emails on Gmail accounts for [phishing](https://en.wikipedia.org/wiki/Phishing#Email_phishing) attempts
- Stricter [safe browser scanning](https://www.google.com/chrome/privacy/whitepaper.html#malware) with Google Chrome
- Stricter recovery process for accounts with lost credentials
If you use non-sandboxed Google Play Services (common on stock operating systems), the Advanced Protection Program also comes with [additional benefits](https://support.google.com/accounts/answer/9764949?hl=en) such as:
- Not allowing app installation outside of the Google Play Store, the OS vendor's app store, or via [`adb`](https://en.wikipedia.org/wiki/Android_Debug_Bridge)
- Mandatory automatic device scanning with [Play Protect](https://support.google.com/googleplay/answer/2812853?hl=en#zippy=%2Chow-malware-protection-works%2Chow-privacy-alerts-work)
- Warning you about unverified applications
### Google Play System Updates
In the past, Android security updates had to be shipped by the operating system vendor. Android has become more modular beginning with Android 10, and Google can push security updates for **some** system components via the privileged Play Services.
If you have an EOL device shipped with Android 10 or above and are unable to run any of our recommended operating systems on your device, you are likely going to be better off sticking with your OEM Android installation (as opposed to an operating system not listed here such as LineageOS or /e/ OS). This will allow you to receive **some** security fixes from Google, while not violating the Android security model by using an insecure Android derivative and increasing your attack surface. We would still recommend upgrading to a supported device as soon as possible.
### Advertising ID
All devices with Google Play Services installed automatically generate an [advertising ID](https://support.google.com/googleplay/android-developer/answer/6048248?hl=en) used for targeted advertising. Disable this feature to limit the data collected about you.
On Android distributions with [Sandboxed Google Play](https://grapheneos.org/usage#sandboxed-google-play), go to :gear: **Settings****Apps****Sandboxed Google Play****Google Settings****Ads**, and select *Delete advertising ID*.
On Android distributions with privileged Google Play Services (such as stock OSes), the setting may be in one of several locations. Check
- :gear: **Settings****Google****Ads**
- :gear: **Settings****Privacy****Ads**
You will either be given the option to delete your advertising ID or to *Opt out of interest-based ads*, this varies between OEM distributions of Android. If presented with the option to delete the advertising ID that is preferred. If not, then make sure to opt out and reset your advertising ID.
### SafetyNet and Play Integrity API
[SafetyNet](https://developer.android.com/training/safetynet/attestation) and the [Play Integrity APIs](https://developer.android.com/google/play/integrity) are generally used for [banking apps](https://grapheneos.org/usage#banking-apps). Many banking apps will work fine in GrapheneOS with sandboxed Play services, however some non-financal apps have their own crude anti-tampering mechanisms which might fail. GrapheneOS passes the `basicIntegrity` check, but not the certification check `ctsProfileMatch`. Devices with Android 8 or later have hardware attestation support which cannot be bypassed without leaked keys or serious vulnerabilities.
As for Google Wallet, we don't recommend this due to their [privacy policy](https://payments.google.com/payments/apis-secure/get_legal_document?ldo=0&ldt=privacynotice&ldl=en), which states you must opt-out if you don't want your credit rating and personal information shared with affiliate marketing services.
--8<-- "includes/abbreviations.en.md"

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,93 @@
Copyright 2020 The DM Mono Project Authors (https://www.github.com/googlefonts/dm-mono)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -0,0 +1,16 @@
@font-face {
font-family: 'DM Mono';
src: url('DMMono-Regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'DM Mono';
src: url('DMMono-Medium.woff2') format('woff2');
font-weight: 500;
font-style: normal;
font-display: swap;
}

View File

@ -0,0 +1,113 @@
## License for USWDSs Modified Version
This font combines Libre Franklin (the “Original Version”) and these GSA modifications into a piece of font software called Public Sans, which is a “Modified Version” of Libre Franklin.
As a work of the United States Government, the font software modifications made by GSA are not subject to copyright within the United States. Additionally, GSA waives copyright and related rights in its font software modifications worldwide through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/).
The Original Version (as defined in the SIL Open Font License, Version 1.1) remains subject to copyright under the SIL Open Font License, Version 1.1.
This Modified Version (Public Sans) contains both software under the SIL Open Font License, Version 1.1 and software modifications by GSA released as CC0. As a work of the United States Government, the software modifications made by GSA are not subject to copyright within the United States. Additionally, GSA waives copyright and related rights in its software modifications worldwide through the [CC0 1.0 Universal Public Domain Dedication](https://creativecommons.org/publicdomain/zero/1.0/). It is a “joint work” made of the original software and modifications combined into a single work.
**In practice, users of this Modified Version (Public Sans) should use Public Sans according to the terms of the SIL Open Font License, Version 1.1, below.** This is because this font is a combination of work subject to copyright and work not subject to copyright, so the more restrictive requirements apply to using the combined work.
## License of project USWDSs Modified Version is based on
- Libre Franklin is licensed under the SIL Open Font License, Version 1.1 (<http://scripts.sil.org/OFL>)
- To view the copyright and specific terms and conditions of Libre Franklin, please refer to [OFL.txt](https://github.com/impallari/Libre-Franklin/blob/master/OFL.txt)
## SIL Open Font License, Version 1.1
Copyright 2015 The Public Sans Project Authors (https://github.com/uswds/public-sans)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at http://scripts.sil.org/OFL
```
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
```

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,19 +1 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-147 -70 294 345">
<g fill="#a4c639">
<use stroke-width="14.4" xlink:href="#b" stroke="#FFF"/>
<use xlink:href="#a" transform="scale(-1,1)"/>
<g id="a" stroke="#FFF" stroke-width="7.2">
<rect rx="6.5" transform="rotate(29)" height="86" width="13" y="-86" x="14"/>
<rect id="c" rx="24" height="133" width="48" y="41" x="-143"/>
<use y="97" x="85" xlink:href="#c"/>
</g>
<g id="b">
<ellipse cy="41" rx="91" ry="84"/>
<rect rx="22" height="182" width="182" y="20" x="-91"/>
</g>
</g>
<g stroke="#FFF" stroke-width="7.2" fill="#FFF">
<path d="m-95 44.5h190"/><circle cx="-42" r="4"/><circle cx="42" r="4"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-147 -70 294 345"><g fill="#a4c639"><use stroke="#FFF" stroke-width="14.4" xlink:href="#b"/><use transform="scale(-1,1)" xlink:href="#a"/><g id="a" stroke="#FFF" stroke-width="7.2"><rect width="13" height="86" x="14" y="-86" rx="6.5" transform="rotate(29)"/><rect id="c" width="48" height="133" x="-143" y="41" rx="24"/><use x="85" y="97" xlink:href="#c"/></g><g id="b"><ellipse cy="41" rx="91" ry="84"/><rect width="182" height="182" x="-91" y="20" rx="22"/></g></g><g fill="#FFF" stroke="#FFF" stroke-width="7.2"><path d="m-95 44.5h190"/><circle cx="-42" r="4"/><circle cx="42" r="4"/></g></svg>

Before

Width:  |  Height:  |  Size: 728 B

After

Width:  |  Height:  |  Size: 689 B

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" fill="#ffffff" version="1.1" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><path d="m29.623 0.50599-20.539 9.1251c-2.1126 0.93891-3.4916 3.0515-3.4916 5.3694v13.79c0 16.284 11.267 31.512 26.407 35.209 15.14-3.697 26.407-18.925 26.407-35.209v-13.79c0-2.3179-1.379-4.4305-3.4916-5.3694l-20.539-9.1251c-1.4964-0.67485-3.2569-0.67485-4.7533 0zm2.3766 31.19h20.539c-1.5551 12.089-9.6239 22.857-20.539 26.231v-26.202h-20.539v-16.724l20.539-9.1251z" stroke-width="2.9341"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" fill="#fff" version="1.1" viewBox="0 0 64 64"><path stroke-width="2.934" d="m29.623 0.50599-20.539 9.1251c-2.1126 0.93891-3.4916 3.0515-3.4916 5.3694v13.79c0 16.284 11.267 31.512 26.407 35.209 15.14-3.697 26.407-18.925 26.407-35.209v-13.79c0-2.3179-1.379-4.4305-3.4916-5.3694l-20.539-9.1251c-1.4964-0.67485-3.2569-0.67485-4.7533 0zm2.3766 31.19h20.539c-1.5551 12.089-9.6239 22.857-20.539 26.231v-26.202h-20.539v-16.724l20.539-9.1251z"/></svg>

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 507 B

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><path d="m16.933-1.6667e-7 -13.855 6.1576v9.2364c0 8.5436 5.9113 16.533 13.855 18.473 7.9433-1.9397 13.855-9.9291 13.855-18.473v-9.2364zm0 16.918h10.776c-0.81588 6.3423-5.0492 11.992-10.776 13.762v-13.747h-10.776v-8.7746l10.776-4.7875z" fill="#1a1a1a" stroke-width="1.5394"/><path d="m16.415 18.141h6.35v6.35h-6.35z" fill="none" stroke-width=".26458"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><path fill="#1a1a1a" stroke-width="1.539" d="m16.933-1.6667e-7 -13.855 6.1576v9.2364c0 8.5436 5.9113 16.533 13.855 18.473 7.9433-1.9397 13.855-9.9291 13.855-18.473v-9.2364zm0 16.918h10.776c-0.81588 6.3423-5.0492 11.992-10.776 13.762v-13.747h-10.776v-8.7746l10.776-4.7875z"/><path fill="none" stroke-width=".265" d="m16.415 18.141h6.35v6.35h-6.35z"/></svg>

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -263.13)"><g transform="matrix(.072143 0 0 .072143 -44.234 303.31)"><g transform="matrix(.17755 0 0 .17755 641.74 -556.97)" clip-rule="evenodd" fill="#fff" fill-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision"><path class="fil0" d="m605 798 381-217c-7-21-12-43-12-67 0-92 67-168 155-184v-330h64v330c88 16 155 92 155 184 0 24-5 46-13 67l382 217c14-16 31-30 50-42 80-46 180-26 237 42l286-165 32 56-286 165c31 84-2 180-82 226-18 10-36 17-55 21v442c19 4 37 11 55 21 80 46 113 142 82 226l286 165-32 56-286-165c-57 68-157 88-237 42-19-12-36-26-50-42-127 72-254 145-382 217 8 21 13 43 13 67 0 92-67 168-155 184v330h-64v-330c-88-16-155-92-155-184 0-24 5-46 12-67l-381-217c-14 16-31 30-50 42-80 46-180 26-237-42l-286 165-32-56 286-165c-31-84 2-180 82-226 18-10 36-17 55-21v-442c-19-4-37-11-55-21-80-46-113-142-82-226l-286-165 32-56 286 165c57-68 157-88 237-42 19 12 36 26 50 42zm1080 992c-18-50-15-108 14-157 30-52 81-84 136-92v-438c-55-8-106-40-136-92-29-49-32-107-14-157l-382-218c-35 40-85 65-142 65s-107-25-142-65l-382 218c18 50 15 108-14 157-30 52-81 84-136 92v438c55 8 106 40 136 92 29 49 32 107 14 157l382 218c35-40 85-65 142-65s107 25 142 65z" fill="#fff"/></g></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g><g><g fill="#fff" fill-rule="evenodd" clip-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision"><path fill="#fff" d="m605 798 381-217c-7-21-12-43-12-67 0-92 67-168 155-184v-330h64v330c88 16 155 92 155 184 0 24-5 46-13 67l382 217c14-16 31-30 50-42 80-46 180-26 237 42l286-165 32 56-286 165c31 84-2 180-82 226-18 10-36 17-55 21v442c19 4 37 11 55 21 80 46 113 142 82 226l286 165-32 56-286-165c-57 68-157 88-237 42-19-12-36-26-50-42-127 72-254 145-382 217 8 21 13 43 13 67 0 92-67 168-155 184v330h-64v-330c-88-16-155-92-155-184 0-24 5-46 12-67l-381-217c-14 16-31 30-50 42-80 46-180 26-237-42l-286 165-32-56 286-165c-31-84 2-180 82-226 18-10 36-17 55-21v-442c-19-4-37-11-55-21-80-46-113-142-82-226l-286-165 32-56 286 165c57-68 157-88 237-42 19 12 36 26 50 42zm1080 992c-18-50-15-108 14-157 30-52 81-84 136-92v-438c-55-8-106-40-136-92-29-49-32-107-14-157l-382-218c-35 40-85 65-142 65s-107-25-142-65l-382 218c18 50 15 108-14 157-30 52-81 84-136 92v438c55 8 106 40 136 92 29 49 32 107 14 157l382 218c35-40 85-65 142-65s107 25 142 65z" class="fil0" transform="translate(0 -263.13) matrix(.072143 0 0 .072143 -44.234 303.31) matrix(.17755 0 0 .17755 641.74 -556.97)"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -263.13)"><g transform="matrix(.072143 0 0 .072143 -44.234 303.31)"><g transform="matrix(.17755 0 0 .17755 641.74 -556.97)" clip-rule="evenodd" fill="#1b1b1b" fill-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision"><path class="fil0" d="m605 798 381-217c-7-21-12-43-12-67 0-92 67-168 155-184v-330h64v330c88 16 155 92 155 184 0 24-5 46-13 67l382 217c14-16 31-30 50-42 80-46 180-26 237 42l286-165 32 56-286 165c31 84-2 180-82 226-18 10-36 17-55 21v442c19 4 37 11 55 21 80 46 113 142 82 226l286 165-32 56-286-165c-57 68-157 88-237 42-19-12-36-26-50-42-127 72-254 145-382 217 8 21 13 43 13 67 0 92-67 168-155 184v330h-64v-330c-88-16-155-92-155-184 0-24 5-46 12-67l-381-217c-14 16-31 30-50 42-80 46-180 26-237-42l-286 165-32-56 286-165c-31-84 2-180 82-226 18-10 36-17 55-21v-442c-19-4-37-11-55-21-80-46-113-142-82-226l-286-165 32-56 286 165c57-68 157-88 237-42 19 12 36 26 50 42zm1080 992c-18-50-15-108 14-157 30-52 81-84 136-92v-438c-55-8-106-40-136-92-29-49-32-107-14-157l-382-218c-35 40-85 65-142 65s-107-25-142-65l-382 218c18 50 15 108-14 157-30 52-81 84-136 92v438c55 8 106 40 136 92 29 49 32 107 14 157l382 218c35-40 85-65 142-65s107 25 142 65z" fill="#1b1b1b"/></g></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g><g><g fill="#1b1b1b" fill-rule="evenodd" clip-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision"><path fill="#1b1b1b" d="m605 798 381-217c-7-21-12-43-12-67 0-92 67-168 155-184v-330h64v330c88 16 155 92 155 184 0 24-5 46-13 67l382 217c14-16 31-30 50-42 80-46 180-26 237 42l286-165 32 56-286 165c31 84-2 180-82 226-18 10-36 17-55 21v442c19 4 37 11 55 21 80 46 113 142 82 226l286 165-32 56-286-165c-57 68-157 88-237 42-19-12-36-26-50-42-127 72-254 145-382 217 8 21 13 43 13 67 0 92-67 168-155 184v330h-64v-330c-88-16-155-92-155-184 0-24 5-46 12-67l-381-217c-14 16-31 30-50 42-80 46-180 26-237-42l-286 165-32-56 286-165c-31-84 2-180 82-226 18-10 36-17 55-21v-442c-19-4-37-11-55-21-80-46-113-142-82-226l-286-165 32-56 286 165c57-68 157-88 237-42 19 12 36 26 50 42zm1080 992c-18-50-15-108 14-157 30-52 81-84 136-92v-438c-55-8-106-40-136-92-29-49-32-107-14-157l-382-218c-35 40-85 65-142 65s-107-25-142-65l-382 218c18 50 15 108-14 157-30 52-81 84-136 92v438c55 8 106 40 136 92 29 49 32 107 14 157l382 218c35-40 85-65 142-65s107 25 142 65z" class="fil0" transform="translate(0 -263.13) matrix(.072143 0 0 .072143 -44.234 303.31) matrix(.17755 0 0 .17755 641.74 -556.97)"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg width="1571" height="1934" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M785 61C450.378 61 60 580.17 60 1080.813 60 1581.455 384.605 1874 785 1874s725-292.545 725-793.188C1510 580.17 1119.6 61 785 61Z" fill="#EFBC48" fill-rule="nonzero"/><path d="m1569.359 1030.758-119.241 117.898L1268.933 907l-181.185 241.656-120.84-120.817-120.839 120.817-120.86-181.151-120.84 126.87-120.968-66.536-60.43 60.398-60.43-181.152-241.68 181.152-118.985-61.954S0 1067.607 0 1088.237C0 1622.079 351.712 1934 785.51 1934c433.8 0 785.49-311.921 785.49-845.763a1064.319 1064.319 0 0 0-1.641-57.479Z" fill="#E2CDB3"/><path d="M785.41 0C550.47 0 290.16 232.145 136 540.856l45.07 62.85 181.214-181.03 60.44 181.03 60.44-60.38 120.86 60.38 120.86-120.737 60.44 120.737 120.86-60.38 120.86 60.38 120.88-120.737L1329.14 664 1440 551.676C1286.756 237.704 1023.1 0 785.41 0Z" fill="#FCF1E3" fill-rule="nonzero"/><ellipse fill="#1F190A" fill-rule="nonzero" cx="543.5" cy="814.5" rx="60.5" ry="90.5"/><ellipse fill="#1F190A" fill-rule="nonzero" cx="1026.5" cy="814.5" rx="60.5" ry="90.5"/><path d="M1008 732.064c-1.36.012-2.718.111-4.065.296-10.374 6.16-19.33 16.514-25.935 29.64 0 16.569 13.431 30 30 30 16.569 0 30-13.431 30-30 0-16.569-13.431-30-30-30v.064ZM525 732.064c-1.36.012-2.718.111-4.065.296-10.374 6.16-19.35 16.514-25.935 29.64 0 16.569 13.431 30 30 30 16.569 0 30-13.431 30-30 0-16.569-13.431-30-30-30v.064Z" fill="#F9F8F4" fill-rule="nonzero"/><path d="M787.41 62C552.47 62 292.16 273.92 138 555.564l45.07 57.347 181.214-165.288 60.44 165.288 60.44-55.089 120.86 55.089 120.86-110.178 60.44 110.178 120.86-55.089 120.86 55.089 120.88-110.178L1331.14 668 1442 565.512C1288.756 278.926 1025.1 62 787.41 62Z" fill="#F8E4C3" fill-rule="nonzero"/><path d="m1569.401 1023.424-119.24 110.885L1268.975 907l-181.185 227.31-120.84-113.655-120.84 113.654-120.86-170.397-120.84 119.278-120.967-62.493-60.43 56.827-60.431-170.396-241.68 170.396-119.027-58.36S0 1058.035 0 1077.439C0 1579.577 351.712 1873 785.51 1873c433.8 0 785.49-293.423 785.49-795.56 0-17.935-.533-35.94-1.599-54.016Z" fill="#F9E4C4" fill-rule="nonzero"/></g></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g stroke-width=".034914"><circle id="main-circle-drop-shadow" cx="17.283" cy="17.283" r="16.584" fill-opacity=".1"/><circle id="main-circle" cx="16.584" cy="16.584" r="16.584" fill="#4f3663"/><path id="onion-drop-shadow" d="m32.732 20.111c0.11871-0.57958 0.20599-1.1766 0.26186-1.7911l-13.711-13.711-1.0893 1.0474-2.3986-2.3986-1.1626 2.856 1.7946 1.7946-7.5764 20.481 4.4446 4.4446c0.75066 0.14315 1.5048 0.23392 2.2764 0.27582 0.014 4e-3 0.0279 4e-3 0.0419 4e-3h0.014c0.29677 0.0175 0.57958 0.0244 0.8554 0.0244q0.0524 0 0.10474 0c0.35962 0 0.71575-0.0105 1.0509-0.0279 0.0873-3e-3 0.16759-0.0105 0.2444-0.014 0.70527-0.0489 1.3931-0.13966 2.0495-0.26884 0.27931-0.0524 0.55164-0.11522 0.81699-0.17806 2.8211-0.70877 5.314-2.1507 7.4961-4.3329 0.21298-0.21298 0.41898-0.42596 0.61101-0.63894 1.3931-1.5292 2.437-3.1982 3.1388-5.0102 0.31773-0.817 0.56562-1.6654 0.74368-2.5488z" fill-opacity=".2"/></g><g id="onion" transform="matrix(.034914 0 0 .034914 -1.2918 -1.2918)"><path id="first-layer" d="m433.1 252.1v13.4c-1.7 42.1-20 72.8-54.8 92.2-3 1.5-6.1 3-9.1 4.7-26.7 14.2-51.7 32.9-74.8 56-60.1 60.2-90.2 132.8-90.2 217.8 0 85.1 30.1 157.7 90.2 217.8 60.2 60.2 132.8 90.2 217.8 90.2h4.1v-678.4c-28.7-2.2-56.4-7.8-83.1-13.6z" fill="#fdfcdf"/><circle id="second-layer" cx="512" cy="645" r="235" fill="#eaeace"/><circle id="third-layer" cx="512" cy="648" r="162" fill="#d1d1b8"/><circle id="fourth-layer" cx="512" cy="650" r="94" fill="#bfbfa9"/><path id="half" d="m820.1 636.1q0-127.6-90.2-217.8c-23.8-23.8-49.7-43-77.8-57.5-38.1-17.6-58.4-50.5-61-98.6-25.7 4.9-50.6 5.4-74.9 3.6v678.5c83.5-1 154.6-31.1 213.7-90.2 60.2-60.1 90.2-132.7 90.2-217.8z" fill="#735a93"/><path id="leafs" d="m443.4 84.4c-0.3 1.3-0.7 2.6-0.9 3.7q-31 121.9 65.2 161.7c18.8-62.2-0.9-116-59.3-161.7-1.4-1.1-3.1-2.4-4.8-3.7zm81 165.4c-5.4-40.8 16.3-67.9 64.9-80.8-5.3 44.9-26.9 71.8-64.9 80.8" fill="#78af52"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g stroke-width=".035"><circle id="main-circle-drop-shadow" cx="17.283" cy="17.283" r="16.584" fill-opacity=".1"/><circle id="main-circle" cx="16.584" cy="16.584" r="16.584" fill="#4f3663"/><path id="onion-drop-shadow" fill-opacity=".2" d="m32.732 20.111c0.11871-0.57958 0.20599-1.1766 0.26186-1.7911l-13.711-13.711-1.0893 1.0474-2.3986-2.3986-1.1626 2.856 1.7946 1.7946-7.5764 20.481 4.4446 4.4446c0.75066 0.14315 1.5048 0.23392 2.2764 0.27582 0.014 4e-3 0.0279 4e-3 0.0419 4e-3h0.014c0.29677 0.0175 0.57958 0.0244 0.8554 0.0244q0.0524 0 0.10474 0c0.35962 0 0.71575-0.0105 1.0509-0.0279 0.0873-3e-3 0.16759-0.0105 0.2444-0.014 0.70527-0.0489 1.3931-0.13966 2.0495-0.26884 0.27931-0.0524 0.55164-0.11522 0.81699-0.17806 2.8211-0.70877 5.314-2.1507 7.4961-4.3329 0.21298-0.21298 0.41898-0.42596 0.61101-0.63894 1.3931-1.5292 2.437-3.1982 3.1388-5.0102 0.31773-0.817 0.56562-1.6654 0.74368-2.5488z"/></g><g id="onion" transform="matrix(.034914 0 0 .034914 -1.2918 -1.2918)"><path id="first-layer" fill="#fdfcdf" d="m433.1 252.1v13.4c-1.7 42.1-20 72.8-54.8 92.2-3 1.5-6.1 3-9.1 4.7-26.7 14.2-51.7 32.9-74.8 56-60.1 60.2-90.2 132.8-90.2 217.8 0 85.1 30.1 157.7 90.2 217.8 60.2 60.2 132.8 90.2 217.8 90.2h4.1v-678.4c-28.7-2.2-56.4-7.8-83.1-13.6z"/><circle id="second-layer" cx="512" cy="645" r="235" fill="#eaeace"/><circle id="third-layer" cx="512" cy="648" r="162" fill="#d1d1b8"/><circle id="fourth-layer" cx="512" cy="650" r="94" fill="#bfbfa9"/><path id="half" fill="#735a93" d="m820.1 636.1q0-127.6-90.2-217.8c-23.8-23.8-49.7-43-77.8-57.5-38.1-17.6-58.4-50.5-61-98.6-25.7 4.9-50.6 5.4-74.9 3.6v678.5c83.5-1 154.6-31.1 213.7-90.2 60.2-60.1 90.2-132.7 90.2-217.8z"/><path id="leafs" fill="#78af52" d="m443.4 84.4c-0.3 1.3-0.7 2.6-0.9 3.7q-31 121.9 65.2 161.7c18.8-62.2-0.9-116-59.3-161.7-1.4-1.1-3.1-2.4-4.8-3.7zm81 165.4c-5.4-40.8 16.3-67.9 64.9-80.8-5.3 44.9-26.9 71.8-64.9 80.8"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><defs><mask id="mask-2" fill="#ffffff"><circle cx="384" cy="384" r="384"/></mask></defs><g id="Group" transform="scale(.044097)" fill-rule="evenodd" mask="url(#mask-2)"><rect id="Rectangle" width="192" height="192" fill="#0d2e46"/><rect x="192" width="192" height="192" fill="#415a6e"/><rect x="384" width="192" height="192" fill="#597961"/><rect x="576" width="192" height="192" fill="#6d4048"/><rect x="576" y="192" width="192" height="192" fill="#e08f88"/><rect x="384" y="192" width="192" height="192" fill="#e3b59c"/><rect x="192" y="192" width="192" height="192" fill="#8ba281"/><rect y="192" width="192" height="192" fill="#6378ab"/><rect y="384" width="192" height="192" fill="#7d5a49"/><rect x="192" y="384" width="192" height="192" fill="#b48268"/><rect x="384" y="384" width="192" height="192" fill="#8f595b"/><rect x="576" y="384" width="192" height="192" fill="#ebe0d3"/><rect x="576" y="576" width="192" height="192" fill="#5f495d"/><rect x="384" y="576" width="192" height="192" fill="#b1a0b8"/><rect x="192" y="576" width="192" height="192" fill="#fbeee9"/><rect y="576" width="192" height="192" fill="#c08679"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><defs><mask id="mask-2" fill="#fff"><circle cx="384" cy="384" r="384"/></mask></defs><g id="Group" fill-rule="evenodd" mask="url(#mask-2)" transform="scale(.044097)"><rect id="Rectangle" width="192" height="192" fill="#0d2e46"/><rect width="192" height="192" x="192" fill="#415a6e"/><rect width="192" height="192" x="384" fill="#597961"/><rect width="192" height="192" x="576" fill="#6d4048"/><rect width="192" height="192" x="576" y="192" fill="#e08f88"/><rect width="192" height="192" x="384" y="192" fill="#e3b59c"/><rect width="192" height="192" x="192" y="192" fill="#8ba281"/><rect width="192" height="192" y="192" fill="#6378ab"/><rect width="192" height="192" y="384" fill="#7d5a49"/><rect width="192" height="192" x="192" y="384" fill="#b48268"/><rect width="192" height="192" x="384" y="384" fill="#8f595b"/><rect width="192" height="192" x="576" y="384" fill="#ebe0d3"/><rect width="192" height="192" x="576" y="576" fill="#5f495d"/><rect width="192" height="192" x="384" y="576" fill="#b1a0b8"/><rect width="192" height="192" x="192" y="576" fill="#fbeee9"/><rect width="192" height="192" y="576" fill="#c08679"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g stroke-width="1.4111"><path d="m0-1.13e-6h33.867v33.867h-33.867z" fill="none"/><circle cx="16.933" cy="16.933" r="4.2333"/><path d="m28.222 5.6444h-4.4732l-1.7498-1.905c-0.52213-0.57856-1.2841-0.91722-2.0743-0.91722h-5.9831c-0.79022 0-1.5522 0.33867-2.0884 0.91722l-1.7357 1.905h-4.4732c-1.5522 0-2.8222 1.27-2.8222 2.8222v16.933c0 1.5522 1.27 2.8222 2.8222 2.8222h22.578c1.5522 0 2.8222-1.27 2.8222-2.8222v-16.933c0-1.5522-1.27-2.8222-2.8222-2.8222zm-11.289 18.344c-3.8947 0-7.0556-3.1609-7.0556-7.0556s3.1609-7.0556 7.0556-7.0556c3.8947 0 7.0556 3.1609 7.0556 7.0556s-3.1609 7.0556-7.0556 7.0556z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g stroke-width="1.411"><path fill="none" d="m0-1.13e-6h33.867v33.867h-33.867z"/><circle cx="16.933" cy="16.933" r="4.233"/><path d="m28.222 5.6444h-4.4732l-1.7498-1.905c-0.52213-0.57856-1.2841-0.91722-2.0743-0.91722h-5.9831c-0.79022 0-1.5522 0.33867-2.0884 0.91722l-1.7357 1.905h-4.4732c-1.5522 0-2.8222 1.27-2.8222 2.8222v16.933c0 1.5522 1.27 2.8222 2.8222 2.8222h22.578c1.5522 0 2.8222-1.27 2.8222-2.8222v-16.933c0-1.5522-1.27-2.8222-2.8222-2.8222zm-11.289 18.344c-3.8947 0-7.0556-3.1609-7.0556-7.0556s3.1609-7.0556 7.0556-7.0556c3.8947 0 7.0556 3.1609 7.0556 7.0556s-3.1609 7.0556-7.0556 7.0556z"/></g></svg>

Before

Width:  |  Height:  |  Size: 761 B

After

Width:  |  Height:  |  Size: 719 B

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg fill="#ffffff" version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><path d="m52 52h24v24h-24z" fill="none"/><path d="m112 0h-96c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16zm-68 60c0 6.64-5.36 12-12 12h-8v10c0 3.28-2.72 6-6 6s-6-2.72-6-6v-34c0-4.4 3.6-8 8-8h12c6.64 0 12 5.36 12 12zm40 16c0 6.64-5.36 12-12 12h-16c-2.24 0-4-1.76-4-4v-40c0-2.24 1.76-4 4-4h16c6.64 0 12 5.36 12 12zm32-30c0 3.28-2.72 6-6 6h-6v8h6c3.28 0 6 2.72 6 6s-2.72 6-6 6h-6v10c0 3.28-2.72 6-6 6s-6-2.72-6-6v-34c0-4.4 3.6-8 8-8h10c3.28 0 6 2.72 6 6zm-92 14h8v-8h-8zm40 16h8v-24h-8z" stroke-width="8"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="#fff" version="1.1" viewBox="0 0 128 128"><path fill="none" d="m52 52h24v24h-24z"/><path stroke-width="8" d="m112 0h-96c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16zm-68 60c0 6.64-5.36 12-12 12h-8v10c0 3.28-2.72 6-6 6s-6-2.72-6-6v-34c0-4.4 3.6-8 8-8h12c6.64 0 12 5.36 12 12zm40 16c0 6.64-5.36 12-12 12h-16c-2.24 0-4-1.76-4-4v-40c0-2.24 1.76-4 4-4h16c6.64 0 12 5.36 12 12zm32-30c0 3.28-2.72 6-6 6h-6v8h6c3.28 0 6 2.72 6 6s-2.72 6-6 6h-6v10c0 3.28-2.72 6-6 6s-6-2.72-6-6v-34c0-4.4 3.6-8 8-8h10c3.28 0 6 2.72 6 6zm-92 14h8v-8h-8zm40 16h8v-24h-8z"/></svg>

Before

Width:  |  Height:  |  Size: 682 B

After

Width:  |  Height:  |  Size: 639 B

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><path d="m29.633 8.2833e-7h-25.4c-2.3283 0-4.2333 1.905-4.2333 4.2333v25.4c0 2.3283 1.905 4.2333 4.2333 4.2333h25.4c2.3283 0 4.2333-1.905 4.2333-4.2333v-25.4c0-2.3283-1.905-4.2333-4.2333-4.2333zm-17.992 15.875c0 1.7568-1.4182 3.175-3.175 3.175h-2.1167v2.6458c0 0.86783-0.71967 1.5875-1.5875 1.5875s-1.5875-0.71967-1.5875-1.5875v-8.9958c0-1.1642 0.9525-2.1167 2.1167-2.1167h3.175c1.7568 0 3.175 1.4182 3.175 3.175zm10.583 4.2333c0 1.7568-1.4182 3.175-3.175 3.175h-4.2333c-0.59267 0-1.0583-0.46567-1.0583-1.0583v-10.583c0-0.59267 0.46567-1.0583 1.0583-1.0583h4.2333c1.7568 0 3.175 1.4182 3.175 3.175zm8.4667-7.9375c0 0.86783-0.71967 1.5875-1.5875 1.5875h-1.5875v2.1167h1.5875c0.86784 0 1.5875 0.71967 1.5875 1.5875s-0.71967 1.5875-1.5875 1.5875h-1.5875v2.6458c0 0.86783-0.71967 1.5875-1.5875 1.5875-0.86783 0-1.5875-0.71967-1.5875-1.5875v-8.9958c0-1.1642 0.9525-2.1167 2.1167-2.1167h2.6458c0.86784 0 1.5875 0.71967 1.5875 1.5875zm-24.342 3.7042h2.1167v-2.1167h-2.1167zm10.583 4.2333h2.1167v-6.35h-2.1167z" stroke-width="2.1167"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><path stroke-width="2.117" d="m29.633 8.2833e-7h-25.4c-2.3283 0-4.2333 1.905-4.2333 4.2333v25.4c0 2.3283 1.905 4.2333 4.2333 4.2333h25.4c2.3283 0 4.2333-1.905 4.2333-4.2333v-25.4c0-2.3283-1.905-4.2333-4.2333-4.2333zm-17.992 15.875c0 1.7568-1.4182 3.175-3.175 3.175h-2.1167v2.6458c0 0.86783-0.71967 1.5875-1.5875 1.5875s-1.5875-0.71967-1.5875-1.5875v-8.9958c0-1.1642 0.9525-2.1167 2.1167-2.1167h3.175c1.7568 0 3.175 1.4182 3.175 3.175zm10.583 4.2333c0 1.7568-1.4182 3.175-3.175 3.175h-4.2333c-0.59267 0-1.0583-0.46567-1.0583-1.0583v-10.583c0-0.59267 0.46567-1.0583 1.0583-1.0583h4.2333c1.7568 0 3.175 1.4182 3.175 3.175zm8.4667-7.9375c0 0.86783-0.71967 1.5875-1.5875 1.5875h-1.5875v2.1167h1.5875c0.86784 0 1.5875 0.71967 1.5875 1.5875s-0.71967 1.5875-1.5875 1.5875h-1.5875v2.6458c0 0.86783-0.71967 1.5875-1.5875 1.5875-0.86783 0-1.5875-0.71967-1.5875-1.5875v-8.9958c0-1.1642 0.9525-2.1167 2.1167-2.1167h2.6458c0.86784 0 1.5875 0.71967 1.5875 1.5875zm-24.342 3.7042h2.1167v-2.1167h-2.1167zm10.583 4.2333h2.1167v-6.35h-2.1167z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="a" x2="235.8" y1="119.6" y2="119.6" gradientTransform="scale(.9229 1.084)" gradientUnits="userSpaceOnUse"><stop stop-color="#F50" offset="0"/><stop stop-color="#F50" offset=".4099"/><stop stop-color="#FF2000" offset=".582"/><stop stop-color="#FF2000" offset="1"/></linearGradient><linearGradient id="c" x1="11.3" x2="100.5" y1="46.23" y2="46.23" gradientTransform="scale(1.981 .5049)" gradientUnits="userSpaceOnUse"><stop stop-color="#FF452A" offset="0"/><stop stop-color="#FF2000" offset="1"/></linearGradient><path id="b" d="m170.3 25.34-22.3-25.34h-78.34l-22.3 25.34s-19.58-5.447-28.83 3.813c0 0 26.11-2.36 35.09 12.26 0 0 24.21 4.63 27.47 4.63s10.34-2.724 16.86-4.902c6.528-2.179 10.88-2.195 10.88-2.195s4.352 0.016 10.88 2.195c6.528 2.178 13.6 4.902 16.86 4.902s27.47-4.63 27.47-4.63c8.976-14.62 35.09-12.26 35.09-12.26-9.248-9.26-28.83-3.813-28.83-3.813"/></defs><g transform="matrix(.50101 0 0 .50101 9.4745 .0060121)" fill-rule="evenodd"><path d="m210 61.28 5.984-14.71s-7.616-8.17-16.86-17.43c-9.248-9.259-28.83-3.812-28.83-3.812l-22.3-25.34h-78.34l-22.3 25.34s-19.58-5.447-28.83 3.813-16.86 17.43-16.86 17.43l5.984 14.71-7.616 21.79s22.4 84.95 25.02 95.32c5.168 20.42 8.704 28.32 23.39 38.67s41.34 28.32 45.7 31.05c4.352 2.724 9.792 7.363 14.69 7.363s10.34-4.64 14.69-7.363 31.01-20.7 45.7-31.05 18.22-18.25 23.39-38.67c2.624-10.37 25.02-95.32 25.02-95.32z" fill="url(#a)"/><path d="m164 41.4s28.69 34.72 28.69 42.14c0 7.421-3.608 9.38-7.237 13.24l-21.51 22.87c-2.036 2.164-6.273 5.445-3.78 11.35 2.492 5.905 6.168 13.42 2.08 21.04-4.089 7.62-11.09 12.71-15.58 11.87-4.489-0.842-15.03-6.357-18.9-8.876-3.876-2.52-16.16-12.66-16.16-16.54s12.7-10.85 15.04-12.43c2.347-1.583 13.05-7.712 13.27-10.12 0.219-2.406 0.136-3.111-3.022-9.055s-8.845-13.88-7.898-19.15c0.946-5.277 10.12-8.02 16.66-10.5 6.545-2.474 19.15-7.148 20.72-7.875 1.575-0.727 1.168-1.42-3.601-1.872-4.768-0.452-18.3-2.251-24.4-0.548-6.1 1.702-16.52 4.293-17.37 5.667-0.844 1.373-1.589 1.42-0.722 6.158 0.867 4.739 5.33 27.48 5.764 31.52 0.433 4.039 1.28 6.709-3.068 7.705-4.35 0.995-11.67 2.724-14.19 2.724s-9.838-1.729-14.19-2.724c-4.35-0.996-3.503-3.666-3.07-7.705 0.434-4.039 4.898-26.78 5.765-31.52s0.122-4.785-0.722-6.158c-0.844-1.374-11.27-3.965-17.37-5.667-6.1-1.703-19.63 0.096-24.4 0.548-4.769 0.453-5.176 1.145-3.602 1.872 1.575 0.727 14.18 5.4 20.72 7.875 6.546 2.475 15.72 5.22 16.66 10.5 0.946 5.278-4.741 13.21-7.899 19.15-3.158 5.944-3.241 6.65-3.022 9.055s10.92 8.534 13.27 10.12 15.04 8.552 15.04 12.43c0 3.882-12.28 14.03-16.16 16.54-3.876 2.52-14.42 8.034-18.9 8.876-4.488 0.84-11.49-4.246-15.58-11.87-4.089-7.621-0.412-15.14 2.08-21.04 2.491-5.905-1.745-9.186-3.78-11.35l-21.51-22.87c-3.629-3.858-7.237-5.817-7.237-13.24 0-7.422 28.69-42.14 28.69-42.14s24.21 4.63 27.47 4.63 10.34-2.724 16.86-4.902c6.528-2.179 10.88-2.195 10.88-2.195s4.352 0.016 10.88 2.195c6.528 2.178 13.6 4.902 16.86 4.902s27.47-4.63 27.47-4.63zm-21.51 132.8c1.775 1.113 0.692 3.212-0.925 4.357-1.618 1.145-23.36 18-25.47 19.86-2.11 1.864-5.21 4.94-7.318 4.94s-5.209-3.076-7.318-4.94c-2.11-1.863-23.85-18.72-25.47-19.86s-2.7-3.244-0.925-4.357c1.777-1.113 7.333-3.922 15-7.894 7.665-3.972 17.22-7.349 18.71-7.349s11.04 3.377 18.71 7.349 13.22 6.781 15 7.894z" fill="#fff"/><use width="100%" height="100%" fill="url(#c)" xlink:href="#b"/></g></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="translate(-48.938 -197.1)"><rect x="48.938" y="197.1" width="33.867" height="33.867" fill="#fff" style="paint-order:fill markers stroke"/><g transform="translate(.026243)" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="2" stroke-width="1.5875"><path d="m61.729 210.99v12.346" style="paint-order:fill markers stroke"/><path d="m69.96 210.99v12.346" style="paint-order:fill markers stroke"/></g><g stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="2" stroke-width="1.5875"><path d="m50.79 205.62h30.162" fill="#fff" fill-rule="evenodd" style="paint-order:fill markers stroke"/><path d="m77.53 205.88v22.187a2.1167 2.1167 135 0 1-2.1167 2.1167h-19.086a2.1167 2.1167 45 0 1-2.1167-2.1167v-22.187" fill="none" style="paint-order:fill markers stroke"/><path d="m60.89 205.37v-5.4277a2.0677 2.0677 0 0 1 2.0677-2.0677h5.8255a2.0677 2.0677 0 0 1 2.0677 2.0677v5.4277" fill="none" style="paint-order:fill markers stroke"/></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="translate(-48.938 -197.1)"><rect width="33.867" height="33.867" x="48.938" y="197.1" fill="#fff" style="paint-order:fill markers stroke"/><g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="2" stroke-width="1.587"><path d="m61.729 210.99v12.346" transform="translate(.026243)" style="paint-order:fill markers stroke"/><path d="m69.96 210.99v12.346" transform="translate(.026243)" style="paint-order:fill markers stroke"/></g><g stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="2" stroke-width="1.587"><path fill="#fff" fill-rule="evenodd" d="m50.79 205.62h30.162" style="paint-order:fill markers stroke"/><path fill="none" d="m77.53 205.88v22.187a2.1167 2.1167 135 0 1-2.1167 2.1167h-19.086a2.1167 2.1167 45 0 1-2.1167-2.1167v-22.187" style="paint-order:fill markers stroke"/><path fill="none" d="m60.89 205.37v-5.4277a2.0677 2.0677 0 0 1 2.0677-2.0677h5.8255a2.0677 2.0677 0 0 1 2.0677 2.0677v5.4277" style="paint-order:fill markers stroke"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866" xmlns="http://www.w3.org/2000/svg"><path d="m3.2563 0.90164h27.353c1.804 0 3.2563 1.4523 3.2563 3.2563v1.001e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-27.353c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1.001e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z" fill="#46a546" stroke-width=".27458"/><path d="m3.2563 9.4185h23.546c1.804 0 3.2563 1.4523 3.2563 3.2563v1e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-23.546c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z" fill="#f89406" stroke-width=".25869"/><path d="m3.2563 17.935h25.95c1.804 0 3.2563 1.4523 3.2563 3.2563v1.01e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-25.95c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1.01e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z" fill="#c43c35" stroke-width=".26884"/><path d="m3.2563 26.452h13.726c1.804 0 3.2563 1.4523 3.2563 3.2563v1e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-13.726c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z" fill="#999" stroke-width=".21227"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><path fill="#46a546" stroke-width=".275" d="m3.2563 0.90164h27.353c1.804 0 3.2563 1.4523 3.2563 3.2563v1.001e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-27.353c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1.001e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/><path fill="#f89406" stroke-width=".259" d="m3.2563 9.4185h23.546c1.804 0 3.2563 1.4523 3.2563 3.2563v1e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-23.546c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/><path fill="#c43c35" stroke-width=".269" d="m3.2563 17.935h25.95c1.804 0 3.2563 1.4523 3.2563 3.2563v1.01e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-25.95c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1.01e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/><path fill="#999" stroke-width=".212" d="m3.2563 26.452h13.726c1.804 0 3.2563 1.4523 3.2563 3.2563v1e-4c0 1.804-1.4523 3.2563-3.2563 3.2563h-13.726c-1.804 0-3.2563-1.4523-3.2563-3.2563v-1e-4c0-1.804 1.4523-3.2563 3.2563-3.2563z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="linearGradient-1" x1=".5" x2=".5" y1="1"><stop stop-color="#420C5D" offset="0"/><stop stop-color="#951AD1" offset="1"/></linearGradient><path id="path-2" d="m25 29c127.58 0 231 102.97 231 230s-103.42 230-231 230z"/><filter id="filter-3" x="-.182" y="-.074" width="1.294" height="1.148"><feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="10"/><feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0.2 0"/></filter><linearGradient id="linearGradient9148" x1="256" x2="256" y1="512" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient-1"/><linearGradient id="linearGradient9150" x1="198.27" x2="198.27" y1="346.53" y2="20.551" gradientTransform="scale(.70864 1.4111)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient-1"/></defs><g id="Assets" transform="matrix(.24957 0 0 .24957 .21762 .22232)" fill="none" fill-rule="evenodd"><g id="Group"><g id="tb_icon/Stable"><g id="Stable"><circle id="background" cx="256" cy="256" r="246" fill="#f2e4ff" fill-rule="nonzero"/><path id="center" d="m256.53 465.44v-31.033c98.301-0.28386 177.9-80.042 177.9-178.41 0-98.365-79.595-178.12-177.9-178.41v-31.033c115.44 0.29096 208.92 93.937 208.92 209.44 0 115.51-93.482 209.16-208.92 209.45zm0-108.62c55.445-0.29095 100.32-45.304 100.32-100.83 0-55.516-44.878-100.53-100.32-100.82v-31.026c72.59 0.28386 131.36 59.192 131.36 131.85 0 72.661-58.766 131.57-131.36 131.85zm0-155.1c29.742 0.28386 53.777 24.462 53.777 54.274 0 29.82-24.036 53.997-53.777 54.281zm-256.53 54.274c0 141.39 114.61 256.01 256 256.01 141.38 0 256-114.62 256-256.01 0-141.38-114.62-255.99-256-255.99-141.39 0-256 114.61-256 255.99z" fill="url(#linearGradient9148)"/><g id="half" transform="matrix(-1,0,0,1,281,0)"><use width="100%" height="100%" fill="#000000" filter="url(#filter-3)" xlink:href="#path-2"/><use width="100%" height="100%" fill="url(#linearGradient9150)" fill-rule="evenodd" xlink:href="#path-2"/></g></g></g></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 128 128"><defs><linearGradient id="linearGradient-1" x1=".5" x2=".5" y1="1"><stop offset="0" stop-color="#420C5D"/><stop offset="1" stop-color="#951AD1"/></linearGradient><path id="path-2" d="m25 29c127.58 0 231 102.97 231 230s-103.42 230-231 230z"/><filter id="filter-3" width="1.294" height="1.148" x="-.182" y="-.074"><feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="10"/><feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0.2 0"/></filter><linearGradient id="linearGradient9148" x1="256" x2="256" y1="512" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient-1"/><linearGradient id="linearGradient9150" x1="198.27" x2="198.27" y1="346.53" y2="20.551" gradientTransform="scale(.70864 1.4111)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient-1"/></defs><g id="Assets" fill="none" fill-rule="evenodd" transform="matrix(.24957 0 0 .24957 .21762 .22232)"><g id="Group"><g id="tb_icon/Stable"><g id="Stable"><circle id="background" cx="256" cy="256" r="246" fill="#f2e4ff" fill-rule="nonzero"/><path id="center" fill="url(#linearGradient9148)" d="m256.53 465.44v-31.033c98.301-0.28386 177.9-80.042 177.9-178.41 0-98.365-79.595-178.12-177.9-178.41v-31.033c115.44 0.29096 208.92 93.937 208.92 209.44 0 115.51-93.482 209.16-208.92 209.45zm0-108.62c55.445-0.29095 100.32-45.304 100.32-100.83 0-55.516-44.878-100.53-100.32-100.82v-31.026c72.59 0.28386 131.36 59.192 131.36 131.85 0 72.661-58.766 131.57-131.36 131.85zm0-155.1c29.742 0.28386 53.777 24.462 53.777 54.274 0 29.82-24.036 53.997-53.777 54.281zm-256.53 54.274c0 141.39 114.61 256.01 256 256.01 141.38 0 256-114.62 256-256.01 0-141.38-114.62-255.99-256-255.99-141.39 0-256 114.61-256 255.99z"/><g id="half" transform="matrix(-1,0,0,1,281,0)"><use width="100%" height="100%" fill="#000" filter="url(#filter-3)" xlink:href="#path-2"/><use width="100%" height="100%" fill="url(#linearGradient9150)" fill-rule="evenodd" xlink:href="#path-2"/></g></g></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866" xmlns="http://www.w3.org/2000/svg"><g stroke="#fff"><g transform="matrix(-.18246 0 0 .14741 98.646 -64.885)" fill="#800000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6019"><path d="m447.83 669.1c-80.631-57.031-80.631-57.031-80.631-199.61 34.556 0 46.075 0 80.631-28.516m0 228.12c80.631-57.031 80.631-57.031 80.631-199.61-34.556 0-46.075 0-80.631-28.516" fill="#800000" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6019"/></g><circle cx="20.086" cy="15.882" r="4.2035" fill="none" stroke-width="2.1017"/><g transform="matrix(.26319 0 0 .26224 -4.5763 -4.4325)" fill="#fff" stroke-width="2"><path d="m81.725 81.472c0 11.02-4.991 16.029-15.971 16.029s-15.971-5.009-15.971-16.029v-24.043h7.9856v24.043c0 7.0126 0.9982 8.0144 7.9856 8.0144 6.9874 0 7.9856-1.0018 7.9856-8.0144v-24.043h7.9856z" fill="#fff" stroke-width="0"/></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><g stroke="#fff"><g fill="maroon" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.602"><path fill="maroon" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.602" d="m447.83 669.1c-80.631-57.031-80.631-57.031-80.631-199.61 34.556 0 46.075 0 80.631-28.516m0 228.12c80.631-57.031 80.631-57.031 80.631-199.61-34.556 0-46.075 0-80.631-28.516" transform="matrix(-.18246 0 0 .14741 98.646 -64.885)"/></g><circle cx="20.086" cy="15.882" r="4.204" fill="none" stroke-width="2.102"/><g fill="#fff" stroke-width="2"><path fill="#fff" stroke-width="0" d="m81.725 81.472c0 11.02-4.991 16.029-15.971 16.029s-15.971-5.009-15.971-16.029v-24.043h7.9856v24.043c0 7.0126 0.9982 8.0144 7.9856 8.0144 6.9874 0 7.9856-1.0018 7.9856-8.0144v-24.043h7.9856z" transform="matrix(.26319 0 0 .26224 -4.5763 -4.4325)"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 998 B

After

Width:  |  Height:  |  Size: 952 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="scale(.71111)"><rect width="47.494" height="47.494" x=".066" y=".066" style="-inkscape-stroke:none;fill-rule:evenodd;fill:#0277bd;font-variation-settings:normal;stop-color:#000;stroke-width:.13102;stroke:#0277bd"/><g transform="matrix(.11719 0 0 .11736 26.539 14.264)" style="fill:#fff;stroke:#fff"><circle cx="-22.301" cy="79.286" r="153.93" style="opacity:0;paint-order:markers stroke fill;stroke-width:2.84"/><g style="fill:#fff;stroke:#fff"><path d="m130.21 77.865v1.4199c0 69.032-46.356 129.44-113.04 147.31s-137.03-11.271-171.54-71.055l-0.70898-1.2305-2.459 1.4199 0.70899 1.2305c35.152 60.884 106.83 90.575 174.74 72.379s115.14-79.749 115.14-150.05v-1.4199z" style="color-rendering:auto;color:#000;dominant-baseline:auto;fill:#fff;font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;image-rendering:auto;isolation:auto;mix-blend-mode:normal;paint-order:markers stroke fill;shape-padding:0;shape-rendering:auto;solid-color:#000;stroke-linecap:square;stroke-linejoin:round;stroke-width:20.386;stroke:#fff;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m131.62 66.176 11.36 19.653h-22.72z" style="fill-rule:evenodd;fill:#fff;stroke-width:20.386;stroke:#fff"/></g><g style="fill:#fff;stroke:#fff"><path d="m130.21 77.865v1.4199c0 69.032-46.356 129.44-113.04 147.31s-137.03-11.271-171.54-71.055l-0.70898-1.2305-2.459 1.4199 0.70899 1.2305c35.152 60.884 106.83 90.575 174.74 72.379s115.14-79.749 115.14-150.05v-1.4199z" transform="rotate(180 -22.116 79.492)" style="color-rendering:auto;color:#000;dominant-baseline:auto;fill:#fff;font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;image-rendering:auto;isolation:auto;mix-blend-mode:normal;paint-order:markers stroke fill;shape-padding:0;shape-rendering:auto;solid-color:#000;stroke-linecap:square;stroke-linejoin:round;stroke-width:20.386;stroke:#fff;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m131.62 66.176 11.36 19.653h-22.72z" transform="rotate(180 -22.116 79.492)" style="fill-rule:evenodd;fill:#fff;stroke-width:20.386;stroke:#fff"/></g></g><g style="fill:#fff"><path d="m5.0271 0.79375h-0.26458v-0.52917h-0.52917v0.52917h-2.1167v-0.52917h-0.52917v0.52917h-0.26458a0.52917 0.52917 0 0 0-0.52917 0.52917v3.7042a0.52917 0.52917 0 0 0 0.52917 0.52917h3.7042c0.29104 0 0.52917-0.23812 0.52917-0.52917v-3.7042c0-0.29104-0.23812-0.52917-0.52917-0.52917zm-1.8521 0.79375c0.43921 0 0.79375 0.35454 0.79375 0.79375s-0.35454 0.79375-0.79375 0.79375-0.79375-0.35454-0.79375-0.79375 0.35454-0.79375 0.79375-0.79375zm1.5875 3.175h-3.175v-0.26458c0-0.52917 1.0583-0.82021 1.5875-0.82021s1.5875 0.29104 1.5875 0.82021z" transform="matrix(4.4012 0 0 4.4076 9.7615 10.587)" style="fill:#fff;stroke-width:.26458"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 5.12 5.12" xmlns="http://www.w3.org/2000/svg"><g transform="scale(.32)"><path d="m2.8 0h10.4c1.5 0 2.8 1.3 2.8 2.8v10.4c0 1.5-1.3 2.8-2.8 2.8h-10.4c-1.5 0-2.8-1.3-2.8-2.8v-10.4c0-1.5 1.3-2.8 2.8-2.8z" fill="#1c223d"/><g fill="#fff"><path d="m4.9016 2.0258c-0.1888 0.04347-0.36956 0.17753-0.45793 0.33694-0.06427 0.11231-0.07231 0.14855-0.08436 0.38042l-0.01205 0.25361-0.48203 0.00363c-0.37357 0-0.5222 0.00724-0.65878 0.03623-0.59852 0.13043-1.0645 0.57606-1.189 1.1376-0.00803 0.03985-0.01606 1.9637-0.01606 4.2716-0.00402 3.2064 0 4.2353 0.0241 4.3512 0.06829 0.3696 0.3334 0.7428 0.67886 0.9529 0.12452 0.0761 0.39767 0.1884 0.55032 0.221 0.10444 0.0218 0.91987 0.029 4.6878 0.029 2.5106 0 4.6235-0.0072 4.6958-0.0145 0.2691-0.0326 0.6186-0.1848 0.8516-0.3732 0.2048-0.1739 0.3856-0.4492 0.4619-0.721 0.0442-0.1594 0.0482-0.2499 0.0482-4.3585 0-4.5687 8e-3 -4.2643-0.1285-4.565-0.2049-0.45288-0.6588-0.80432-1.2011-0.9275-0.1285-0.02898-0.2772-0.03985-0.6347-0.04348-0.2611-0.00362-0.478-0.00362-0.482-0.00724-8e-3 -0.00362-0.012-0.07246-0.012-0.15579 4e-3 -0.27898-0.0724-0.46738-0.2611-0.63404-0.2893-0.26086-0.8034-0.25723-1.1007 0.00725-0.1687 0.15579-0.23297 0.30071-0.24502 0.55795-0.00803 0.11594-0.02008 0.21738-0.02812 0.22101-0.01205 0.00724-0.89979 0.01086-1.9803 0.01086h-1.9562l-0.00402-0.14854c-0.00401-0.3768-0.11247-0.58694-0.37357-0.73548-0.1888-0.10869-0.45793-0.1413-0.69091-0.08695zm7.9374 7.1084-4e-3 3.5108-0.0562 0.0797c-0.0322 0.0435-0.1045 0.1051-0.1607 0.134l-0.1085 0.058h-9.0622l-0.10042-0.0471c-0.11248-0.0543-0.14461-0.0869-0.20085-0.192-0.03615-0.0689-0.04017-0.3804-0.04419-3.5434 0-1.9057 0-3.4745 0.00402-3.489 0.00804-0.01449 1.4662-0.02173 4.8725-0.02173h4.8645z"/><path d="m5.5481 6.7542c-0.28921 0.03261-0.65475 0.14493-0.91184 0.27898-0.17273 0.09057-0.39767 0.24637-0.43784 0.30433-0.02812 0.03986-0.04017 0.02899 0.2852 0.34419 0.12051 0.11594 0.22495 0.21739 0.22896 0.22826 0.00804 0.01087 0.05222-0.01087 0.09641-0.05435 0.42981-0.37317 1.1046-0.44926 1.43-0.15579 0.11247 0.10145 0.16469 0.22825 0.14862 0.39853-0.00803 0.11594-0.08837 0.29347-0.16469 0.36956-0.12051 0.11956-0.32939 0.18115-0.63468 0.18115-0.25306 0-0.22093-0.04348-0.28118 0.33694-0.00402 0.05435-0.01607 0.11956-0.02009 0.14855-0.00803 0.02536-0.01606 0.09057-0.0241 0.14492l-0.01607 0.09058h0.20888c0.4258 0.00362 0.57844 0.02898 0.73912 0.13767 0.2129 0.13768 0.3093 0.45288 0.22093 0.721-0.13658 0.4275-0.60254 0.5942-1.1729 0.413-0.1888-0.0616-0.31734-0.1304-0.48203-0.2717l-0.14461-0.1159-0.30529 0.2717c-0.16469 0.1521-0.30528 0.2826-0.30528 0.2971 0 0.0326 0.26511 0.25 0.42177 0.3442 0.17675 0.1087 0.36956 0.192 0.61459 0.2608 0.16068 0.0471 0.21692 0.0507 0.63468 0.0507 0.51015 0 0.71501-0.0289 1.0364-0.1413 0.36554-0.1268 0.67083-0.3586 0.82749-0.6304 0.12452-0.2174 0.16469-0.3804 0.16469-0.6811 0-0.29709-0.11247-0.54346-0.34545-0.7536-0.16871-0.15216-0.37358-0.24999-0.61459-0.28984l-0.1647-0.03261 0.09239-0.01449c0.23299-0.03623 0.55032-0.25361 0.69091-0.46375 0.22094-0.33332 0.22495-0.7862 0.01206-1.1159-0.17675-0.27173-0.474-0.46013-0.8998-0.56882-0.12452-0.02898-0.74714-0.05072-0.92791-0.03261z"/><path d="m9.754 6.7724c-0.44187 0.0616-0.77929 0.2355-1.0725 0.55433-0.15666 0.17391-0.34546 0.57244-0.41375 0.88765-0.07632 0.3297-0.08033 0.35143-0.08837 0.83692-0.00803 0.63041 0.05624 1.0289 0.24102 1.4383 0.20486 0.4638 0.58647 0.8116 1.0444 0.9565 0.11247 0.0326 0.17273 0.0471 0.36956 0.0761 0.10042 0.0145 0.45395 0.0145 0.56635 0 0.6869-0.0942 1.1408-0.4456 1.4341-1.105 0.1365-0.308 0.2169-0.79348 0.2169-1.3116 0-0.27535-0.0121-0.38404-0.0442-0.61592-0.1607-1.1123-0.7833-1.7101-1.8036-1.7354-0.1446-0.00725-0.34545 0.00362-0.44989 0.01811zm0.64669 0.79345c0.1647 0.06159 0.3174 0.28985 0.3656 0.54346 4e-3 0.03261 0.016 0.07608 0.0201 0.0942 0.0682 0.22101 0.0843 1.5398 0.0241 1.7391-0.0041 0.0145-0.0161 0.07606-0.0241 0.13766-0.0201 0.1486-0.0964 0.3406-0.1728 0.4457-0.1647 0.2101-0.5664 0.2499-0.78327 0.076-0.25708-0.2101-0.33341-0.5688-0.33341-1.5289 0-0.53983 0.01607-0.82605 0.05624-0.95286 0.01205-0.03623 0.0241-0.06884 0.02009-0.07246-0.00402-0.02174 0.06427-0.21014 0.10042-0.27173 0.12854-0.23188 0.43783-0.31883 0.72703-0.21014z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="b"><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path id="a" d="m155.5 222.8c-12.64 0-22.875 10.246-22.875 22.872v211.23c0 0.801 0.046 1.608 0.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-0.814-0.056-1.636-0.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381 7e-3 -0.611 0.18-1.25 0.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-0.913 35.206-0.724 36.399-8.244 0.035-0.232 0.057-0.463 0.057-0.695 0.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 0.393-0.048 0.8-0.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356 0.569-28.648 1.861-28.707 7.408-7e-3 0.323 0.049 0.66 0.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418v-166.52c0-12.626-10.243-22.872-22.869-22.872h-211.23z"/></defs><path transform="matrix(.49811 0 0 .49811 -66.064 -105.88)" d="m132.63 222.8h256.98v236.49h-256.98z" clip-path="url(#b)" style="fill:#a01e20"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 128 128"><defs><clipPath id="b"><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path id="a" d="m155.5 222.8c-12.64 0-22.875 10.246-22.875 22.872v211.23c0 0.801 0.046 1.608 0.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-0.814-0.056-1.636-0.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381 7e-3 -0.611 0.18-1.25 0.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-0.913 35.206-0.724 36.399-8.244 0.035-0.232 0.057-0.463 0.057-0.695 0.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 0.393-0.048 0.8-0.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356 0.569-28.648 1.861-28.707 7.408-7e-3 0.323 0.049 0.66 0.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418v-166.52c0-12.626-10.243-22.872-22.869-22.872h-211.23z"/></defs><path d="m132.63 222.8h256.98v236.49h-256.98z" clip-path="url(#b)" transform="matrix(.49811 0 0 .49811 -66.064 -105.88)" style="fill:#a01e20"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><clipPath id="b"><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path id="a" d="m155.5 222.8c-12.64 0-22.875 10.246-22.875 22.872v211.23c0 0.801 0.046 1.608 0.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-0.814-0.056-1.636-0.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381 7e-3 -0.611 0.18-1.25 0.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-0.913 35.206-0.724 36.399-8.244 0.035-0.232 0.057-0.463 0.057-0.695 0.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 0.393-0.048 0.8-0.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356 0.569-28.648 1.861-28.707 7.408-7e-3 0.323 0.049 0.66 0.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418v-166.52c0-12.626-10.243-22.872-22.869-22.872h-211.23z"/></defs><g transform="matrix(1.3678 0 0 1.3678 -181.41 -476.68)" fill="#a01e20"><clipPath><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path transform="matrix(.36416 0 0 .36416 84.331 271.09)" d="m132.63 222.8h256.98v236.49h-256.98z" clip-path="url(#b)"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 128 128"><defs><clipPath id="b"><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path id="a" d="m155.5 222.8c-12.64 0-22.875 10.246-22.875 22.872v211.23c0 0.801 0.046 1.608 0.123 2.388 8.5-3.167 17.524-6.629 27.054-10.436 66.336-26.48 120.57-48.994 120.62-74.415 0-0.814-0.056-1.636-0.172-2.458-3.43-25.098-63.407-32.879-63.324-44.381 7e-3 -0.611 0.18-1.25 0.548-1.889 7.205-12.619 35.743-12.015 46.253-12.907 10.519-0.913 35.206-0.724 36.399-8.244 0.035-0.232 0.057-0.463 0.057-0.695 0.028-6.987-16.977-9.726-16.977-9.726s20.635 3.083 20.579 11.11c0 0.393-0.048 0.8-0.158 1.214-2.222 8.624-20.379 10.246-32.386 10.835-11.356 0.569-28.648 1.861-28.707 7.408-7e-3 0.323 0.049 0.66 0.165 1.004 2.71 8.11 66.09 12.015 106.64 33.061 23.335 12.099 34.94 32.422 40.263 53.418v-166.52c0-12.626-10.243-22.872-22.869-22.872h-211.23z"/></defs><g fill="#a01e20" transform="matrix(1.3678 0 0 1.3678 -181.41 -476.68)"><clipPath><use width="1280" height="800" overflow="visible" xlink:href="#a"/></clipPath><path d="m132.63 222.8h256.98v236.49h-256.98z" clip-path="url(#b)" transform="matrix(.36416 0 0 .36416 84.331 271.09)"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><path d="m16.955 3.3333e-7c7.3719 0 13.643 4.712 15.968 11.289l-9.6579-7e-5c-1.5501-1.732-3.8027-2.822-6.3098-2.822-4.6754 0-8.4656 3.7906-8.4656 8.4667 0 4.676 3.7902 8.4667 8.4656 8.4667 2.5071 0 4.7597-1.09 6.3098-2.822h9.6579c-2.3243 6.5768-8.5958 11.289-15.968 11.289-9.3509 0-16.931-7.5813-16.931-16.933 0-9.352 7.5804-16.933 16.931-16.933zm8.3962 18.07 8.4908-5e-5a16.843 16.843 0 0 1-0.30125 2.2497h-8.8186a8.3638 8.3638 0 0 0 0.62898-2.2497zm8.1896-4.5237a16.844 16.844 0 0 1 0.30125 2.2497l-8.4908-5e-5a8.3641 8.3641 0 0 0-0.62895-2.2497z" fill-rule="evenodd" style="fill:#fff;stroke-width:.02419"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><path fill-rule="evenodd" d="m16.955 3.3333e-7c7.3719 0 13.643 4.712 15.968 11.289l-9.6579-7e-5c-1.5501-1.732-3.8027-2.822-6.3098-2.822-4.6754 0-8.4656 3.7906-8.4656 8.4667 0 4.676 3.7902 8.4667 8.4656 8.4667 2.5071 0 4.7597-1.09 6.3098-2.822h9.6579c-2.3243 6.5768-8.5958 11.289-15.968 11.289-9.3509 0-16.931-7.5813-16.931-16.933 0-9.352 7.5804-16.933 16.931-16.933zm8.3962 18.07 8.4908-5e-5a16.843 16.843 0 0 1-0.30125 2.2497h-8.8186a8.3638 8.3638 0 0 0 0.62898-2.2497zm8.1896-4.5237a16.844 16.844 0 0 1 0.30125 2.2497l-8.4908-5e-5a8.3641 8.3641 0 0 0-0.62895-2.2497z" style="fill:#fff;stroke-width:.02419"/></svg>

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 722 B

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><path d="m16.955 3.3333e-7c7.3719 0 13.643 4.712 15.968 11.289l-9.6579-7e-5c-1.5501-1.732-3.8027-2.822-6.3098-2.822-4.6754 0-8.4656 3.7906-8.4656 8.4667 0 4.676 3.7902 8.4667 8.4656 8.4667 2.5071 0 4.7597-1.09 6.3098-2.822h9.6579c-2.3243 6.5768-8.5958 11.289-15.968 11.289-9.3509 0-16.931-7.5813-16.931-16.933 0-9.352 7.5804-16.933 16.931-16.933zm8.3962 18.07 8.4908-5e-5a16.843 16.843 0 0 1-0.30125 2.2497h-8.8186a8.3638 8.3638 0 0 0 0.62898-2.2497zm8.1896-4.5237a16.844 16.844 0 0 1 0.30125 2.2497l-8.4908-5e-5a8.3641 8.3641 0 0 0-0.62895-2.2497z" fill-rule="evenodd" style="stroke-width:.02419"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><path fill-rule="evenodd" d="m16.955 3.3333e-7c7.3719 0 13.643 4.712 15.968 11.289l-9.6579-7e-5c-1.5501-1.732-3.8027-2.822-6.3098-2.822-4.6754 0-8.4656 3.7906-8.4656 8.4667 0 4.676 3.7902 8.4667 8.4656 8.4667 2.5071 0 4.7597-1.09 6.3098-2.822h9.6579c-2.3243 6.5768-8.5958 11.289-15.968 11.289-9.3509 0-16.931-7.5813-16.931-16.933 0-9.352 7.5804-16.933 16.931-16.933zm8.3962 18.07 8.4908-5e-5a16.843 16.843 0 0 1-0.30125 2.2497h-8.8186a8.3638 8.3638 0 0 0 0.62898-2.2497zm8.1896-4.5237a16.844 16.844 0 0 1 0.30125 2.2497l-8.4908-5e-5a8.3641 8.3641 0 0 0-0.62895-2.2497z" style="stroke-width:.02419"/></svg>

Before

Width:  |  Height:  |  Size: 752 B

After

Width:  |  Height:  |  Size: 712 B

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><path id="XMLID_107_" d="m16.959 5.8379c-3.5104 0-6.4858 2.3798-7.408 5.6042-0.80146-1.7103-2.5382-2.9085-4.5387-2.9085-2.7511 0-5.0126 2.2615-5.0126 5.0126 0 2.7511 2.2615 5.0137 5.0126 5.0137 2.0005 0 3.7373-1.1989 4.5387-2.9095 0.92217 3.2246 3.8975 5.6053 7.408 5.6053 3.4845 0 6.4447-2.3447 7.3904-5.533 0.81627 1.6717 2.5316 2.8372 4.5036 2.8372 2.7511 0 5.0137-2.2625 5.0137-5.0137 0-2.7511-2.2625-5.0126-5.0137-5.0126-1.9721 0-3.6874 1.1647-4.5036 2.8362-0.94575-3.188-3.9059-5.532-7.3904-5.532zm0 2.9425c2.65 0 4.7669 2.1159 4.7669 4.7659 0 2.65-2.1169 4.7669-4.7669 4.7669-2.65 0-4.7659-2.1169-4.7659-4.7669 0-2.65 2.1159-4.7659 4.7659-4.7659zm-11.947 2.6958c1.161 0 2.0711 0.90908 2.0711 2.0701 0 1.161-0.91012 2.0711-2.0711 2.0711-1.161 0-2.0701-0.91012-2.0701-2.0711 0-1.161 0.90909-2.0701 2.0701-2.0701zm23.841 0c1.161 0 2.0711 0.90908 2.0711 2.0701 0 1.161-0.91012 2.0711-2.0711 2.0711-1.161 0-2.0701-0.91012-2.0701-2.0711 0-1.161 0.90909-2.0701 2.0701-2.0701z" color="#000000" color-rendering="auto" fill="#0082c9" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="isolation:auto;mix-blend-mode:normal;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none;white-space:normal"/><g transform="matrix(.13987 0 0 .13987 3.3867 17.958)" fill="#0082c9"><path id="XMLID_121_" d="m37.67 48.9c5.9 0 9.2 4.2 9.2 10.5 0 0.6-0.5 1.1-1.1 1.1h-15.9c0.1 5.6 4 8.8 8.5 8.8 2.8 0 4.8-1.2 5.8-2 0.6-0.4 1.1-0.3 1.4 0.3l0.3 0.5c0.3 0.5 0.2 1-0.3 1.4-1.2 0.9-3.8 2.4-7.3 2.4-6.5 0-11.5-4.7-11.5-11.5 0.1-7.2 4.9-11.5 10.9-11.5zm6.1 9.4c-0.2-4.6-3-6.9-6.2-6.9-3.7 0-6.9 2.4-7.6 6.9z"/><path id="XMLID_119_" d="m76.9 52.1v-7.7c0-0.7 0.4-1.1 1.1-1.1h0.8c0.7 0 1 0.4 1 1.1v5.2h4.5c0.7 0 1.1 0.4 1.1 1.1v0.3c0 0.7-0.4 1-1.1 1h-4.5v11c0 5.1 3.1 5.7 4.8 5.8 0.9 0.1 1.2 0.3 1.2 1.1v0.6c0 0.7-0.3 1-1.2 1-4.8 0-7.7-2.9-7.7-8.1z"/><path id="XMLID_117_" d="m99.8 48.9c3.8 0 6.2 1.6 7.3 2.5 0.5 0.4 0.6 0.9 0.1 1.5l-0.3 0.5c-0.4 0.6-0.9 0.6-1.5 0.2-1-0.7-2.9-2-5.5-2-4.8 0-8.6 3.6-8.6 8.9 0 5.2 3.8 8.8 8.6 8.8 3.1 0 5.2-1.4 6.2-2.3 0.6-0.4 1-0.3 1.4 0.3l0.3 0.4c0.3 0.6 0.2 1-0.3 1.5-1.1 0.9-3.8 2.8-7.8 2.8-6.5 0-11.5-4.7-11.5-11.5 0.1-6.8 5.1-11.6 11.6-11.6z"/><path id="XMLID_115_" d="m113.1 41.8c0-0.7-0.4-1.1 0.3-1.1h0.8c0.7 0 1.8 0.4 1.8 1.1v23.9c0 2.8 1.3 3.1 2.3 3.2 0.5 0 0.9 0.3 0.9 1v0.7c0 0.7-0.3 1.1-1.1 1.1-1.8 0-5-0.6-5-5.4z"/><path id="XMLID_112_" d="m133.6 48.9c6.4 0 11.6 4.9 11.6 11.4 0 6.6-5.2 11.6-11.6 11.6s-11.6-5-11.6-11.6c0-6.5 5.2-11.4 11.6-11.4zm0 20.4c4.7 0 8.5-3.8 8.5-9 0-5-3.8-8.7-8.5-8.7s-8.6 3.8-8.6 8.7c0.1 5.1 3.9 9 8.6 9z"/><path id="XMLID_109_" d="m183.5 48.9c5.3 0 7.2 4.4 7.2 4.4h0.1s-0.1-0.7-0.1-1.7v-9.9c0-0.7-0.3-1.1 0.4-1.1h0.8c0.7 0 1.8 0.4 1.8 1.1v28.5c0 0.7-0.3 1.1-1 1.1h-0.7c-0.7 0-1.1-0.3-1.1-1v-1.7c0-0.8 0.2-1.4 0.2-1.4h-0.1s-1.9 4.6-7.6 4.6c-5.9 0-9.6-4.7-9.6-11.5-0.2-6.8 3.9-11.4 9.7-11.4zm0.1 20.4c3.7 0 7.1-2.6 7.1-8.9 0-4.5-2.3-8.8-7-8.8-3.9 0-7.1 3.2-7.1 8.8 0.1 5.4 2.9 8.9 7 8.9z"/><path id="XMLID_103_" d="m1 71.4h0.8c0.7 0 1.1-0.4 1.1-1.1v-21.472c0-3.4 3.7-5.8277 7.9-5.8277s7.9 2.4277 7.9 5.8277v21.472c0 0.7 0.4 1.1 1.1 1.1h0.8c0.7 0 1-0.4 1-1.1v-21.6c0-5.7-5.7-8.5-10.9-8.5-5 0-10.7 2.8-10.7 8.5v21.6c0 0.7 0.3 1.1 1 1.1z"/><path id="XMLID_102_" d="m167.9 49.4h-0.8c-0.7 0-1.1 0.4-1.1 1.1v12.1c0 3.4-2.2 6.5-6.5 6.5-4.2 0-6.5-3.1-6.5-6.5v-12.1c0-0.7-0.4-1.1-1.1-1.1h-0.8c-0.7 0-1 0.4-1 1.1v12.9c0 5.7 4.2 8.5 9.4 8.5s9.4-2.8 9.4-8.5v-12.9c0.1-0.7-0.3-1.1-1-1.1z"/><path d="m68.908 49.236c-0.24494 0.0391-0.4801 0.20259-0.70508 0.4707l-4.0469 4.8242-3.0293 3.6094-4.5859-5.4668-2.4883-2.9668c-0.22498-0.26812-0.47975-0.41472-0.74414-0.4375-0.26439-0.02278-0.53852 0.07775-0.80664 0.30273l-0.61328 0.51367c-0.53623 0.44995-0.50854 0.94814-0.05859 1.4844l4.0488 4.8242 3.3574 4-4.916 5.8574c-0.0037 0.0044-0.0061 0.0093-0.0098 0.01367l-2.4805 2.9551c-0.44995 0.53623-0.39953 1.1008 0.13672 1.5508l0.61328 0.51172c0.53623 0.44995 1.0227 0.33701 1.4727-0.19922l4.0469-4.8242 3.0293-3.6094 4.5859 5.4668c3e-3 0.0036 0.0067 0.0062 0.0098 0.0098l2.4805 2.957c0.44995 0.53623 1.0126 0.58474 1.5488 0.13476l0.61328-0.51367c0.53623-0.44995 0.50854-0.94814 0.05859-1.4844l-4.0488-4.8242-3.3574-4 4.916-5.8574c0.0037-0.0044 0.0061-0.0093 0.0098-0.01367l2.4805-2.9551c0.44995-0.53623 0.39953-1.1008-0.13672-1.5508l-0.61328-0.51367c-0.26812-0.22498-0.52264-0.30864-0.76758-0.26953z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><path id="XMLID_107_" fill="#0082c9" d="m16.959 5.8379c-3.5104 0-6.4858 2.3798-7.408 5.6042-0.80146-1.7103-2.5382-2.9085-4.5387-2.9085-2.7511 0-5.0126 2.2615-5.0126 5.0126 0 2.7511 2.2615 5.0137 5.0126 5.0137 2.0005 0 3.7373-1.1989 4.5387-2.9095 0.92217 3.2246 3.8975 5.6053 7.408 5.6053 3.4845 0 6.4447-2.3447 7.3904-5.533 0.81627 1.6717 2.5316 2.8372 4.5036 2.8372 2.7511 0 5.0137-2.2625 5.0137-5.0137 0-2.7511-2.2625-5.0126-5.0137-5.0126-1.9721 0-3.6874 1.1647-4.5036 2.8362-0.94575-3.188-3.9059-5.532-7.3904-5.532zm0 2.9425c2.65 0 4.7669 2.1159 4.7669 4.7659 0 2.65-2.1169 4.7669-4.7669 4.7669-2.65 0-4.7659-2.1169-4.7659-4.7669 0-2.65 2.1159-4.7659 4.7659-4.7659zm-11.947 2.6958c1.161 0 2.0711 0.90908 2.0711 2.0701 0 1.161-0.91012 2.0711-2.0711 2.0711-1.161 0-2.0701-0.91012-2.0701-2.0711 0-1.161 0.90909-2.0701 2.0701-2.0701zm23.841 0c1.161 0 2.0711 0.90908 2.0711 2.0701 0 1.161-0.91012 2.0711-2.0711 2.0711-1.161 0-2.0701-0.91012-2.0701-2.0711 0-1.161 0.90909-2.0701 2.0701-2.0701z" color="#000" color-rendering="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="isolation:auto;mix-blend-mode:normal;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-transform:none;white-space:normal"/><g fill="#0082c9" transform="matrix(.13987 0 0 .13987 3.3867 17.958)"><path id="XMLID_121_" d="m37.67 48.9c5.9 0 9.2 4.2 9.2 10.5 0 0.6-0.5 1.1-1.1 1.1h-15.9c0.1 5.6 4 8.8 8.5 8.8 2.8 0 4.8-1.2 5.8-2 0.6-0.4 1.1-0.3 1.4 0.3l0.3 0.5c0.3 0.5 0.2 1-0.3 1.4-1.2 0.9-3.8 2.4-7.3 2.4-6.5 0-11.5-4.7-11.5-11.5 0.1-7.2 4.9-11.5 10.9-11.5zm6.1 9.4c-0.2-4.6-3-6.9-6.2-6.9-3.7 0-6.9 2.4-7.6 6.9z"/><path id="XMLID_119_" d="m76.9 52.1v-7.7c0-0.7 0.4-1.1 1.1-1.1h0.8c0.7 0 1 0.4 1 1.1v5.2h4.5c0.7 0 1.1 0.4 1.1 1.1v0.3c0 0.7-0.4 1-1.1 1h-4.5v11c0 5.1 3.1 5.7 4.8 5.8 0.9 0.1 1.2 0.3 1.2 1.1v0.6c0 0.7-0.3 1-1.2 1-4.8 0-7.7-2.9-7.7-8.1z"/><path id="XMLID_117_" d="m99.8 48.9c3.8 0 6.2 1.6 7.3 2.5 0.5 0.4 0.6 0.9 0.1 1.5l-0.3 0.5c-0.4 0.6-0.9 0.6-1.5 0.2-1-0.7-2.9-2-5.5-2-4.8 0-8.6 3.6-8.6 8.9 0 5.2 3.8 8.8 8.6 8.8 3.1 0 5.2-1.4 6.2-2.3 0.6-0.4 1-0.3 1.4 0.3l0.3 0.4c0.3 0.6 0.2 1-0.3 1.5-1.1 0.9-3.8 2.8-7.8 2.8-6.5 0-11.5-4.7-11.5-11.5 0.1-6.8 5.1-11.6 11.6-11.6z"/><path id="XMLID_115_" d="m113.1 41.8c0-0.7-0.4-1.1 0.3-1.1h0.8c0.7 0 1.8 0.4 1.8 1.1v23.9c0 2.8 1.3 3.1 2.3 3.2 0.5 0 0.9 0.3 0.9 1v0.7c0 0.7-0.3 1.1-1.1 1.1-1.8 0-5-0.6-5-5.4z"/><path id="XMLID_112_" d="m133.6 48.9c6.4 0 11.6 4.9 11.6 11.4 0 6.6-5.2 11.6-11.6 11.6s-11.6-5-11.6-11.6c0-6.5 5.2-11.4 11.6-11.4zm0 20.4c4.7 0 8.5-3.8 8.5-9 0-5-3.8-8.7-8.5-8.7s-8.6 3.8-8.6 8.7c0.1 5.1 3.9 9 8.6 9z"/><path id="XMLID_109_" d="m183.5 48.9c5.3 0 7.2 4.4 7.2 4.4h0.1s-0.1-0.7-0.1-1.7v-9.9c0-0.7-0.3-1.1 0.4-1.1h0.8c0.7 0 1.8 0.4 1.8 1.1v28.5c0 0.7-0.3 1.1-1 1.1h-0.7c-0.7 0-1.1-0.3-1.1-1v-1.7c0-0.8 0.2-1.4 0.2-1.4h-0.1s-1.9 4.6-7.6 4.6c-5.9 0-9.6-4.7-9.6-11.5-0.2-6.8 3.9-11.4 9.7-11.4zm0.1 20.4c3.7 0 7.1-2.6 7.1-8.9 0-4.5-2.3-8.8-7-8.8-3.9 0-7.1 3.2-7.1 8.8 0.1 5.4 2.9 8.9 7 8.9z"/><path id="XMLID_103_" d="m1 71.4h0.8c0.7 0 1.1-0.4 1.1-1.1v-21.472c0-3.4 3.7-5.8277 7.9-5.8277s7.9 2.4277 7.9 5.8277v21.472c0 0.7 0.4 1.1 1.1 1.1h0.8c0.7 0 1-0.4 1-1.1v-21.6c0-5.7-5.7-8.5-10.9-8.5-5 0-10.7 2.8-10.7 8.5v21.6c0 0.7 0.3 1.1 1 1.1z"/><path id="XMLID_102_" d="m167.9 49.4h-0.8c-0.7 0-1.1 0.4-1.1 1.1v12.1c0 3.4-2.2 6.5-6.5 6.5-4.2 0-6.5-3.1-6.5-6.5v-12.1c0-0.7-0.4-1.1-1.1-1.1h-0.8c-0.7 0-1 0.4-1 1.1v12.9c0 5.7 4.2 8.5 9.4 8.5s9.4-2.8 9.4-8.5v-12.9c0.1-0.7-0.3-1.1-1-1.1z"/><path d="m68.908 49.236c-0.24494 0.0391-0.4801 0.20259-0.70508 0.4707l-4.0469 4.8242-3.0293 3.6094-4.5859-5.4668-2.4883-2.9668c-0.22498-0.26812-0.47975-0.41472-0.74414-0.4375-0.26439-0.02278-0.53852 0.07775-0.80664 0.30273l-0.61328 0.51367c-0.53623 0.44995-0.50854 0.94814-0.05859 1.4844l4.0488 4.8242 3.3574 4-4.916 5.8574c-0.0037 0.0044-0.0061 0.0093-0.0098 0.01367l-2.4805 2.9551c-0.44995 0.53623-0.39953 1.1008 0.13672 1.5508l0.61328 0.51172c0.53623 0.44995 1.0227 0.33701 1.4727-0.19922l4.0469-4.8242 3.0293-3.6094 4.5859 5.4668c3e-3 0.0036 0.0067 0.0062 0.0098 0.0098l2.4805 2.957c0.44995 0.53623 1.0126 0.58474 1.5488 0.13476l0.61328-0.51367c0.53623-0.44995 0.50854-0.94814 0.05859-1.4844l-4.0488-4.8242-3.3574-4 4.916-5.8574c0.0037-0.0044 0.0061-0.0093 0.0098-0.01367l2.4805-2.9551c0.44995-0.53623 0.39953-1.1008-0.13672-1.5508l-0.61328-0.51367c-0.26812-0.22498-0.52264-0.30864-0.76758-0.26953z"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.99999 0 0 .99999 -10.524 -177.41)"><rect x="10.524" y="177.41" width="33.867" height="33.867" fill="#7393f3" stroke-width=".72366"/><g transform="matrix(.67733 0 0 .67733 10.524 177.41)" fill="#fff"><path transform="scale(1,-1)" x="11.755644" y="-31.042255" width="26.488712" height="12.08451" d="m17.756-31.042h14.489a6 6 45 0 1 6 6v0.08451a6 6 135 0 1-6 6h-14.489a6 6 45 0 1-6-6v-0.08451a6 6 135 0 1 6-6z" stroke-width=".29286"/><ellipse cx="25" cy="19.481" rx="7.3432" ry="5.1293" stroke-width=".20012"/></g><g transform="matrix(.67733 0 0 .67733 10.524 177.41)"><rect x="25.268" y="26.26" width="2.0174" height="3.6711" fill="#fff" stroke-width=".26458"/><rect x="21.5" y="27.245" width="7" height="3.8666" fill="#7393f3" stroke-width=".26344"/><path transform="matrix(.36886 0 0 .21296 -3.9552 7.8648)" d="m92.055 93.076h-27.11l13.555-23.479 6.7777 11.739z" fill="#7393f3"/></g><g transform="matrix(.67733 0 0 .68255 6.7598 173.7)"><g transform="matrix(1,0,0,-1,6.3485,69.902)" fill="#fff"><rect x="20.709" y="29.099" width="7" height="4.5682" stroke-width=".28635"/><path transform="matrix(.36886 0 0 .21296 -4.7458 9.7194)" d="m92.055 93.076h-27.11l13.555-23.479 6.7777 11.739z"/></g></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g transform="matrix(.99999 0 0 .99999 -10.524 -177.41)"><rect width="33.867" height="33.867" x="10.524" y="177.41" fill="#7393f3" stroke-width=".724"/><g fill="#fff" transform="matrix(.67733 0 0 .67733 10.524 177.41)"><path width="26.489" height="12.085" x="11.756" y="-31.042" stroke-width=".293" d="m17.756-31.042h14.489a6 6 45 0 1 6 6v0.08451a6 6 135 0 1-6 6h-14.489a6 6 45 0 1-6-6v-0.08451a6 6 135 0 1 6-6z" transform="scale(1,-1)"/><ellipse cx="25" cy="19.481" stroke-width=".2" rx="7.343" ry="5.129"/></g><g transform="matrix(.67733 0 0 .67733 10.524 177.41)"><rect width="2.017" height="3.671" x="25.268" y="26.26" fill="#fff" stroke-width=".265"/><rect width="7" height="3.867" x="21.5" y="27.245" fill="#7393f3" stroke-width=".263"/><path fill="#7393f3" d="m92.055 93.076h-27.11l13.555-23.479 6.7777 11.739z" transform="matrix(.36886 0 0 .21296 -3.9552 7.8648)"/></g><g><g fill="#fff" transform="matrix(.67733 0 0 .68255 6.7598 173.7) matrix(1,0,0,-1,6.3485,69.902)"><rect width="7" height="4.568" x="20.709" y="29.099" stroke-width=".286"/><path d="m92.055 93.076h-27.11l13.555-23.479 6.7777 11.739z" transform="matrix(.36886 0 0 .21296 -4.7458 9.7194)"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(-.49803 0 0 .49803 16.933 28.886)"><path transform="matrix(-.53125 0 0 .53125 34 -58)" d="m64 30.117-5.6465 16.941h3.7637v62.117h3.7656v-62.117h3.7637l-5.6465-16.941z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#fff" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path transform="matrix(-.53125 0 0 .53125 34 -58)" d="m83.75 57.334-11.309 13.82 3.5195 1.3418-13.719 36.012 3.5156 1.3379 13.719-36.012 3.5195 1.3418 0.75391-17.842z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#fff" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path transform="matrix(-.53125 0 0 .53125 34 -58)" d="m44.25 57.334 0.75391 17.842 3.5195-1.3418 13.719 36.012 3.5156-1.3379-13.719-36.012 3.5195-1.3418-11.309-13.82z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#fff" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><circle r="10" fill="#f00"/><g fill="#fff"><circle class="storage" cy="-50" r="8"/><circle class="storage" cx="-14" cy="-35" r="8"/><circle class="storage" cx="14" cy="-35" r="8"/></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><g transform="matrix(-.49803 0 0 .49803 16.933 28.886)"><path fill="#fff" d="m64 30.117-5.6465 16.941h3.7637v62.117h3.7656v-62.117h3.7637l-5.6465-16.941z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path fill="#fff" d="m83.75 57.334-11.309 13.82 3.5195 1.3418-13.719 36.012 3.5156 1.3379 13.719-36.012 3.5195 1.3418 0.75391-17.842z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path fill="#fff" d="m44.25 57.334 0.75391 17.842 3.5195-1.3418 13.719 36.012 3.5156-1.3379-13.719-36.012 3.5195-1.3418-11.309-13.82z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><circle r="10" fill="red"/><g fill="#fff"><circle cy="-50" r="8" class="storage"/><circle cx="-14" cy="-35" r="8" class="storage"/><circle cx="14" cy="-35" r="8" class="storage"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(-.49803 0 0 .49803 16.933 28.886)"><path transform="matrix(-.53125 0 0 .53125 34 -58)" d="m64 30.117-5.6465 16.941h3.7637v62.117h3.7656v-62.117h3.7637l-5.6465-16.941z" color="#000000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path transform="matrix(-.53125 0 0 .53125 34 -58)" d="m83.75 57.334-11.309 13.82 3.5195 1.3418-13.719 36.012 3.5156 1.3379 13.719-36.012 3.5195 1.3418 0.75391-17.842z" color="#000000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path transform="matrix(-.53125 0 0 .53125 34 -58)" d="m44.25 57.334 0.75391 17.842 3.5195-1.3418 13.719 36.012 3.5156-1.3379-13.719-36.012 3.5195-1.3418-11.309-13.82z" color="#000000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><circle r="10" fill="#f00"/><g><circle class="storage" cy="-50" r="8"/><circle class="storage" cx="-14" cy="-35" r="8"/><circle class="storage" cx="14" cy="-35" r="8"/></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.866 33.866"><g transform="matrix(-.49803 0 0 .49803 16.933 28.886)"><path d="m64 30.117-5.6465 16.941h3.7637v62.117h3.7656v-62.117h3.7637l-5.6465-16.941z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m83.75 57.334-11.309 13.82 3.5195 1.3418-13.719 36.012 3.5156 1.3379 13.719-36.012 3.5195 1.3418 0.75391-17.842z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><path d="m44.25 57.334 0.75391 17.842 3.5195-1.3418 13.719 36.012 3.5156-1.3379-13.719-36.012 3.5195-1.3418-11.309-13.82z" color="#000" color-rendering="auto" dominant-baseline="auto" image-rendering="auto" shape-rendering="auto" solid-color="#000000" transform="matrix(-.53125 0 0 .53125 34 -58)" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none;white-space:normal"/><circle r="10" fill="red"/><g><circle cy="-50" r="8" class="storage"/><circle cx="-14" cy="-35" r="8" class="storage"/><circle cx="14" cy="-35" r="8" class="storage"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,166 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (0)
-->
<!-- Title: DNS Pages: 1 -->
<svg width="630pt" height="935pt"
viewBox="0.00 0.00 630.00 935.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 899)">
<title>DNS</title>
<!-- Start -->
<g id="node1" class="node">
<title>Start</title>
<path fill="#d4bbd2" stroke="#d4bbd2" d="M89,-863C89,-863 55,-863 55,-863 49,-863 43,-857 43,-851 43,-851 43,-839 43,-839 43,-833 49,-827 55,-827 55,-827 89,-827 89,-827 95,-827 101,-833 101,-839 101,-839 101,-851 101,-851 101,-857 95,-863 89,-863"/>
<text text-anchor="middle" x="72" y="-841.3" font-family="monospace" font-size="14.00">Start</text>
</g>
<!-- anonymous -->
<g id="node3" class="node">
<title>anonymous</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="72,-791 0,-733.5 72,-676 144,-733.5 72,-791"/>
<text text-anchor="middle" x="72" y="-737.3" font-family="monospace" font-size="14.00">Trying to be</text>
<text text-anchor="middle" x="72" y="-722.3" font-family="monospace" font-size="14.00"> anonymous?</text>
</g>
<!-- Start&#45;&gt;anonymous -->
<g id="edge1" class="edge">
<title>Start&#45;&gt;anonymous</title>
<path fill="none" stroke="white" d="M72,-826.59C72,-826.59 72,-801.45 72,-801.45"/>
<polygon fill="white" stroke="white" points="72,-791.45 76.5,-801.45 72,-796.45 72,-801.45 72,-801.45 72,-801.45 72,-796.45 67.5,-801.45 72,-791.45 72,-791.45"/>
</g>
<!-- nothing -->
<g id="node2" class="node">
<title>nothing</title>
<path fill="#d4bbd2" stroke="#d4bbd2" d="M249.5,-36C249.5,-36 174.5,-36 174.5,-36 168.5,-36 162.5,-30 162.5,-24 162.5,-24 162.5,-12 162.5,-12 162.5,-6 168.5,0 174.5,0 174.5,0 249.5,0 249.5,0 255.5,0 261.5,-6 261.5,-12 261.5,-12 261.5,-24 261.5,-24 261.5,-30 255.5,-36 249.5,-36"/>
<text text-anchor="middle" x="212" y="-14.3" font-family="monospace" font-size="14.00">Do nothing</text>
</g>
<!-- censorship -->
<g id="node4" class="node">
<title>censorship</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="72,-640 0,-582.5 72,-525 144,-582.5 72,-640"/>
<text text-anchor="middle" x="72" y="-586.3" font-family="monospace" font-size="14.00">Avoiding</text>
<text text-anchor="middle" x="72" y="-571.3" font-family="monospace" font-size="14.00"> censorship?</text>
</g>
<!-- anonymous&#45;&gt;censorship -->
<g id="edge3" class="edge">
<title>anonymous&#45;&gt;censorship</title>
<path fill="none" stroke="white" d="M72,-675.98C72,-675.98 72,-650.11 72,-650.11"/>
<polygon fill="white" stroke="white" points="72,-640.11 76.5,-650.11 72,-645.11 72,-650.11 72,-650.11 72,-650.11 72,-645.11 67.5,-650.11 72,-640.11 72,-640.11"/>
<text text-anchor="middle" x="63.5" y="-651.85" font-family="monospace" font-size="14.00" fill="white">No</text>
</g>
<!-- tor -->
<g id="node8" class="node">
<title>tor</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M300,-697.5C300,-697.5 406,-697.5 406,-697.5 412,-697.5 418,-703.5 418,-709.5 418,-709.5 418,-757.5 418,-757.5 418,-763.5 412,-769.5 406,-769.5 406,-769.5 300,-769.5 300,-769.5 294,-769.5 288,-763.5 288,-757.5 288,-757.5 288,-709.5 288,-709.5 288,-703.5 294,-697.5 300,-697.5"/>
<text text-anchor="middle" x="353" y="-729.8" font-family="monospace" font-size="14.00">Use Tor</text>
</g>
<!-- anonymous&#45;&gt;tor -->
<g id="edge2" class="edge">
<title>anonymous&#45;&gt;tor</title>
<path fill="none" stroke="white" d="M143.64,-733C143.64,-733 277.75,-733 277.75,-733"/>
<polygon fill="white" stroke="white" points="287.75,-733 277.75,-737.5 282.75,-733 277.75,-733 277.75,-733 277.75,-733 282.75,-733 277.75,-728.5 287.75,-733 287.75,-733"/>
<text text-anchor="middle" x="198.19" y="-736.8" font-family="monospace" font-size="14.00" fill="white">Yes</text>
</g>
<!-- privacy -->
<g id="node5" class="node">
<title>privacy</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="212,-489 140,-431.5 212,-374 284,-431.5 212,-489"/>
<text text-anchor="middle" x="212" y="-435.3" font-family="monospace" font-size="14.00">Want privacy</text>
<text text-anchor="middle" x="212" y="-420.3" font-family="monospace" font-size="14.00"> from ISP?</text>
</g>
<!-- censorship&#45;&gt;privacy -->
<g id="edge5" class="edge">
<title>censorship&#45;&gt;privacy</title>
<path fill="none" stroke="white" d="M84.7,-535C115.31,-535 190.67,-535 190.67,-535 190.67,-535 190.67,-482.11 190.67,-482.11"/>
<polygon fill="white" stroke="white" points="190.67,-472.11 195.17,-482.11 190.67,-477.11 190.67,-482.11 190.67,-482.11 190.67,-482.11 190.67,-477.11 186.17,-482.11 190.67,-472.11 190.67,-472.11"/>
<text text-anchor="middle" x="155.63" y="-538.8" font-family="monospace" font-size="14.00" fill="white">No</text>
</g>
<!-- vpnOrTor -->
<g id="node9" class="node">
<title>vpnOrTor</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M300,-546.5C300,-546.5 406,-546.5 406,-546.5 412,-546.5 418,-552.5 418,-558.5 418,-558.5 418,-606.5 418,-606.5 418,-612.5 412,-618.5 406,-618.5 406,-618.5 300,-618.5 300,-618.5 294,-618.5 288,-612.5 288,-606.5 288,-606.5 288,-558.5 288,-558.5 288,-552.5 294,-546.5 300,-546.5"/>
<text text-anchor="middle" x="353" y="-586.3" font-family="monospace" font-size="14.00">Use VPN</text>
<text text-anchor="middle" x="353" y="-571.3" font-family="monospace" font-size="14.00"> or Tor</text>
</g>
<!-- censorship&#45;&gt;vpnOrTor -->
<g id="edge4" class="edge">
<title>censorship&#45;&gt;vpnOrTor</title>
<path fill="none" stroke="white" d="M129.88,-594C129.88,-594 277.82,-594 277.82,-594"/>
<polygon fill="white" stroke="white" points="287.82,-594 277.82,-598.5 282.82,-594 277.82,-594 277.82,-594 277.82,-594 282.82,-594 277.82,-589.5 287.82,-594 287.82,-594"/>
<text text-anchor="middle" x="191.35" y="-597.8" font-family="monospace" font-size="14.00" fill="white">Yes</text>
</g>
<!-- obnoxious -->
<g id="node6" class="node">
<title>obnoxious</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="212,-338 140,-280.5 212,-223 284,-280.5 212,-338"/>
<text text-anchor="middle" x="212" y="-291.8" font-family="monospace" font-size="14.00">ISP makes</text>
<text text-anchor="middle" x="212" y="-276.8" font-family="monospace" font-size="14.00"> obnoxious</text>
<text text-anchor="middle" x="212" y="-261.8" font-family="monospace" font-size="14.00"> redirects?</text>
</g>
<!-- privacy&#45;&gt;obnoxious -->
<g id="edge7" class="edge">
<title>privacy&#45;&gt;obnoxious</title>
<path fill="none" stroke="white" d="M212,-373.98C212,-373.98 212,-348.11 212,-348.11"/>
<polygon fill="white" stroke="white" points="212,-338.11 216.5,-348.11 212,-343.11 212,-348.11 212,-348.11 212,-348.11 212,-343.11 207.5,-348.11 212,-338.11 212,-338.11"/>
<text text-anchor="middle" x="203.5" y="-349.85" font-family="monospace" font-size="14.00" fill="white">No</text>
</g>
<!-- privacy&#45;&gt;vpnOrTor -->
<g id="edge6" class="edge">
<title>privacy&#45;&gt;vpnOrTor</title>
<path fill="none" stroke="white" d="M237.33,-468.98C237.33,-510 237.33,-570 237.33,-570 237.33,-570 277.73,-570 277.73,-570"/>
<polygon fill="white" stroke="white" points="287.73,-570 277.73,-574.5 282.73,-570 277.73,-570 277.73,-570 277.73,-570 282.73,-570 277.73,-565.5 287.73,-570 287.73,-570"/>
<text text-anchor="middle" x="224.83" y="-543.49" font-family="monospace" font-size="14.00" fill="white">Yes</text>
</g>
<!-- ispDNS -->
<g id="node7" class="node">
<title>ispDNS</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="212,-187 140,-129.5 212,-72 284,-129.5 212,-187"/>
<text text-anchor="middle" x="212" y="-148.3" font-family="monospace" font-size="14.00">Does ISP</text>
<text text-anchor="middle" x="212" y="-133.3" font-family="monospace" font-size="14.00"> support</text>
<text text-anchor="middle" x="212" y="-118.3" font-family="monospace" font-size="14.00"> encrypted</text>
<text text-anchor="middle" x="212" y="-103.3" font-family="monospace" font-size="14.00"> DNS?</text>
</g>
<!-- obnoxious&#45;&gt;ispDNS -->
<g id="edge9" class="edge">
<title>obnoxious&#45;&gt;ispDNS</title>
<path fill="none" stroke="white" d="M212,-222.98C212,-222.98 212,-197.11 212,-197.11"/>
<polygon fill="white" stroke="white" points="212,-187.11 216.5,-197.11 212,-192.11 212,-197.11 212,-197.11 212,-197.11 212,-192.11 207.5,-197.11 212,-187.11 212,-187.11"/>
<text text-anchor="middle" x="203.5" y="-198.85" font-family="monospace" font-size="14.00" fill="white">No</text>
</g>
<!-- encryptedDNS -->
<g id="node10" class="node">
<title>encryptedDNS</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M440,-244.5C440,-244.5 546,-244.5 546,-244.5 552,-244.5 558,-250.5 558,-256.5 558,-256.5 558,-304.5 558,-304.5 558,-310.5 552,-316.5 546,-316.5 546,-316.5 440,-316.5 440,-316.5 434,-316.5 428,-310.5 428,-304.5 428,-304.5 428,-256.5 428,-256.5 428,-250.5 434,-244.5 440,-244.5"/>
<text text-anchor="middle" x="493" y="-291.8" font-family="monospace" font-size="14.00">Use encrypted</text>
<text text-anchor="middle" x="493" y="-276.8" font-family="monospace" font-size="14.00"> DNS with 3rd</text>
<text text-anchor="middle" x="493" y="-261.8" font-family="monospace" font-size="14.00"> party</text>
</g>
<!-- obnoxious&#45;&gt;encryptedDNS -->
<g id="edge8" class="edge">
<title>obnoxious&#45;&gt;encryptedDNS</title>
<path fill="none" stroke="white" d="M283.64,-280C283.64,-280 417.75,-280 417.75,-280"/>
<polygon fill="white" stroke="white" points="427.75,-280 417.75,-284.5 422.75,-280 417.75,-280 417.75,-280 417.75,-280 422.75,-280 417.75,-275.5 427.75,-280 427.75,-280"/>
<text text-anchor="middle" x="338.19" y="-283.8" font-family="monospace" font-size="14.00" fill="white">Yes</text>
</g>
<!-- ispDNS&#45;&gt;nothing -->
<g id="edge11" class="edge">
<title>ispDNS&#45;&gt;nothing</title>
<path fill="none" stroke="white" d="M212,-71.79C212,-71.79 212,-46.13 212,-46.13"/>
<polygon fill="white" stroke="white" points="212,-36.13 216.5,-46.13 212,-41.13 212,-46.13 212,-46.13 212,-46.13 212,-41.13 207.5,-46.13 212,-36.13 212,-36.13"/>
<text text-anchor="middle" x="203.5" y="-47.76" font-family="monospace" font-size="14.00" fill="white">No</text>
</g>
<!-- useISP -->
<g id="node11" class="node">
<title>useISP</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M440,-93.5C440,-93.5 546,-93.5 546,-93.5 552,-93.5 558,-99.5 558,-105.5 558,-105.5 558,-153.5 558,-153.5 558,-159.5 552,-165.5 546,-165.5 546,-165.5 440,-165.5 440,-165.5 434,-165.5 428,-159.5 428,-153.5 428,-153.5 428,-105.5 428,-105.5 428,-99.5 434,-93.5 440,-93.5"/>
<text text-anchor="middle" x="493" y="-133.3" font-family="monospace" font-size="14.00">Use encrypted</text>
<text text-anchor="middle" x="493" y="-118.3" font-family="monospace" font-size="14.00"> DNS with ISP</text>
</g>
<!-- ispDNS&#45;&gt;useISP -->
<g id="edge10" class="edge">
<title>ispDNS&#45;&gt;useISP</title>
<path fill="none" stroke="white" d="M283.64,-129C283.64,-129 417.75,-129 417.75,-129"/>
<polygon fill="white" stroke="white" points="427.75,-129 417.75,-133.5 422.75,-129 417.75,-129 417.75,-129 417.75,-129 422.75,-129 417.75,-124.5 427.75,-129 427.75,-129"/>
<text text-anchor="middle" x="338.19" y="-132.8" font-family="monospace" font-size="14.00" fill="white">Yes</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,166 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (0)
-->
<!-- Title: DNS Pages: 1 -->
<svg width="630pt" height="935pt"
viewBox="0.00 0.00 630.00 935.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(36 899)">
<title>DNS</title>
<!-- Start -->
<g id="node1" class="node">
<title>Start</title>
<path fill="#d4bbd2" stroke="#d4bbd2" d="M89,-863C89,-863 55,-863 55,-863 49,-863 43,-857 43,-851 43,-851 43,-839 43,-839 43,-833 49,-827 55,-827 55,-827 89,-827 89,-827 95,-827 101,-833 101,-839 101,-839 101,-851 101,-851 101,-857 95,-863 89,-863"/>
<text text-anchor="middle" x="72" y="-841.3" font-family="monospace" font-size="14.00">Start</text>
</g>
<!-- anonymous -->
<g id="node3" class="node">
<title>anonymous</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="72,-791 0,-733.5 72,-676 144,-733.5 72,-791"/>
<text text-anchor="middle" x="72" y="-737.3" font-family="monospace" font-size="14.00">Trying to be</text>
<text text-anchor="middle" x="72" y="-722.3" font-family="monospace" font-size="14.00"> anonymous?</text>
</g>
<!-- Start&#45;&gt;anonymous -->
<g id="edge1" class="edge">
<title>Start&#45;&gt;anonymous</title>
<path fill="none" stroke="black" d="M72,-826.59C72,-826.59 72,-801.45 72,-801.45"/>
<polygon fill="black" stroke="black" points="72,-791.45 76.5,-801.45 72,-796.45 72,-801.45 72,-801.45 72,-801.45 72,-796.45 67.5,-801.45 72,-791.45 72,-791.45"/>
</g>
<!-- nothing -->
<g id="node2" class="node">
<title>nothing</title>
<path fill="#d4bbd2" stroke="#d4bbd2" d="M249.5,-36C249.5,-36 174.5,-36 174.5,-36 168.5,-36 162.5,-30 162.5,-24 162.5,-24 162.5,-12 162.5,-12 162.5,-6 168.5,0 174.5,0 174.5,0 249.5,0 249.5,0 255.5,0 261.5,-6 261.5,-12 261.5,-12 261.5,-24 261.5,-24 261.5,-30 255.5,-36 249.5,-36"/>
<text text-anchor="middle" x="212" y="-14.3" font-family="monospace" font-size="14.00">Do nothing</text>
</g>
<!-- censorship -->
<g id="node4" class="node">
<title>censorship</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="72,-640 0,-582.5 72,-525 144,-582.5 72,-640"/>
<text text-anchor="middle" x="72" y="-586.3" font-family="monospace" font-size="14.00">Avoiding</text>
<text text-anchor="middle" x="72" y="-571.3" font-family="monospace" font-size="14.00"> censorship?</text>
</g>
<!-- anonymous&#45;&gt;censorship -->
<g id="edge3" class="edge">
<title>anonymous&#45;&gt;censorship</title>
<path fill="none" stroke="black" d="M72,-675.98C72,-675.98 72,-650.11 72,-650.11"/>
<polygon fill="black" stroke="black" points="72,-640.11 76.5,-650.11 72,-645.11 72,-650.11 72,-650.11 72,-650.11 72,-645.11 67.5,-650.11 72,-640.11 72,-640.11"/>
<text text-anchor="middle" x="63.5" y="-651.85" font-family="monospace" font-size="14.00">No</text>
</g>
<!-- tor -->
<g id="node8" class="node">
<title>tor</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M300,-697.5C300,-697.5 406,-697.5 406,-697.5 412,-697.5 418,-703.5 418,-709.5 418,-709.5 418,-757.5 418,-757.5 418,-763.5 412,-769.5 406,-769.5 406,-769.5 300,-769.5 300,-769.5 294,-769.5 288,-763.5 288,-757.5 288,-757.5 288,-709.5 288,-709.5 288,-703.5 294,-697.5 300,-697.5"/>
<text text-anchor="middle" x="353" y="-729.8" font-family="monospace" font-size="14.00">Use Tor</text>
</g>
<!-- anonymous&#45;&gt;tor -->
<g id="edge2" class="edge">
<title>anonymous&#45;&gt;tor</title>
<path fill="none" stroke="black" d="M143.64,-733C143.64,-733 277.75,-733 277.75,-733"/>
<polygon fill="black" stroke="black" points="287.75,-733 277.75,-737.5 282.75,-733 277.75,-733 277.75,-733 277.75,-733 282.75,-733 277.75,-728.5 287.75,-733 287.75,-733"/>
<text text-anchor="middle" x="198.19" y="-736.8" font-family="monospace" font-size="14.00">Yes</text>
</g>
<!-- privacy -->
<g id="node5" class="node">
<title>privacy</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="212,-489 140,-431.5 212,-374 284,-431.5 212,-489"/>
<text text-anchor="middle" x="212" y="-435.3" font-family="monospace" font-size="14.00">Want privacy</text>
<text text-anchor="middle" x="212" y="-420.3" font-family="monospace" font-size="14.00"> from ISP?</text>
</g>
<!-- censorship&#45;&gt;privacy -->
<g id="edge5" class="edge">
<title>censorship&#45;&gt;privacy</title>
<path fill="none" stroke="black" d="M84.7,-535C115.31,-535 190.67,-535 190.67,-535 190.67,-535 190.67,-482.11 190.67,-482.11"/>
<polygon fill="black" stroke="black" points="190.67,-472.11 195.17,-482.11 190.67,-477.11 190.67,-482.11 190.67,-482.11 190.67,-482.11 190.67,-477.11 186.17,-482.11 190.67,-472.11 190.67,-472.11"/>
<text text-anchor="middle" x="155.63" y="-538.8" font-family="monospace" font-size="14.00">No</text>
</g>
<!-- vpnOrTor -->
<g id="node9" class="node">
<title>vpnOrTor</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M300,-546.5C300,-546.5 406,-546.5 406,-546.5 412,-546.5 418,-552.5 418,-558.5 418,-558.5 418,-606.5 418,-606.5 418,-612.5 412,-618.5 406,-618.5 406,-618.5 300,-618.5 300,-618.5 294,-618.5 288,-612.5 288,-606.5 288,-606.5 288,-558.5 288,-558.5 288,-552.5 294,-546.5 300,-546.5"/>
<text text-anchor="middle" x="353" y="-586.3" font-family="monospace" font-size="14.00">Use VPN</text>
<text text-anchor="middle" x="353" y="-571.3" font-family="monospace" font-size="14.00"> or Tor</text>
</g>
<!-- censorship&#45;&gt;vpnOrTor -->
<g id="edge4" class="edge">
<title>censorship&#45;&gt;vpnOrTor</title>
<path fill="none" stroke="black" d="M129.88,-594C129.88,-594 277.82,-594 277.82,-594"/>
<polygon fill="black" stroke="black" points="287.82,-594 277.82,-598.5 282.82,-594 277.82,-594 277.82,-594 277.82,-594 282.82,-594 277.82,-589.5 287.82,-594 287.82,-594"/>
<text text-anchor="middle" x="191.35" y="-597.8" font-family="monospace" font-size="14.00">Yes</text>
</g>
<!-- obnoxious -->
<g id="node6" class="node">
<title>obnoxious</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="212,-338 140,-280.5 212,-223 284,-280.5 212,-338"/>
<text text-anchor="middle" x="212" y="-291.8" font-family="monospace" font-size="14.00">ISP makes</text>
<text text-anchor="middle" x="212" y="-276.8" font-family="monospace" font-size="14.00"> obnoxious</text>
<text text-anchor="middle" x="212" y="-261.8" font-family="monospace" font-size="14.00"> redirects?</text>
</g>
<!-- privacy&#45;&gt;obnoxious -->
<g id="edge7" class="edge">
<title>privacy&#45;&gt;obnoxious</title>
<path fill="none" stroke="black" d="M212,-373.98C212,-373.98 212,-348.11 212,-348.11"/>
<polygon fill="black" stroke="black" points="212,-338.11 216.5,-348.11 212,-343.11 212,-348.11 212,-348.11 212,-348.11 212,-343.11 207.5,-348.11 212,-338.11 212,-338.11"/>
<text text-anchor="middle" x="203.5" y="-349.85" font-family="monospace" font-size="14.00">No</text>
</g>
<!-- privacy&#45;&gt;vpnOrTor -->
<g id="edge6" class="edge">
<title>privacy&#45;&gt;vpnOrTor</title>
<path fill="none" stroke="black" d="M237.33,-468.98C237.33,-510 237.33,-570 237.33,-570 237.33,-570 277.73,-570 277.73,-570"/>
<polygon fill="black" stroke="black" points="287.73,-570 277.73,-574.5 282.73,-570 277.73,-570 277.73,-570 277.73,-570 282.73,-570 277.73,-565.5 287.73,-570 287.73,-570"/>
<text text-anchor="middle" x="224.83" y="-543.49" font-family="monospace" font-size="14.00">Yes</text>
</g>
<!-- ispDNS -->
<g id="node7" class="node">
<title>ispDNS</title>
<polygon fill="#ffebc2" stroke="#ffebc2" points="212,-187 140,-129.5 212,-72 284,-129.5 212,-187"/>
<text text-anchor="middle" x="212" y="-148.3" font-family="monospace" font-size="14.00">Does ISP</text>
<text text-anchor="middle" x="212" y="-133.3" font-family="monospace" font-size="14.00"> support</text>
<text text-anchor="middle" x="212" y="-118.3" font-family="monospace" font-size="14.00"> encrypted</text>
<text text-anchor="middle" x="212" y="-103.3" font-family="monospace" font-size="14.00"> DNS?</text>
</g>
<!-- obnoxious&#45;&gt;ispDNS -->
<g id="edge9" class="edge">
<title>obnoxious&#45;&gt;ispDNS</title>
<path fill="none" stroke="black" d="M212,-222.98C212,-222.98 212,-197.11 212,-197.11"/>
<polygon fill="black" stroke="black" points="212,-187.11 216.5,-197.11 212,-192.11 212,-197.11 212,-197.11 212,-197.11 212,-192.11 207.5,-197.11 212,-187.11 212,-187.11"/>
<text text-anchor="middle" x="203.5" y="-198.85" font-family="monospace" font-size="14.00">No</text>
</g>
<!-- encryptedDNS -->
<g id="node10" class="node">
<title>encryptedDNS</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M440,-244.5C440,-244.5 546,-244.5 546,-244.5 552,-244.5 558,-250.5 558,-256.5 558,-256.5 558,-304.5 558,-304.5 558,-310.5 552,-316.5 546,-316.5 546,-316.5 440,-316.5 440,-316.5 434,-316.5 428,-310.5 428,-304.5 428,-304.5 428,-256.5 428,-256.5 428,-250.5 434,-244.5 440,-244.5"/>
<text text-anchor="middle" x="493" y="-291.8" font-family="monospace" font-size="14.00">Use encrypted</text>
<text text-anchor="middle" x="493" y="-276.8" font-family="monospace" font-size="14.00"> DNS with 3rd</text>
<text text-anchor="middle" x="493" y="-261.8" font-family="monospace" font-size="14.00"> party</text>
</g>
<!-- obnoxious&#45;&gt;encryptedDNS -->
<g id="edge8" class="edge">
<title>obnoxious&#45;&gt;encryptedDNS</title>
<path fill="none" stroke="black" d="M283.64,-280C283.64,-280 417.75,-280 417.75,-280"/>
<polygon fill="black" stroke="black" points="427.75,-280 417.75,-284.5 422.75,-280 417.75,-280 417.75,-280 417.75,-280 422.75,-280 417.75,-275.5 427.75,-280 427.75,-280"/>
<text text-anchor="middle" x="338.19" y="-283.8" font-family="monospace" font-size="14.00">Yes</text>
</g>
<!-- ispDNS&#45;&gt;nothing -->
<g id="edge11" class="edge">
<title>ispDNS&#45;&gt;nothing</title>
<path fill="none" stroke="black" d="M212,-71.79C212,-71.79 212,-46.13 212,-46.13"/>
<polygon fill="black" stroke="black" points="212,-36.13 216.5,-46.13 212,-41.13 212,-46.13 212,-46.13 212,-46.13 212,-41.13 207.5,-46.13 212,-36.13 212,-36.13"/>
<text text-anchor="middle" x="203.5" y="-47.76" font-family="monospace" font-size="14.00">No</text>
</g>
<!-- useISP -->
<g id="node11" class="node">
<title>useISP</title>
<path fill="#7aa0da" stroke="#7aa0da" d="M440,-93.5C440,-93.5 546,-93.5 546,-93.5 552,-93.5 558,-99.5 558,-105.5 558,-105.5 558,-153.5 558,-153.5 558,-159.5 552,-165.5 546,-165.5 546,-165.5 440,-165.5 440,-165.5 434,-165.5 428,-159.5 428,-153.5 428,-153.5 428,-105.5 428,-105.5 428,-99.5 434,-93.5 440,-93.5"/>
<text text-anchor="middle" x="493" y="-133.3" font-family="monospace" font-size="14.00">Use encrypted</text>
<text text-anchor="middle" x="493" y="-118.3" font-family="monospace" font-size="14.00"> DNS with ISP</text>
</g>
<!-- ispDNS&#45;&gt;useISP -->
<g id="edge10" class="edge">
<title>ispDNS&#45;&gt;useISP</title>
<path fill="none" stroke="black" d="M283.64,-129C283.64,-129 417.75,-129 417.75,-129"/>
<polygon fill="black" stroke="black" points="427.75,-129 417.75,-133.5 422.75,-129 417.75,-129 417.75,-129 417.75,-129 422.75,-129 417.75,-124.5 427.75,-129 427.75,-129"/>
<text text-anchor="middle" x="338.19" y="-132.8" font-family="monospace" font-size="14.00">Yes</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(4 0 0 4 -201.36 -187.41)" fill-rule="evenodd" stroke-width=".26458"><circle cx="54.572" cy="51.087" r="4.2333" fill="#ff004f"/><path d="m54.571 54.438c-0.89694 0-1.7383-0.34687-2.3693-0.97658-0.63156-0.6305-0.98002-1.4729-0.98081-2.3723a3.3412 3.3412 0 0 1 0.15663-1.0149l0.0018-0.0074c0.02302-0.08096 0.05133-0.15875 0.08414-0.23151 0.0058-0.01455 0.01243-0.03069 0.01931-0.04657 0.0291-0.06641 0.1442-0.29501 0.42016-0.46831 0.2495-0.1569 0.46831-0.17039 0.49371-0.17145 0.06032-0.0071 0.12277-0.01058 0.18494-0.01058 0.2831 0 0.53314 0.11192 0.70432 0.31591 0.13018 0.15531 0.20108 0.34581 0.20638 0.55483a1.1433 1.1433 0 0 1 0.51832-0.12726c0.2831 0 0.5334 0.11218 0.70432 0.31591 0.01032 0.01217 0.02011 0.02487 0.0299 0.03757 0.22728-0.22542 0.52731-0.35348 0.83079-0.35348 0.2831 0 0.53314 0.11218 0.70432 0.31591 0.17357 0.2069 0.24156 0.4789 0.19103 0.76544l-0.1778 1.0073c-0.02381 0.13573 0.0045 0.25982 0.07964 0.34952 0.0725 0.08652 0.18415 0.13414 0.31406 0.13414 0.39211 0 0.52996-0.28575 0.62045-0.59425 0.07752-0.27332 0.11324-0.55748 0.1061-0.84429a2.8244 2.8244 0 0 0-0.85169-1.9545 2.8265 2.8265 0 0 0-1.9698-0.8165h-0.01958c-0.56621 0-1.1136 0.16669-1.5827 0.48286a0.25665 0.25665 0 0 1-0.14393 0.04419 0.25347 0.25347 0 0 1-0.19288-0.08864l-0.0013-0.0016a0.254 0.254 0 0 1 0.05186-0.37518 3.3298 3.3298 0 0 1 1.936-0.57044 3.3348 3.3348 0 0 1 2.2886 0.97102 3.334 3.334 0 0 1 0.9943 2.2786 3.3507 3.3507 0 0 1-0.10848 0.95409h2.64e-4l-0.01138 0.0418-5e-3 0.01667a3.3258 3.3258 0 0 1-0.10583 0.31406c-0.0209 0.04948-0.13705 0.30242-0.42307 0.48207-0.24738 0.15558-0.44265 0.16351-0.46567 0.16404a1.2938 1.2938 0 0 1-0.11615 0.0053c-0.2831 0-0.5334-0.11218-0.70432-0.31591-0.17357-0.20717-0.24156-0.47889-0.19103-0.76544l0.1778-1.0075c0.02381-0.13547-0.0045-0.25982-0.07964-0.34925-0.0725-0.08652-0.18415-0.13414-0.31406-0.13414-0.3085 0-0.61516 0.26194-0.66966 0.57203l-0.19447 1.0578a0.1397 0.1397 0 0 1-0.13758 0.1143h-0.23363a0.13944 0.13944 0 0 1-0.13758-0.16484l0.20161-1.0964c0.02381-0.13494-0.0045-0.25929-0.07937-0.34899-0.07276-0.08625-0.18442-0.13388-0.31432-0.13388-0.30824 0-0.61489 0.26194-0.66966 0.57203l-0.1942 1.0578a0.1397 0.1397 0 0 1-0.13758 0.1143h-0.23336a0.13917 0.13917 0 0 1-0.13758-0.16484l0.20214-1.1004 0.13547-0.74057c0.02381-0.13467-0.0048-0.25823-0.0799-0.34793-0.0725-0.08652-0.18415-0.13414-0.31406-0.13414-0.32015 0-0.52626 0.12303-0.64929 0.38708a2.821 2.821 0 0 0-0.19976 1.1663c0.02858 0.72416 0.33496 1.4057 0.86254 1.9188 0.52784 0.51303 1.2179 0.8001 1.9428 0.80883h0.03413c0.59955 0 1.1734-0.18521 1.6595-0.53605a0.24924 0.24924 0 0 1 0.14684-0.04763 0.25453 0.25453 0 0 1 0.14949 0.46117 3.3261 3.3261 0 0 1-1.9571 0.63209" fill="#fff2f6"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><g fill-rule="evenodd" stroke-width=".265" transform="matrix(4 0 0 4 -201.36 -187.41)"><circle cx="54.572" cy="51.087" r="4.233" fill="#ff004f"/><path fill="#fff2f6" d="m54.571 54.438c-0.89694 0-1.7383-0.34687-2.3693-0.97658-0.63156-0.6305-0.98002-1.4729-0.98081-2.3723a3.3412 3.3412 0 0 1 0.15663-1.0149l0.0018-0.0074c0.02302-0.08096 0.05133-0.15875 0.08414-0.23151 0.0058-0.01455 0.01243-0.03069 0.01931-0.04657 0.0291-0.06641 0.1442-0.29501 0.42016-0.46831 0.2495-0.1569 0.46831-0.17039 0.49371-0.17145 0.06032-0.0071 0.12277-0.01058 0.18494-0.01058 0.2831 0 0.53314 0.11192 0.70432 0.31591 0.13018 0.15531 0.20108 0.34581 0.20638 0.55483a1.1433 1.1433 0 0 1 0.51832-0.12726c0.2831 0 0.5334 0.11218 0.70432 0.31591 0.01032 0.01217 0.02011 0.02487 0.0299 0.03757 0.22728-0.22542 0.52731-0.35348 0.83079-0.35348 0.2831 0 0.53314 0.11218 0.70432 0.31591 0.17357 0.2069 0.24156 0.4789 0.19103 0.76544l-0.1778 1.0073c-0.02381 0.13573 0.0045 0.25982 0.07964 0.34952 0.0725 0.08652 0.18415 0.13414 0.31406 0.13414 0.39211 0 0.52996-0.28575 0.62045-0.59425 0.07752-0.27332 0.11324-0.55748 0.1061-0.84429a2.8244 2.8244 0 0 0-0.85169-1.9545 2.8265 2.8265 0 0 0-1.9698-0.8165h-0.01958c-0.56621 0-1.1136 0.16669-1.5827 0.48286a0.25665 0.25665 0 0 1-0.14393 0.04419 0.25347 0.25347 0 0 1-0.19288-0.08864l-0.0013-0.0016a0.254 0.254 0 0 1 0.05186-0.37518 3.3298 3.3298 0 0 1 1.936-0.57044 3.3348 3.3348 0 0 1 2.2886 0.97102 3.334 3.334 0 0 1 0.9943 2.2786 3.3507 3.3507 0 0 1-0.10848 0.95409h2.64e-4l-0.01138 0.0418-5e-3 0.01667a3.3258 3.3258 0 0 1-0.10583 0.31406c-0.0209 0.04948-0.13705 0.30242-0.42307 0.48207-0.24738 0.15558-0.44265 0.16351-0.46567 0.16404a1.2938 1.2938 0 0 1-0.11615 0.0053c-0.2831 0-0.5334-0.11218-0.70432-0.31591-0.17357-0.20717-0.24156-0.47889-0.19103-0.76544l0.1778-1.0075c0.02381-0.13547-0.0045-0.25982-0.07964-0.34925-0.0725-0.08652-0.18415-0.13414-0.31406-0.13414-0.3085 0-0.61516 0.26194-0.66966 0.57203l-0.19447 1.0578a0.1397 0.1397 0 0 1-0.13758 0.1143h-0.23363a0.13944 0.13944 0 0 1-0.13758-0.16484l0.20161-1.0964c0.02381-0.13494-0.0045-0.25929-0.07937-0.34899-0.07276-0.08625-0.18442-0.13388-0.31432-0.13388-0.30824 0-0.61489 0.26194-0.66966 0.57203l-0.1942 1.0578a0.1397 0.1397 0 0 1-0.13758 0.1143h-0.23336a0.13917 0.13917 0 0 1-0.13758-0.16484l0.20214-1.1004 0.13547-0.74057c0.02381-0.13467-0.0048-0.25823-0.0799-0.34793-0.0725-0.08652-0.18415-0.13414-0.31406-0.13414-0.32015 0-0.52626 0.12303-0.64929 0.38708a2.821 2.821 0 0 0-0.19976 1.1663c0.02858 0.72416 0.33496 1.4057 0.86254 1.9188 0.52784 0.51303 1.2179 0.8001 1.9428 0.80883h0.03413c0.59955 0 1.1734-0.18521 1.6595-0.53605a0.24924 0.24924 0 0 1 0.14684-0.04763 0.25453 0.25453 0 0 1 0.14949 0.46117 3.3261 3.3261 0 0 1-1.9571 0.63209"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="linearGradient3351" x1="19.136" x2="31.472" y1="25.27" y2="25.27" gradientTransform="matrix(.71117 0 0 .71117 -67.298 91.118)" gradientUnits="userSpaceOnUse"><stop style="stop-color:#f00" offset="0"/><stop style="stop-color:#940000" offset="1"/></linearGradient><linearGradient id="linearGradient3241" x1="571.4" x2="539.43" y1="443.67" y2="394.39" gradientTransform="matrix(.058689 0 0 .058689 -71.776 80.276)" gradientUnits="userSpaceOnUse"><stop style="stop-color:#f0f" offset="0"/><stop style="stop-color:#fff" offset="1"/></linearGradient><radialGradient id="radialGradient3289" cx="290.8" cy="613.59" r="164.4" gradientTransform="matrix(-.035187 .081785 -.062691 -.026972 -6.6617 102.21)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3257"/><linearGradient id="linearGradient3257"><stop style="stop-color:#cecece" offset="0"/><stop style="stop-color:#868686" offset="1"/></linearGradient><radialGradient id="radialGradient3281" cx="467.96" cy="366.79" r="131.9" gradientTransform="matrix(.058689 0 0 .079069 -72.48 72.186)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3257"/></defs><g transform="matrix(1.0306 0 0 1.0306 69.297 -94.605)"><path d="m-52.679 105.09c-0.80831 3.0009 4.8889 6.4141 6.9956 7.2327 1.621-0.0377 4.6354 0.26365 5.9285-2.2528 1.4346-2.8586 1.2071-5.4798-1.7785-7.707-0.57748-2.8595 1.8728-3.9888 3.3199-5.6913-1.8181-1.0111-3.6361 0.11135-5.4542 2.2528-1.3051-1.6874-0.90773-3.8855 0.94856-6.5213-6.1777 0.8148-5.0283 3.7846-6.2842 6.047-1.2252 1.6026-2.4504 3.1874-3.6757 6.6399z" style="fill-rule:evenodd;fill:url(#radialGradient3281);stroke-width:.93902;stroke:#000"/><path d="m-59.895 115.64c-2.4729 2.5088-3.731 5.128-1.6416 8.0515h6.879c2.2243-4.733-1.02-5.0368-3.9867-3.7522 1.4074-1.2454 2.4469-2.6379 2.8141-4.2994" style="fill-rule:evenodd;fill:#4d4d4d;stroke-width:.88033;stroke:#000"/><path d="m-50.201 116.5c0.01743 2.3365-0.12443 4.5136 0.07817 7.0353l7.5043-0.0782c1.0315-4.8876-0.25266-6.119-4.2212-4.143l-1.0162-4.2212" style="fill-opacity:.75;fill-rule:evenodd;stroke-width:.88033;stroke:#000"/><path d="m-52.679 105.09c-1.863 2.357-3.868 3.2941-6.047 2.49-2.6002-3.5966-3.8557-7.1932-1.4228-10.79-3.1017 1.8395-5.1886 4.2759-2.9642 9.2484l0.71142 1.8971c-1.2853 2.9036-2.7771 5.8219 0.23714 8.4184 6.255 5.1008 16.182-1.3908 15.066-2.2528l1.4148-1.7786" style="fill-rule:evenodd;fill:url(#radialGradient3289);stroke-linejoin:round;stroke-width:.93874;stroke:#000"/><ellipse cx="-39.023" cy="105.06" rx="2.5796" ry="2.5014" style="fill:url(#linearGradient3241);stroke-linecap:round;stroke-width:.58316;stroke:#000"/><ellipse cx="-43.792" cy="102.21" rx=".23451" ry=".74261" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:.93902;stroke:#000"/><ellipse cx="-41.915" cy="102.13" rx=".23451" ry=".74261" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:.93902;stroke:#000"/><path d="m-44.886 94.355c-0.98391 0.92447-2.0139 1.7567-2.1888 4.2994 0.55261-0.47339 1.1474-0.77818 2.1106 0.39085-1.1049-1.4018-0.13822-3.0996 0.07817-4.6902z" style="fill-opacity:.75;fill-rule:evenodd;fill:#4d4d4d"/><path d="m-40.425 97.656c-0.91487 0.33668-1.8239 0.60877-2.842 2.0786 0.49735-0.16193 0.95899-0.21484 1.1085 0.68516-0.14966-1.0685 1.0332-1.8673 1.7335-2.7638z" style="fill-opacity:.75;fill-rule:evenodd;fill:#4d4d4d"/><path d="m-53.824 105.61c2.0213 2.5796 4.1878 5.5501 7.3747 8.1297l1.4071-1.3289c-3.3863-2.8572-5.5263-5.8165-7.7913-8.2999z" style="fill-rule:evenodd;fill:url(#linearGradient3351);stroke-width:.25236;stroke:#000"/><path d="m-62.161 115.85c-2.4729 2.5088-3.9655 5.4407-1.8761 8.3642h6.879c2.8498-5.567-0.61011-5.5833-3.9867-3.7522 1.1481-1.11 2.8092-1.9059 2.9863-4.0807" style="fill-rule:evenodd;fill:#a2a2a2;stroke-linecap:round;stroke-width:.88033;stroke:#000"/><path d="m-52.96 117.24c0.01743 2.3365-0.17971 4.2926 0.02289 6.8142l7.5043-0.0782c1.3168-4.5107 0.60268-6.8634-4.2212-4.143l-0.33558-3.7253" style="fill-rule:evenodd;fill:#a0a0a0;stroke-linecap:round;stroke-width:.88033;stroke:#000"/><ellipse cx="-43.967" cy="101.66" rx=".01458" ry=".020412" style="fill-rule:evenodd;fill:#f00;stroke-linecap:round;stroke-linejoin:round;stroke-width:.74034;stroke:#fff"/><ellipse cx="-42.161" cy="101.66" rx=".01458" ry=".020412" style="fill-rule:evenodd;fill:#f00;stroke-linecap:round;stroke-linejoin:round;stroke-width:.74034;stroke:#fff"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.1" viewBox="0 0 33.867 33.867"><defs><linearGradient id="linearGradient3351" x1="19.136" x2="31.472" y1="25.27" y2="25.27" gradientTransform="matrix(.71117 0 0 .71117 -67.298 91.118)" gradientUnits="userSpaceOnUse"><stop style="stop-color:red" offset="0"/><stop style="stop-color:#940000" offset="1"/></linearGradient><linearGradient id="linearGradient3241" x1="571.4" x2="539.43" y1="443.67" y2="394.39" gradientTransform="matrix(.058689 0 0 .058689 -71.776 80.276)" gradientUnits="userSpaceOnUse"><stop style="stop-color:#f0f" offset="0"/><stop style="stop-color:#fff" offset="1"/></linearGradient><radialGradient id="radialGradient3289" cx="290.8" cy="613.59" r="164.4" gradientTransform="matrix(-.035187 .081785 -.062691 -.026972 -6.6617 102.21)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3257"/><linearGradient id="linearGradient3257"><stop style="stop-color:#cecece" offset="0"/><stop style="stop-color:#868686" offset="1"/></linearGradient><radialGradient id="radialGradient3281" cx="467.96" cy="366.79" r="131.9" gradientTransform="matrix(.058689 0 0 .079069 -72.48 72.186)" gradientUnits="userSpaceOnUse" xlink:href="#linearGradient3257"/></defs><g transform="matrix(1.0306 0 0 1.0306 69.297 -94.605)"><path d="m-52.679 105.09c-0.80831 3.0009 4.8889 6.4141 6.9956 7.2327 1.621-0.0377 4.6354 0.26365 5.9285-2.2528 1.4346-2.8586 1.2071-5.4798-1.7785-7.707-0.57748-2.8595 1.8728-3.9888 3.3199-5.6913-1.8181-1.0111-3.6361 0.11135-5.4542 2.2528-1.3051-1.6874-0.90773-3.8855 0.94856-6.5213-6.1777 0.8148-5.0283 3.7846-6.2842 6.047-1.2252 1.6026-2.4504 3.1874-3.6757 6.6399z" style="fill-rule:evenodd;fill:url(#radialGradient3281);stroke-width:.93902;stroke:#000"/><path d="m-59.895 115.64c-2.4729 2.5088-3.731 5.128-1.6416 8.0515h6.879c2.2243-4.733-1.02-5.0368-3.9867-3.7522 1.4074-1.2454 2.4469-2.6379 2.8141-4.2994" style="fill-rule:evenodd;fill:#4d4d4d;stroke-width:.88033;stroke:#000"/><path d="m-50.201 116.5c0.01743 2.3365-0.12443 4.5136 0.07817 7.0353l7.5043-0.0782c1.0315-4.8876-0.25266-6.119-4.2212-4.143l-1.0162-4.2212" style="fill-opacity:.75;fill-rule:evenodd;stroke-width:.88033;stroke:#000"/><path d="m-52.679 105.09c-1.863 2.357-3.868 3.2941-6.047 2.49-2.6002-3.5966-3.8557-7.1932-1.4228-10.79-3.1017 1.8395-5.1886 4.2759-2.9642 9.2484l0.71142 1.8971c-1.2853 2.9036-2.7771 5.8219 0.23714 8.4184 6.255 5.1008 16.182-1.3908 15.066-2.2528l1.4148-1.7786" style="fill-rule:evenodd;fill:url(#radialGradient3289);stroke-linejoin:round;stroke-width:.93874;stroke:#000"/><ellipse cx="-39.023" cy="105.06" rx="2.58" ry="2.501" style="fill:url(#linearGradient3241);stroke-linecap:round;stroke-width:.58316;stroke:#000"/><ellipse cx="-43.792" cy="102.21" rx=".235" ry=".743" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:.93902;stroke:#000"/><ellipse cx="-41.915" cy="102.13" rx=".235" ry=".743" style="fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:.93902;stroke:#000"/><path d="m-44.886 94.355c-0.98391 0.92447-2.0139 1.7567-2.1888 4.2994 0.55261-0.47339 1.1474-0.77818 2.1106 0.39085-1.1049-1.4018-0.13822-3.0996 0.07817-4.6902z" style="fill-opacity:.75;fill-rule:evenodd;fill:#4d4d4d"/><path d="m-40.425 97.656c-0.91487 0.33668-1.8239 0.60877-2.842 2.0786 0.49735-0.16193 0.95899-0.21484 1.1085 0.68516-0.14966-1.0685 1.0332-1.8673 1.7335-2.7638z" style="fill-opacity:.75;fill-rule:evenodd;fill:#4d4d4d"/><path d="m-53.824 105.61c2.0213 2.5796 4.1878 5.5501 7.3747 8.1297l1.4071-1.3289c-3.3863-2.8572-5.5263-5.8165-7.7913-8.2999z" style="fill-rule:evenodd;fill:url(#linearGradient3351);stroke-width:.25236;stroke:#000"/><path d="m-62.161 115.85c-2.4729 2.5088-3.9655 5.4407-1.8761 8.3642h6.879c2.8498-5.567-0.61011-5.5833-3.9867-3.7522 1.1481-1.11 2.8092-1.9059 2.9863-4.0807" style="fill-rule:evenodd;fill:#a2a2a2;stroke-linecap:round;stroke-width:.88033;stroke:#000"/><path d="m-52.96 117.24c0.01743 2.3365-0.17971 4.2926 0.02289 6.8142l7.5043-0.0782c1.3168-4.5107 0.60268-6.8634-4.2212-4.143l-0.33558-3.7253" style="fill-rule:evenodd;fill:#a0a0a0;stroke-linecap:round;stroke-width:.88033;stroke:#000"/><ellipse cx="-43.967" cy="101.66" rx=".015" ry=".02" style="fill-rule:evenodd;fill:red;stroke-linecap:round;stroke-linejoin:round;stroke-width:.74034;stroke:#fff"/><ellipse cx="-42.161" cy="101.66" rx=".015" ry=".02" style="fill-rule:evenodd;fill:red;stroke-linecap:round;stroke-linejoin:round;stroke-width:.74034;stroke:#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="384" height="128" version="1.1" viewBox="0 0 101.6 33.867" xmlns="http://www.w3.org/2000/svg"><g id="XMLID_1_" transform="matrix(.05357 0 0 .05357 -2.7694 6.1687)"><g id="XMLID_29_"><path id="XMLID_41_" class="st0" d="m107.8 179.5c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l37-28.9c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-37 28.9c-1.8 1.5-3.9 2.4-6.1 2.7z" fill="#3ae7e1"/></g><g id="XMLID_30_"><path id="XMLID_40_" class="st1" d="m71.9 207.7c-4.6 0.7-9.5-1-12.6-4.9-4.5-5.8-3.5-14.1 2.3-18.7l3.5-2.7c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-3.5 2.7c-1.8 1.4-3.9 2.3-6.1 2.6z" fill="#7b8794"/></g><g id="XMLID_31_"><path id="XMLID_39_" class="st0" d="m67.1 283.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l81.2-63.4c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-81.2 63.5c-1.9 1.4-4 2.3-6.1 2.6z" fill="#3ae7e1"/></g><g id="XMLID_34_"><path id="XMLID_38_" class="st1" d="m182.8 193.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l12.9-10.1c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-12.9 10.1c-1.9 1.4-4 2.3-6.1 2.7z" fill="#7b8794"/></g><g id="XMLID_32_"><path id="XMLID_37_" class="st0" d="m175.7 271.1c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l66.6-52c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-66.6 52c-1.8 1.5-3.9 2.4-6.1 2.7z" fill="#3ae7e1"/></g><path id="XMLID_36_" class="st1" d="m139.3 300c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.2 2.3-18.7l4.7-3.7c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.2-2.3 18.7l-4.7 3.7c-1.9 1.5-4 2.4-6.1 2.7z" fill="#7b8794"/><path id="XMLID_44_" class="st0" d="m475 40.4h-308.8c-11.5 0-22.2 7.1-25.6 18.1-1.6 5.1-1.5 10.3 0 15 1.5 4.8 4.5 9.2 8.7 12.5 0 0 118.3 91.9 147.3 111.9 10.4 6.7 20.5 4.4 26.5-0.2l150.1-116.8v201.9c0 19.7-16 35.7-35.7 35.7h-283.7c-7.3 0-13.2 5.9-13.2 13.2 0 7.4 6 13.4 13.4 13.4h283.4c34.4 0 62.3-27.9 62.3-62.3v-217.7c0.1-13.6-11-24.7-24.7-24.7zm-213.6 110.1 0.1-0.7 0.4 0.6zm48.3 24-137.5-107.5h275.5z" fill="#3ae7e1"/><g id="XMLID_81_"><g id="XMLID_4_" fill="#3ae7e1"><path id="XMLID_25_" class="st0" d="m791.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.4-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z"/><path id="XMLID_28_" class="st0" d="m881.8 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 17-6.9 36.3-10.1 58.6-10.1z"/><path id="XMLID_65_" class="st0" d="m971.6 192.6c0-37.2 24.7-59.5 68.4-59.5 44 0 68.7 22.3 68.7 59.5v44c0 37.2-24.7 59.5-68.7 59.5-43.7 0-68.4-22.3-68.4-59.5zm102.6 0c0-18.1-12.5-28.2-34.2-28.2s-33.9 10.1-33.9 28.2v44c0 17.8 12.2 28.2 33.9 28.2s34.2-10.4 34.2-28.2z"/><path id="XMLID_68_" class="st0" d="m1207.7 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 16.9-6.9 36.3-10.1 58.6-10.1z"/></g><g id="XMLID_24_" fill="#7b8794"><path id="XMLID_70_" class="st1" d="m1477.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.5-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z"/><path id="XMLID_73_" class="st1" d="m1490.7 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.6-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z"/><path id="XMLID_76_" class="st1" d="m1651.9 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.5-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z"/><path id="XMLID_79_" class="st1" d="m1939.1 137.6c6.8 0 9.2 2.1 9.2 8.9v150.2c0 40.7-20.5 64.8-65.4 64.8-29.4 0-50.3-9.5-61.8-28.5-4.2-6.5-3-11.6 3.9-14.9l11.3-6.2c7.1-3.6 10.4-2.7 14.9 3.6 6.2 10.1 16.6 15.2 31.2 15.2 21.1 0 31.5-10.7 31.5-32.1v-14c-12.2 2.7-24.1 4.2-35.4 4.2-41.6 0-62.1-21.4-62.1-59.8v-82.4c0-6.8 2.4-8.9 9.2-8.9h16.4c6.8 0 8.9 2.1 8.9 8.9v81.2c0 19.6 10.7 29.4 32.4 29.4 9.8 0 19.9-1.5 30.6-4.2v-106.5c0-6.8 2.4-8.9 9.2-8.9z"/></g></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="384" height="128" version="1.1" viewBox="0 0 101.6 33.867"><g id="XMLID_1_" transform="matrix(.05357 0 0 .05357 -2.7694 6.1687)"><g id="XMLID_29_"><path id="XMLID_41_" fill="#3ae7e1" d="m107.8 179.5c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l37-28.9c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-37 28.9c-1.8 1.5-3.9 2.4-6.1 2.7z" class="st0"/></g><g id="XMLID_30_"><path id="XMLID_40_" fill="#7b8794" d="m71.9 207.7c-4.6 0.7-9.5-1-12.6-4.9-4.5-5.8-3.5-14.1 2.3-18.7l3.5-2.7c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-3.5 2.7c-1.8 1.4-3.9 2.3-6.1 2.6z" class="st1"/></g><g id="XMLID_31_"><path id="XMLID_39_" fill="#3ae7e1" d="m67.1 283.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l81.2-63.4c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-81.2 63.5c-1.9 1.4-4 2.3-6.1 2.6z" class="st0"/></g><g id="XMLID_34_"><path id="XMLID_38_" fill="#7b8794" d="m182.8 193.6c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l12.9-10.1c5.8-4.5 14.1-3.5 18.7 2.3 4.5 5.8 3.5 14.1-2.3 18.7l-12.9 10.1c-1.9 1.4-4 2.3-6.1 2.7z" class="st1"/></g><g id="XMLID_32_"><path id="XMLID_37_" fill="#3ae7e1" d="m175.7 271.1c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.1 2.3-18.7l66.6-52c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.1-2.3 18.7l-66.6 52c-1.8 1.5-3.9 2.4-6.1 2.7z" class="st0"/></g><path id="XMLID_36_" fill="#7b8794" d="m139.3 300c-4.6 0.7-9.5-1-12.6-5-4.5-5.8-3.5-14.2 2.3-18.7l4.7-3.7c5.8-4.5 14.2-3.5 18.7 2.3s3.5 14.2-2.3 18.7l-4.7 3.7c-1.9 1.5-4 2.4-6.1 2.7z" class="st1"/><path id="XMLID_44_" fill="#3ae7e1" d="m475 40.4h-308.8c-11.5 0-22.2 7.1-25.6 18.1-1.6 5.1-1.5 10.3 0 15 1.5 4.8 4.5 9.2 8.7 12.5 0 0 118.3 91.9 147.3 111.9 10.4 6.7 20.5 4.4 26.5-0.2l150.1-116.8v201.9c0 19.7-16 35.7-35.7 35.7h-283.7c-7.3 0-13.2 5.9-13.2 13.2 0 7.4 6 13.4 13.4 13.4h283.4c34.4 0 62.3-27.9 62.3-62.3v-217.7c0.1-13.6-11-24.7-24.7-24.7zm-213.6 110.1 0.1-0.7 0.4 0.6zm48.3 24-137.5-107.5h275.5z" class="st0"/><g id="XMLID_81_"><g id="XMLID_4_" fill="#3ae7e1"><path id="XMLID_25_" d="m791.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.4-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z" class="st0"/><path id="XMLID_28_" d="m881.8 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 17-6.9 36.3-10.1 58.6-10.1z" class="st0"/><path id="XMLID_65_" d="m971.6 192.6c0-37.2 24.7-59.5 68.4-59.5 44 0 68.7 22.3 68.7 59.5v44c0 37.2-24.7 59.5-68.7 59.5-43.7 0-68.4-22.3-68.4-59.5zm102.6 0c0-18.1-12.5-28.2-34.2-28.2s-33.9 10.1-33.9 28.2v44c0 17.8 12.2 28.2 33.9 28.2s34.2-10.4 34.2-28.2z" class="st0"/><path id="XMLID_68_" d="m1207.7 133.2c41.6 0 61.8 21.4 61.8 59.8v89.5c0 6.8-2.4 9.2-9.2 9.2h-16.4c-6.8 0-8.9-2.4-8.9-9.2v-88.6c0-19.3-10.7-29.1-32.4-29.1-9.5 0-19 1.2-28.5 3.9-1.5 0.6-2.1 1.5-2.1 3v110.9c0 6.8-2.1 9.2-8.9 9.2h-16.4c-6.8 0-9.2-2.4-9.2-9.2v-122.4c0-9.5 2.1-13.1 11.6-16.9 16.9-6.9 36.3-10.1 58.6-10.1z" class="st0"/></g><g id="XMLID_24_" fill="#7b8794"><path id="XMLID_70_" d="m1477.7 281.8c2.4 6.5 0 9.8-6.8 9.8h-15.5c-12.2 0-16.1-1.8-18.4-8.9l-13.7-38.4h-82.1l-14 38.4c-2.4 7.1-6.2 8.9-18.4 8.9h-13.7c-6.8 0-9.2-3.3-6.8-9.8l74.3-193.3c2.7-6.8 5.4-8.3 12.5-8.3h15.8c7.1 0 10.1 1.8 12.5 8zm-87.5-130.8c-3.6-10.7-5.9-24.4-6.8-31.2l-0.3-5.1h-2.1c0 11.3-2.1 23.2-6.5 36l-22.9 63h61.3z" class="st1"/><path id="XMLID_73_" d="m1490.7 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.6-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z" class="st1"/><path id="XMLID_76_" d="m1651.9 195.3c0-40.4 20.8-62.1 62.1-62.1 9.2 0 20.8 1.2 35.4 3.9v-56.3c0-6.8 2.1-9.2 8.9-9.2h16.4c6.8 0 9.2 2.4 9.2 9.2v189.4c0 9.5-2.4 12.5-11.9 16.4-16.9 6.2-35.4 9.5-55.6 9.5-43.1 0-64.5-19.9-64.5-60.1zm97.5-26.7c-11.9-2.7-21.4-3.9-28.8-3.9-22.9 0-34.2 10.4-34.2 31.5v38.7c0 19.9 11 29.7 33.3 29.7 10.4 0 19.6-1.2 27.4-3.3 1.5-0.6 2.4-1.8 2.4-3.3v-89.4z" class="st1"/><path id="XMLID_79_" d="m1939.1 137.6c6.8 0 9.2 2.1 9.2 8.9v150.2c0 40.7-20.5 64.8-65.4 64.8-29.4 0-50.3-9.5-61.8-28.5-4.2-6.5-3-11.6 3.9-14.9l11.3-6.2c7.1-3.6 10.4-2.7 14.9 3.6 6.2 10.1 16.6 15.2 31.2 15.2 21.1 0 31.5-10.7 31.5-32.1v-14c-12.2 2.7-24.1 4.2-35.4 4.2-41.6 0-62.1-21.4-62.1-59.8v-82.4c0-6.8 2.4-8.9 9.2-8.9h16.4c6.8 0 8.9 2.1 8.9 8.9v81.2c0 19.6 10.7 29.4 32.4 29.4 9.8 0 19.9-1.5 30.6-4.2v-106.5c0-6.8 2.4-8.9 9.2-8.9z" class="st1"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

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