tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
May 2017
- 16 participants
- 1135 discussions

[translation/whisperback_completed] Update translations for whisperback_completed
by translation@torproject.org 03 May '17
by translation@torproject.org 03 May '17
03 May '17
commit 7302b6ec86ffddb8f95814e9e4e406dd96615f59
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed May 3 19:45:17 2017 +0000
Update translations for whisperback_completed
---
ru/ru.po | 61 +++++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 39 insertions(+), 22 deletions(-)
diff --git a/ru/ru.po b/ru/ru.po
index 6040f95..f094d60 100644
--- a/ru/ru.po
+++ b/ru/ru.po
@@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Andrey, 2017
# asdfqwer, 2015
# liquixis <liquixis(a)gmail.com>, 2013
# liquixis <liquixis(a)gmail.com>, 2012
@@ -13,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-16 19:54+0100\n"
-"PO-Revision-Date: 2016-12-30 07:30+0000\n"
-"Last-Translator: Misha Dyachuk <Wikia(a)scryptmail.com>\n"
+"POT-Creation-Date: 2017-03-20 12:09+0000\n"
+"PO-Revision-Date: 2017-05-03 19:16+0000\n"
+"Last-Translator: Andrey\n"
"Language-Team: Russian (http://www.transifex.com/otf/torproject/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -45,40 +46,56 @@ msgid ""
"/etc/whisperback/config.py, ~/.whisperback/config.py, ./config.py"
msgstr "Переменная %s из файлов конфигурации не обнаруженна. /etc/whisperback/config.py, ~/.whisperback/config.py, ./config.py"
-#: ../whisperBack/gui.py:148
+#: ../whisperBack/gui.py:110
+msgid "Name of the affected software"
+msgstr "Название уязвимого программного обеспечения"
+
+#: ../whisperBack/gui.py:112
+msgid "Exact steps to reproduce the error"
+msgstr "Точные шаги для воспроизведения ошибки"
+
+#: ../whisperBack/gui.py:114
+msgid "Actual result and description of the error"
+msgstr "Фактический результат и описание ошибки"
+
+#: ../whisperBack/gui.py:116
+msgid "Desired result"
+msgstr "Желаемый результат"
+
+#: ../whisperBack/gui.py:152
msgid "Unable to load a valid configuration."
msgstr "Невозможно загрузить верную конфигурацию."
-#: ../whisperBack/gui.py:214
+#: ../whisperBack/gui.py:218
msgid "Sending mail..."
msgstr "Отправка почты..."
-#: ../whisperBack/gui.py:215
+#: ../whisperBack/gui.py:219
msgid "Sending mail"
msgstr "Отправка почты"
#. pylint: disable=C0301
-#: ../whisperBack/gui.py:217
+#: ../whisperBack/gui.py:221
msgid "This could take a while..."
msgstr "Это может занять некоторое время..."
-#: ../whisperBack/gui.py:232
+#: ../whisperBack/gui.py:236
msgid "The contact email adress doesn't seem valid."
msgstr "Контактный адрес электронной почты не похож на правильный."
-#: ../whisperBack/gui.py:249
+#: ../whisperBack/gui.py:253
msgid "Unable to send the mail: SMTP error."
msgstr "Невозможно отправить письмо: ошибка SMTP."
-#: ../whisperBack/gui.py:251
+#: ../whisperBack/gui.py:255
msgid "Unable to connect to the server."
msgstr "Невозможно соединиться с сервером."
-#: ../whisperBack/gui.py:253
+#: ../whisperBack/gui.py:257
msgid "Unable to create or to send the mail."
msgstr "Невозможно создать или отправить сообщение."
-#: ../whisperBack/gui.py:256
+#: ../whisperBack/gui.py:260
msgid ""
"\n"
"\n"
@@ -87,20 +104,20 @@ msgid ""
"If it does not work, you will be offered to save the bug report."
msgstr "\n\nОтчет об ошибке не может быть отправлен. Похоже, это из-за проблем с сетью. Попробуйте подключиться к сети ещё раз и нажать кнопку \"Отправить\" снова.\n\nЕсли это не поможет, вам будет предложено сохранить отчет об ошибке."
-#: ../whisperBack/gui.py:269
+#: ../whisperBack/gui.py:273
msgid "Your message has been sent."
msgstr "Ваше сообщение отправлено."
-#: ../whisperBack/gui.py:276
+#: ../whisperBack/gui.py:280
msgid "An error occured during encryption."
msgstr "Произошла ошибка во время шифрования."
-#: ../whisperBack/gui.py:296
+#: ../whisperBack/gui.py:300
#, python-format
msgid "Unable to save %s."
msgstr "Не могу сохранить %s."
-#: ../whisperBack/gui.py:319
+#: ../whisperBack/gui.py:323
#, python-format
msgid ""
"The bug report could not be sent, likely due to network problems.\n"
@@ -110,27 +127,27 @@ msgid ""
"Do you want to save the bug report to a file?"
msgstr "Отчет об ошибке не может быть отправлен. Возможно, это происходит из-за проблем с сетью.\n\nВ качестве временного решения вы можете сохранить отчет об ошибке в файл на USB-флешку и попытаться отправить его нам в %s из вашего почтового ящика, используя другой компьютер. Заметьте, что ваш отчет об ошибке не будет анонимным, если вы не примете соответствующие меры самостоятельно (например, вы можете использовать Tor вместе с одноразовым почтовым ящиком).\n\nХотите сохранить отчет об ошибке в файл?"
-#: ../whisperBack/gui.py:379 ../data/whisperback.ui.h:21
+#: ../whisperBack/gui.py:383 ../data/whisperback.ui.h:21
msgid "WhisperBack"
msgstr "WhisperBack"
-#: ../whisperBack/gui.py:380 ../data/whisperback.ui.h:2
+#: ../whisperBack/gui.py:384 ../data/whisperback.ui.h:2
msgid "Send feedback in an encrypted mail."
msgstr "Отправить сообщение в зашифрованном письме."
-#: ../whisperBack/gui.py:383
+#: ../whisperBack/gui.py:387
msgid "Copyright © 2009-2012 Tails developpers (tails(a)boum.org)"
msgstr "Copyright © 2009-2012 Tails developers (tails(a)boum.org)"
-#: ../whisperBack/gui.py:384
+#: ../whisperBack/gui.py:388
msgid "Tails developers <tails(a)boum.org>"
msgstr "Разработчики Tails <tails(a)boum.org>"
-#: ../whisperBack/gui.py:385
+#: ../whisperBack/gui.py:389
msgid "translator-credits"
msgstr "переводчики"
-#: ../whisperBack/gui.py:412
+#: ../whisperBack/gui.py:417
msgid "This doesn't seem to be a valid URL or OpenPGP key."
msgstr "Это значение не является ни правильным URL, ни ключом OpenPGP."
1
0

[translation/whisperback] Update translations for whisperback
by translation@torproject.org 03 May '17
by translation@torproject.org 03 May '17
03 May '17
commit 941878130a2fc49aac075d8eb923ebceb934ad3e
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed May 3 19:45:13 2017 +0000
Update translations for whisperback
---
ru/ru.po | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ru/ru.po b/ru/ru.po
index cce2d50..f094d60 100644
--- a/ru/ru.po
+++ b/ru/ru.po
@@ -15,7 +15,7 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-20 12:09+0000\n"
-"PO-Revision-Date: 2017-05-03 19:14+0000\n"
+"PO-Revision-Date: 2017-05-03 19:16+0000\n"
"Last-Translator: Andrey\n"
"Language-Team: Russian (http://www.transifex.com/otf/torproject/language/ru/)\n"
"MIME-Version: 1.0\n"
@@ -52,15 +52,15 @@ msgstr "Название уязвимого программного обесп
#: ../whisperBack/gui.py:112
msgid "Exact steps to reproduce the error"
-msgstr ""
+msgstr "Точные шаги для воспроизведения ошибки"
#: ../whisperBack/gui.py:114
msgid "Actual result and description of the error"
-msgstr ""
+msgstr "Фактический результат и описание ошибки"
#: ../whisperBack/gui.py:116
msgid "Desired result"
-msgstr ""
+msgstr "Желаемый результат"
#: ../whisperBack/gui.py:152
msgid "Unable to load a valid configuration."
1
0

[tor-browser/tor-browser-52.1.0esr-7.0-2] Bug 21792: Suppress MediaError.message when privacy.resistFingerprinting = true
by gk@torproject.org 03 May '17
by gk@torproject.org 03 May '17
03 May '17
commit 58d186df19450f9aef0423c71e78f6eaa17679f8
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Thu Apr 27 15:00:14 2017 -0700
Bug 21792: Suppress MediaError.message when privacy.resistFingerprinting = true
---
dom/html/MediaError.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dom/html/MediaError.cpp b/dom/html/MediaError.cpp
index 83b9ffc..fae0981 100644
--- a/dom/html/MediaError.cpp
+++ b/dom/html/MediaError.cpp
@@ -7,6 +7,7 @@
#include "mozilla/dom/MediaError.h"
#include "nsDOMClassInfoID.h"
#include "mozilla/dom/MediaErrorBinding.h"
+#include "nsContentUtils.h"
namespace mozilla {
namespace dom {
@@ -31,7 +32,12 @@ MediaError::MediaError(HTMLMediaElement* aParent, uint16_t aCode,
void
MediaError::GetMessage(nsAString& aResult) const
{
- CopyUTF8toUTF16(mMessage, aResult);
+ if (nsContentUtils::IsCallerChrome() ||
+ !nsContentUtils::ShouldResistFingerprinting()) {
+ CopyUTF8toUTF16(mMessage, aResult);
+ } else {
+ aResult.Truncate();
+ }
}
JSObject*
1
0
commit 123a4e3f61b52db28c2735853ea8d4ce899a56e7
Author: Roger Dingledine <arma(a)torproject.org>
Date: Wed May 3 15:24:57 2017 -0400
Update the mirrors table
(For the first time since Sept 2016. I'm going to open a ticket
for the community team to know that this is a thing that is getting
dropped.)
---
include/mirrors-table.wmi | 656 ++++++++++++++++++++++------------------------
include/tor-mirrors.csv | 210 +++++++--------
2 files changed, 416 insertions(+), 450 deletions(-)
diff --git a/include/mirrors-table.wmi b/include/mirrors-table.wmi
index af221ed..8af5bd2 100644
--- a/include/mirrors-table.wmi
+++ b/include/mirrors-table.wmi
@@ -1,49 +1,32 @@
<tr>
- <td>UA</td>
+ <td>IS</td>
- <td>IP-Connect LLC</td>
+ <td>torproject.is</td>
<td>Up to date</td>
- <td><a href="ftp://torproject.ip-connect.vn.ua/mirror/torproject/">ftp</a></td>
- <td><a href="http://torproject.ip-connect.vn.ua/dist">http</a></td>
- <td><a href="http://torproject.ip-connect.vn.ua">http</a></td>
<td> - </td>
+ <td><a href="http://www.torproject.is/dist/">http</a></td>
+ <td><a href="http://www.torproject.is/">http</a></td>
<td> - </td>
- <td><a href="rsync://torproject.ip-connect.vn.ua/torproject/dist">rsync</a></td>
- <td><a href="rsync://torproject.ip-connect.vn.ua/torproject">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>DE</td>
-
- <td>TB-ITF</td>
-
- <td>Up to date</td>
-
<td> - </td>
- <td><a href="http://tormirror.tb-itf-tor.de/dist/">http</a></td>
- <td><a href="http://tormirror.tb-itf-tor.de">http</a></td>
- <td><a href="https://tormirror.tb-itf-tor.de/dist/">https</a></td>
- <td><a href="https://tormirror.tb-itf-tor.de">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>IS</td>
+ <td>AT</td>
- <td>Frenn vun der Enn A.S.B.L.</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://torproject.lu/dist/">http</a></td>
- <td><a href="http://torproject.lu/">http</a></td>
+ <td><a href="http://torproject.ph3x.at/dist/">http</a></td>
+ <td><a href="http://torproject.ph3x.at/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -59,110 +42,110 @@
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.hoi-polloi.org/dist/">http</a></td>
- <td><a href="http://tor.hoi-polloi.org">http</a></td>
- <td><a href="https://tor.hoi-polloi.org/dist/">https</a></td>
- <td><a href="https://tor.hoi-polloi.org/">https</a></td>
+ <td><a href="http://tor.ybti.net/dist/">http</a></td>
+ <td><a href="http://tor.ybti.net/">http</a></td>
+ <td><a href="https://tor.ybti.net/dist/">https</a></td>
+ <td><a href="https://tor.ybti.net/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>NO</td>
+ <td>DE</td>
- <td>MultiNet AS</td>
+ <td>Netzkonstrukt Berlin</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.multinet.no/dist/">http</a></td>
- <td><a href="http://tor.multinet.no/">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://mirror.ntzk.de/torproject.org/dist/">http</a></td>
+ <td><a href="http://mirror.ntzk.de/torproject.org/">http</a></td>
+ <td><a href="https://mirror.ntzk.de/torproject.org/dist/">https</a></td>
+ <td><a href="https://mirror.ntzk.de/torproject.org/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>ES</td>
+ <td>US</td>
- <td>Tor Supporter</td>
+ <td>EPRCI</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.zilog.es/dist/">http</a></td>
- <td><a href="http://tor.zilog.es/">http</a></td>
- <td><a href="https://tor.zilog.es/dist/">https</a></td>
- <td><a href="https://tor.zilog.es/">https</a></td>
+ <td><a href="http://tor.eprci.net/dist/">http</a></td>
+ <td><a href="http://tor.eprci.net/">http</a></td>
+ <td><a href="https://www.eprci.com/tor/dist/">https</a></td>
+ <td><a href="https://www.eprci.com/tor/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>FR</td>
- <td>Tor Supporter</td>
+ <td>wardsback.org</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://199.175.55.215/dist/">http</a></td>
- <td><a href="http://199.175.55.215/">http</a></td>
- <td><a href="https://199.175.55.215/dist/">https</a></td>
- <td><a href="https://199.175.55.215/">https</a></td>
+ <td><a href="http://alliumcepa.wardsback.org/dist/">http</a></td>
+ <td><a href="http://alliumcepa.wardsback.org/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>IS</td>
+ <td>DE</td>
- <td>torproject.is</td>
+ <td>PW</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://www.torproject.is/dist/">http</a></td>
- <td><a href="http://www.torproject.is/">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.pw.is/dist/">http</a></td>
+ <td><a href="http://tor.pw.is/">http</a></td>
+ <td><a href="https://www.it-sicherheitschannel.de/dist/">https</a></td>
+ <td><a href="https://www.it-sicherheitschannel.de/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>MX</td>
+ <td>TW</td>
- <td>Tor Supporter</td>
+ <td>Department of CSE. Yuan Ze University</td>
<td>Up to date</td>
- <td> - </td>
- <td><a href="http://fbnaia.homelinux.net/torproject/dist/">http</a></td>
- <td><a href="http://fbnaia.homelinux.net/torproject/">http</a></td>
- <td><a href="https://fbnaia.homelinux.net/torproject/dist/">https</a></td>
- <td><a href="https://fbnaia.homelinux.net/torproject/">https</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="ftp://ftp.yzu.edu.tw/torproject.org/">ftp</a></td>
+ <td><a href="http://ftp.yzu.edu.tw/torproject.org/dist/">http</a></td>
+ <td><a href="http://ftp.yzu.edu.tw/torproject.org/">http</a></td>
+ <td><a href="https://ftp.yzu.edu.tw/torproject.org/dist/">https</a></td>
+ <td><a href="https://ftp.yzu.edu.tw/torproject.org/">https</a></td>
+ <td><a href="rsync://ftp.yzu.edu.tw/pub/torproject.org/dist/">rsync</a></td>
+ <td><a href="rsync://ftp.yzu.edu.tw/pub/torproject.org/">rsync</a></td>
</tr>
<tr>
- <td>US</td>
+ <td>XX</td>
- <td>AskApache</td>
+ <td>TvdW</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.askapache.com/dist/">http</a></td>
- <td><a href="http://tor.askapache.com/">http</a></td>
+ <td><a href="http://tor-exit.network/dist">http</a></td>
+ <td><a href="http://tor-exit.network">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -171,85 +154,85 @@
<tr>
- <td>DE</td>
+ <td>US</td>
- <td>UnicornCloud.org</td>
+ <td>The Calyx Institute</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://mirror.unicorncloud.org/torproject.org/dist">http</a></td>
- <td><a href="http://mirror.unicorncloud.org/torproject.org/">http</a></td>
- <td><a href="https://mirror.unicorncloud.org/torproject.org/dist">https</a></td>
- <td><a href="https://mirror.unicorncloud.org/torproject.org/">https</a></td>
+ <td><a href="http://tor.calyxinstitute.org/dist/">http</a></td>
+ <td><a href="http://tor.calyxinstitute.org">http</a></td>
+ <td><a href="https://tor.calyxinstitute.org/dist/">https</a></td>
+ <td><a href="https://tor.calyxinstitute.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>AU</td>
+ <td>NL</td>
- <td>CoffsWiFi</td>
+ <td>Babylon Network</td>
<td>Up to date</td>
- <td> - </td>
- <td><a href="http://torproject.coffswifi.net/dist">http</a></td>
- <td><a href="http://torproject.coffswifi.net">http</a></td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
- <td> - </td>
+ <td><a href="ftp://nl.mirror.babylon.network/torproject/">ftp</a></td>
+ <td><a href="http://nl.mirror.babylon.network/torproject/dist/">http</a></td>
+ <td><a href="http://nl.mirror.babylon.network/torproject/">http</a></td>
+ <td><a href="https://nl.mirror.babylon.network/torproject/dist/">https</a></td>
+ <td><a href="https://nl.mirror.babylon.network/torproject/">https</a></td>
+ <td><a href="rsync://nl.mirror.babylon.network/torproject/dist/">rsync</a></td>
+ <td><a href="rsync://nl.mirror.babylon.network/torproject/">rsync</a></td>
</tr>
<tr>
- <td>DE</td>
+ <td>FR</td>
- <td>crazyhaze.de</td>
+ <td>Babylon Network</td>
<td>Up to date</td>
- <td> - </td>
- <td><a href="http://tor.crazyhaze.de/dist/">http</a></td>
- <td><a href="http://tor.crazyhaze.de/">http</a></td>
- <td><a href="https://tor.crazyhaze.de/dist/">https</a></td>
- <td><a href="https://tor.crazyhaze.de/">https</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="ftp://fr.mirror.babylon.network/torproject/">ftp</a></td>
+ <td><a href="http://fr.mirror.babylon.network/torproject/dist/">http</a></td>
+ <td><a href="http://fr.mirror.babylon.network/torproject/">http</a></td>
+ <td><a href="https://fr.mirror.babylon.network/torproject/dist/">https</a></td>
+ <td><a href="https://fr.mirror.babylon.network/torproject/">https</a></td>
+ <td><a href="rsync://fr.mirror.babylon.network/torproject/dist/">rsync</a></td>
+ <td><a href="rsync://fr.mirror.babylon.network/torproject/">rsync</a></td>
</tr>
<tr>
- <td>RU</td>
+ <td>UA</td>
- <td>Soviet Anonymous</td>
+ <td>IP-Connect LLC</td>
<td>Up to date</td>
- <td><a href="ftp://creep.im/mirrors/tor">ftp</a></td>
- <td><a href="http://creep.im/tor/dist/">http</a></td>
- <td><a href="http://creep.im/tor">http</a></td>
- <td><a href="https://creep.im/tor/dist/">https</a></td>
- <td><a href="https://creep.im/tor">https</a></td>
- <td><a href="rsync://creep.im/tor-dist">rsync</a></td>
- <td><a href="rsync://creep.im/tor">rsync</a></td>
+ <td><a href="ftp://torproject.ip-connect.vn.ua/mirror/torproject/">ftp</a></td>
+ <td><a href="http://torproject.ip-connect.vn.ua/dist">http</a></td>
+ <td><a href="http://torproject.ip-connect.vn.ua">http</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td><a href="rsync://torproject.ip-connect.vn.ua/torproject/dist">rsync</a></td>
+ <td><a href="rsync://torproject.ip-connect.vn.ua/torproject">rsync</a></td>
</tr>
<tr>
<td>DE</td>
- <td>torservers</td>
+ <td>TB-ITF</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://www.torservers.net/mirrors/torproject.org/dist/">http</a></td>
- <td><a href="http://www.torservers.net/mirrors/torproject.org/">http</a></td>
- <td><a href="https://www.torservers.net/mirrors/torproject.org/dist/">https</a></td>
- <td><a href="https://www.torservers.net/mirrors/torproject.org/">https</a></td>
+ <td><a href="http://tormirror.tb-itf-tor.de/dist/">http</a></td>
+ <td><a href="http://tormirror.tb-itf-tor.de">http</a></td>
+ <td><a href="https://tormirror.tb-itf-tor.de/dist/">https</a></td>
+ <td><a href="https://tormirror.tb-itf-tor.de">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -258,100 +241,100 @@
<td>IS</td>
- <td>myRL.net</td>
+ <td>Frenn vun der Enn A.S.B.L.</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.myrl.net/dist/">http</a></td>
- <td><a href="http://tor.myrl.net/">http</a></td>
- <td><a href="https://tor.myrl.net/dist/">https</a></td>
- <td><a href="https://tor.myrl.net/">https</a></td>
+ <td><a href="http://torproject.lu/dist/">http</a></td>
+ <td><a href="http://torproject.lu/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>FR</td>
+ <td>DE</td>
- <td>stalkr.net</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.stalkr.net/dist/">http</a></td>
- <td><a href="http://tor.stalkr.net/">http</a></td>
- <td><a href="https://tor.stalkr.net/dist/">https</a></td>
- <td><a href="https://tor.stalkr.net/">https</a></td>
+ <td><a href="http://tor.hoi-polloi.org/dist/">http</a></td>
+ <td><a href="http://tor.hoi-polloi.org">http</a></td>
+ <td><a href="https://tor.hoi-polloi.org/dist/">https</a></td>
+ <td><a href="https://tor.hoi-polloi.org/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>DE</td>
+ <td>NO</td>
- <td>cYbergueRrilLa AnonyMous NeXus</td>
+ <td>MultiNet AS</td>
<td>Up to date</td>
<td> - </td>
+ <td><a href="http://tor.multinet.no/dist/">http</a></td>
+ <td><a href="http://tor.multinet.no/">http</a></td>
<td> - </td>
<td> - </td>
- <td><a href="https://tor-mirror.cyberguerrilla.org/dist/">https</a></td>
- <td><a href="https://tor-mirror.cyberguerrilla.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>DE</td>
+ <td>ES</td>
- <td>Gtor</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://torproject.gtor.org/dist/">http</a></td>
- <td><a href="http://torproject.gtor.org/">http</a></td>
- <td><a href="https://torproject.gtor.org/dist/">https</a></td>
- <td><a href="https://torproject.gtor.org/">https</a></td>
- <td><a href="rsync://torproject.gtor.org/website-mirror/dist/">rsync</a></td>
- <td><a href="rsync://torproject.gtor.org/website-mirror/">rsync</a></td>
+ <td><a href="http://tor.zilog.es/dist/">http</a></td>
+ <td><a href="http://tor.zilog.es/">http</a></td>
+ <td><a href="https://tor.zilog.es/dist/">https</a></td>
+ <td><a href="https://tor.zilog.es/">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
<tr>
<td>US</td>
- <td>EFF</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td> - </td>
- <td> - </td>
- <td><a href="https://tor.eff.org/dist/">https</a></td>
- <td><a href="https://tor.eff.org">https</a></td>
+ <td><a href="http://199.175.55.215/dist/">http</a></td>
+ <td><a href="http://199.175.55.215/">http</a></td>
+ <td><a href="https://199.175.55.215/dist/">https</a></td>
+ <td><a href="https://199.175.55.215/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>GR</td>
+ <td>US</td>
- <td>Tor Supporter</td>
+ <td>AskApache</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.void.gr/dist/">http</a></td>
- <td><a href="http://tor.void.gr">http</a></td>
- <td><a href="https://tor.void.gr/dist/">https</a></td>
- <td><a href="https://tor.void.gr">https</a></td>
+ <td><a href="http://tor.askapache.com/dist/">http</a></td>
+ <td><a href="http://tor.askapache.com/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
@@ -360,30 +343,30 @@
<td>DE</td>
- <td>Tor Supporter</td>
+ <td>UnicornCloud.org</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://reichster.de/mirrors/torproject.org/dist/">http</a></td>
- <td><a href="http://reichster.de/mirrors/torproject.org/">http</a></td>
- <td><a href="https://reichster.de/mirrors/torproject.org/dist/">https</a></td>
- <td><a href="https://reichster.de/mirrors/torproject.org">https</a></td>
+ <td><a href="http://mirror.unicorncloud.org/torproject.org/dist">http</a></td>
+ <td><a href="http://mirror.unicorncloud.org/torproject.org/">http</a></td>
+ <td><a href="https://mirror.unicorncloud.org/torproject.org/dist">https</a></td>
+ <td><a href="https://mirror.unicorncloud.org/torproject.org/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>AU</td>
- <td>Evil Routers</td>
+ <td>CoffsWiFi</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor1.evilrouters.net/dist/">http</a></td>
- <td><a href="http://tor1.evilrouters.net/">http</a></td>
+ <td><a href="http://torproject.coffswifi.net/dist">http</a></td>
+ <td><a href="http://torproject.coffswifi.net">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -392,85 +375,85 @@
<tr>
- <td>FR</td>
+ <td>IS</td>
- <td>Tor Supporter</td>
+ <td>TheOnionRouter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.fr33tux.org/dist/">http</a></td>
- <td><a href="http://tor.fr33tux.org">http</a></td>
- <td><a href="https://tor.fr33tux.org/dist/">https</a></td>
- <td><a href="https://tor.fr33tux.org">https</a></td>
+ <td><a href="http://www.theonionrouter.com/dist/">http</a></td>
+ <td><a href="http://www.theonionrouter.com/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>NL</td>
+ <td>DE</td>
- <td>sky-ip.org</td>
+ <td>crazyhaze.de</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://beautiful-mind.sky-ip.org/dist/">http</a></td>
- <td><a href="http://beautiful-mind.sky-ip.org/">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.crazyhaze.de/dist/">http</a></td>
+ <td><a href="http://tor.crazyhaze.de/">http</a></td>
+ <td><a href="https://tor.crazyhaze.de/dist/">https</a></td>
+ <td><a href="https://tor.crazyhaze.de/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>DE</td>
+ <td>IS</td>
- <td>ITsn</td>
+ <td>myRL.net</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.pajonzeck.de/dist/">http</a></td>
- <td><a href="http://tor.pajonzeck.de/">http</a></td>
- <td><a href="https://tor.pajonzeck.de/dist/">https</a></td>
- <td><a href="https://tor.pajonzeck.de/">https</a></td>
- <td><a href="rsync://tor.pajonzeck.de/tor/dist">rsync</a></td>
- <td><a href="rsync://tor.pajonzeck.de/tor">rsync</a></td>
+ <td><a href="http://tor.myrl.net/dist/">http</a></td>
+ <td><a href="http://tor.myrl.net/">http</a></td>
+ <td><a href="https://tor.myrl.net/dist/">https</a></td>
+ <td><a href="https://tor.myrl.net/">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
<tr>
- <td>AT</td>
+ <td>FR</td>
- <td>Tor Supporter</td>
+ <td>stalkr.net</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.ludikovsky.name/dist">http</a></td>
- <td><a href="http://tor.ludikovsky.name/">http</a></td>
- <td><a href="https://tor.ludikovsky.name/dist">https</a></td>
- <td><a href="https://tor.ludikovsky.name/">https</a></td>
- <td><a href="rsync://tor.ludikovsky.name/tor-dist">rsync</a></td>
- <td><a href="rsync://tor.ludikovsky.name/tor">rsync</a></td>
+ <td><a href="http://tor.stalkr.net/dist/">http</a></td>
+ <td><a href="http://tor.stalkr.net/">http</a></td>
+ <td><a href="https://tor.stalkr.net/dist/">https</a></td>
+ <td><a href="https://tor.stalkr.net/">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>DE</td>
- <td>Setec Administrator</td>
+ <td>cYbergueRrilLa AnonyMous NeXus</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.nuclear-weapons.net/dist">http</a></td>
- <td><a href="http://tor.nuclear-weapons.net">http</a></td>
- <td><a href="https://tor.nuclear-weapons.net/dist">https</a></td>
- <td><a href="https://tor.nuclear-weapons.net">https</a></td>
+ <td> - </td>
+ <td> - </td>
+ <td><a href="https://tor-mirror.cyberguerrilla.org/dist/">https</a></td>
+ <td><a href="https://tor-mirror.cyberguerrilla.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -484,10 +467,10 @@
<td>Up to date</td>
<td> - </td>
- <td><a href="http://torproject.hactar.bz/dist/">http</a></td>
- <td><a href="http://torproject.hactar.bz">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://mirror.velcommuta.de/tor/dist/">http</a></td>
+ <td><a href="http://mirror.velcommuta.de/tor/">http</a></td>
+ <td><a href="https://mirror.velcommuta.de/tor/dist/">https</a></td>
+ <td><a href="https://mirror.velcommuta.de/tor/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -501,112 +484,112 @@
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.ybti.net/dist/">http</a></td>
- <td><a href="http://tor.ybti.net/">http</a></td>
- <td><a href="https://tor.ybti.net/dist/">https</a></td>
- <td><a href="https://tor.ybti.net/">https</a></td>
+ <td><a href="http://reichster.de/mirrors/torproject.org/dist/">http</a></td>
+ <td><a href="http://reichster.de/mirrors/torproject.org/">http</a></td>
+ <td><a href="https://reichster.de/mirrors/torproject.org/dist/">https</a></td>
+ <td><a href="https://reichster.de/mirrors/torproject.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>DE</td>
+ <td>US</td>
- <td>0x3d.lu</td>
+ <td>Evil Routers</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.0x3d.lu/dist/">http</a></td>
- <td><a href="http://tor.0x3d.lu/">http</a></td>
- <td><a href="https://tor.0x3d.lu/dist/">https</a></td>
- <td><a href="https://tor.0x3d.lu/">https</a></td>
+ <td><a href="http://tor1.evilrouters.net/dist/">http</a></td>
+ <td><a href="http://tor1.evilrouters.net/">http</a></td>
+ <td> - </td>
+ <td> - </td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>FR</td>
- <td>intfxdx.com</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://108.248.87.242/dist/">http</a></td>
- <td><a href="http://108.248.87.242/">http</a></td>
- <td><a href="https://108.248.87.242/dist/">https</a></td>
- <td><a href="https://108.248.87.242/">https</a></td>
+ <td><a href="http://tor.fr33tux.org/dist/">http</a></td>
+ <td><a href="http://tor.fr33tux.org">http</a></td>
+ <td><a href="https://tor.fr33tux.org/dist/">https</a></td>
+ <td><a href="https://tor.fr33tux.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>DE</td>
- <td>Lucid Networks</td>
+ <td>moparisthebest.com</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.mirrors.lucidnetworks.net/dist">http</a></td>
- <td><a href="http://tor.mirrors.lucidnetworks.net">http</a></td>
+ <td><a href="http://www.moparisthebest.com/tor/dist/">http</a></td>
+ <td><a href="http://www.moparisthebest.com/tor/">http</a></td>
+ <td><a href="https://www.moparisthebest.com/tor/dist/">https</a></td>
+ <td><a href="https://www.moparisthebest.com/tor/">https</a></td>
<td> - </td>
<td> - </td>
- <td><a href="rsync://tor.mirrors.lucidnetworks.net::tor-dist">rsync</a></td>
- <td><a href="rsync://tor.mirrors.lucidnetworks.net::tor">rsync</a></td>
</tr>
<tr>
<td>DE</td>
- <td>Netzkonstrukt Berlin</td>
+ <td>ITsn</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://mirror.ntzk.de/torproject.org/dist/">http</a></td>
- <td><a href="http://mirror.ntzk.de/torproject.org/">http</a></td>
- <td><a href="https://mirror.ntzk.de/torproject.org/dist/">https</a></td>
- <td><a href="https://mirror.ntzk.de/torproject.org/">https</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.pajonzeck.de/dist/">http</a></td>
+ <td><a href="http://tor.pajonzeck.de/">http</a></td>
+ <td><a href="https://tor.pajonzeck.de/dist/">https</a></td>
+ <td><a href="https://tor.pajonzeck.de/">https</a></td>
+ <td><a href="rsync://tor.pajonzeck.de/tor/dist">rsync</a></td>
+ <td><a href="rsync://tor.pajonzeck.de/tor">rsync</a></td>
</tr>
<tr>
- <td>US</td>
+ <td>AT</td>
- <td>EPRCI</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.eprci.net/dist/">http</a></td>
- <td><a href="http://tor.eprci.net/">http</a></td>
- <td><a href="https://www.eprci.com/tor/dist/">https</a></td>
- <td><a href="https://www.eprci.com/tor/">https</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.ludikovsky.name/dist">http</a></td>
+ <td><a href="http://tor.ludikovsky.name/">http</a></td>
+ <td><a href="https://tor.ludikovsky.name/dist">https</a></td>
+ <td><a href="https://tor.ludikovsky.name/">https</a></td>
+ <td><a href="rsync://tor.ludikovsky.name/tor-dist">rsync</a></td>
+ <td><a href="rsync://tor.ludikovsky.name/tor">rsync</a></td>
</tr>
<tr>
- <td>FR</td>
+ <td>US</td>
- <td>wardsback.org</td>
+ <td>Setec Administrator</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://alliumcepa.wardsback.org/dist/">http</a></td>
- <td><a href="http://alliumcepa.wardsback.org/">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.nuclear-weapons.net/dist">http</a></td>
+ <td><a href="http://tor.nuclear-weapons.net">http</a></td>
+ <td><a href="https://tor.nuclear-weapons.net/dist">https</a></td>
+ <td><a href="https://tor.nuclear-weapons.net">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -615,83 +598,83 @@
<td>DE</td>
- <td>PW</td>
+ <td>0x3d.lu</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.pw.is/dist/">http</a></td>
- <td><a href="http://tor.pw.is/">http</a></td>
- <td><a href="https://www.it-sicherheitschannel.de/dist/">https</a></td>
- <td><a href="https://www.it-sicherheitschannel.de/">https</a></td>
+ <td><a href="http://tor.0x3d.lu/dist/">http</a></td>
+ <td><a href="http://tor.0x3d.lu/">http</a></td>
+ <td><a href="https://tor.0x3d.lu/dist/">https</a></td>
+ <td><a href="https://tor.0x3d.lu/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>TW</td>
+ <td>US</td>
- <td>Department of CSE. Yuan Ze University</td>
+ <td>intfxdx.com</td>
<td>Up to date</td>
- <td><a href="ftp://ftp.yzu.edu.tw/torproject.org/">ftp</a></td>
- <td><a href="http://ftp.yzu.edu.tw/torproject.org/dist/">http</a></td>
- <td><a href="http://ftp.yzu.edu.tw/torproject.org/">http</a></td>
- <td><a href="https://ftp.yzu.edu.tw/torproject.org/dist/">https</a></td>
- <td><a href="https://ftp.yzu.edu.tw/torproject.org/">https</a></td>
- <td><a href="rsync://ftp.yzu.edu.tw/pub/torproject.org/dist/">rsync</a></td>
- <td><a href="rsync://ftp.yzu.edu.tw/pub/torproject.org/">rsync</a></td>
+ <td> - </td>
+ <td><a href="http://108.248.87.242/dist/">http</a></td>
+ <td><a href="http://108.248.87.242/">http</a></td>
+ <td><a href="https://108.248.87.242/dist/">https</a></td>
+ <td><a href="https://108.248.87.242/">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
<tr>
- <td>XX</td>
+ <td>US</td>
- <td>TvdW</td>
+ <td>Lucid Networks</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor-exit.network/dist">http</a></td>
- <td><a href="http://tor-exit.network">http</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.mirrors.lucidnetworks.net/dist">http</a></td>
+ <td><a href="http://tor.mirrors.lucidnetworks.net">http</a></td>
<td> - </td>
<td> - </td>
+ <td><a href="rsync://tor.mirrors.lucidnetworks.net::tor-dist">rsync</a></td>
+ <td><a href="rsync://tor.mirrors.lucidnetworks.net::tor">rsync</a></td>
</tr>
<tr>
- <td>DE</td>
+ <td>CH</td>
- <td>sela Internet</td>
+ <td>urown.net</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://sela.io/mirrors/torproject.org/dist/">http</a></td>
- <td><a href="http://sela.io/mirrors/torproject.org/">http</a></td>
- <td><a href="https://sela.io/mirrors/torproject.org/dist/">https</a></td>
- <td><a href="https://sela.io/mirrors/torproject.org/">https</a></td>
+ <td><a href="http://torproject.urown.net/dist/">http</a></td>
+ <td><a href="http://torproject.urown.net/">http</a></td>
+ <td><a href="https://torproject.urown.net/dist/">https</a></td>
+ <td><a href="https://torproject.urown.net/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>NL</td>
+ <td>DE</td>
- <td>TheCthulhu</td>
+ <td>sela Internet</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.thecthulhu.com/dist/">http</a></td>
- <td><a href="http://tor.thecthulhu.com/">http</a></td>
- <td><a href="https://tor.thecthulhu.com/dist/">https</a></td>
- <td><a href="https://tor.thecthulhu.com/">https</a></td>
+ <td><a href="http://sela.io/mirrors/torproject.org/dist/">http</a></td>
+ <td><a href="http://sela.io/mirrors/torproject.org/">http</a></td>
+ <td><a href="https://sela.io/mirrors/torproject.org/dist/">https</a></td>
+ <td><a href="https://sela.io/mirrors/torproject.org/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
@@ -715,15 +698,15 @@
<tr>
- <td>CA</td>
+ <td>DE</td>
- <td>Tor Supporter</td>
+ <td>tormirror</td>
<td>Up to date</td>
- <td> - </td>
- <td><a href="http://goodeid.com/mirrors/tor-project.org/dist/">http</a></td>
- <td><a href="http://goodeid.com/mirrors/tor-project.org/">http</a></td>
+ <td><a href="http://tormirror.snydernet.net/dist/">ftp</a></td>
+ <td><a href="https://tormirror.snydernet.net/dist/">http</a></td>
+ <td><a href="https://tormirror.snydernet.net/">http</a></td>
<td> - </td>
<td> - </td>
<td> - </td>
@@ -732,153 +715,136 @@
<tr>
- <td>AT</td>
+ <td>FR</td>
- <td>datensicherhe.it</td>
+ <td>Michael Armbruster</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://datensicherhe.it/torproject/dist/">http</a></td>
- <td><a href="http://datensicherhe.it/torproject">http</a></td>
- <td><a href="https://datensicherhe.it/torproject/dist/">https</a></td>
- <td><a href="https://datensicherhe.it/torproject">https</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="http://tor.armbrust.me/dist/">http</a></td>
+ <td><a href="http://tor.armbrust.me/">http</a></td>
+ <td><a href="https://tor.armbrust.me/dist">https</a></td>
+ <td><a href="https://tor.armbrust.me/">https</a></td>
+ <td><a href="rsync://tor.armbrust.me/tor-dist">rsync</a></td>
+ <td><a href="rsync://tor.armbrust.me/tor">rsync</a></td>
</tr>
<tr>
- <td>NL</td>
+ <td>DE</td>
- <td>Disciples of Disorder</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://torproject.mirror.disciplesofdisorder.com/dist/">http</a></td>
- <td><a href="http://torproject.mirror.disciplesofdisorder.com">http</a></td>
- <td><a href="https://torproject.mirror.disciplesofdisorder.com/dist/">https</a></td>
- <td><a href="https://torproject.mirror.disciplesofdisorder.com">https</a></td>
+ <td><a href="http://torproject.mirror.metalgamer.eu/dist/">http</a></td>
+ <td><a href="http://torproject.mirror.metalgamer.eu/">http</a></td>
+ <td><a href="https://torproject.mirror.metalgamer.eu/dist/">https</a></td>
+ <td><a href="https://torproject.mirror.metalgamer.eu/">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
+ <td>CA</td>
- <td>The Calyx Institute</td>
+ <td>Babylon Network</td>
<td>Up to date</td>
- <td> - </td>
- <td><a href="http://tor.calyxinstitute.org/dist/">http</a></td>
- <td><a href="http://tor.calyxinstitute.org">http</a></td>
- <td><a href="https://tor.calyxinstitute.org/dist/">https</a></td>
- <td><a href="https://tor.calyxinstitute.org">https</a></td>
- <td> - </td>
- <td> - </td>
+ <td><a href="ftp://ca.mirror.babylon.network/torproject/">ftp</a></td>
+ <td><a href="http://ca.mirror.babylon.network/torproject/dist/">http</a></td>
+ <td><a href="http://ca.mirror.babylon.network/torproject/">http</a></td>
+ <td><a href="https://ca.mirror.babylon.network/torproject/dist/">https</a></td>
+ <td><a href="https://ca.mirror.babylon.network/torproject/">https</a></td>
+ <td><a href="rsync://ca.mirror.babylon.network/torproject/dist/">rsync</a></td>
+ <td><a href="rsync://ca.mirror.babylon.network/torproject/">rsync</a></td>
</tr>
<tr>
- <td>FR</td>
+ <td>RU</td>
- <td>Michael Armbruster</td>
+ <td>Soviet Anonymous</td>
<td>Up to date</td>
- <td> - </td>
- <td><a href="http://tor.armbrust.me/dist/">http</a></td>
- <td><a href="http://tor.armbrust.me/">http</a></td>
- <td><a href="https://tor.armbrust.me/dist">https</a></td>
- <td><a href="https://tor.armbrust.me/">https</a></td>
- <td><a href="rsync://tor.armbrust.me/tor-dist">rsync</a></td>
- <td><a href="rsync://tor.armbrust.me/tor">rsync</a></td>
+ <td><a href="ftp://creep.im/mirrors/tor">ftp</a></td>
+ <td><a href="http://creep.im/tor/dist/">http</a></td>
+ <td><a href="http://creep.im/tor">http</a></td>
+ <td><a href="https://creep.im/tor/dist/">https</a></td>
+ <td><a href="https://creep.im/tor">https</a></td>
+ <td><a href="rsync://creep.im/tor-dist">rsync</a></td>
+ <td><a href="rsync://creep.im/tor">rsync</a></td>
</tr>
<tr>
- <td>DE</td>
+ <td>US</td>
- <td>HdO Tor Supporter</td>
+ <td>EFF</td>
<td>Up to date</td>
<td> - </td>
- <td><a href="http://tor.hdoev.de/dist/">http</a></td>
- <td><a href="http://tor.hdoev.de/">http</a></td>
<td> - </td>
<td> - </td>
+ <td><a href="https://tor.eff.org/dist/">https</a></td>
+ <td><a href="https://tor.eff.org">https</a></td>
<td> - </td>
<td> - </td>
</tr>
<tr>
- <td>US</td>
-
- <td>Quintex Alliance Consulting</td>
-
- <td>Up to date</td>
-
- <td><a href="ftp://mirror.quintex.com/torproject.org">ftp</a></td>
- <td><a href="http://torproject.quintex.com/dist">http</a></td>
- <td><a href="http://torproject.quintex.com/">http</a></td>
- <td><a href="https://torproject.quintex.com/dist">https</a></td>
- <td><a href="https://torproject.quintex.com">https</a></td>
- <td><a href="rsync://mirror.quintex.com/torprojectdist">rsync</a></td>
- <td><a href="rsync://mirror.quintex.com/torprojectwebsite">rsync</a></td>
-</tr>
-
-<tr>
-
- <td>CA</td>
+ <td>GR</td>
- <td>Babylon Network</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
- <td><a href="ftp://ca.mirror.babylon.network/torproject/">ftp</a></td>
- <td><a href="http://ca.mirror.babylon.network/torproject/dist/">http</a></td>
- <td><a href="http://ca.mirror.babylon.network/torproject/">http</a></td>
- <td><a href="https://ca.mirror.babylon.network/torproject/dist/">https</a></td>
- <td><a href="https://ca.mirror.babylon.network/torproject/">https</a></td>
- <td><a href="rsync://ca.mirror.babylon.network/torproject/dist/">rsync</a></td>
- <td><a href="rsync://ca.mirror.babylon.network/torproject/">rsync</a></td>
+ <td> - </td>
+ <td><a href="http://tor.void.gr/dist/">http</a></td>
+ <td><a href="http://tor.void.gr">http</a></td>
+ <td><a href="https://tor.void.gr/dist/">https</a></td>
+ <td><a href="https://tor.void.gr">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
<tr>
- <td>NL</td>
+ <td>MX</td>
- <td>Babylon Network</td>
+ <td>Tor Supporter</td>
<td>Up to date</td>
- <td><a href="ftp://nl.mirror.babylon.network/torproject/">ftp</a></td>
- <td><a href="http://nl.mirror.babylon.network/torproject/dist/">http</a></td>
- <td><a href="http://nl.mirror.babylon.network/torproject/">http</a></td>
- <td><a href="https://nl.mirror.babylon.network/torproject/dist/">https</a></td>
- <td><a href="https://nl.mirror.babylon.network/torproject/">https</a></td>
- <td><a href="rsync://nl.mirror.babylon.network/torproject/dist/">rsync</a></td>
- <td><a href="rsync://nl.mirror.babylon.network/torproject/">rsync</a></td>
+ <td> - </td>
+ <td><a href="http://fbnaia.homelinux.net/torproject/dist/">http</a></td>
+ <td><a href="http://fbnaia.homelinux.net/torproject/">http</a></td>
+ <td><a href="https://fbnaia.homelinux.net/torproject/dist/">https</a></td>
+ <td><a href="https://fbnaia.homelinux.net/torproject/">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
<tr>
- <td>FR</td>
+ <td>DE</td>
- <td>Babylon Network</td>
+ <td>torservers</td>
<td>Up to date</td>
- <td><a href="ftp://fr.mirror.babylon.network/torproject/">ftp</a></td>
- <td><a href="http://fr.mirror.babylon.network/torproject/dist/">http</a></td>
- <td><a href="http://fr.mirror.babylon.network/torproject/">http</a></td>
- <td><a href="https://fr.mirror.babylon.network/torproject/dist/">https</a></td>
- <td><a href="https://fr.mirror.babylon.network/torproject/">https</a></td>
- <td><a href="rsync://fr.mirror.babylon.network/torproject/dist/">rsync</a></td>
- <td><a href="rsync://fr.mirror.babylon.network/torproject/">rsync</a></td>
+ <td> - </td>
+ <td><a href="http://www.torservers.net/mirrors/torproject.org/dist/">http</a></td>
+ <td><a href="http://www.torservers.net/mirrors/torproject.org/">http</a></td>
+ <td><a href="https://www.torservers.net/mirrors/torproject.org/dist/">https</a></td>
+ <td><a href="https://www.torservers.net/mirrors/torproject.org/">https</a></td>
+ <td> - </td>
+ <td> - </td>
</tr>
diff --git a/include/tor-mirrors.csv b/include/tor-mirrors.csv
index cd7e291..15c9630 100644
--- a/include/tor-mirrors.csv
+++ b/include/tor-mirrors.csv
@@ -12,120 +12,120 @@ Tor Fan, Tor Supporter, NL, The Netherlands, NL, TRUE, FALSE, No, , , , , , http
Tor Fan, LazyTiger, FR, France, FR, TRUE, FALSE, No, http://tor.taiga-san.net/, , , , http://tor.taiga-san.net/dist/, , , ,
Tor Fan, Tor Supporter, EE, Estonia, EE, TRUE, FALSE, No, http://tor.li/, https://tor.li/, , , http://tor.li/dist/, https://tor.li/dist/, , ,
Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, FALSE, NO, http://tor.externenprüfung-nichtschüler.de/, , , , http://tor.externenprüfung-nichtschüler.de/dist/, , , ,
-mirror-service(a)netcologne.de, NetCologne GmbH, DE, NRW, , TRUE, TRUE, No, http://mirror.netcologne.de/torproject.org, , rsync://mirror.netcologne.de/torproject.org, ftp://mirror.netcologne.de/torproject.org/, http://mirror.netcologne.de/torproject.org/dist, , rsync://mirror.netcologne.de/torproject.org/dist, , Wed Sep 7 18:46:02 2016
+mirror-service(a)netcologne.de, NetCologne GmbH, DE, NRW, , TRUE, TRUE, No, http://mirror.netcologne.de/torproject.org, , rsync://mirror.netcologne.de/torproject.org, ftp://mirror.netcologne.de/torproject.org/, http://mirror.netcologne.de/torproject.org/dist, , rsync://mirror.netcologne.de/torproject.org/dist, , Wed May 3 15:12:25 2017
admin AT netgull DOT com, NetGull, US, United States, North America, TRUE, TRUE, No, , , , , http://www.netgull.com/torproject/, , , ,
-mirrors[at]ip-connect[dot]vn[dot]ua, IP-Connect LLC, UA, VN, , TRUE, TRUE, Yes, http://torproject.ip-connect.vn.ua, , rsync://torproject.ip-connect.vn.ua/torproject, ftp://torproject.ip-connect.vn.ua/mirror/torproject/, http://torproject.ip-connect.vn.ua/dist, , rsync://torproject.ip-connect.vn.ua/torproject/dist, , Wed Sep 7 18:46:02 2016
-torsupport AT tb-itf DOT de, TB-ITF, DE, Germany, Europe, TRUE, TRUE, No, http://tormirror.tb-itf-tor.de, https://tormirror.tb-itf-tor.de, , , http://tormirror.tb-itf-tor.de/dist/, https://tormirror.tb-itf-tor.de/dist/, , , Wed Sep 7 18:46:02 2016
+mirrors[at]ip-connect[dot]vn[dot]ua, IP-Connect LLC, UA, VN, , TRUE, TRUE, Yes, http://torproject.ip-connect.vn.ua, , rsync://torproject.ip-connect.vn.ua/torproject, ftp://torproject.ip-connect.vn.ua/mirror/torproject/, http://torproject.ip-connect.vn.ua/dist, , rsync://torproject.ip-connect.vn.ua/torproject/dist, , Wed May 3 15:12:25 2017
+torsupport AT tb-itf DOT de, TB-ITF, DE, Germany, Europe, TRUE, TRUE, No, http://tormirror.tb-itf-tor.de, https://tormirror.tb-itf-tor.de, , , http://tormirror.tb-itf-tor.de/dist/, https://tormirror.tb-itf-tor.de/dist/, , , Wed May 3 15:12:25 2017
admin at koreswatanabe dottnet, Tor Supporter, RO, Romania, RO, TRUE, TRUE, No, http://tor-relay.koreswatanabe.net, , , , http://tor-relay.koreswatanabe.net/dist/, , , ,
calebcenter(a)live.com, calebxu.tk, US, United States, US, TRUE, FALSE, NO, http://tor.calebxu.tk, , rsync://calebxu.tk/tor, ftp://ftp.calebxu.tk, http://tor.calebxu.tk/dist, , , ,
-maki(a)maki-chan.de, Maki Hoshisawa, DE, Germany, DE, TRUE, FALSE, NO, http://tor.mirrors.maki-chan.de/, , , , http://tor.mirrors.maki-chan.de/dist/, , , , Sat Aug 23 01:09:07 2014
-info AT zentrum-der-gesundheit DOT de, Zentrum der Gesundheit, DK, Denmark, Europe, TRUE, FALSE, No, http://tor.idnr.ws/, , , , http://tor.idnr.ws/dist/, , , , Tue Sep 2 04:16:00 2014
-info /AT enn /DOT lu, Frenn vun der Enn A.S.B.L., IS, Iceland, Europe, TRUE, FALSE, No, http://torproject.lu/, , , , http://torproject.lu/dist/, , , http://btn6gqzqevlhoryd.onion, Wed Sep 7 18:46:02 2016
-Piratenpartei Bayern, Piratenpartei Bayern, DE, Germany, DE, TRUE, FALSE, NO, http://tormirror.piratenpartei-bayern.de, https://tormirror.piratenpartei-bayern.de, , , http://tormirror.piratenpartei-bayern.de/dist/, https://tormirror.piratenpartei-bayern.de/dist/, , , Wed Sep 7 18:46:02 2016
-Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://tor.hoi-polloi.org, https://tor.hoi-polloi.org/, , , http://tor.hoi-polloi.org/dist/, https://tor.hoi-polloi.org/dist/, , , Wed Sep 7 18:46:02 2016
-tor(a)fodt.it // FoDT.it Webteam, FoDT.it, AT, Austria, Europe, TRUE, FALSE, No, http://tor.fodt.it, https://tor.fodt.it, , ftp://ftp.fodt.it/pub/mirrors/torproject.org/, http://tor.fodt.it/dist/, https://tor.fodt.it/dist/, , , Mon Aug 25 03:19:07 2014
-http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, TRUE, TRUE, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Wed Sep 7 18:46:02 2016
-haskell at gmx.es, Tor Supporter, ES, Spain, Europe, TRUE, TRUE, No, http://tor.zilog.es/, https://tor.zilog.es/, , , http://tor.zilog.es/dist/, https://tor.zilog.es/dist/, , , Wed Sep 7 18:46:02 2016
-Tor Fan, Tor Supporter, US, United States, US, TRUE, FALSE, No, http://199.175.55.215/, https://199.175.55.215/, , , http://199.175.55.215/dist/, https://199.175.55.215/dist/, , , Wed Sep 7 18:46:02 2016
-Tor Fan, Tor Supporter, US, United States, US, FALSE, TRUE, No, http://2607:8b00:2::6258:5c9/, https://2607:8b00:2::6258:5c9/, , , http://2607:8b00:2::6258:5c9/dist/, https://2607:8b00:2::6258:5c9/dist/, , , Tue Jan 20 16:17:52 2015
-margus.random at mail.ee, CyberSIDE, EE, Estonia, EE, TRUE, FALSE, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Wed Sep 7 18:46:02 2016
-Tor Fan, torproject.is, IS, Iceland, IS, TRUE, FALSE, No, http://www.torproject.is/, , , , http://www.torproject.is/dist/, , , , Wed Sep 7 18:46:02 2016
-Tor Fan, spline, DE, Germany, DE, TRUE, FALSE, No, http://tor.spline.de/, https://tor.spline.inf.fu-berlin.de/, rsync://ftp.spline.de/tor, ftp://ftp.spline.de/pub/tor, http://tor.spline.de/dist/, https://tor.spline.inf.fu-berlin.de/dist/, rsync://ftp.spline.de/tor/dist, , Wed Sep 7 18:46:02 2016
-Tor Fan, me0w.cc, RO, Romania, RO, TRUE, FALSE, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Thu Jan 1 16:17:56 2015
-Tor Fan, borgmann.tv, DE, Germany, DE, TRUE, FALSE, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Sun Jul 12 12:04:44 2015
-Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, TRUE, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Tue Jan 20 16:17:52 2015
-coralcdn.org, CoralCDN, INT, International, INT, TRUE, FALSE, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , Thu Jan 8 02:01:06 2015
-Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, FALSE, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Wed Apr 27 04:34:18 2016
-Tor Fan, Tor Supporter, MX, Mexico, MX, TRUE, FALSE, No, http://fbnaia.homelinux.net/torproject/, https://fbnaia.homelinux.net/torproject/, , , http://fbnaia.homelinux.net/torproject/dist/, https://fbnaia.homelinux.net/torproject/dist/, , , Wed Sep 7 18:46:02 2016
-webmaster AT askapache DOT com, AskApache, US, California, US, TRUE, FALSE, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Wed Sep 7 18:46:02 2016
-Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Mon Mar 16 14:53:03 2015
-kontakt AT unicorncloud DOT org, UnicornCloud.org, DE, Germany, Falkenstein, TRUE, FALSE, No, http://mirror.unicorncloud.org/torproject.org/, https://mirror.unicorncloud.org/torproject.org/, , , http://mirror.unicorncloud.org/torproject.org/dist, https://mirror.unicorncloud.org/torproject.org/dist, , , Wed Sep 7 18:46:02 2016
-root AT amorphis DOT eu, Amorphis, NL, The Netherlands, Europe, TRUE, FALSE, No, http://tor.amorphis.eu/, , , , http://tor.amorphis.eu/dist/, , , , Mon Mar 16 14:53:03 2015
+maki(a)maki-chan.de, Maki Hoshisawa, DE, Germany, DE, TRUE, FALSE, NO, http://tor.mirrors.maki-chan.de/, , , , http://tor.mirrors.maki-chan.de/dist/, , , , Sat Aug 23 05:09:07 2014
+info AT zentrum-der-gesundheit DOT de, Zentrum der Gesundheit, DK, Denmark, Europe, TRUE, FALSE, No, http://tor.idnr.ws/, , , , http://tor.idnr.ws/dist/, , , , Tue Sep 2 08:16:00 2014
+info /AT enn /DOT lu, Frenn vun der Enn A.S.B.L., IS, Iceland, Europe, TRUE, FALSE, No, http://torproject.lu/, , , , http://torproject.lu/dist/, , , http://btn6gqzqevlhoryd.onion, Wed May 3 15:12:25 2017
+Piratenpartei Bayern, Piratenpartei Bayern, DE, Germany, DE, TRUE, FALSE, NO, http://tormirror.piratenpartei-bayern.de, https://tormirror.piratenpartei-bayern.de, , , http://tormirror.piratenpartei-bayern.de/dist/, https://tormirror.piratenpartei-bayern.de/dist/, , , Wed Sep 7 22:46:02 2016
+Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://tor.hoi-polloi.org, https://tor.hoi-polloi.org/, , , http://tor.hoi-polloi.org/dist/, https://tor.hoi-polloi.org/dist/, , , Wed May 3 15:12:25 2017
+tor(a)fodt.it // FoDT.it Webteam, FoDT.it, AT, Austria, Europe, TRUE, FALSE, No, http://tor.fodt.it, https://tor.fodt.it, , ftp://ftp.fodt.it/pub/mirrors/torproject.org/, http://tor.fodt.it/dist/, https://tor.fodt.it/dist/, , , Mon Aug 25 07:19:07 2014
+http://www.multinet.no, MultiNet AS, NO, Trondheim, Trondheim, TRUE, TRUE, No, http://tor.multinet.no/, , , , http://tor.multinet.no/dist/, , , , Wed May 3 15:12:25 2017
+haskell at gmx.es, Tor Supporter, ES, Spain, Europe, TRUE, TRUE, No, http://tor.zilog.es/, https://tor.zilog.es/, , , http://tor.zilog.es/dist/, https://tor.zilog.es/dist/, , , Wed May 3 15:12:25 2017
+Tor Fan, Tor Supporter, US, United States, US, TRUE, FALSE, No, http://199.175.55.215/, https://199.175.55.215/, , , http://199.175.55.215/dist/, https://199.175.55.215/dist/, , , Wed May 3 15:12:25 2017
+Tor Fan, Tor Supporter, US, United States, US, FALSE, TRUE, No, http://2607:8b00:2::6258:5c9/, https://2607:8b00:2::6258:5c9/, , , http://2607:8b00:2::6258:5c9/dist/, https://2607:8b00:2::6258:5c9/dist/, , , Tue Jan 20 21:17:52 2015
+margus.random at mail.ee, CyberSIDE, EE, Estonia, EE, TRUE, FALSE, No, http://cyberside.planet.ee/tor/, , , , http://cyberside.net.ee/tor/, , , , Mon May 1 15:15:16 2017
+Tor Fan, torproject.is, IS, Iceland, IS, TRUE, FALSE, No, http://www.torproject.is/, , , , http://www.torproject.is/dist/, , , , Wed May 3 18:00:17 2017
+Tor Fan, spline, DE, Germany, DE, TRUE, FALSE, No, http://tor.spline.de/, https://tor.spline.inf.fu-berlin.de/, rsync://ftp.spline.de/tor, ftp://ftp.spline.de/pub/tor, http://tor.spline.de/dist/, https://tor.spline.inf.fu-berlin.de/dist/, rsync://ftp.spline.de/tor/dist, , Wed May 3 15:12:25 2017
+Tor Fan, me0w.cc, RO, Romania, RO, TRUE, FALSE, No, http://tor.me0w.cc/, , , , http://tor.me0w.cc/dist/, , , , Thu Jan 1 21:17:56 2015
+Tor Fan, borgmann.tv, DE, Germany, DE, TRUE, FALSE, No, http://tor.borgmann.tv/, , , , http://tor.borgmann.tv/dist/, , , , Sun Jul 12 16:04:44 2015
+Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, TRUE, No, http://tor.dont-know-me.at/, , , , http://tor.dont-know-me.at/dist/, , , , Tue Jan 20 21:17:52 2015
+coralcdn.org, CoralCDN, INT, International, INT, TRUE, FALSE, Yes, http://www.torproject.org.nyud.net/, , , , http://www.torproject.org.nyud.net/dist/, , , , Thu Jan 8 07:01:06 2015
+Tor Fan, Tor Supporter, AT, Austria, AT, TRUE, FALSE, No, http://torproject.ph3x.at/, , , , http://torproject.ph3x.at/dist/, , , , Wed May 3 18:00:17 2017
+Tor Fan, Tor Supporter, MX, Mexico, MX, TRUE, FALSE, No, http://fbnaia.homelinux.net/torproject/, https://fbnaia.homelinux.net/torproject/, , , http://fbnaia.homelinux.net/torproject/dist/, https://fbnaia.homelinux.net/torproject/dist/, , , Wed May 3 00:44:39 2017
+webmaster AT askapache DOT com, AskApache, US, California, US, TRUE, FALSE, No, http://tor.askapache.com/, , , , http://tor.askapache.com/dist/, , , , Wed May 3 15:12:25 2017
+Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.mirror.chekanov.net/, , , , http://tor.mirror.chekanov.net/dist/, , , , Mon Mar 16 18:53:03 2015
+kontakt AT unicorncloud DOT org, UnicornCloud.org, DE, Germany, Falkenstein, TRUE, FALSE, No, http://mirror.unicorncloud.org/torproject.org/, https://mirror.unicorncloud.org/torproject.org/, , , http://mirror.unicorncloud.org/torproject.org/dist, https://mirror.unicorncloud.org/torproject.org/dist, , , Wed May 3 15:12:25 2017
+root AT amorphis DOT eu, Amorphis, NL, The Netherlands, Europe, TRUE, FALSE, No, http://tor.amorphis.eu/, , , , http://tor.amorphis.eu/dist/, , , , Mon Mar 16 18:53:03 2015
hackthissite.org, HackThisSite.org, US, United States, US, TRUE, TRUE, No, http://tor.hackthissite.org/, https://tor.hackthissite.org/, , , http://mirror.hackthissite.org/tor, https://mirror.hackthissite.org/tor, , , Wed May 25 21:09:20 2016
-paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, TRUE, FALSE, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Wed Sep 7 18:46:02 2016
-Tor Fan, cyberarmy, AT, Austria, AT, TRUE, FALSE, No, http://tor.cyberarmy.at/, , , , , , , , Wed Jan 13 19:17:09 2016
-hostmaster AT example DOT com, TheOnionRouter, IS, Iceland, Iceland, TRUE, FALSE, No, http://www.theonionrouter.com/, , , , http://www.theonionrouter.com/dist/, , , , Wed Apr 27 04:34:18 2016
-Tor Fan, crazyhaze.de, DE, Germany, DE, TRUE, FALSE, No, http://tor.crazyhaze.de/, https://tor.crazyhaze.de/, , , http://tor.crazyhaze.de/dist/, https://tor.crazyhaze.de/dist/, , , Wed Sep 7 18:46:02 2016
-Tor Fan, chaos darmstadt, DE, Germany, Europe, TRUE, FALSE, No, http://mirrors.chaos-darmstadt.de/tor-mirror/, , , , http://mirrors.chaos-darmstadt.de/tor-mirror/dist/, , , , Sat Sep 12 10:14:19 2015
-Tor Fan, Soviet Anonymous, RU, Russia, RU, TRUE, FALSE, No, http://creep.im/tor, https://creep.im/tor, rsync://creep.im/tor, ftp://creep.im/mirrors/tor, http://creep.im/tor/dist/, https://creep.im/tor/dist/, rsync://creep.im/tor-dist, , Wed Sep 7 18:46:02 2016
-Tor Fan, torservers, DE, Germany, DE, TRUE, FALSE, No, http://www.torservers.net/mirrors/torproject.org/, https://www.torservers.net/mirrors/torproject.org/, , , http://www.torservers.net/mirrors/torproject.org/dist/, https://www.torservers.net/mirrors/torproject.org/dist/, , http://hbpvnydyyjbmhx6b.onion/mirrors/torproject.org/, Wed Sep 7 18:46:02 2016
-Tor Fan, torland, GB, United Kingdom, GB, TRUE, FALSE, No, http://mirror.torland.me/torproject.org/, https://mirror.torland.me/torproject.org/, , , http://mirror.torland.me/torproject.org/dist/, https://mirror.torland.me/torproject.org/dist/, , , Wed Apr 27 04:34:18 2016
-Tor Fan, Lightning-bolt.net, CZ, Czech Republic, CZ, TRUE, FALSE, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Mon Mar 16 14:53:03 2015
-IceBear, myRL.net, IS, Iceland, IS, TRUE, FALSE, No, http://tor.myrl.net/, https://tor.myrl.net/, , , http://tor.myrl.net/dist/, https://tor.myrl.net/dist/, , , Wed Sep 7 18:46:02 2016
-kiro AT userzap DOT de, Userzap, DE, Germany, DE, TRUE, FALSE, No, http://torprojekt.userzap.de, https://torprojekt.userzap.de, , , http://torprojekt.userzap.de/dist/, https://torprojekt.userzap.de/dist/, , , Tue Jan 20 16:17:52 2015
-tor(a)les.net, tor(a)les.net, CA, Canada, CA, TRUE, FALSE, NO, http://tor.les.net/, , , , http://tor.les.net/dist, , , , Wed Sep 7 18:46:02 2016
-tor(a)stalkr.net, stalkr.net, FR, France, FR, TRUE, TRUE, NO, http://tor.stalkr.net/, https://tor.stalkr.net/, , , http://tor.stalkr.net/dist/, https://tor.stalkr.net/dist/, , , Wed Sep 7 18:46:02 2016
-doemela[AT]cyberguerrilla[DOT]org, cYbergueRrilLa AnonyMous NeXus, DE, Germany, DE, TRUE, FALSE, NO, , https://tor-mirror.cyberguerrilla.org, , , , https://tor-mirror.cyberguerrilla.org/dist/, , http://6dvj6v5imhny3anf.onion, Wed Sep 7 18:46:02 2016
-contact(a)gtor.org, Gtor, DE, Germany, DE, TRUE, TRUE, NO, http://torproject.gtor.org/, https://torproject.gtor.org/, rsync://torproject.gtor.org/website-mirror/, , http://torproject.gtor.org/dist/, https://torproject.gtor.org/dist/, rsync://torproject.gtor.org/website-mirror/dist/, , Wed Sep 7 18:46:02 2016
-SDL, SDL, US, United States, US, TRUE, TRUE, NO, http://torproject.nexiom.net, https://torproject.nexiom.net, , , http://torproject.nexiom.net, https://torproject.nexiom.net/dist, , , Wed Jul 15 11:49:12 2015
-Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://mirror.velcommuta.de/tor/, https://mirror.velcommuta.de/tor/, , , http://mirror.velcommuta.de/tor/dist/, https://mirror.velcommuta.de/tor/dist/, , , Wed Sep 7 18:46:02 2016
-EFF, EFF, US, United States, US, TRUE, FALSE, NO, , https://tor.eff.org, , , , https://tor.eff.org/dist/, , , Wed Sep 7 18:46:02 2016
-Tor Fan, Tor Supporter, GR, Greece, GR, TRUE, TRUE, NO, http://tor.void.gr, https://tor.void.gr, , , http://tor.void.gr/dist/, https://tor.void.gr/dist/, , , Wed Sep 7 18:46:02 2016
-Ich Eben, Tor Supporter, DE, Germany, DE, TRUE, TRUE, No, http://reichster.de/mirrors/torproject.org/, https://reichster.de/mirrors/torproject.org, , , http://reichster.de/mirrors/torproject.org/dist/, https://reichster.de/mirrors/torproject.org/dist/, , , Wed Sep 7 18:46:02 2016
-jlgaddis AT gnu DOT org, Evil Routers, US, United States, US, TRUE, FALSE, No, http://tor1.evilrouters.net/, , , , http://tor1.evilrouters.net/dist/, , , , Wed Sep 7 18:46:02 2016
-tor AT miglix DOT eu, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, NO, http://tor.miglix.eu, https://tor.miglix.eu, , , http://tor.miglix.eu/dist/, https://tor.miglix.eu/dist/, , , Wed Sep 7 18:46:02 2016
-tor TA ninurta TOD name, TorNinurtaName, AT, Austria, AT, TRUE, TRUE, no, http://tor.ninurta.name/, , , , http://tor.ninurta.name/dist/, , , , Wed Oct 22 08:02:17 2014
-fr33tux <AT> general-changelog-team.fr, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor.fr33tux.org, https://tor.fr33tux.org, , , http://tor.fr33tux.org/dist/, https://tor.fr33tux.org/dist/, , , Wed Sep 7 18:46:02 2016
-sebastian(at)bobrecki(dot)pl, Sebastian M. Bobrecki, PL, Poland, Europe, TRUE, FALSE, No, http://tor.iv.net.pl, https://tor.iv.net.pl, , , http://tor.iv.net.pl/dist/, https://tor.iv.net.pl/dist/, , , Sat Sep 12 10:14:19 2015
-tor-mirror AT rdns DOT cc, d0wn.biz, FR, France, Europe, TRUE, FALSE, No, http://tor.static.lu, https://tor.static.lu, , , http://tor.static.lu/dist/, https://tor.static.lu/dist/, , , Wed Sep 7 18:46:02 2016
-tor(a)moparisthebest.com, moparisthebest.com, DE, Germany, Europe, TRUE, TRUE, No, http://www.moparisthebest.com/tor/, https://www.moparisthebest.com/tor/, , , http://www.moparisthebest.com/tor/dist/, https://www.moparisthebest.com/tor/dist/, , , Wed Sep 7 18:46:02 2016
-Sebastian, Maxanoo, NL, The Netherlands, Amsterdam, TRUE, FALSE, NO, http://tor.maxanoo.com/, , , , http://tor.maxanoo.com/dist/, , , , Sun May 31 15:13:53 2015
-rorrim AT ayo DOT tl, Tor Supporter, IS, Iceland, Europe, TRUE, TRUE, No, http://ayo.tl/tor/, https://ayo.tl/tor/, , , http://ayo.tl/tor/dist/, https://ayo.tl/tor/dist/, , , Tue Jan 20 16:17:52 2015
-stefano.fenoglio AT gmail DOT com, Tor Supporter, IT, Italy, Europe, TRUE, FALSE, No, http://tor.stefanof.com, , , , http://tor.stefanof.com/dist, , , , Wed Sep 7 18:46:02 2016
-Tor Fan, Ramos Research, US, United States, US, TRUE, TRUE, No, http://tor.ramosresearch.com/, , , , http://tor.ramosresearch.com/dist/, , , , Mon Mar 16 14:53:03 2015
-Tor Fan, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor.euve33747.vserver.de/, , , , http://tor.euve33747.vserver.de/dist, , , , Wed Jul 15 11:49:12 2015
-s7r[at]sky-ip[d0t]org, sky-ip.org, NL, Netherlands, NL, TRUE, FALSE, No, http://beautiful-mind.sky-ip.org/, , , , http://beautiful-mind.sky-ip.org/dist/, , , , Wed Sep 7 18:46:02 2016
-tor#pajonzeck#de, ITsn, DE, Germany, Europe, TRUE, FALSE, No, http://tor.pajonzeck.de/, https://tor.pajonzeck.de/, rsync://tor.pajonzeck.de/tor, , http://tor.pajonzeck.de/dist/, https://tor.pajonzeck.de/dist/, rsync://tor.pajonzeck.de/tor/dist, http://zgfgvob256pffy62.onion, Wed Sep 7 18:46:02 2016
-peter AT ludikovsky DOT name, Tor Supporter, AT, Austria, Europe, TRUE, TRUE, No, http://tor.ludikovsky.name/, https://tor.ludikovsky.name/, rsync://tor.ludikovsky.name/tor, , http://tor.ludikovsky.name/dist, https://tor.ludikovsky.name/dist, rsync://tor.ludikovsky.name/tor-dist, http://54lnbzjo6xlr4f4j.onion/, Wed Sep 7 18:46:02 2016
-admin AT nuclear DASH weapons DOT net, Setec Administrator, US, Texas, Austin, TRUE, FALSE, No, http://tor.nuclear-weapons.net, https://tor.nuclear-weapons.net, , , http://tor.nuclear-weapons.net/dist, https://tor.nuclear-weapons.net/dist, , , Wed Sep 7 18:46:02 2016
-0x43DE8191, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://torproject.hactar.bz, , , , http://torproject.hactar.bz/dist/, , , , Wed Sep 7 18:46:02 2016
-opi(a)zeropi.net, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor-mirror.zeropi.net/, , , , http://tor-mirror.zeropi.net/dist/, , , , Mon Dec 1 12:15:20 2014
-alexander AT dietrich DOT cx, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://tor.ybti.net/, https://tor.ybti.net/, , , http://tor.ybti.net/dist/, https://tor.ybti.net/dist/, , , Wed Sep 7 18:46:02 2016
-tor(a)0x3d.lu, 0x3d.lu, DE, Germany, Europe, TRUE, FALSE, No, http://tor.0x3d.lu/, https://tor.0x3d.lu/, , , http://tor.0x3d.lu/dist/, https://tor.0x3d.lu/dist/, , , Wed Sep 7 18:46:02 2016
-kraai(a)ftbfs.org 0xADCE6065, , SE, Sweden, Europe, TRUE, TRUE, No, http://tor.ftbfs.org/, , , , http://tor.ftbfs.org/dist/, , , , Fri Oct 24 01:28:32 2014
-kontakt(a)unicorncloud.org, UnicornCloud.org, AT, Favoriten, Wien, TRUE, TRUE, No, http://www.unicorncloud.org/public/torproject.org/, https://www.unicorncloud.org/public/torproject.org/, , , http://www.unicorncloud.org/public/torproject.org/dist, https://www.unicorncloud.org/public/torproject.org/dist, , , Mon Mar 16 14:53:03 2015
-James Murphy, intfxdx.com, US, United States, US, TRUE, TRUE, No, http://108.248.87.242/, https://108.248.87.242/, , , http://108.248.87.242/dist/, https://108.248.87.242/dist/, , , Wed Sep 7 18:46:02 2016
-Sam Whited 4096R/54083AE104EA7AD3 <sam(a)samwhited.com>, SamWhited.com, US, GA, United States, TRUE, TRUE, FALSE, http://mirrors.samwhited.net/tor, https://mirrors.samwhited.net/tor, rsync://mirrors.samwhited.net/tor, , http://mirrors.samwhited.net/tor/dist, https://mirrors.samwhited.net/tor/dist, rsync://mirrors.samwhited.net/tor-dist, , Wed Jul 15 11:49:12 2015
-rohit008 AT e DOT ntu DOT edu DOT sg, NTUOSS, SG, Singapore, Asia, TRUE, FALSE, No, http://torproject.ntuoss.com/, , , , http://torproject.ntuoss.com/dist/, , , , Mon Mar 16 14:53:03 2015
-Jacob Henner, Anatomical Networks, US, United States, US, TRUE, TRUE, TRUE, http://tor.ventricle.us/, , , , http://tor.ventricle.us/dist/, , , , Tue Jan 20 16:17:52 2015
-hostmaster(a)lucidnetworks.net, Lucid Networks, US, United States, US, TRUE, FALSE, No, http://tor.mirrors.lucidnetworks.net, , rsync://tor.mirrors.lucidnetworks.net::tor, , http://tor.mirrors.lucidnetworks.net/dist, , rsync://tor.mirrors.lucidnetworks.net::tor-dist, , Wed Sep 7 18:46:02 2016
-mirror ntzk de, Netzkonstrukt Berlin, DE, Germany, Europe, TRUE, FALSE, No, http://mirror.ntzk.de/torproject.org/, https://mirror.ntzk.de/torproject.org/, , , http://mirror.ntzk.de/torproject.org/dist/, https://mirror.ntzk.de/torproject.org/dist/, , , Wed Sep 7 18:46:02 2016
-mirror(a)xfree.com.ar, Xfree.com.ar, AR, Argentina, South America, TRUE, FALSE, No, http://tor.xfree.com.ar/, , , , http://tor.xfree.com.ar/dist/, , , , Tue Apr 26 22:44:33 2016
-tor AT eprci NET, EPRCI, US, NH, US, TRUE, FALSE, No, http://tor.eprci.net/, https://www.eprci.com/tor/, , , http://tor.eprci.net/dist/, https://www.eprci.com/tor/dist/, , , Wed Sep 7 18:46:02 2016
-tor(a)kura.io, KURA IO LIMITED, NL, Netherlands, Europe, TRUE, TRUE, TRUE, http://tor-mirror.kura.io/, https://tor-mirror.kura.io/, rsync://tor-mirror.kura.io/torproject.org, ftp://tor-mirror.kura.io, http://tor-mirror.kura.io/dist/, https://tor-mirror.kura.io/dist/, rsync://tor-mirror.kura.io/torproject.org/dist, , Thu Jan 22 16:27:59 2015
-tor-admin AT wardsback DOT org, wardsback.org, FR, France, FR, TRUE, FALSE, No, http://alliumcepa.wardsback.org/, , , , http://alliumcepa.wardsback.org/dist/, , , , Wed Sep 7 18:46:02 2016
-PW, PW, DE, Germany, DE, TRUE, TRUE, NO, http://tor.pw.is/, https://www.it-sicherheitschannel.de/, , , http://tor.pw.is/dist/, https://www.it-sicherheitschannel.de/dist/, , , Wed Sep 7 18:46:02 2016
-kevin(a)freedom.press, Freedom of the Press Foundation, , US, US, True, False, No, http://tor.freedom.press, https://tor.freedom.press, , , http://tor.freedom.press/dist/, https://tor.freedom.press/dist/, , , Wed Jan 13 19:17:09 2016
-hsu AT peterdavehellor DOT org, Department of CSE. Yuan Ze University, TW, Taiwan, Asia, TRUE, FALSE, No, http://ftp.yzu.edu.tw/torproject.org/, https://ftp.yzu.edu.tw/torproject.org/, rsync://ftp.yzu.edu.tw/pub/torproject.org/, ftp://ftp.yzu.edu.tw/torproject.org/, http://ftp.yzu.edu.tw/torproject.org/dist/, https://ftp.yzu.edu.tw/torproject.org/dist/, rsync://ftp.yzu.edu.tw/pub/torproject.org/dist/, , Wed Sep 7 18:46:02 2016
+paul at coffswifi.net, CoffsWiFi, AU, Australia and New Zealand, APNIC, TRUE, FALSE, No, http://torproject.coffswifi.net, , , , http://torproject.coffswifi.net/dist, , , , Wed May 3 15:12:25 2017
+Tor Fan, cyberarmy, AT, Austria, AT, TRUE, FALSE, No, http://tor.cyberarmy.at/, , , , , , , , Thu Jan 14 00:17:09 2016
+hostmaster AT example DOT com, TheOnionRouter, IS, Iceland, Iceland, TRUE, FALSE, No, http://www.theonionrouter.com/, , , , http://www.theonionrouter.com/dist/, , , , Wed May 3 15:12:25 2017
+Tor Fan, crazyhaze.de, DE, Germany, DE, TRUE, FALSE, No, http://tor.crazyhaze.de/, https://tor.crazyhaze.de/, , , http://tor.crazyhaze.de/dist/, https://tor.crazyhaze.de/dist/, , , Wed May 3 15:12:25 2017
+Tor Fan, chaos darmstadt, DE, Germany, Europe, TRUE, FALSE, No, http://mirrors.chaos-darmstadt.de/tor-mirror/, , , , http://mirrors.chaos-darmstadt.de/tor-mirror/dist/, , , , Sat Sep 12 14:14:19 2015
+Tor Fan, Soviet Anonymous, RU, Russia, RU, TRUE, FALSE, No, http://creep.im/tor, https://creep.im/tor, rsync://creep.im/tor, ftp://creep.im/mirrors/tor, http://creep.im/tor/dist/, https://creep.im/tor/dist/, rsync://creep.im/tor-dist, , Wed May 3 13:38:10 2017
+Tor Fan, torservers, DE, Germany, DE, TRUE, FALSE, No, http://www.torservers.net/mirrors/torproject.org/, https://www.torservers.net/mirrors/torproject.org/, , , http://www.torservers.net/mirrors/torproject.org/dist/, https://www.torservers.net/mirrors/torproject.org/dist/, , http://hbpvnydyyjbmhx6b.onion/mirrors/torproject.org/, Wed May 3 00:44:39 2017
+Tor Fan, torland, GB, United Kingdom, GB, TRUE, FALSE, No, http://mirror.torland.me/torproject.org/, https://mirror.torland.me/torproject.org/, , , http://mirror.torland.me/torproject.org/dist/, https://mirror.torland.me/torproject.org/dist/, , , Wed Apr 27 08:34:18 2016
+Tor Fan, Lightning-bolt.net, CZ, Czech Republic, CZ, TRUE, FALSE, No, http://torproject.lightning-bolt.net/, , , , http://torproject.lightning-bolt.net/dist/, , , , Mon Mar 16 18:53:03 2015
+IceBear, myRL.net, IS, Iceland, IS, TRUE, FALSE, No, http://tor.myrl.net/, https://tor.myrl.net/, , , http://tor.myrl.net/dist/, https://tor.myrl.net/dist/, , , Wed May 3 15:12:25 2017
+kiro AT userzap DOT de, Userzap, DE, Germany, DE, TRUE, FALSE, No, http://torprojekt.userzap.de, https://torprojekt.userzap.de, , , http://torprojekt.userzap.de/dist/, https://torprojekt.userzap.de/dist/, , , Tue Jan 20 21:17:52 2015
+tor(a)les.net, tor(a)les.net, CA, Canada, CA, TRUE, FALSE, NO, http://tor.les.net/, , , , http://tor.les.net/dist, , , , Wed May 3 15:12:25 2017
+tor(a)stalkr.net, stalkr.net, FR, France, FR, TRUE, TRUE, NO, http://tor.stalkr.net/, https://tor.stalkr.net/, , , http://tor.stalkr.net/dist/, https://tor.stalkr.net/dist/, , , Wed May 3 15:12:25 2017
+doemela[AT]cyberguerrilla[DOT]org, cYbergueRrilLa AnonyMous NeXus, DE, Germany, DE, TRUE, FALSE, NO, , https://tor-mirror.cyberguerrilla.org, , , , https://tor-mirror.cyberguerrilla.org/dist/, , http://6dvj6v5imhny3anf.onion, Wed May 3 15:12:25 2017
+contact(a)gtor.org, Gtor, DE, Germany, DE, TRUE, TRUE, NO, http://torproject.gtor.org/, https://torproject.gtor.org/, rsync://torproject.gtor.org/website-mirror/, , http://torproject.gtor.org/dist/, https://torproject.gtor.org/dist/, rsync://torproject.gtor.org/website-mirror/dist/, , Wed Sep 7 22:46:02 2016
+SDL, SDL, US, United States, US, TRUE, TRUE, NO, http://torproject.nexiom.net, https://torproject.nexiom.net, , , http://torproject.nexiom.net, https://torproject.nexiom.net/dist, , , Wed Jul 15 15:49:12 2015
+Tor Fan, Tor Supporter, DE, Germany, DE, TRUE, TRUE, NO, http://mirror.velcommuta.de/tor/, https://mirror.velcommuta.de/tor/, , , http://mirror.velcommuta.de/tor/dist/, https://mirror.velcommuta.de/tor/dist/, , , Wed May 3 15:12:25 2017
+EFF, EFF, US, United States, US, TRUE, FALSE, NO, , https://tor.eff.org, , , , https://tor.eff.org/dist/, , , Wed May 3 13:38:10 2017
+Tor Fan, Tor Supporter, GR, Greece, GR, TRUE, TRUE, NO, http://tor.void.gr, https://tor.void.gr, , , http://tor.void.gr/dist/, https://tor.void.gr/dist/, , , Wed May 3 13:38:10 2017
+Ich Eben, Tor Supporter, DE, Germany, DE, TRUE, TRUE, No, http://reichster.de/mirrors/torproject.org/, https://reichster.de/mirrors/torproject.org, , , http://reichster.de/mirrors/torproject.org/dist/, https://reichster.de/mirrors/torproject.org/dist/, , , Wed May 3 15:12:25 2017
+jlgaddis AT gnu DOT org, Evil Routers, US, United States, US, TRUE, FALSE, No, http://tor1.evilrouters.net/, , , , http://tor1.evilrouters.net/dist/, , , , Wed May 3 15:12:25 2017
+tor AT miglix DOT eu, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, NO, http://tor.miglix.eu, https://tor.miglix.eu, , , http://tor.miglix.eu/dist/, https://tor.miglix.eu/dist/, , , Wed Sep 7 22:46:02 2016
+tor TA ninurta TOD name, TorNinurtaName, AT, Austria, AT, TRUE, TRUE, no, http://tor.ninurta.name/, , , , http://tor.ninurta.name/dist/, , , , Wed Oct 22 12:02:17 2014
+fr33tux <AT> general-changelog-team.fr, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor.fr33tux.org, https://tor.fr33tux.org, , , http://tor.fr33tux.org/dist/, https://tor.fr33tux.org/dist/, , , Wed May 3 15:12:25 2017
+sebastian(at)bobrecki(dot)pl, Sebastian M. Bobrecki, PL, Poland, Europe, TRUE, FALSE, No, http://tor.iv.net.pl, https://tor.iv.net.pl, , , http://tor.iv.net.pl/dist/, https://tor.iv.net.pl/dist/, , , Sat Sep 12 14:14:19 2015
+tor-mirror AT rdns DOT cc, d0wn.biz, FR, France, Europe, TRUE, FALSE, No, http://tor.static.lu, https://tor.static.lu, , , http://tor.static.lu/dist/, https://tor.static.lu/dist/, , , Wed Sep 7 22:46:02 2016
+tor(a)moparisthebest.com, moparisthebest.com, DE, Germany, Europe, TRUE, TRUE, No, http://www.moparisthebest.com/tor/, https://www.moparisthebest.com/tor/, , , http://www.moparisthebest.com/tor/dist/, https://www.moparisthebest.com/tor/dist/, , , Wed May 3 15:12:25 2017
+Sebastian, Maxanoo, NL, The Netherlands, Amsterdam, TRUE, FALSE, NO, http://tor.maxanoo.com/, , , , http://tor.maxanoo.com/dist/, , , , Sun May 31 19:13:53 2015
+rorrim AT ayo DOT tl, Tor Supporter, IS, Iceland, Europe, TRUE, TRUE, No, http://ayo.tl/tor/, https://ayo.tl/tor/, , , http://ayo.tl/tor/dist/, https://ayo.tl/tor/dist/, , , Tue Jan 20 21:17:52 2015
+stefano.fenoglio AT gmail DOT com, Tor Supporter, IT, Italy, Europe, TRUE, FALSE, No, http://tor.stefanof.com, , , , http://tor.stefanof.com/dist, , , , Wed Sep 7 22:46:02 2016
+Tor Fan, Ramos Research, US, United States, US, TRUE, TRUE, No, http://tor.ramosresearch.com/, , , , http://tor.ramosresearch.com/dist/, , , , Mon Mar 16 18:53:03 2015
+Tor Fan, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor.euve33747.vserver.de/, , , , http://tor.euve33747.vserver.de/dist, , , , Wed Jul 15 15:49:12 2015
+s7r[at]sky-ip[d0t]org, sky-ip.org, NL, Netherlands, NL, TRUE, FALSE, No, http://beautiful-mind.sky-ip.org/, , , , http://beautiful-mind.sky-ip.org/dist/, , , , Wed Sep 7 22:46:02 2016
+tor#pajonzeck#de, ITsn, DE, Germany, Europe, TRUE, FALSE, No, http://tor.pajonzeck.de/, https://tor.pajonzeck.de/, rsync://tor.pajonzeck.de/tor, , http://tor.pajonzeck.de/dist/, https://tor.pajonzeck.de/dist/, rsync://tor.pajonzeck.de/tor/dist, http://zgfgvob256pffy62.onion, Wed May 3 15:12:25 2017
+peter AT ludikovsky DOT name, Tor Supporter, AT, Austria, Europe, TRUE, TRUE, No, http://tor.ludikovsky.name/, https://tor.ludikovsky.name/, rsync://tor.ludikovsky.name/tor, , http://tor.ludikovsky.name/dist, https://tor.ludikovsky.name/dist, rsync://tor.ludikovsky.name/tor-dist, http://54lnbzjo6xlr4f4j.onion/, Wed May 3 15:12:25 2017
+admin AT nuclear DASH weapons DOT net, Setec Administrator, US, Texas, Austin, TRUE, FALSE, No, http://tor.nuclear-weapons.net, https://tor.nuclear-weapons.net, , , http://tor.nuclear-weapons.net/dist, https://tor.nuclear-weapons.net/dist, , , Wed May 3 15:12:25 2017
+0x43DE8191, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://torproject.hactar.bz, , , , http://torproject.hactar.bz/dist/, , , , Wed Sep 7 22:46:02 2016
+opi(a)zeropi.net, Tor Supporter, FR, France, FR, TRUE, TRUE, No, http://tor-mirror.zeropi.net/, , , , http://tor-mirror.zeropi.net/dist/, , , , Mon Dec 1 17:15:20 2014
+alexander AT dietrich DOT cx, Tor Supporter, DE, Germany, Europe, TRUE, TRUE, No, http://tor.ybti.net/, https://tor.ybti.net/, , , http://tor.ybti.net/dist/, https://tor.ybti.net/dist/, , , Wed May 3 18:00:17 2017
+tor(a)0x3d.lu, 0x3d.lu, DE, Germany, Europe, TRUE, FALSE, No, http://tor.0x3d.lu/, https://tor.0x3d.lu/, , , http://tor.0x3d.lu/dist/, https://tor.0x3d.lu/dist/, , , Wed May 3 15:12:25 2017
+kraai(a)ftbfs.org 0xADCE6065, , SE, Sweden, Europe, TRUE, TRUE, No, http://tor.ftbfs.org/, , , , http://tor.ftbfs.org/dist/, , , , Fri Oct 24 05:28:32 2014
+kontakt(a)unicorncloud.org, UnicornCloud.org, AT, Favoriten, Wien, TRUE, TRUE, No, http://www.unicorncloud.org/public/torproject.org/, https://www.unicorncloud.org/public/torproject.org/, , , http://www.unicorncloud.org/public/torproject.org/dist, https://www.unicorncloud.org/public/torproject.org/dist, , , Mon Mar 16 18:53:03 2015
+James Murphy, intfxdx.com, US, United States, US, TRUE, TRUE, No, http://108.248.87.242/, https://108.248.87.242/, , , http://108.248.87.242/dist/, https://108.248.87.242/dist/, , , Wed May 3 15:12:25 2017
+Sam Whited 4096R/54083AE104EA7AD3 <sam(a)samwhited.com>, SamWhited.com, US, GA, United States, TRUE, TRUE, FALSE, http://mirrors.samwhited.net/tor, https://mirrors.samwhited.net/tor, rsync://mirrors.samwhited.net/tor, , http://mirrors.samwhited.net/tor/dist, https://mirrors.samwhited.net/tor/dist, rsync://mirrors.samwhited.net/tor-dist, , Wed Jul 15 15:49:12 2015
+rohit008 AT e DOT ntu DOT edu DOT sg, NTUOSS, SG, Singapore, Asia, TRUE, FALSE, No, http://torproject.ntuoss.com/, , , , http://torproject.ntuoss.com/dist/, , , , Mon Mar 16 18:53:03 2015
+Jacob Henner, Anatomical Networks, US, United States, US, TRUE, TRUE, TRUE, http://tor.ventricle.us/, , , , http://tor.ventricle.us/dist/, , , , Tue Jan 20 21:17:52 2015
+hostmaster(a)lucidnetworks.net, Lucid Networks, US, United States, US, TRUE, FALSE, No, http://tor.mirrors.lucidnetworks.net, , rsync://tor.mirrors.lucidnetworks.net::tor, , http://tor.mirrors.lucidnetworks.net/dist, , rsync://tor.mirrors.lucidnetworks.net::tor-dist, , Wed May 3 15:12:25 2017
+mirror ntzk de, Netzkonstrukt Berlin, DE, Germany, Europe, TRUE, FALSE, No, http://mirror.ntzk.de/torproject.org/, https://mirror.ntzk.de/torproject.org/, , , http://mirror.ntzk.de/torproject.org/dist/, https://mirror.ntzk.de/torproject.org/dist/, , , Wed May 3 18:00:17 2017
+mirror(a)xfree.com.ar, Xfree.com.ar, AR, Argentina, South America, TRUE, FALSE, No, http://tor.xfree.com.ar/, , , , http://tor.xfree.com.ar/dist/, , , , Wed Apr 27 02:44:33 2016
+tor AT eprci NET, EPRCI, US, NH, US, TRUE, FALSE, No, http://tor.eprci.net/, https://www.eprci.com/tor/, , , http://tor.eprci.net/dist/, https://www.eprci.com/tor/dist/, , , Wed May 3 18:00:17 2017
+tor(a)kura.io, KURA IO LIMITED, NL, Netherlands, Europe, TRUE, TRUE, TRUE, http://tor-mirror.kura.io/, https://tor-mirror.kura.io/, rsync://tor-mirror.kura.io/torproject.org, ftp://tor-mirror.kura.io, http://tor-mirror.kura.io/dist/, https://tor-mirror.kura.io/dist/, rsync://tor-mirror.kura.io/torproject.org/dist, , Thu Jan 22 21:27:59 2015
+tor-admin AT wardsback DOT org, wardsback.org, FR, France, FR, TRUE, FALSE, No, http://alliumcepa.wardsback.org/, , , , http://alliumcepa.wardsback.org/dist/, , , , Wed May 3 18:00:17 2017
+PW, PW, DE, Germany, DE, TRUE, TRUE, NO, http://tor.pw.is/, https://www.it-sicherheitschannel.de/, , , http://tor.pw.is/dist/, https://www.it-sicherheitschannel.de/dist/, , , Wed May 3 18:00:17 2017
+kevin(a)freedom.press, Freedom of the Press Foundation, , US, US, True, False, No, http://tor.freedom.press, https://tor.freedom.press, , , http://tor.freedom.press/dist/, https://tor.freedom.press/dist/, , , Thu Jan 14 00:17:09 2016
+hsu AT peterdavehellor DOT org, Department of CSE. Yuan Ze University, TW, Taiwan, Asia, TRUE, FALSE, No, http://ftp.yzu.edu.tw/torproject.org/, https://ftp.yzu.edu.tw/torproject.org/, rsync://ftp.yzu.edu.tw/pub/torproject.org/, ftp://ftp.yzu.edu.tw/torproject.org/, http://ftp.yzu.edu.tw/torproject.org/dist/, https://ftp.yzu.edu.tw/torproject.org/dist/, rsync://ftp.yzu.edu.tw/pub/torproject.org/dist/, , Wed May 3 18:00:17 2017
tormirror at sybec.net <mailto:tormirror at sybec.net>, Sybec Services Ltd., DE, Germany, DE, TRUE, FALSE, FALSE, http://tormirror.sybec.net:8080/ <http://tormirror.sybec.net:8080/>, , , , http://tormirror.sybec.net:8080/dist/ <http://tormirror.sybec.net:8080/dist/>, , , ,
-tor at tvdw dot eu, TvdW, XX, Around the world, XX, TRUE, TRUE, Yes, http://tor-exit.network, , , , http://tor-exit.network/dist, , , , Wed Sep 7 18:46:02 2016
-spiderfly AT protonmail DOT com, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://onionphysics.com, , , , http://onionphysics.com/dist/, , , , Sat Sep 12 10:14:19 2015
-tormaster AT urown DOT net, urown.net, CH, Switzerland, Europe, TRUE, TRUE, No, http://torproject.urown.net/, https://torproject.urown.net/, , , http://torproject.urown.net/dist/, https://torproject.urown.net/dist/, , http://torprowdd64ytmyk.onion, Wed Apr 27 04:34:18 2016
-Stefan, sela Internet, DE, Germany, DE, TRUE, TRUE, No, http://sela.io/mirrors/torproject.org/, https://sela.io/mirrors/torproject.org/, , , http://sela.io/mirrors/torproject.org/dist/, https://sela.io/mirrors/torproject.org/dist/, , , Wed Sep 7 18:46:02 2016
-thomaswhite AT riseup DOT net, TheCthulhu, NL, The Netherlands, NL, True, False, No, http://tor.thecthulhu.com/, https://tor.thecthulhu.com/, , , http://tor.thecthulhu.com/dist/, https://tor.thecthulhu.com/dist/, , , Wed Sep 7 18:46:02 2016
-rush23 AT gmx DOT net, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor-proxy.euve59946.serverprofi24.de/, , , , http://tor-proxy.euve59946.serverprofi24.de/dist/, , , , Thu Jun 4 12:06:42 2015
-webmaster AT ccc DOT de, Chaos Computer Club, DE, Germany, Europe, TRUE, FALSE, No, http://tor.ccc.de/, https://tor.ccc.de, , , http://tor.ccc.de/dist/, https://tor.ccc.de/dist/, , , Wed Sep 7 18:46:02 2016
-Tor AT goodeid DOT com, Tor Supporter, CA, Canada, CA, TRUE, FALSE, No, http://goodeid.com/mirrors/tor-project.org/, , , , http://goodeid.com/mirrors/tor-project.org/dist/, , , , Wed Sep 7 18:46:02 2016
-tor(a)alenan.org, Alenan e.V., FR, France, Europe, TRUE, FALSE, No, http://tormirror.xyz, https://tormirror.xyz, , , http://tormirror.xyz/dist, https://tormirror.xyz/dist, , , Wed Jan 13 19:17:09 2016
-tor(a)datensicherhe.it, datensicherhe.it, AT, Austria, Europe, TRUE, FALSE, No, http://datensicherhe.it/torproject, https://datensicherhe.it/torproject, , , http://datensicherhe.it/torproject/dist/, https://datensicherhe.it/torproject/dist/, , , Wed Sep 7 18:46:02 2016
-NocturnalFilth, Disciples of Disorder, NL, Netherlands, NL, TRUE, FALSE, NO, http://torproject.mirror.disciplesofdisorder.com, https://torproject.mirror.disciplesofdisorder.com, , , http://torproject.mirror.disciplesofdisorder.com/dist/, https://torproject.mirror.disciplesofdisorder.com/dist/, , , Wed Sep 7 18:46:02 2016
-tormirror0121.10.swsnyder(a)spamgourmet.com, tormirror, DE, Germany, TRUE, FALSE, NO, http://tormirror.snydernet.net/, https://tormirror.snydernet.net/, , , http://tormirror.snydernet.net/dist/, https://tormirror.snydernet.net/dist/, , , Mon Dec 28 17:11:31 2015, Wed Apr 27 04:34:18 2016
-justaguy(a)riseup.net, Justaguy, FR, France, FR, TRUE, FALSE, No, http://tormirror.justaguy.pw/, https://tormirror.justaguy.pw, , , http://tormirror.justaguy.pw/dist/, https://tormirror.justaguy.pw/dist/, , , Wed Jan 13 19:17:09 2016
-Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.hermes.bendellar.com, https://tor.hermes.bendellar.com, , , http://tor.hermes.bendellar.com/dist, https://tor.hermes.bendellar.com/dist, , , Wed Apr 27 04:34:18 2016
-Disciples of Disorder, Vargr, NL, Netherlands, NL, TRUE, FALSE, NO, http://tor.mirror.disciplesofdisorder.eu, https://tor.mirror.disciplesofdisorder.eu, , , http://tor.mirror.disciplesofdisorder.eu/dist/, https://tor.mirror.disciplesofdisorder.eu/dist/, , http://vargrevir52vkbte.onion, Mon Dec 21 15:50:00 2015
+tor at tvdw dot eu, TvdW, XX, Around the world, XX, TRUE, TRUE, Yes, http://tor-exit.network, , , , http://tor-exit.network/dist, , , , Wed May 3 18:00:17 2017
+spiderfly AT protonmail DOT com, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://onionphysics.com, , , , http://onionphysics.com/dist/, , , , Sat Sep 12 14:14:19 2015
+tormaster AT urown DOT net, urown.net, CH, Switzerland, Europe, TRUE, TRUE, No, http://torproject.urown.net/, https://torproject.urown.net/, , , http://torproject.urown.net/dist/, https://torproject.urown.net/dist/, , http://torprowdd64ytmyk.onion, Wed May 3 15:12:25 2017
+Stefan, sela Internet, DE, Germany, DE, TRUE, TRUE, No, http://sela.io/mirrors/torproject.org/, https://sela.io/mirrors/torproject.org/, , , http://sela.io/mirrors/torproject.org/dist/, https://sela.io/mirrors/torproject.org/dist/, , , Wed May 3 15:12:25 2017
+thomaswhite AT riseup DOT net, TheCthulhu, NL, The Netherlands, NL, True, False, No, http://tor.thecthulhu.com/, https://tor.thecthulhu.com/, , , http://tor.thecthulhu.com/dist/, https://tor.thecthulhu.com/dist/, , , Wed Sep 7 22:46:02 2016
+rush23 AT gmx DOT net, Tor Supporter, DE, Germany, Europe, TRUE, FALSE, No, http://tor-proxy.euve59946.serverprofi24.de/, , , , http://tor-proxy.euve59946.serverprofi24.de/dist/, , , , Thu Jun 4 16:06:42 2015
+webmaster AT ccc DOT de, Chaos Computer Club, DE, Germany, Europe, TRUE, FALSE, No, http://tor.ccc.de/, https://tor.ccc.de, , , http://tor.ccc.de/dist/, https://tor.ccc.de/dist/, , , Wed May 3 15:12:25 2017
+Tor AT goodeid DOT com, Tor Supporter, CA, Canada, CA, TRUE, FALSE, No, http://goodeid.com/mirrors/tor-project.org/, , , , http://goodeid.com/mirrors/tor-project.org/dist/, , , , Wed Sep 7 22:46:02 2016
+tor(a)alenan.org, Alenan e.V., FR, France, Europe, TRUE, FALSE, No, http://tormirror.xyz, https://tormirror.xyz, , , http://tormirror.xyz/dist, https://tormirror.xyz/dist, , , Thu Jan 14 00:17:09 2016
+tor(a)datensicherhe.it, datensicherhe.it, AT, Austria, Europe, TRUE, FALSE, No, http://datensicherhe.it/torproject, https://datensicherhe.it/torproject, , , http://datensicherhe.it/torproject/dist/, https://datensicherhe.it/torproject/dist/, , , Wed Sep 7 22:46:02 2016
+NocturnalFilth, Disciples of Disorder, NL, Netherlands, NL, TRUE, FALSE, NO, http://torproject.mirror.disciplesofdisorder.com, https://torproject.mirror.disciplesofdisorder.com, , , http://torproject.mirror.disciplesofdisorder.com/dist/, https://torproject.mirror.disciplesofdisorder.com/dist/, , , Wed Apr 19 18:52:55 2017
+tormirror0121.10.swsnyder(a)spamgourmet.com, tormirror, DE, Germany, TRUE, FALSE, NO, http://tormirror.snydernet.net/, https://tormirror.snydernet.net/, , , http://tormirror.snydernet.net/dist/, https://tormirror.snydernet.net/dist/, , , Mon Dec 28 17:11:31 2015, Wed May 3 15:12:25 2017
+justaguy(a)riseup.net, Justaguy, FR, France, FR, TRUE, FALSE, No, http://tormirror.justaguy.pw/, https://tormirror.justaguy.pw, , , http://tormirror.justaguy.pw/dist/, https://tormirror.justaguy.pw/dist/, , , Thu Jan 14 00:17:09 2016
+Tor Fan, Tor Supporter, FR, France, FR, TRUE, FALSE, No, http://tor.hermes.bendellar.com, https://tor.hermes.bendellar.com, , , http://tor.hermes.bendellar.com/dist, https://tor.hermes.bendellar.com/dist, , , Wed Apr 27 08:34:18 2016
+Disciples of Disorder, Vargr, NL, Netherlands, NL, TRUE, FALSE, NO, http://tor.mirror.disciplesofdisorder.eu, https://tor.mirror.disciplesofdisorder.eu, , , http://tor.mirror.disciplesofdisorder.eu/dist/, https://tor.mirror.disciplesofdisorder.eu/dist/, , http://vargrevir52vkbte.onion, Mon Dec 21 20:50:00 2015
torrelay anonymized io, Anonymized.io, CA, Canada, CA, TRUE, FALSE, FALSE, http://http://torproject.anonymized.io/, https://http://torproject.anonymized.io/, , , http://torproject.anonymized.io/dist/, https://torproject.anonymized.io/dist/, , ,
tor(a)alenan.org, Alenan e.V., FR, France, Europe, TRUE, FALSE, No, http://tormirror.top, https://tormirror.top, , , http://tormirror.top/dist, https://tormirror.top/dist, , ,
tor(a)alenan.org, Alenan e.V., FR, France, Europe, TRUE, FALSE, No, , https://mirrors.alenan.org/torproject.org/index.html.en, , , , https://mirrors.alenan.org/torproject.org/dist, , ,
Unixcorn staff, unixcorn.org, FR, France, Europe, TRUE, FALSE, No, http://tor.unixcorn.org/, https://tor.unixcorn.org/, , , http://tor.unixcorn.org/dist/, https://tor.unixcorn.org/dist/, , ,
-nick at calyx dot com, The Calyx Institute, US, United States, North America, TRUE, FALSE, No, http://tor.calyxinstitute.org, https://tor.calyxinstitute.org, , , http://tor.calyxinstitute.org/dist/, https://tor.calyxinstitute.org/dist/, , http://tmdrhl4e4anhsjc5.onion, Wed Sep 7 18:46:02 2016
-tor(a)armbrust.me, Michael Armbruster, FR, France, FR, TRUE, TRUE, No, http://tor.armbrust.me/, https://tor.armbrust.me/, rsync://tor.armbrust.me/tor, , http://tor.armbrust.me/dist/, https://tor.armbrust.me/dist, rsync://tor.armbrust.me/tor-dist, , Wed Sep 7 18:46:02 2016
-HdO Tor, HdO Tor Supporter, DE, Germany, US, TRUE, TRUE, No, http://tor.hdoev.de/, , , , http://tor.hdoev.de/dist/, , , , Wed Sep 7 18:46:02 2016
-Tor Fan, Tor Supporter, DE, Germany, Germany, TRUE, TRUE, No, http://torproject.mirror.metalgamer.eu/, https://torproject.mirror.metalgamer.eu/, , , http://torproject.mirror.metalgamer.eu/dist/, https://torproject.mirror.metalgamer.eu/dist/, , , Sun Jul 31 15:14:49 2016
-john AT quintex.com, Quintex Alliance Consulting, US, TX, US, TRUE, FALSE, No, http://torproject.quintex.com/, https://torproject.quintex.com, rsync://mirror.quintex.com/torprojectwebsite, ftp://mirror.quintex.com/torproject.org, http://torproject.quintex.com/dist, https://torproject.quintex.com/dist, rsync://mirror.quintex.com/torprojectdist, , Wed Sep 7 18:46:02 2016
-aldousa at riseup.net, michael ball (https://anarchism.me) US, United States, North America, TRUE, TRUE, No, http://mirrors.anarchism.me, https://mirrors.anarchism.me, , , http://mirrors.anarchism.me/dist, https://mirrors.anarchism.me/dist, , http://gaobjvqqrlotey4d.onion/, Sat Aug 6 22:40:00 2016
-noc AT babylon DOT network, Babylon Network, CA, Canada, CA, TRUE, TRUE, No, http://ca.mirror.babylon.network/torproject/, https://ca.mirror.babylon.network/torproject/, rsync://ca.mirror.babylon.network/torproject/, ftp://ca.mirror.babylon.network/torproject/, http://ca.mirror.babylon.network/torproject/dist/, https://ca.mirror.babylon.network/torproject/dist/, rsync://ca.mirror.babylon.network/torproject/dist/, , Wed Sep 7 18:46:02 2016
-noc AT babylon DOT network, Babylon Network, NL, The Netherlands, Europe, TRUE, TRUE, No, http://nl.mirror.babylon.network/torproject/, https://nl.mirror.babylon.network/torproject/, rsync://nl.mirror.babylon.network/torproject/, ftp://nl.mirror.babylon.network/torproject/, http://nl.mirror.babylon.network/torproject/dist/, https://nl.mirror.babylon.network/torproject/dist/, rsync://nl.mirror.babylon.network/torproject/dist/, , Wed Sep 7 18:46:02 2016
-noc AT babylon DOT network, Babylon Network, FR, France, Europe, TRUE, TRUE, No, http://fr.mirror.babylon.network/torproject/, https://fr.mirror.babylon.network/torproject/, rsync://fr.mirror.babylon.network/torproject/, ftp://fr.mirror.babylon.network/torproject/, http://fr.mirror.babylon.network/torproject/dist/, https://fr.mirror.babylon.network/torproject/dist/, rsync://fr.mirror.babylon.network/torproject/dist/, , Wed Sep 7 18:46:02 2016
+nick at calyx dot com, The Calyx Institute, US, United States, North America, TRUE, FALSE, No, http://tor.calyxinstitute.org, https://tor.calyxinstitute.org, , , http://tor.calyxinstitute.org/dist/, https://tor.calyxinstitute.org/dist/, , http://tmdrhl4e4anhsjc5.onion, Wed May 3 18:00:17 2017
+tor(a)armbrust.me, Michael Armbruster, FR, France, FR, TRUE, TRUE, No, http://tor.armbrust.me/, https://tor.armbrust.me/, rsync://tor.armbrust.me/tor, , http://tor.armbrust.me/dist/, https://tor.armbrust.me/dist, rsync://tor.armbrust.me/tor-dist, , Wed May 3 15:12:25 2017
+HdO Tor, HdO Tor Supporter, DE, Germany, US, TRUE, TRUE, No, http://tor.hdoev.de/, , , , http://tor.hdoev.de/dist/, , , , Wed Sep 7 22:46:02 2016
+Tor Fan, Tor Supporter, DE, Germany, Germany, TRUE, TRUE, No, http://torproject.mirror.metalgamer.eu/, https://torproject.mirror.metalgamer.eu/, , , http://torproject.mirror.metalgamer.eu/dist/, https://torproject.mirror.metalgamer.eu/dist/, , , Wed May 3 15:12:25 2017
+john AT quintex.com, Quintex Alliance Consulting, US, TX, US, TRUE, FALSE, No, http://torproject.quintex.com/, https://torproject.quintex.com, rsync://mirror.quintex.com/torprojectwebsite, ftp://mirror.quintex.com/torproject.org, http://torproject.quintex.com/dist, https://torproject.quintex.com/dist, rsync://mirror.quintex.com/torprojectdist, , Wed Sep 7 22:46:02 2016
+aldousa at riseup.net, michael ball (https://anarchism.me) US, United States, North America, TRUE, TRUE, No, http://mirrors.anarchism.me, https://mirrors.anarchism.me, , , http://mirrors.anarchism.me/dist, https://mirrors.anarchism.me/dist, , http://gaobjvqqrlotey4d.onion/, Sun Aug 7 02:40:00 2016
+noc AT babylon DOT network, Babylon Network, CA, Canada, CA, TRUE, TRUE, No, http://ca.mirror.babylon.network/torproject/, https://ca.mirror.babylon.network/torproject/, rsync://ca.mirror.babylon.network/torproject/, ftp://ca.mirror.babylon.network/torproject/, http://ca.mirror.babylon.network/torproject/dist/, https://ca.mirror.babylon.network/torproject/dist/, rsync://ca.mirror.babylon.network/torproject/dist/, , Wed May 3 15:12:25 2017
+noc AT babylon DOT network, Babylon Network, NL, The Netherlands, Europe, TRUE, TRUE, No, http://nl.mirror.babylon.network/torproject/, https://nl.mirror.babylon.network/torproject/, rsync://nl.mirror.babylon.network/torproject/, ftp://nl.mirror.babylon.network/torproject/, http://nl.mirror.babylon.network/torproject/dist/, https://nl.mirror.babylon.network/torproject/dist/, rsync://nl.mirror.babylon.network/torproject/dist/, , Wed May 3 18:00:17 2017
+noc AT babylon DOT network, Babylon Network, FR, France, Europe, TRUE, TRUE, No, http://fr.mirror.babylon.network/torproject/, https://fr.mirror.babylon.network/torproject/, rsync://fr.mirror.babylon.network/torproject/, ftp://fr.mirror.babylon.network/torproject/, http://fr.mirror.babylon.network/torproject/dist/, https://fr.mirror.babylon.network/torproject/dist/, rsync://fr.mirror.babylon.network/torproject/dist/, , Wed May 3 18:00:17 2017
Pool Toys, Pool Toys, SGP, Singapore, SGP, TRUE, TRUE, No, http://mirrors-sg.pooltoys.com/tor/, , rsync://mirrors-sg.pooltoys.com/tor/, ftp://mirrors-sg.pooltoys.com/tor/, http://mirrors-sg.pooltoys.com/tor/, , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
1
0

[translation/tor-browser-manual] Update translations for tor-browser-manual
by translation@torproject.org 03 May '17
by translation@torproject.org 03 May '17
03 May '17
commit 63f22dd09d6c2dd5d5f0fdae49f298a94cdb94a4
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed May 3 19:18:21 2017 +0000
Update translations for tor-browser-manual
---
ru/ru.po | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ru/ru.po b/ru/ru.po
index 8eb2f62..381005e 100644
--- a/ru/ru.po
+++ b/ru/ru.po
@@ -900,11 +900,11 @@ msgstr ""
#: onionsites.page:6
msgid "Services that are only accessible using Tor"
-msgstr ""
+msgstr "Службы, доступные только с использованием Tor"
#: onionsites.page:10
msgid "Onion Services"
-msgstr ""
+msgstr "Onion сервисы"
#: onionsites.page:11
msgid ""
1
0

[translation/whisperback] Update translations for whisperback
by translation@torproject.org 03 May '17
by translation@torproject.org 03 May '17
03 May '17
commit 02427259245001faaa198618b3d3e8d3613d636f
Author: Translation commit bot <translation(a)torproject.org>
Date: Wed May 3 19:15:16 2017 +0000
Update translations for whisperback
---
ru/ru.po | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/ru/ru.po b/ru/ru.po
index 919169a..cce2d50 100644
--- a/ru/ru.po
+++ b/ru/ru.po
@@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Andrey, 2017
# asdfqwer, 2015
# liquixis <liquixis(a)gmail.com>, 2013
# liquixis <liquixis(a)gmail.com>, 2012
@@ -14,8 +15,8 @@ msgstr ""
"Project-Id-Version: The Tor Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-20 12:09+0000\n"
-"PO-Revision-Date: 2017-03-21 08:24+0000\n"
-"Last-Translator: carolyn <carolyn(a)anhalt.org>\n"
+"PO-Revision-Date: 2017-05-03 19:14+0000\n"
+"Last-Translator: Andrey\n"
"Language-Team: Russian (http://www.transifex.com/otf/torproject/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -47,7 +48,7 @@ msgstr "Переменная %s из файлов конфигурации не
#: ../whisperBack/gui.py:110
msgid "Name of the affected software"
-msgstr ""
+msgstr "Название уязвимого программного обеспечения"
#: ../whisperBack/gui.py:112
msgid "Exact steps to reproduce the error"
1
0
commit 38a13b91a8d1f2eff623d3a6d125ccaf17164cf6
Author: Taylor Yu <catalyst(a)torproject.org>
Date: Wed May 3 13:08:32 2017 -0400
Fix additional leaks in #22103 tests
test_options_validate_impl() incorrectly executed subsequent phases of
config parsing and validation after an expected error. This caused
msg to leak when those later phases (which would likely produce errors
as well) overwrote it.
---
src/test/test_options.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/test/test_options.c b/src/test/test_options.c
index 291147b..d10a933 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -187,6 +187,8 @@ test_options_validate_impl(const char *configuration,
goto done;
}
tt_int_op((r == 0), OP_EQ, (msg == NULL));
+ if (r)
+ goto done;
r = config_assign(&options_format, opt, cl, 0, &msg);
if (phase == PH_ASSIGN) {
@@ -196,6 +198,8 @@ test_options_validate_impl(const char *configuration,
goto done;
}
tt_int_op((r == 0), OP_EQ, (msg == NULL));
+ if (r)
+ goto done;
r = options_validate(NULL, opt, dflt, 0, &msg);
if (phase == PH_VALIDATE) {
1
0

03 May '17
commit e7a7dce049904664f0c1d7ba99ff76779c23e9ea
Author: Tom Ritter <tom(a)ritter.vg>
Date: Fri Apr 14 23:42:30 2017 -0500
Ingest historical bwauth statistics data
Update the parseOldConsensuses.py script to ingest historical
bwauth data. Note that this script is generally run one time
and is not intended to be a well-maintained script for future use.
It needs care and feeding for each major run.
Additionally create a mergeDatabase script. This script...
probably does not do what we want. It's included mostly as a
placeholder for future development if we want to correct and use
it in the future.
---
mergeDatabases.py | 66 ++++++++++++++++
parseOldConsensuses.py | 208 ++++++++++++++++++++++++++++++++++++++++++++-----
utility.py | 8 ++
3 files changed, 263 insertions(+), 19 deletions(-)
diff --git a/mergeDatabases.py b/mergeDatabases.py
new file mode 100755
index 0000000..ac025f5
--- /dev/null
+++ b/mergeDatabases.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+
+import os
+import sys
+import time
+import sqlite3
+import datetime
+import operator
+import traceback
+import subprocess
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print "Usage: ", sys.argv[0], "src.db dest.db"
+ print "\tMerge all the data from src into dest"
+ sys.exit(1)
+
+ if not os.path.isfile(sys.argv[1]):
+ print "Source is not a file"
+ sys.exit(1)
+ if not os.path.isfile(sys.argv[2]):
+ print "Dest is not a file"
+ sys.exit(1)
+
+ src = sqlite3.connect(sys.argv[1])
+ dst = sqlite3.connect(sys.argv[2])
+
+ s_tbls = src.execute("SELECT name FROM sqlite_master WHERE type = 'table'")
+ for t in s_tbls:
+ t = t[0]
+ skip_table = False
+
+ d_tbl = dst.execute("SELECT name FROM sqlite_master WHERE type = 'table' and name = ?", (t,))
+ if not d_tbl.fetchone():
+ print "Skipping table", t, "which is in src but not in dst"
+ continue
+
+ s_cols = src.execute("PRAGMA table_info(" + t + ")")
+ d_cols = dst.execute("PRAGMA table_info(" + t + ")")
+ s_cols = s_cols.fetchall()
+ d_cols = d_cols.fetchall()
+ if len(s_cols) != len(d_cols):
+ print "Skipping table", t, "which has", len(s_cols), "columns in src and", len(d_cols)
+ continue
+ for i in range(len(s_cols)):
+ if s_cols[i] != d_cols[i]:
+ print "Skipping table", t, "because column", 1, "is", s_cols[i], "in src and", d_cols[i], "in dst"
+ skip_table = True
+
+ if skip_table:
+ continue
+
+ print "Merging table", t
+ merged = 0
+ s = src.execute("SELECT * FROM " + t)
+ for r in s.fetchall():
+ date = r[0]
+ has_value = False
+ for v in r[1:]:
+ if v:
+ has_value = True
+ if has_value:
+ merged += 1
+ dst.execute("INSERT OR REPLACE INTO " + t + " VALUES (" + ",".join("?" * len(r)) + ")", r)
+ dst.commit()
+ print "Inserted or updated", merged, "rows"
\ No newline at end of file
diff --git a/parseOldConsensuses.py b/parseOldConsensuses.py
index 834c386..defa2f5 100755
--- a/parseOldConsensuses.py
+++ b/parseOldConsensuses.py
@@ -18,6 +18,7 @@ import stem.util.conf
import stem.util.enum
from stem import Flag
+from stem.descriptor.reader import DescriptorReader
from stem.util.lru_cache import lru_cache
def get_dirauths_in_tables():
@@ -48,17 +49,23 @@ def get_dirauth_from_filename(filename):
return "tor26"
elif key == "0232AF901C31A04EE9848595AF9BB7620D4C5B2E" or key == "585769C78764D58426B8B52B6651A5A71137189A":
return "dannenberg"
- elif key == "27B6B5996C426270A5C95488AA5BCEB6BCC86956":
- return "turtles"
+ elif key == "27B6B5996C426270A5C95488AA5BCEB6BCC86956":
+ return "turtles"
else:
raise Exception("Unexpcected dirauth key: " + key + " " + filename)
def unix_time(dt):
return (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds() * 1000.0
+def ut_to_datetime(ut):
+ return datetime.datetime.utcfromtimestamp(ut / 1000)
+
+def ut_to_datetime_format(ut):
+ return ut_to_datetime(ut).strftime("%Y-%m-%d-%H-%M-%S")
+
def get_time_from_filename(filename):
voteTime = filename.split('-')
- if len(voteTime) < 9:
+ if len(voteTime) < 7:
raise Exception("Strange filename: " + filename)
v = [int(x) for x in filename.split('-')[0:6]]
@@ -66,26 +73,30 @@ def get_time_from_filename(filename):
voteTime = unix_time(voteTime)
return voteTime
-def main(dir):
- dirAuths = get_dirauths_in_tables()
- dbc = sqlite3.connect(os.path.join('data', 'historical.db'))
-
+def dirauth_relay_votes(directory, dirAuths, dbc):
dirauth_columns = ""
dirauth_columns_questions = ""
for d in dirAuths:
dirauth_columns += d + "_known integer, " + d + "_running integer, " + d + "_bwauth integer, "
dirauth_columns_questions += ",?,?,?"
+ dbc.execute("CREATE TABLE IF NOT EXISTS vote_data(date integer, " + dirauth_columns + "PRIMARY KEY(date ASC))")
+ dbc.commit()
+
votes = {}
- for root, dirs, files in os.walk(dir):
+ for root, dirs, files in os.walk(directory):
for f in files:
- filepath = os.path.join(root, f)
- print filepath
+ filepath = os.path.join(root, f)
+ print filepath
if '"' in f:
raise Exception("Potentially malicious filename")
- elif "votes-" in f and ".tar" in f:
- continue
+ elif "votes-" in f and ".tar" in f:
+ continue
+ elif "consensuses-" in f and ".tar" in f:
+ continue
+ elif "-vote-" not in f:
+ continue
voteTime = get_time_from_filename(f)
if voteTime not in votes:
@@ -104,11 +115,8 @@ def main(dir):
votes[voteTime][dirauth]['running'] = int(subprocess.check_output('egrep "^s " "' + filepath + '" | grep " Running" | wc -l', shell=True))
votes[voteTime][dirauth]['bwlines'] = int(subprocess.check_output('grep Measured= "' + filepath + '" | wc -l', shell=True))
- dbc.execute("CREATE TABLE IF NOT EXISTS vote_data(date integer, " + dirauth_columns + "PRIMARY KEY(date ASC))")
- dbc.commit()
-
for t in votes:
- print t
+ print ut_to_datetime(t)
print "\t", len(votes[t])
for d in votes[t]:
print "\t", d, votes[t][d]['bwlines'], votes[t][d]['running']
@@ -127,13 +135,175 @@ def main(dir):
dbc.execute("INSERT OR REPLACE INTO vote_data VALUES (?" + dirauth_columns_questions + ")", insertValues)
dbc.commit()
+def bwauth_measurements(directory, dirAuths, dbc):
+ #Find all the consensuses and votesrm
+ votes = {}
+ consensuses = {}
+ for root, dirs, files in os.walk(directory):
+ for f in files:
+ filepath = os.path.join(root, f)
+
+ if '"' in f:
+ raise Exception("Potentially malicious filename")
+ elif "votes-" in f and ".tar" in f:
+ continue
+ elif "consensuses-" in f and ".tar" in f:
+ continue
+
+ if "-consensus" in f:
+ consensusTime = get_time_from_filename(f)
+ if consensusTime not in consensuses:
+ consensuses[consensusTime] = filepath
+ else:
+ print "Found two consensuses with the same time:", ut_to_datetime(consensusTime)
+
+ #print "Consensus:", filepath
+ elif "-vote-" in f:
+ voteTime = get_time_from_filename(f)
+
+ # Test to see if we already processed this one
+ cur = dbc.cursor()
+ cur.execute("SELECT * FROM bwauth_data WHERE date = ?", (voteTime,))
+ if cur.fetchone():
+ print "Skipping", f, "because we already processed it"
+ continue
+ elif voteTime not in votes:
+ votes[voteTime] = {}
+
+ dirauth = get_dirauth_from_filename(f)
+
+ if dirauth not in dirAuths:
+ raise Exception("Found a dirauth I don't know about (probably spelling): " + dirauth)
+ elif dirauth not in votes[voteTime]:
+ votes[voteTime][dirauth] = filepath
+ else:
+ print "Found two votes for dirauth " + dirauth + ":", filepath, "and", votes[voteTime][dirauth]
+
+ #print "Vote:", dirauth, filepath
+
+ #Make sure we have a consensus for each vote
+ to_del = []
+ for v in votes:
+ if v not in consensuses:
+ print "Have votes for time", ut_to_datetime(v), "but no consensus!"
+ to_del.append(v)
+ #sys.exit(1)
+ for i in to_del:
+ del votes[i]
+
+ #Make the table
+ bwauth_columns = ""
+ bwauth_columns_questions = ""
+ for d in dirAuths:
+ bwauth_columns += d + "_above integer, " + d + "_shared integer, " + d + "_exclusive integer, " + d + "_below integer, " + d + "_unmeasured integer, "
+ bwauth_columns_questions += ",?,?,?,?,?"
+
+ dbc.execute("CREATE TABLE IF NOT EXISTS bwauth_data(date integer, " + bwauth_columns + "PRIMARY KEY(date ASC))")
+ dbc.commit()
+
+ reviewed = 0
+ for v in votes:
+ reviewed += 1
+ print "Reviewing", consensuses[v], "(" + str(reviewed) + "/" + str(len(votes)) + ")"
+
+ #Get the consensus data
+ consensusRouters = {}
+ with DescriptorReader(consensuses[v]) as reader:
+ reader.register_skip_listener(my_listener)
+ for relay in reader:
+ consensusRouters[relay.fingerprint] = "Unmeasured" if relay.is_unmeasured else relay.bandwidth
+
+ #The vote data
+ bwauthVotes = {}
+ for d in votes[v]:
+ if d not in bwauthVotes:
+ bwauthVotes[d] = {}
+
+ measured_something = False
+ with DescriptorReader(votes[v][d]) as reader:
+ reader.register_skip_listener(my_listener)
+ for relay in reader:
+ if relay.measured:
+ bwauthVotes[d][relay.fingerprint] = relay.measured
+ measured_something = True
+ if not measured_something:
+ del bwauthVotes[d]
+
+ #Now match them up and store the data
+ thisConsensusResults = {}
+ for r in consensusRouters:
+ for d in bwauthVotes:
+ had_any_value = False
+ if d not in thisConsensusResults:
+ thisConsensusResults[d] = {'unmeasured' : 0, 'above' : 0, 'below' : 0, 'exclusive' : 0 , 'shared' : 0}
+
+ if consensusRouters[r] == "Unmeasured":
+ continue
+ elif r not in bwauthVotes[d]:
+ had_any_value = True
+ thisConsensusResults[d]['unmeasured'] += 1
+ elif consensusRouters[r] < bwauthVotes[d][r]:
+ had_any_value = True
+ thisConsensusResults[d]['above'] += 1
+ elif consensusRouters[r] > bwauthVotes[d][r]:
+ had_any_value = True
+ thisConsensusResults[d]['below'] += 1
+ elif consensusRouters[r] == bwauthVotes[d][r] and \
+ 1 == len([1 for d_i in bwauthVotes if d_i in bwauthVotes and r in bwauthVotes[d_i] and bwauthVotes[d_i][r] == consensusRouters[r]]):
+ had_any_value = True
+ thisConsensusResults[d]['exclusive'] += 1
+ elif consensusRouters[r] == bwauthVotes[d][r] and \
+ 1 != len([1 for d_i in bwauthVotes if d_i in bwauthVotes and r in bwauthVotes[d_i] and bwauthVotes[d_i][r] == consensusRouters[r] ]):
+ had_any_value = True
+ thisConsensusResults[d]['shared'] += 1
+ else:
+ print "What case am I in???"
+ sys.exit(1)
+
+ if not had_any_value:
+ del thisConsensusResults[d]
+
+ insertValues = [v]
+ for d in dirAuths:
+ if d in thisConsensusResults:
+ insertValues.append(thisConsensusResults[d]['above'])
+ insertValues.append(thisConsensusResults[d]['shared'])
+ insertValues.append(thisConsensusResults[d]['exclusive'])
+ insertValues.append(thisConsensusResults[d]['below'])
+ insertValues.append(thisConsensusResults[d]['unmeasured'])
+ else:
+ insertValues.append(None)
+ insertValues.append(None)
+ insertValues.append(None)
+ insertValues.append(None)
+ insertValues.append(None)
+
+ dbc.execute("INSERT OR REPLACE INTO bwauth_data VALUES (?" + bwauth_columns_questions + ")", insertValues)
+ dbc.commit()
+
+def my_listener(path, exception):
+ print "Skipped!"
+ print path
+ print exception
+
+
+def main(itype, directory):
+ dirAuths = get_dirauths_in_tables()
+ dbc = sqlite3.connect(os.path.join('data', 'historical.db'))
+
+ if itype == "dirauth_relay_votes":
+ dirauth_relay_votes(directory, dirAuths, dbc)
+ elif itype == "bwauth_measurements":
+ bwauth_measurements(directory, dirAuths, dbc)
+ else:
+ print "Unknown ingestion type"
if __name__ == '__main__':
try:
- if len(sys.argv) != 2:
- print "Usage: ", sys.argv[0], "vote-directory"
+ if len(sys.argv) != 3:
+ print "Usage: ", sys.argv[0], "ingestion-type vote-directory"
else:
- main(sys.argv[1])
+ main(sys.argv[1], sys.argv[2])
except:
msg = "%s failed with:\n\n%s" % (sys.argv[0], traceback.format_exc())
print "Error: %s" % msg
diff --git a/utility.py b/utility.py
index 6cebe6b..aeb7b8d 100644
--- a/utility.py
+++ b/utility.py
@@ -84,3 +84,11 @@ def _get_documents(label, resource):
def unix_time(dt):
return (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds() * 1000.0
+def ut_to_datetime(ut):
+ return datetime.datetime.utcfromtimestamp(ut / 1000)
+
+def ut_to_datetime_format(ut):
+ return consensus_datetime_format(ut_to_datetime(ut))
+
+def consensus_datetime_format(dt):
+ return dt.strftime("%Y-%m-%d-%H-%M-%S")
1
0

03 May '17
commit 4386adee38d7740b54572fe575f24639f87c2e90
Author: Tom Ritter <tom(a)ritter.vg>
Date: Fri Apr 14 23:42:09 2017 -0500
Add bwauth statistics graphs to graphs.py
---
graphs.py | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 208 insertions(+), 28 deletions(-)
diff --git a/graphs.py b/graphs.py
index 6ed4a1f..65de394 100755
--- a/graphs.py
+++ b/graphs.py
@@ -61,17 +61,23 @@ class GraphWriter(WebsiteWriter):
+ " font-size: 16px;\n"
+ " text-decoration: underline;\n"
+ " }\n"
+ + " .bwauth-graph-title {\n"
+ + " font-size: 12px;\n"
+ + " text-decoration: underline;\n"
+ + " }\n"
+ " .graphbox {\n"
+ " text-align: center;\n"
+ " display: none;\n"
+ " }\n"
-
- + " .auth1 {\n"
+ + " .auth1, .steelblue {\n"
+ " fill: none;\n"
+ " stroke: steelblue;\n"
+ " background-color: steelblue;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
+ + " .steelblue {\n"
+ + " fill: steelblue;\n"
+ + " }\n"
+ " .auth2, .orange {\n"
+ " fill: none;\n"
+ " stroke: orange;\n"
@@ -79,14 +85,17 @@ class GraphWriter(WebsiteWriter):
+ " stroke-width: 1.5px;\n"
+ " }\n"
+ " .orange {\n"
- + " fill: orange;"
+ + " fill: orange;\n"
+ " }\n"
- + " .auth3 {\n"
+ + " .auth3, .yellow {\n"
+ " fill: none;\n"
+ " stroke: yellow;\n"
+ " background-color: yellow;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
+ + " .yellow {\n"
+ + " fill: yellow;\n"
+ + " }\n"
+ " .auth4, .green {\n"
+ " fill: none;\n"
+ " stroke: green;\n"
@@ -94,7 +103,7 @@ class GraphWriter(WebsiteWriter):
+ " stroke-width: 1.5px;\n"
+ " }\n"
+ " .green {\n"
- + " fill: green;"
+ + " fill: green;\n"
+ " }\n"
+ " .auth5, .red {\n"
+ " fill: none;\n"
@@ -103,39 +112,50 @@ class GraphWriter(WebsiteWriter):
+ " stroke-width: 1.5px;\n"
+ " }\n"
+ " .red {\n"
- + " fill: red;"
+ + " fill: red;\n"
+ " }\n"
- + " .auth6 {\n"
+ + " .auth6, .purple {\n"
+ " fill: none;\n"
+ " stroke: purple;\n"
+ " background-color: purple;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
+ + " .purple {\n"
+ + " fill: purple;\n"
+ + " }\n"
+ " .auth7 {\n"
+ " fill: none;\n"
+ " stroke: black;\n"
+ " background-color: black;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
- + " .auth8 {\n"
+ + " .auth8, .blue {\n"
+ " fill: none;\n"
+ " stroke: #0000FF;\n"
+ " background-color: #0000FF;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
- + " .auth9 {\n"
+ + " .blue {\n"
+ + " fill: blue;\n"
+ + " }\n"
+ + " .auth9, .limegreen {\n"
+ " fill: none;\n"
+ " stroke: limegreen;\n"
+ " background-color: limegreen;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
- + " .auth10 {\n"
+ + " .limegreen {\n"
+ + " fill: limegreen;\n"
+ + " }\n"
+ + " .auth10, .pink {\n"
+ " fill: none;\n"
+ " stroke: pink;\n"
+ " background-color: pink;\n"
+ " stroke-width: 1.5px;\n"
+ " }\n"
-
+ + " .pink {\n"
+ + " fill: pink;\n"
+ + " }\n"
+ " </style>\n"
+ " <div class=\"center\">\n"
+ " <div class=\"main-column\">\n"
@@ -251,6 +271,20 @@ class GraphWriter(WebsiteWriter):
self.site.write(" </div>\n"
+ " </td>\n"
+ " </tr>\n")
+ def _write_bandwidth_scanner_statistics_graphs_spot(self, divName, timeframe):
+ self.site.write(" <tr>\n"
+ + " <td>\n"
+ + " <div id=\"" + str(divName) + "\" class=\"graphbox\">\n"
+ + " <span class=\"graph-title\">Bandwidth Auth Statistics, Past " + timeframe + " Days</span>\n"
+ + " <br />\n"
+ + " <span class=\"steelblue\" style=\"margin-left:5px\"> </span> above\n"
+ + " <span class=\"purple\" style=\"margin-left:5px\"> </span> shared\n"
+ + " <span class=\"green\" style=\"margin-left:5px\"> </span> exclusive\n"
+ + " <span class=\"orange\" style=\"margin-left:5px\"> </span> below\n"
+ + " <span class=\"blue\" style=\"margin-left:5px\"> </span> unmeasured\n"
+ + " </div>\n"
+ + " </td>\n"
+ + " </tr>\n")
def _write_bandwidth_scanner_graphs(self):
"""
Write the graphs of the bandwidth scanners
@@ -276,6 +310,10 @@ class GraphWriter(WebsiteWriter):
self._write_bandwidth_scanner_graphs_spot("bwauth_measured_2", get_bwauths())
self._write_bandwidth_scanner_graphs_spot("bwauth_measured_3", get_bwauths())
self._write_bandwidth_scanner_graphs_spot("bwauth_measured_4", get_bwauths())
+ self._write_bandwidth_scanner_statistics_graphs_spot("bwauths_stats_1", "7")
+ self._write_bandwidth_scanner_statistics_graphs_spot("bwauths_stats_2", "14")
+ self._write_bandwidth_scanner_statistics_graphs_spot("bwauths_stats_3", "30")
+ self._write_bandwidth_scanner_statistics_graphs_spot("bwauths_stats_4", "90")
#self._write_bandwidth_scanner_graphs_spot("bwauth_running_unmeasured_1")
#self._write_bandwidth_scanner_graphs_spot("bwauth_running_unmeasured_2")
#self._write_bandwidth_scanner_graphs_spot("bwauth_running_unmeasured_3")
@@ -286,9 +324,12 @@ class GraphWriter(WebsiteWriter):
s = """<script>
var AUTH_LOGICAL_MIN = """ + str(self.config['graph_logical_min']) + """,
AUTH_LOGICAL_MAX = """ + str(self.config['graph_logical_max']) + """;
- var WIDTH = 800,
- HEIGHT = 500,
- MARGIN = {top: 40, right: 40, bottom: 40, left: 40};
+ var WIDTH = 800, BWAUTH_WIDTH = 800,
+ HEIGHT = 500, BWAUTH_HEIGHT = 200,
+ MARGIN = {top: 40, right: 40, bottom: 40, left: 40},
+ BWAUTH_MARGIN = {top: 14, right: 40, bottom: 20, left: 40};
+
+
var bwauths = """ + str(get_bwauths().keys()) + """;
var dirauths = """ + str(get_dirauths().keys()) + """;
@@ -336,7 +377,8 @@ class GraphWriter(WebsiteWriter):
data_func: _getBandwidthDataValue, authorities: bwauths, min_ignore_limit:AUTH_LOGICAL_MIN, max_ignore_limit:AUTH_LOGICAL_MAX },
{ title: "BWAuth Measured Relays, Past 90 Days", data_slice: 2160, div: "bwauth_measured_4",
data_func: _getBandwidthDataValue, authorities: bwauths, min_ignore_limit:AUTH_LOGICAL_MIN, max_ignore_limit:AUTH_LOGICAL_MAX },
-/* These graphs are very misleading and not helpful
+
+ /* These graphs are very misleading and not helpful
{ title: "BWAuth Running Unmeasured Relays, Past 30 Days", data_slice: 720, div: "bwauth_running_unmeasured_1",
data_func: _getRunningUnmeasuredDataValue, authorities: bwauths, min_ignore_limit:-1000, max_ignore_limit:AUTH_LOGICAL_MAX },
{ title: "BWAuth Running Unmeasured Relays, Past 90 Days", data_slice: 2160, div: "bwauth_running_unmeasured_2",
@@ -345,22 +387,34 @@ class GraphWriter(WebsiteWriter):
data_func: _getRunningUnmeasuredDataValue, authorities: bwauths, min_ignore_limit:-1000, max_ignore_limit:AUTH_LOGICAL_MAX },
{ title: "BWAuth Running Unmeasured Relays, Past 2 Years", data_slice: 17520, div: "bwauth_running_unmeasured_4",
data_func: _getRunningUnmeasuredDataValue, authorities: bwauths, min_ignore_limit:-1000, max_ignore_limit:AUTH_LOGICAL_MAX },
-*/
+ */
];
- var FALLBACK_GRAPHS_TO_GENERATE = [
- { title: "Fallback Directories Running, Past 7 Days", data_slice: 168, div: "fallbackdirs_1",
- data_func: _getRunningDataValue, authorities: dirauths, min_ignore_limit:AUTH_LOGICAL_MIN, max_ignore_limit:AUTH_LOGICAL_MAX },
- { title: "Fallback Directories Running, Past 14 Days", data_slice: 336, div: "fallbackdirs_2",
- data_func: _getRunningDataValue, authorities: dirauths, min_ignore_limit:AUTH_LOGICAL_MIN, max_ignore_limit:AUTH_LOGICAL_MAX },
- { title: "Fallback Directories Running, Past 30 Days", data_slice: 720, div: "fallbackdirs_3",
- data_func: _getRunningDataValue, authorities: dirauths, min_ignore_limit:AUTH_LOGICAL_MIN, max_ignore_limit:AUTH_LOGICAL_MAX },
- { title: "Fallback Directories Running, Past 90 Days", data_slice: 2160, div: "fallbackdirs_4",
- data_func: _getRunningDataValue, authorities: dirauths, min_ignore_limit:AUTH_LOGICAL_MIN, max_ignore_limit:AUTH_LOGICAL_MAX },
- ];
+ var FALLBACK_GRAPHS_TO_GENERATE = [
+ { title: "Fallback Directories Running, Past 7 Days", data_slice: 168, div: "fallbackdirs_1",
+ data_func: null, authorities: dirauths, min_ignore_limit:null, max_ignore_limit:null },
+ { title: "Fallback Directories Running, Past 14 Days", data_slice: 336, div: "fallbackdirs_2",
+ data_func: null, authorities: dirauths, min_ignore_limit:null, max_ignore_limit:null },
+ { title: "Fallback Directories Running, Past 30 Days", data_slice: 720, div: "fallbackdirs_3",
+ data_func: null, authorities: dirauths, min_ignore_limit:null, max_ignore_limit:null },
+ { title: "Fallback Directories Running, Past 90 Days", data_slice: 2160, div: "fallbackdirs_4",
+ data_func: null, authorities: dirauths, min_ignore_limit:null, max_ignore_limit:null },
+ ];
+
+ var BWAUTH_GRAPHS_TO_GENERATE = [
+ { title: "Bandwidth Auth Statistics, Past 7 Days", data_slice: 168, div: "bwauths_stats_1",
+ data_func: null, authorities: bwauths, min_ignore_limit:null, max_ignore_limit:null },
+ { title: "Bandwidth Auth Statistics, Past 14 Days", data_slice: 336, div: "bwauths_stats_2",
+ data_func: null, authorities: bwauths, min_ignore_limit:null, max_ignore_limit:null },
+ { title: "Bandwidth Auth Statistics, Past 30 Days", data_slice: 720, div: "bwauths_stats_3",
+ data_func: null, authorities: bwauths, min_ignore_limit:null, max_ignore_limit:null },
+ { title: "Bandwidth Auth Statistics, Past 90 Days", data_slice: 2160, div: "bwauths_stats_4",
+ data_func: null, authorities: bwauths, min_ignore_limit:null, max_ignore_limit:null },
+ ];
relays_done = false;
fallbackdirs_done = ignore_fallback_dirs;
+ bwauth_done = false;
fetch("vote-stats.csv").then(function(response) {
return response.text();
}).then(function(text) {
@@ -485,7 +539,7 @@ class GraphWriter(WebsiteWriter):
}
relays_done = true;
- if(fallbackdirs_done) {
+ if(fallbackdirs_done && bwauth_done) {
var toShow = document.getElementsByClassName('graphbox');
for(i=0; i<toShow.length; i++) {
toShow[i].style.display = 'block';
@@ -498,6 +552,132 @@ class GraphWriter(WebsiteWriter):
});
+ // ===========================================================================================
+ // ===========================================================================================
+
+ fetch("bwauth-stats.csv").then(function(response) {
+ return response.text();
+ }).then(function(text) {
+ return d3.csvParse(text, function(d) {
+ for(i in d) {
+ if(i == "date")
+ d[i] = new Date(Number(d[i]));
+ else
+ d[i] = Number(d[i]);
+ }
+ return d;
+ });
+ }).then(function(data) {
+ for(g in BWAUTH_GRAPHS_TO_GENERATE)
+ {
+ graph = BWAUTH_GRAPHS_TO_GENERATE[g];
+
+ var key_to_color = function(k) {
+ if(k.includes("_above"))
+ return "steelblue";
+ else if(k.includes("_shared"))
+ return "purple";
+ else if(k.includes("_exclusive"))
+ return "green";
+ else if(k.includes("_below"))
+ return "orange";
+ else
+ return "blue";
+ };
+
+ if(graph.data_slice+1 > data.length) {
+ data_subset = data.slice(0);
+ console.log("("+graph.title+") Requested " + (graph.data_slice+1) + " but there are only " + data.length + " items...");
+ }
+ else
+ data_subset = data.slice(0, graph.data_slice);
+ data_subset.reverse();
+
+ for(a in graph.authorities)
+ {
+ a = graph.authorities[a];
+
+ max = 0;
+ for(d in data_subset)
+ {
+ x = data_subset[d][a + "_above"] +
+ data_subset[d][a + "_shared"] +
+ data_subset[d][a + "_exclusive"] +
+ data_subset[d][a + "_below"] +
+ data_subset[d][a + "_unmeasured"];
+ if(x > max)
+ max = x;
+ }
+
+ var x = d3.scaleTime()
+ .domain([data_subset[0].date, data_subset[data_subset.length-1].date])
+ .range([0, BWAUTH_WIDTH]);
+
+ var y = d3.scaleLinear()
+ .domain([0, max])
+ .range([BWAUTH_HEIGHT, 0]);
+
+ var stack = d3.stack()
+ .keys([a + "_unmeasured", a + "_below", a + "_exclusive", a + "_shared", a + "_above"])
+ .order(d3.stackOrderNone)
+ .offset(d3.stackOffsetNone);
+
+ var area = d3.area()
+ .x(function(d, i) { return x(d.data.date); })
+ .y0(function(d) { return y(d[0]); })
+ .y1(function(d) { return y(d[1]); });
+
+ var svg = d3.select("#" + graph.div).append("svg")
+ .attr("width", BWAUTH_WIDTH + BWAUTH_MARGIN.left + BWAUTH_MARGIN.right)
+ .attr("height", BWAUTH_HEIGHT + BWAUTH_MARGIN.top + BWAUTH_MARGIN.bottom)
+ .append("g")
+ .attr("transform", "translate(" + BWAUTH_MARGIN.left + "," + BWAUTH_MARGIN.top + ")");
+
+ var layer = svg.selectAll(".layer")
+ .data(stack(data_subset))
+ .enter().append("g")
+ //.attr("class", "layer");
+
+ layer.append("path")
+ //.attr("class", "area")
+ .attr("class", function(d) { return key_to_color(d.key); })
+ .attr("d", area);
+
+ svg.append("g")
+ .attr("class", "axis axis--x")
+ .attr("transform", "translate(0," + BWAUTH_HEIGHT + ")")
+ .call(d3.axisBottom().scale(x));
+
+ svg.append("g")
+ .attr("class", "axis axis--y")
+ .call(d3.axisLeft().scale(y));
+
+ svg.append("text")
+ .attr("x", (BWAUTH_WIDTH / 2))
+ .attr("y", 5 - (BWAUTH_MARGIN.top / 2))
+ .attr("text-anchor", "middle")
+ .attr("class", "bwauth-graph-title")
+ .text(a);
+ }
+ }
+
+
+ bwauth_done = true;
+ if(relays_done && fallbackdirs_done) {
+ var toShow = document.getElementsByClassName('graphbox');
+ for(i=0; i<toShow.length; i++) {
+ toShow[i].style.display = 'block';
+ }
+ var toHide = document.getElementsByClassName('graphplaceholder');
+ for(i=0; i<toHide.length; i++) {
+ toHide[i].style.display = 'none';
+ }
+ }
+ });
+
+ // ===========================================================================================
+ // ===========================================================================================
+
if(!ignore_fallback_dirs) {
fetch("fallback-dir-stats.csv").then(function(response) {
@@ -619,7 +799,7 @@ class GraphWriter(WebsiteWriter):
fallbackdirs_done = true;
- if(relays_done) {
+ if(relays_done && bwauth_done) {
var toShow = document.getElementsByClassName('graphbox');
for(i=0; i<toShow.length; i++) {
toShow[i].style.display = 'block';
1
0

[depictor/master] Also output the entire history of bwauth stats for a historical analysis
by tom@torproject.org 03 May '17
by tom@torproject.org 03 May '17
03 May '17
commit bbd41efd441cd6d12f55bd22561e6f840258e91e
Author: Tom Ritter <tom(a)ritter.vg>
Date: Wed May 3 11:18:56 2017 -0500
Also output the entire history of bwauth stats for a historical analysis
---
write_website.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/write_website.py b/write_website.py
index 23ff8d7..fe2c219 100755
--- a/write_website.py
+++ b/write_website.py
@@ -282,6 +282,17 @@ def main():
f.write("\n")
f.close()
+ bwauth_data = dbc.execute("SELECT * from bwauth_data ORDER BY date DESC")
+ f = open(os.path.join(os.path.dirname(__file__), 'out', 'bwauth-stats-all.csv'), 'w')
+ for c in bwauth_data_columns:
+ f.write(c + ",")
+ f.write("\n")
+ for r in bwauth_data.fetchall():
+ for v in r:
+ f.write(("0" if v == None else str(v)) + ",")
+ f.write("\n")
+ f.close()
+
# produces the website
w = WebsiteWriter()
w.set_config(CONFIG)
1
0