Compare commits

...

44 Commits

Author SHA1 Message Date
R4SAS 7611296f63 update changelog
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-13 12:54:00 +03:00
R4SAS b63dbb5223 update i2pd assets
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-13 12:50:31 +03:00
R4SAS ed985c6082 add fastlane uzbek translation
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-13 03:26:50 +03:00
R4SAS 8bdb77b4cf add uzbek translation
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-13 03:00:30 +03:00
R4SAS d57a241d6e move log messages, add 2.41.0.1 changelog
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-09 21:06:24 +03:00
R4SAS ae3016e4b7 change version code, log levels, stopping message
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-09 20:45:09 +03:00
R4SAS 4be1d99e8f set datadir in daemon before init
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-09 20:11:16 +03:00
R4SAS 578a97f549 fix JNI string release before executing C++ functions, update gradle to 7.1.3
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-09 01:11:53 +03:00
R4SAS 21a7200b34 [gha] use ndk 21.4.7075529
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-06 22:29:29 +03:00
R4SAS 84636050c6 update i2pd to trunk
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-06 22:25:26 +03:00
R4SAS f363c10040 fix assets unpack when not required
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-06 22:24:42 +03:00
R4SAS 67fb27a6ce remove unused settings activity code, fix calling on 4.4
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-03-31 01:49:20 +03:00
R4SAS c62429513f add minimal preferences layout
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-03-30 20:50:34 +03:00
R4SAS 1b09291b84 [gha] upload artifacts to separate archives
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-03-30 04:52:54 +03:00
R4SAS c74b3f7ff0 [gha] use jdk 1.11
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-03-30 04:49:52 +03:00
R4SAS 75d444f374 rework main ui, change theme, remove unused code
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-03-30 03:58:16 +03:00
r4sas ba6fb5bbb9 switch boost to 1.74.0, ndk to 21.4.7075529
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-03-29 20:28:19 +00:00
Oğuz Ersen 4c0cc3f637 add turkish translation 2022-02-27 18:31:17 +03:00
r4sas c345816030 [gha] add binary build
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-02-21 20:19:55 +00:00
r4sas 4ee4f94c18 2.41.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-02-20 14:49:02 +00:00
R4SAS b4fbfa782e [i2pd] update to trunk
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-02-16 16:28:36 +03:00
R4SAS 328502fd19 add pre-2.41.0 changelog
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-02-16 16:24:19 +03:00
R4SAS 45fd6b619c [i2pd] update to trunk
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-02-16 16:24:19 +03:00
r4sas e8ca0c20c5 fix typo
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-02-08 19:47:55 +00:00
r4sas 245a8c09b2 readme: cmake 3.18.1
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-02-08 19:31:06 +00:00
r4sas 0191d6a228 update libraries, add binary build files
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-02-08 19:29:39 +00:00
R4SAS 1a686fe979 update to trunk, enable stack-protector
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-02-07 23:05:22 +03:00
Poussinou 8fa3121a90 Update README.md (#35) 2022-02-03 22:39:56 +03:00
R4SAS 92324f84b0 [fastlane] fix typo
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-02-02 21:38:57 +03:00
R4SAS d14589f944 test logo usage with mipmap and pre-rendered icon
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-01-30 02:40:31 +03:00
R4SAS 8938481432 test logo usage with mipmap and pre-rendered icon
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-01-30 01:54:44 +03:00
R4SAS 140161d453 Update README.md 2022-01-29 17:51:20 +03:00
r4sas 24f9be058a switch i2pd to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 12:28:50 +00:00
r4sas 98f3cae415 forward openssl build log to file
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 11:40:39 +00:00
r4sas cb8095f939 suppress deprecation warnings
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 11:10:34 +00:00
r4sas ec003b9971 revert target to 29
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 11:02:34 +00:00
r4sas 3513053d37 update gradlew, gh action
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 10:41:57 +00:00
r4sas 5b2d7f39ae modify build flags to reduce output
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 10:08:54 +00:00
r4sas 8b91fc0198 [gha] switch to r23b
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 09:37:54 +00:00
r4sas d6bfbc954d switch target to 31, boost to 1.78.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-01-28 09:26:31 +00:00
R4SAS 292a67d1be [fastlane] add russian description
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-01-28 05:13:28 +03:00
R4SAS c85c4fb6c1 [jni] switch to build from sources (#32) 2022-01-27 17:39:30 +03:00
r4sas d9bbe52238 2.40.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2021-11-28 03:00:39 +00:00
R4SAS de53cd0e75 update addressbook
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2021-11-28 04:51:58 +03:00
76 changed files with 2093 additions and 906 deletions
+62 -5
View File
@@ -9,22 +9,79 @@ jobs:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup JDK 1.8
- name: Install rename tool
run: |
sudo apt-get update
sudo apt-get install -y g++ rename
- name: Setup JDK 1.11
uses: actions/setup-java@v1
with:
java-version: 1.8
java-version: 1.11
- name: Setup Android SDK
uses: maxim-lobanov/setup-android-tools@v1
with:
packages: |
build-tools;28.0.3
platforms;android-29
ndk;20.0.5594570
build-tools;31.0.0
platforms;android-31
ndk;21.4.7075529
cmake;3.18.1
cache: true
- name: Build required modules
run: |
export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
pushd app/jni
sed -i -e 's/d+2/d+0/' boost/build-android.sh
./build_boost.sh
./build_openssl.sh
./build_miniupnpc.sh
popd
- name: Build with Gradle
run: ./gradlew --no-daemon assembleDebug
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: android-apks
path: app/build/outputs/apk/debug/*.apk
build-binary:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Install rename tool
run: |
sudo apt-get update
sudo apt-get install -y g++ rename
- name: Setup JDK 1.11
uses: actions/setup-java@v1
with:
java-version: 1.11
- name: Setup Android SDK
uses: maxim-lobanov/setup-android-tools@v1
with:
packages: |
ndk;21.4.7075529
cmake;3.18.1
cache: true
- name: Build required modules
run: |
export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
pushd binary/jni
sed -i -e 's/d+2/d+0/' boost/build-android.sh
./build_boost.sh
./build_openssl.sh
./build_miniupnpc.sh
popd
- name: Build binaries with NDK
run: |
pushd binary/jni
$ANDROID_NDK_HOME/ndk-build -j2 NDK_MODULE_PATH=$PWD
popd
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: android-binaries
path: binary/libs/*
+10 -11
View File
@@ -1,17 +1,16 @@
[submodule "android-ifaddrs"]
path = app/jni/android-ifaddrs
url = https://github.com/PurpleI2P/android-ifaddrs.git
[submodule "i2pd"]
path = app/jni/i2pd
url = https://github.com/PurpleI2P/i2pd.git
branch = openssl
[submodule "boost"]
path = app/jni/boost
url = https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git
branch = boost-1_72_0
[submodule "openssl"]
path = app/jni/openssl
url = https://github.com/PurpleI2P/OpenSSL-for-Android-Prebuilt.git
[submodule "miniupnp"]
path = app/jni/miniupnp
url = https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git
[submodule "android-ifaddrs"]
path = app/jni/android-ifaddrs
url = https://github.com/PurpleI2P/android-ifaddrs.git
url = https://github.com/miniupnp/miniupnp.git
[submodule "openssl"]
path = app/jni/openssl
url = https://github.com/openssl/openssl.git
[submodule "boost"]
path = app/jni/boost
url = https://github.com/moritz-wundke/Boost-for-Android.git
+48 -8
View File
@@ -1,19 +1,59 @@
[![GitHub release](https://img.shields.io/github/release/PurpleI2P/i2pd-android.svg?label=latest%20release)](https://github.com/PurpleI2P/i2pd-android/releases/latest)
[![License](https://img.shields.io/github/license/PurpleI2P/i2pd-android.svg)](https://github.com/PurpleI2P/i2pd-android/blob/openssl/LICENSE)
[![Android CI](https://github.com/PurpleI2P/i2pd-android/actions/workflows/android.yml/badge.svg)](https://github.com/PurpleI2P/i2pd-android/actions/workflows/android.yml)
# i2pd android
### Install OpenJDK, gradle 5.1+ (6.8.3 has been tested and is working ok), download Android SDK and NDK r21e
https://gradle.org/install/
This repository contains Android application sources of i2pd
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/packages/org.purplei2p.i2pd/)
## How to build
### Install OpenJDK, g++, rename (used for building modules), gradle 5.1+, download Android SDK
```bash
sudo apt-get install g++ rename gradle
```
Android SDK Available here:
https://developer.android.com/studio#downloads
https://developer.android.com/ndk/
If your system provides gradle with version < 5.1, download it from gradle homepage:
https://gradle.org/install/
### Prepare Android SDK for building
Download Android SDK, unpack it to any directory (`/opt/anrdoid-sdk` for example) and install required packages
```bash
mkdir /opt/android-sdk
cd /opt/android-sdk
wget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip
unzip commandlinetools-linux-8092744_latest.zip
# install required tools
./cmdline-tools/bin/sdkmanager --sdk_root=/opt/android-sdk "build-tools;29.0.3" "cmake;3.18.1" "ndk;23.1.7779620"
```
### Clone repository with submodules
git clone --recurse-submodules https://github.com/PurpleI2P/i2pd-android.git
```bash
git clone --recurse-submodules https://github.com/PurpleI2P/i2pd-android.git
```
### Compile application
export ANDROID_SDK_ROOT=/opt/android-sdk
export ANDROID_NDK_HOME=/opt/android-ndk-r21e
gradle clean assembleDebug
```bash
export ANDROID_SDK_ROOT=/opt/android-sdk
export ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/23.1.7779620
pushd app/jni
./build_boost.sh
./build_openssl.sh
./build_miniupnpc.sh
popd
gradle clean assembleDebug
```
You will find APKs in `app/build/outputs/apk`
+8 -7
View File
@@ -3,7 +3,7 @@ plugins {
}
dependencies {
implementation 'androidx.core:core:1.3.2'
implementation 'androidx.core:core:1.6.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
}
@@ -13,10 +13,11 @@ android {
defaultConfig {
applicationId "org.purplei2p.i2pd"
targetSdkVersion 29
minSdkVersion 14
versionCode 23900
versionName "2.39.0"
setProperty("archivesBaseName", archivesBaseName + "-" + versionName)
minSdkVersion 16
versionCode 2410001
versionName "2.41.0.1"
archivesBaseName += "-$versionName"
ndkVersion "21.4.7075529"
ndk {
abiFilters "armeabi-v7a"
@@ -28,7 +29,7 @@ android {
externalNativeBuild {
ndkBuild {
arguments "NDK_MODULE_PATH:=${rootProject.projectDir}/app/jni"
arguments "-j3"
arguments "-j${Runtime.getRuntime().availableProcessors()}"
}
}
}
@@ -82,7 +83,7 @@ android.applicationVariants.all { variant ->
def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
if (baseAbiVersionCode != null) {
output.versionCodeOverride = baseAbiVersionCode + variant.versionCode
output.versionCodeOverride = baseAbiVersionCode * 10 + variant.versionCode
}
}
}
+16 -15
View File
@@ -16,7 +16,8 @@ LOCAL_LDLIBS := -lz
LOCAL_SRC_FILES := \
DaemonAndroid.cpp \
i2pd_android.cpp \
$(IFADDRS_PATH)/ifaddrs.c \
$(IFADDRS_PATH)/ifaddrs.cpp \
$(IFADDRS_PATH)/bionic_netlink.cpp \
$(wildcard $(LIB_SRC_PATH)/*.cpp) \
$(wildcard $(LIB_CLIENT_SRC_PATH)/*.cpp) \
$(wildcard $(LANG_SRC_PATH)/*.cpp) \
@@ -30,49 +31,49 @@ include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_system
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_date_time
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_filesystem
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_program_options
LOCAL_SRC_FILES := $(BOOST_PATH)/boost-1_72_0/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/boost-1_72_0/include
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := crypto
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/$(TARGET_ARCH_ABI)/lib/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/include
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ssl
LOCAL_SRC_FILES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/$(TARGET_ARCH_ABI)/lib/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/openssl-1.1.1k-clang/include
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
LOCAL_STATIC_LIBRARIES := crypto
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := miniupnpc
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc-2.1/$(TARGET_ARCH_ABI)/lib/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc-2.1/include
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/include
include $(PREBUILT_STATIC_LIBRARY)
+4 -4
View File
@@ -4,15 +4,15 @@ APP_STL := c++_static
# Enable c++17 extensions in source code
APP_CPPFLAGS += -std=c++17 -fexceptions -frtti
APP_CPPFLAGS += -DANDROID -D__ANDROID__ -DUSE_UPNP
APP_CPPFLAGS += -DANDROID -D__ANDROID__ -DUSE_UPNP -Wno-deprecated-declarations -fstack-protector
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
APP_CPPFLAGS += -DANDROID_ARM7A
endif
BOOST_PATH = $(NDK_MODULE_PATH)/boost
OPENSSL_PATH = $(NDK_MODULE_PATH)/openssl
MINIUPNP_PATH = $(NDK_MODULE_PATH)/miniupnp
IFADDRS_PATH = $(NDK_MODULE_PATH)/android-ifaddrs
BOOST_PATH = $(NDK_MODULE_PATH)/boost
MINIUPNP_PATH = $(NDK_MODULE_PATH)/miniupnp
OPENSSL_PATH = $(NDK_MODULE_PATH)/openssl
# don't change me
I2PD_SRC_PATH = $(NDK_MODULE_PATH)/i2pd
+19 -119
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The PurpleI2P Project
* Copyright (c) 2013-2022, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@@ -22,135 +22,43 @@ namespace i2p
{
namespace android
{
/* Worker::Worker (DaemonAndroidImpl& daemon):
m_Daemon (daemon)
{
}
void Worker::startDaemon()
{
Log.d(TAG"Performing daemon start...");
m_Daemon.start();
Log.d(TAG"Daemon started.");
emit resultReady();
}
void Worker::restartDaemon()
{
Log.d(TAG"Performing daemon restart...");
m_Daemon.restart();
Log.d(TAG"Daemon restarted.");
emit resultReady();
}
void Worker::stopDaemon() {
Log.d(TAG"Performing daemon stop...");
m_Daemon.stop();
Log.d(TAG"Daemon stopped.");
emit resultReady();
}
Controller::Controller(DaemonAndroidImpl& daemon):
m_Daemon (daemon)
{
Worker *worker = new Worker (m_Daemon);
worker->moveToThread(&workerThread);
connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
connect(this, &Controller::startDaemon, worker, &Worker::startDaemon);
connect(this, &Controller::stopDaemon, worker, &Worker::stopDaemon);
connect(this, &Controller::restartDaemon, worker, &Worker::restartDaemon);
connect(worker, &Worker::resultReady, this, &Controller::handleResults);
workerThread.start();
}
Controller::~Controller()
{
Log.d(TAG"Closing and waiting for daemon worker thread...");
workerThread.quit();
workerThread.wait();
Log.d(TAG"Waiting for daemon worker thread finished.");
if(m_Daemon.isRunning())
{
Log.d(TAG"Stopping the daemon...");
m_Daemon.stop();
Log.d(TAG"Stopped the daemon.");
}
}
*/
std::string dataDir = "";
std::string language = "";
DaemonAndroidImpl::DaemonAndroidImpl ()
//:
/*mutex(nullptr), */
//m_IsRunning(false),
//m_RunningChangedCallback(nullptr)
{
}
DaemonAndroidImpl::~DaemonAndroidImpl ()
{
//delete mutex;
}
bool DaemonAndroidImpl::init(int argc, char* argv[])
{
//mutex=new QMutex(QMutex::Recursive);
//setRunningCallback(0);
//m_IsRunning=false;
// make sure assets are ready before proceed
i2p::fs::DetectDataDir(dataDir, false);
int numAttempts = 0;
do
{
if (i2p::fs::Exists (i2p::fs::DataDirPath("assets.ready"))) break; // assets ready
numAttempts++;
std::this_thread::sleep_for (std::chrono::seconds(1)); // otherwise wait for 1 more second
}
while (numAttempts <= 10); // 10 seconds max
return Daemon.init(argc, argv);
}
void DaemonAndroidImpl::start()
{
//QMutexLocker locker(mutex);
//setRunning(true);
Daemon.start();
}
void DaemonAndroidImpl::stop()
{
//QMutexLocker locker(mutex);
Daemon.stop();
//setRunning(false);
}
void DaemonAndroidImpl::restart()
{
//QMutexLocker locker(mutex);
stop();
start();
}
/*
void DaemonAndroidImpl::setRunningCallback(runningChangedCallback cb)
void DaemonAndroidImpl::setDataDir(std::string path)
{
m_RunningChangedCallback = cb;
Daemon.setDataDir(path);
}
bool DaemonAndroidImpl::isRunning()
{
return m_IsRunning;
}
void DaemonAndroidImpl::setRunning(bool newValue)
{
bool oldValue = m_IsRunning;
if(oldValue!=newValue)
{
m_IsRunning = newValue;
if(m_RunningChangedCallback)
m_RunningChangedCallback();
}
}
*/
static DaemonAndroidImpl daemon;
static char* argv[1]={strdup("tmp")};
/**
@@ -161,40 +69,32 @@ namespace android
{
try
{
//int result;
{
//Log.d(TAG"Initialising the daemon...");
// make sure assets are ready before proceed
i2p::fs::DetectDataDir(dataDir, false);
int numAttempts = 0;
do
{
if (i2p::fs::Exists (i2p::fs::DataDirPath("assets.ready"))) break; // assets ready
numAttempts++;
std::this_thread::sleep_for (std::chrono::seconds(1)); // otherwise wait for 1 more second
}
while (numAttempts <= 10); // 10 seconds max
// Set application directory
daemon.setDataDir(dataDir);
bool daemonInitSuccess = daemon.init(1, argv);
if(!daemonInitSuccess)
{
//QMessageBox::critical(0, "Error", "Daemon init failed");
return "Daemon init failed";
}
// Set webconsole language from application
i2p::i18n::SetLanguage(language);
//Log.d(TAG"Initialised, creating the main window...");
//MainWindow w;
//Log.d(TAG"Before main window.show()...");
//w.show ();
{
//i2p::qt::Controller daemonQtController(daemon);
//Log.d(TAG"Starting the daemon...");
//emit daemonQtController.startDaemon();
//daemon.start ();
//Log.d(TAG"Starting GUI event loop...");
//result = app.exec();
//daemon.stop ();
daemon.start();
}
daemon.start();
}
//QMessageBox::information(&w, "Debug", "demon stopped");
//Log.d(TAG"Exiting the application");
//return result;
}
catch (boost::exception& ex)
{
+12 -60
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The PurpleI2P Project
* Copyright (c) 2013-2022, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@@ -22,79 +22,31 @@ namespace android
DaemonAndroidImpl ();
~DaemonAndroidImpl ();
//typedef void (*runningChangedCallback)();
/**
* @return success
*/
bool init(int argc, char* argv[]);
void start();
void stop();
void restart();
//void setRunningCallback(runningChangedCallback cb);
//bool isRunning();
private:
//void setRunning(bool running);
private:
//QMutex* mutex;
//bool m_IsRunning;
//runningChangedCallback m_RunningChangedCallback;
bool init (int argc, char* argv[]);
void start ();
void stop ();
void restart ();
void setDataDir (std::string path);
};
/**
* returns "ok" if daemon init failed
* returns errinfo if daemon initialized and started okay
*/
std::string start();
std::string start ();
// stops the daemon
void stop();
void stop ();
// set datadir received from jni
void SetDataDir(std::string jdataDir);
void SetDataDir (std::string jdataDir);
// get datadir
std::string GetDataDir(void);
std::string GetDataDir (void);
// set webconsole language
void SetLanguage(std::string jlanguage);
/*
class Worker : public QObject
{
Q_OBJECT
public:
Worker (DaemonAndroidImpl& daemon);
private:
DaemonAndroidImpl& m_Daemon;
public slots:
void startDaemon();
void restartDaemon();
void stopDaemon();
signals:
void resultReady();
};
class Controller : public QObject
{
Q_OBJECT
QThread workerThread;
public:
Controller(DaemonAndroidImpl& daemon);
~Controller();
private:
DaemonAndroidImpl& m_Daemon;
public slots:
void handleResults(){}
signals:
void startDaemon();
void stopDaemon();
void restartDaemon();
};
*/
void SetLanguage (std::string jlanguage);
}
}
+128
View File
@@ -0,0 +1,128 @@
#!/bin/bash
set -e
BOOST_VERSION=1.74.0
BOOST_VERSION_SUFFIX=1_74
BOOST_LIBS=date_time,filesystem,program_options,system
REMOVE_BOOST_LIBS_SUFFIX_x86_64=-clang-mt-x64-${BOOST_VERSION_SUFFIX}
REMOVE_BOOST_LIBS_SUFFIX_ARM64=-clang-mt-a64-${BOOST_VERSION_SUFFIX}
REMOVE_BOOST_LIBS_SUFFIX_x86=-clang-mt-x32-${BOOST_VERSION_SUFFIX}
REMOVE_BOOST_LIBS_SUFFIX_ARM=-clang-mt-a32-${BOOST_VERSION_SUFFIX}
function build_one {
echo "Configuring and building..."
CXXFLAGS="-std=c++14" \
NCPU=$(nproc) \
./build-android.sh \
--boost=${BOOST_VERSION} \
--arch=${CPU} \
--target-version=${API} \
--with-libraries=${BOOST_LIBS} \
${ANDROID_NDK_HOME}
case "${CPU}" in
x86_64)
mkdir -p out/{x86_64,include}
cp build/out/x86_64/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86_64}'//' out/x86_64/*.a
cp -r build/out/x86_64/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
arm64-v8a)
mkdir -p out/{arm64-v8a,include}
cp build/out/arm64-v8a/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM64}'//' out/arm64-v8a/*.a
cp -r build/out/arm64-v8a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
x86)
mkdir -p out/{x86,include}
cp build/out/x86/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86}'//' out/x86/*.a
cp -r build/out/x86/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
armeabi-v7a)
mkdir -p out/{armeabi-v7a,include}
cp build/out/armeabi-v7a/lib/*.a out/${CPU}
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM}'//' out/armeabi-v7a/*.a
cp -r build/out/armeabi-v7a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
*)
mkdir -p out/{x86_64,arm64-v8a,x86,armeabi-v7a,include}
cp build/out/x86_64/lib/*.a out/x86_64
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86_64}'//' out/x86_64/*.a
cp build/out/arm64-v8a/lib/*.a out/arm64-v8a
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM64}'//' out/arm64-v8a/*.a
cp build/out/x86/lib/*.a out/x86
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_x86}'//' out/x86/*.a
cp build/out/armeabi-v7a/lib/*.a out/armeabi-v7a
rename 's/'${REMOVE_BOOST_LIBS_SUFFIX_ARM}'//' out/armeabi-v7a/*.a
cp -r build/out/arm64-v8a/include/boost-${BOOST_VERSION_SUFFIX}/boost out/include
;;
esac
}
function checkPreRequisites {
if ! [ -d "boost" ] || ! [ "$(ls -A boost)" ]; then
echo -e "\033[31mFailed! Submodule 'boost' not found!\033[0m"
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
exit
fi
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
exit
fi
}
checkPreRequisites
cd boost
rm -rf out
function build {
for arg in "$@"; do
case "${arg}" in
x86_64)
API=21
TARGET=x86_64
build_one
;;
arm64)
API=21
CPU=arm64-v8a
build_one
;;
x86)
API=16
CPU=x86
build_one
;;
arm)
API=16
CPU=armeabi-v7a
build_one
;;
all)
API=16
CPU=x86_64,arm64-v8a,x86,armeabi-v7a
build_one
;;
*)
;;
esac
done
}
if (( $# == 0 )); then
build all
else
build $@
fi
+93
View File
@@ -0,0 +1,93 @@
#!/bin/bash
set -e
CMAKE_VERSION=3.18.1
function build_one {
mkdir -p out/${CPU}
cd out/${CPU}
cmake \
-DUPNPC_BUILD_SHARED=False \
-DUPNPC_BUILD_TESTS=False \
-DUPNPC_BUILD_SAMPLE=False \
-DANDROID_NATIVE_API_LEVEL=${API} \
-DANDROID_ABI=${CPU} \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_NDK=${ANDROID_NDK_HOME} \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \
../..
echo "Building..."
cmake --build . -- libminiupnpc-static
cd ../..
if [[ -n 'out/include' ]]; then
mkdir -p out/include/miniupnpc
cp include/* out/include/miniupnpc
fi
}
function checkPreRequisites {
if ! [ -d "miniupnp" ] || ! [ "$(ls -A miniupnp)" ]; then
echo -e "\033[31mFailed! Submodule 'miniupnp' not found!\033[0m"
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
exit
fi
if [ -z "$ANDROID_SDK_ROOT" -a "$ANDROID_SDK_ROOT" == "" ]; then
echo -e "\033[31mFailed! ANDROID_SDK_ROOT is empty. Run 'export ANDROID_SDK_ROOT=[PATH_TO_NDK]'\033[0m"
exit
fi
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
exit
fi
}
checkPreRequisites
cd miniupnp/miniupnpc
rm -rf out
# add cmake from Android SDK to PATH
PATH=$ANDROID_SDK_ROOT/cmake/${CMAKE_VERSION}/bin:$PATH
function build {
for arg in "$@"; do
case "${arg}" in
x86_64)
API=21
CPU=x86_64
build_one
;;
arm64)
API=21
CPU=arm64-v8a
build_one
;;
arm)
API=16
CPU=armeabi-v7a
build_one
;;
x86)
API=16
CPU=x86
build_one
;;
*)
;;
esac
done
}
if (( $# == 0 )); then
build x86_64 arm64 arm x86
else
build $@
fi
+98
View File
@@ -0,0 +1,98 @@
#!/bin/bash
set -e
function build_one {
mkdir -p out/${CPU}
mkdir output
echo "Configuring OpenSSL for ${CPU}..."
./Configure \
--prefix="$PWD/output" \
${TARGET} \
no-shared \
no-tests \
-D__ANDROID_API__=${API} \
-Wno-macro-redefined
echo "Building OpenSSL for ${CPU}..."
make -j $(nproc) > output/build.log
echo "Installing to temporary directory..."
make install_sw >> output/build.log
cp output/lib/*.a out/${CPU}
if [[ -n 'out/include' ]]; then
mkdir -p out/include
cp -r output/include/openssl out/include
fi
rm -rf output
make clean
}
function checkPreRequisites {
if ! [ -d "openssl" ] || ! [ "$(ls -A openssl)" ]; then
echo -e "\033[31mFailed! Submodule 'openssl' not found!\033[0m"
echo -e "\033[31mTry to run: 'git submodule update --init'\033[0m"
exit
fi
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
exit
fi
}
checkPreRequisites
cd openssl
rm -rf out output
if [[ -f 'Makefile' ]]; then
make clean
fi
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
function build {
for arg in "$@"; do
case "${arg}" in
x86_64)
API=21
CPU=x86_64
TARGET=android-x86_64
build_one
;;
arm64)
API=21
CPU=arm64-v8a
TARGET=android-arm64
build_one
;;
arm)
API=16
CPU=armeabi-v7a
TARGET=android-arm
build_one
;;
x86)
API=16
CPU=x86
TARGET=android-x86
build_one
;;
*)
;;
esac
done
}
if (( $# == 0 )); then
build x86_64 arm64 arm x86
else
build $@
fi
+30 -24
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The PurpleI2P Project
* Copyright (c) 2013-2022, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@@ -59,7 +59,7 @@ JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_startDaemon
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getDataDir
(JNIEnv *env, jclass clazz) {
return env->NewStringUTF( i2p::android::GetDataDir().c_str() );
return env->NewStringUTF(i2p::android::GetDataDir().c_str());
}
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopDaemon
@@ -90,31 +90,12 @@ JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_onNetworkStateChanged
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setDataDir
(JNIEnv *env, jclass clazz, jstring jdataDir) {
/*
// Method 1: convert UTF-16 jstring to std::string (https://stackoverflow.com/a/41820336)
const jclass stringClass = env->GetObjectClass(jdataDir);
const jmethodID getBytes = env->GetMethodID(stringClass, "getBytes", "(Ljava/lang/String;)[B");
const jbyteArray stringJbytes = (jbyteArray) env->CallObjectMethod(jdataDir, getBytes, env->NewStringUTF("UTF-8"));
size_t length = (size_t) env->GetArrayLength(stringJbytes);
jbyte* pBytes = env->GetByteArrayElements(stringJbytes, NULL);
std::string dataDir = std::string((char *)pBytes, length);
env->ReleaseByteArrayElements(stringJbytes, pBytes, JNI_ABORT);
env->DeleteLocalRef(stringJbytes);
env->DeleteLocalRef(stringClass); */
// Method 2: get string chars and make char array.
auto dataDir = env->GetStringUTFChars(jdataDir, NULL);
env->ReleaseStringUTFChars(jdataDir, dataDir);
// Set DataDir
i2p::android::SetDataDir(dataDir);
env->ReleaseStringUTFChars(jdataDir, dataDir);
}
JNIEXPORT jint JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_GetTransitTunnelsCount
JNIEXPORT jint JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getTransitTunnelsCount
(JNIEnv *env, jclass clazz) {
return i2p::tunnel::tunnels.CountTransitTunnels();
}
@@ -130,6 +111,31 @@ JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getWebConsAddr
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setLanguage
(JNIEnv *env, jclass clazz, jstring jlanguage) {
auto language = env->GetStringUTFChars(jlanguage, NULL);
env->ReleaseStringUTFChars(jlanguage, language);
i2p::android::SetLanguage(language);
env->ReleaseStringUTFChars(jlanguage, language);
}
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getHTTPProxyState
(JNIEnv *, jclass) {
return i2p::client::context.GetHttpProxy () ? true : false;
}
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getSOCKSProxyState
(JNIEnv *, jclass) {
return i2p::client::context.GetSocksProxy() ? true : false;
}
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getBOBState
(JNIEnv *, jclass) {
return i2p::client::context.GetBOBCommandChannel() ? true : false;
}
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getSAMState
(JNIEnv *, jclass) {
return i2p::client::context.GetSAMBridge() ? true : false;
}
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getI2CPState
(JNIEnv *, jclass) {
return i2p::client::context.GetI2CPServer() ? true : false;
}
+29 -18
View File
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The PurpleI2P Project
* Copyright (c) 2013-2022, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@@ -15,46 +15,57 @@
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: org_purplei2p_i2pd_I2PD_JNI
* Method: stringFromJNI
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getABICompiledWith
(JNIEnv *, jclass);
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_startDaemon
(JNIEnv *, jclass);
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getDataDir
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopDaemon
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopAcceptingTunnels
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_startAcceptingTunnels
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_reloadTunnelsConfigs
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_stopAcceptingTunnels
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_onNetworkStateChanged
(JNIEnv * env, jclass clazz, jboolean isConnected);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_reloadTunnelsConfigs
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setDataDir
(JNIEnv *env, jclass clazz, jstring jdataDir);
JNIEXPORT jint JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_GetTransitTunnelsCount
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setLanguage
(JNIEnv *env, jclass clazz, jstring jlanguage);
JNIEXPORT jint JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getTransitTunnelsCount
(JNIEnv *, jclass);
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getWebConsAddr
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_setLanguage
(JNIEnv *env, jclass clazz, jstring jlanguage);
JNIEXPORT jstring JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getDataDir
(JNIEnv *, jclass);
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getHTTPProxyState
(JNIEnv *, jclass);
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getSOCKSProxyState
(JNIEnv *, jclass);
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getBOBState
(JNIEnv *, jclass);
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getSAMState
(JNIEnv *, jclass) ;
JNIEXPORT jboolean JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_getI2CPState
(JNIEnv *, jclass);
JNIEXPORT void JNICALL Java_org_purplei2p_i2pd_I2PD_1JNI_onNetworkStateChanged
(JNIEnv * env, jclass clazz, jboolean isConnected);
#ifdef __cplusplus
}
+4 -7
View File
@@ -12,13 +12,12 @@
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_logo"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar"
android:theme="@android:style/Theme.DeviceDefault"
android:usesCleartextTraffic="true">
<receiver
@@ -47,8 +46,7 @@
</receiver>
<activity
android:name=".I2PDPermsAskerActivity"
android:label="@string/app_name">
android:name=".I2PDPermsAskerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@@ -56,8 +54,7 @@
</activity>
<activity
android:name=".I2PDActivity"
android:label="@string/app_name" />
android:name=".I2PDActivity" />
<service
android:name=".ForegroundService"
+253 -147
View File
@@ -1,125 +1,175 @@
0pl.i2p,gd7qe2pu2jwqabz4zcf3wwablrzym7p6qswczoapkm5oa5ouuaua
102chan-memorial.i2p,t6uwxydnfd7mo2knxklmnrudxafe4mw5ojiqikj7xfrc4ynltz3q
102chan.i2p,xxu3lso4h2rh6wmrxiou3ax7r7la7x6dhoepnku3jvrlwp35pefq
2ch.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
0xff.i2p,apo53zid3xe7rewxjw7whdym2rmyowsj7jeoiwrl5zlmf7oqrxwq
0xpaste.i2p,oyfcxkrmrnaplu24aobv7s36hm3vyxszlbees4hl6kpk6izwa5da
111.i2p,s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
333.i2p,ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza
aaa.i2p,zzhy7rumzzgxzodvgu4xz324nekbbccphegweukj4cm6nrbpg4oa
AAAAAAAALIVETALKZZZZZZZZ09ALLARXMETAROOTSZNZARXPOSTMETASYMBOL.i2p,seqqbywuvscfpvi3pjdvi646hckwojenfqux76utwac2ltd766cq
CrustyIRC.i2p,4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
aaoth.i2p,aaoth5tidbhizgerysxlfrqmg5t7jzb76zt6lattwjj3up524qwa
abdlandrubbernetwork.i2p,asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca
acetone.i2p,tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a
agoradesk.i2p,ztqnvu7c35jyoqmfjyymqggjpyky6z3tlgewk2qgbgcmcyl4ecta
albatcats.i2p,ilgg7nbtofvgzrpl6kenxugfdsgi3apu6sgilmqi5rhpolnauyga
anek.i2p,iprnd5ceoj3sovmhoigwammwi7zuklrqwzfzrhvhjppspfxepvpa
agentoocat.i2p,voanmdeayaccgaxumtehvxxiv4sdscsixoxsqmhh7nfwhusrvfaa
algorithm.i2p,algout6clo74ywqtjyemehnf4bzhegpju5yvi6zdcfszso7iirka
alphabay.i2p,tnaefzkcnhryeusi7hdpqujqiqmnbtah3dmjcg3gvezohunjuxbq
amogus.i2p,udcjqqoo7mc54ephxnhzaxdwtqxsgxjzvh4wr4boope6vyr4mrhq
anilibria.i2p,dak33oupjdimfhdmgrvfoclrbln5xlrvzp5ec4zvqlxq42clai3a
animal.i2p,5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla
anodex.i2p,25cb5kixhxm6i6c6wequrhi65mez4duc4l5qk6ictbik3tnxlu6a
anongw.i2p,owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq
anonroms.i2p,w2sgx2i5n4uxtqjgekckxnhhpymigpn5lmgdaujyzib6sxq7j4cq
anonyradio.i2p,cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq
anothermusic.i2p,p5mhrtnjfyonumqjzkzxakxais4fjtjgappvoioztqehaii4smpq
apophis.i2p,aybax36xssplylkueyy3szi3n2spd7mgxcmzbawapg3vxznwlkda
apt.idk.i2p,s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia
aqua.i2p,xqwrqfuoae43grkmzs63sw5upathbjerid3ch4bhskle3bibeqba
arav.i2p,t42fkp6zp5dfqywantq3zp427ig3q2onrmfv246tyaztpg4ckb5a
archaicbinarybbs.i2p,t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa
archiv.tutorials.i2p,lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq
archlinux.i2p,5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa
ardor-wallet.i2p,tm23k5ny3umhf6vf3kghnnwacli5zywq5wrr3xcqowbcofuyr4gq
atetsu.i2p,pcr6k5krxwcvmessygjmfsbxgnyju6ipq5236ki55n2i5u4uylpq
azathabar.i2p,v35rwae5zb6fcgd7phzkireghtuen43umi7l5yvahm7ezkqg5uwq
bandura-yacy.i2p,e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq
bandura.i2p,n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a
bbs.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua
banka.i2p,vuo5wavhhstnv5gehgmvhjy2jhpm3mdlcvtovfqunfzv5ngug5cq
bentasker.i2p,gdncgijky3xvocpkq6xqk5uda4vsnvzuk7ke7jrvxnvyjwkq35iq
bible4u.i2p,xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq
black.i2p,sjwueu62qpe6dtv5b322k3f23fl4uz3w6qe6wcrwauiwpnymypfq
bitchan.i2p,waycuw2c27ruakfblkf5tcegwmt3ot445dlfoypil6bzmm4yxg7a
blackgnu.i2p,hskxmtmwqnmq7pnxzntlwt36ew4nuqzmwhzbqjo233ncfoaj7mpa
blawg.i2p,uq5hbw7bplczde3pbugbxnvtqbjjdba6wfggpvbmaghuwoulputq
blog.raccoondad.i2p,ouc5i7xknchig3qdtkoydoeg2oqe354roxkjrrwzuzjcqr4xpvna
blog.tinlans.i2p,ylkch2nkrwehakx4z6wiyjbeqwlgasknukdkex6r6yq4xusrjnda
blog.torproject.i2p,woelslt2oh4dn5wlxfmpjggyyu6l7ntgk3rngrooldn57x4kduma
bobross.i2p,54y7lkvndr3fa4c4fw6e5udfx37dkrh4wbdjvxbwapertwz2vtqq
boerse.i2p,7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq
bofh.i2p,auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a
boran.i2p,boranyzcefxqw2ktndemy3npt4zhetpp6edldtlym2ap7n5azt5a
bonobonet.acetone.i2p,keihicq2fcfooqvdqtufjpigg3ge5mw5mjdpdnxy5utazrqkcnxa
bote.i2p,bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a
boxs.i2p,owm3fy2t5vwbxowk5gsshihkwjfknqq7y4ylbeyhvzta7r3ybrpq
brain.i2p,wbmkweyyedl5dp74hfyo2iot6y7oq5yzbe6hbscdszyi5dci2dka
braindead.i2p,braindsku6jnpmnaats2cu2qzax4pga6dwhx436kxanpxgx2pcyq
bunkerirc.i2p,mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq
brick.i2p,lfeip77mf2j75izalrenv2aft5h3mfwauqqu3nqdmoq5ldwwsvga
bridges.torproject.i2p,2tiwhibsjvys63t43xncar6y52dy3dpct6edglenhzlalmyirb2a
bublik.i2p,npx6e6trk37ovoxzk3j3yoh5huenh24avbmsgeroiejkuzb2vo6q
bugfuzz.i2p,ubszn4gsf22vga67rvzzlg4qj2bfcq6o52fmxz46xruawqm6z7rq
ca.i2pd.i2p,u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba
cake.i2p,hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq
cathugger.i2p,vq43xjjcnejqpzfprws5qzrea2siieshu4tglpdepql2w3w3bpba
calculator.i2p,itj23yb325dma24i4qpnhuwrz26hzpps6izkaf3mowavtvoznnva
cantonese.i2p,3r3d43jejiezwb6daqgtk23ccs4jm3bvkhxwwwnpymvjn2aymriq
carvet.i2p,r5ukmkit6n3ztitar6clfc6te3o3235ys4jdbiugnkvzmfurxbnq
cbs.i2p,u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq
chudo.i2p,iaublzhzc4ssa3rcrjbdigautm66mslt6g2sninugagiarl4at3q
chaox.i2p,6bcqgkedaq2krrhvidjlmdsoltmzuwaqtrafycfzbc56h5swumoq
cheapeth.i2p,x6pq4h33wu6txj6vvpgywrgew2y6cwzs5l63w726paqsvogeqdra
chmok.i2p,w7eqh6nndwk4yr5vxtbnvizgsg776vamwingijetnnqojrzjxm3q
ci.idk.i2p,antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq
cipherlist.i2p,gbm4kiotqjqmklwsp3qibdtn7mhatjsyeebbb5zxwjlp6w22fuga
citrus.i2p,citrusogkieyk3hleilk5scb5a64jdzoogi5wjv35klrvmqsh5ma
cloaca.i2p,pnsyl5plmmwuqfvpg36cbvvhe6mpoy2j5zzemfb5sfbpvklyozta
closedgl.i2p,5q5kqrnb2mji5lzfjj2wwdrpp4veg72jw53i3tvxb4qb5umawvha
closedshop.i2p,6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq
co.i2p,3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q
cobalt.idk.i2p,m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q
coldhell.i2p,z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja
community.i2p,64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa
community.torproject.i2p,wmw22z5c24b35hlepzc2g6k3cpcg44rcg46qdwfo5heiplv7m4ca
contact.i2p,rn5hqxierph4eegft3hiiqkgn2zyyfgj2c6pq75bkahl3pu5shvq
costeira.i2p,abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa
cs.i2p,kzaeunogz6s75ptgy6ifjzwwy75xdfenenswvrczd7mewxgrad5a
cunnyjihad.i2p,axdboajwlxlolrekv2wqlennbxuaiqib5oy7nmax6fcmehlaf4da
cyberchef.i2p,5k22kdukxkobertlyheal5aro32gls6nhgktneq3mtrracubt2bq
cyberia.i2p,3jrfzgnetbjwnyrua5jpyeqk7gb6dgfw3hu5q6lyggnwqhrury5q
darknetdaily.i2p,gehxh3zlns3ezyuc35bszc42hdr4g5uzasexzyrqfxwcwkeiulia
darknethub.i2p,tnh5bp4si7x47vhwk6njtimbbk77gai3abkfh2gz2dhml46uu3uq
darkrealm.i2p,gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq
darktech.i2p,nlkpudgmmgsdiemnbehq5llymdmxp6tn4rzjuse7nhvavr2kgkga
dashninja.i2p,dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma
datagrip.i2p,ajreyxslv6lijap2hykp3uvnnsca6fyvax76u2w6n3vexngkif4a
dcherukhin.i2p,qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a
dead.i2p,7ko27dxvicr2sezvykkrfiktlghx5y5onup3f2bas5ipocy6ibvq
deavmi.i2p,t4cvvenniup6dcdlu2ehdycos5r3luccfemwd6hhvyqv5zd6obgq
deepwebradio.i2p,2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la
def2.i2p,cepsrw27kdegwo7ihzouwvgcvw2obswwjs23ollgj7hk2yrce3da
def3.i2p,xbf3ots2purqun7orn72ypkpjmrzbfrkj3u654zfe77hbrbow6la
def4.i2p,yyzdq4fwwmnlojp23drfpfqujln2vcjozjrfzfeuriuqzdq7g4mq
deavmi.i2p,fh5r3hlkkwh7udtjeqmekmq4qd62jnjqmnqob5hm3ndiuo6lauza
det.i2p,y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q
diasporg.i2p,edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua
dickinass.i2p,5x55ucmwxf2fvrcboapylnrcwdvunlokq5c7mnofno3bkrlqltza
diffyq.i2p,hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq
digcitlab.i2p,gijabxlt4ox2mblh2nfxnds6u4mlsdeoonizknbdksl7klmbpvoq
digitalsr.i2p,ldavoapfhoqpxvihdsdjjo3phlt5ujkgkzigzbesab3g42rwvbpq
discuss.i2p,wrnowoalzz5mquzaygmcrm4feuqco5gsxyn42fizbqjaprtdx5gq
dist.torproject.i2p,pbhgoronppg7tq3dssnwmhzkbrscbvtmy3d5pmar5hyhnqwjj46q
diva.i2p,auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka
dlms.i2p,krsbxsaw3lnb6ctdpydygm2gqobjcpm4pf367ddo5hylbscnynmq
dns.chudo.i2p,zzfmtnnmacop3xvpznc4c2jfvk226wpep2gaoanja3gfzf3ih7xq
dosje.i2p,ir2ky5ejx4f646l4fsnug22gj4frn6jzlg7fgboudf2n5b4gdj3q
dreadpiratessociety.i2p,fbdd4syj2v52x5zord67av2xclmjsg6bc6xdvrqmvqkyd3whij6q
dropbox.i2p,omax2s5n4mzvymidpuxp2yqknf23asvu54uon6cxl6gdrlblnuiq
dumpteam.i2p,2fwlpuouwxlk2nj4xklvm43m52tqyhqnu2fcfiuv7clvf3wd5nwa
dns.acetone.i2p,dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq
donate.torproject.i2p,crxdz4n5viyy46upbd4amlzxcinkea7hwj3mkiudrw3nkpnfv42q
donotafraid.i2p,w6jq5xsixmolxvh5xtxaqolary2nmx5n4orc5bilc2j7ejcytgfa
drommedaris.i2p,2cth2loujyjvouft5z7cr2ajdv7r46tdxxew5xoqwpprucd7nf2a
dysfinis.i2p,6dhhk2azkdqd4zt2azsmnxddhooiztnaxgz6ft5sbusb5a4vonva
e-reading.i2p,z54dnry6rxtmzcg7e6y3qtsig5yf5fmehuvakcg5wnuahx3iafuq
e8.i2p,5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a
easygpg2.i2p,bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora
ebooks.i2p,bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq
ebuild.agentoocat.i2p,lu56romn7lp6ggjtofbwwsaee6kcfonci2ezi5jb5nyo3vdo7vkq
echo.idk.i2p,63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq
eddysblog.i2p,ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq
elibrary.i2p,vrzdalcxclk6kylist2gum5eljpnignhiwkyoozqp2fudr443ctq
es.hiddenanswers.i2p,cw7ge5ey4ekp5iep2kaw6j54boebtqytpcbnvio2bfpccd5ejzfa
fa.i2p,6n6p3aj6xqhevfojj36dixwbl4reopkhymxmatz7ai5sroh75rka
ei2.i2p,y4hhbqzpjdcsgvz5dsgaytttxygos6h2qt66wbbiuvcpcekdmmoq
eleven.i2p,n2er74vsv7szwvsbsukd2lwhz5epedws7eqwahsmxy65agvjizzq
elvn.i2p,vwjtedtgyokakyxgfeoavg535bxe7ymdvfbdwsq4iqngljqtqi3a
envoicesalt.i2p,nsamcq2zidlioxlfuinqzboblpvrnhkbdwavgsvzmt3n3mhuho4a
equwal.i2p,j7zqkvkokxmpkbqrgrkkjym4j7kzuipko4qdujdjbxnrp3qj6ooa
erotic-snake-gallery.i2p,wzgk77ifxl7kpgqxs4p2t6ujjyfpdvgjlqz3q3n4wfkdljfv3dya
esperanto.i2p,2yryi2eb72hnxavjpfot7paiminbzgv5w6fv4sl5wez55ventdeq
ethorn.i2p,iuz4hj3bauo6avfs6esesmmh4sgrf7maqs5yve22ftyakx3fmrza
explorer.gostcoin.i2p,ktoacmumifddtqdw6ewns3szxths2hq2fat2o7xnwq4y3auga3za
expmoneygame.i2p,x47muddvawmtqwmmorhtq4r5hwyhl4coa3ud7ukuthleuowo2jfa
extinct.i2p,atm7gdttp3ags6wmgb3hey5emhuqfojs5272kg7zvo46z5vfwraa
fabrice.i2p,fabricexhumxqngfziy4xkao5m5ez27jpih4chtmigg46eu7rroa
false.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
fantasy-worlds.i2p,62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq
fiat.i2p,ldnhzi7emxnibjz6g55k2nyywzmcufnst2jy67e75o6dlvtx7wia
fido.r4sas.i2p,i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q
files.arav.i2p,gajftpr47ze6ao7e3q2tb5xmcqneyaczu4edzvwwg2qzmnernpka
fileshare.linuxfarm.i2p,rrx4hxejr4pod3tqrkj5ckzuauwy2aqsfvpiac2tkebp2iuv5qla
fishsticks.i2p,btjbfuh2wav3c7bkjqylgatbkvqaireemvsvxwetkrifuvfa35da
flibs.i2p,ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a
flibusta.i2p,zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq
forum.idk.i2p,bg7kaiqjcqqeuuwb5nyo3ptcp5dgza7mihtizwqtnz2itombg6da
forum.rus.i2p,zd37rfivydhkiyvau27qxwzmerlzbqtthsa5ohtcww62zrygjaga
forbiddenhistory.i2p,nlduiogwtutni5nwf5kbuekrqf3ymqmkor3hughjkckz7tvruhva
foto18+common.i2p,bwe4hnzsvnx73aye36hymhhqzi2dbbrgf4rbtqh2e2x3q3r67nfq
fourth.i2p,2cq65hjlt7nnl7mctthj7oejlgep7nh7gmqc6bnbflxw2ti4bxxa
freefallheavens.i2p,7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka
freenet-inproxy.bandura.i2p,rblg2sajac7winv4mgvnkfh2fa3nt2zxfvxfiybj76okpwdrt45a
freegram.i2p,euatsdg24n3j52gd6ptc6gd7hhynl2edpshqyzbehmimpvubt4wa
freehaven.i2p,y4giqqrbcb4xit5gp4y6njypupfklfdr74lfi424seenf7usjvza
freifunkmobi.bandura.i2p,5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea
fresh.i2p,jii6utg6ubwxgls6jegu24ifrroo4qzbcizjfft2bemodp4k2i6a
fs.i2p,ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q
fsoc.i2p,vaqc4jm2trq7lx2kkglve7rkzxhhaptcwwl32uicx4ehf5k3hx6q
fuka.i2p,e3aanmaobvwopjrmrnuqvrkr36gyubrv6f2lyygh5brku3ufwrsa
fuck-rkn.i2p,qmlmnhr3ul2lmuu4fjf43kmk6hf3dzsuxv5xu77vwys36xwuu4sa
fxruby.i2p,lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq
gandc.i2p,m6zwig36wxbbhat5fxh5vzqo2uvq2vwl4q7kxc2f2w6wtzvzesoa
galacticreststop.i2p,uln6c2abwfzneakdz7dkfmdifwrjr3r53jvkmq6mxrjt2vflvbrq
gauteng.i2p,756vri7fovo2rtvynjy5yi3cbkxkap7oh7aggiz6di3s2hagdkwq
gedanken.i2p,kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a
geekcode.i2p,hzmyzxa6jzag67zcqxhicydusdev77byf2qoyxjxhsrtkce4qiqa
ginnegappen.i2p,kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja
git.agentoocat.i2p,5ihrbnmcoewaax5kxsghnmxh6p6srufhmo5pqkybdwuz4yj7efja
git.apophis.i2p,apep7dtwnuom6b7li6jirhrsygxgcdqb5svqpq6mh2rpindrzp2a
git.arav.i2p,p5nkflgogwv4esy3ainup6mgurpugmdyufizhuufauznreyvprsa
git.community.i2p,giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q
git.i2p,giteayof3hpwkfnwnryy6l4qhq3cwdzqlr72jokzbkc6ol43mypa
git.idk.i2p,7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a
git.psi.i2p,em763732l4b7b7zhaolctpt6wewwr7zw3nsxfchr6qmceizzmgpa
git.qorg11.i2p,jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq
git.repo.i2p,vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq
git.volatile.i2p,gwqdodo2stgwgwusekxpkh3hbtph5jjc3kovmov2e2fbfdxg3woq
gitssh.idk.i2p,g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka
gopher.anonroms.i2p,wqfhyrnpknap3ushsck3ih3r7inz6uoqlr3u3ktwvejur3bejqha
glue.idk.i2p,ykbx7chmkivx3idmxd3lu2jc5w4wtlps4r3md57wszhk5w7jykyq
gostcoin.i2p,4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq
gusion.i2p,4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta
h0p3.i2p,k5fppzxc3bwoz2mjc7q37jojbrxo6vtprac3dzrk4wapv7irr4iq
h13.i2p,tozb4vssixoccyqtgnpaatkg2ql52kkjwnsdo3dltezges2na4bq
hacking.i2p,uvxiknnzaxtcijzagp5xuweua2ctghmjfubqdufxilvnkajhezaq
hagen.i2p,e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q
halifa.i2p,fpo5fq4kqulfxhb6odg25jskezvucbx4wlwzg6ngqsxhrzvmxtwa
harbour.i2p,zohxpycufzcslwb2dgdkfo75flahkl2q7n57ciqjooqia75ybada
hardenedbsd.i2p,6ebmdsir52bi3q4wfwug7ylouoq6gdafl3wyy6ccfmpffijhtoca
heaven.i2p,y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq
heligoland.i2p,gzrjm62ektpqjfsem3r3kwvg6zpjvvhvpjvwfxkm2ay4zu7sp6oq
hgit.i2p,ny4ev7me2y2ibfi37mykakwvf2jhnl7lfql4etaiykjiwtd735pa
hiddenanswers.i2p,kj2kbzt27naifij4ki6bklsa2qfewxnkzbkgvximr4ecm7y4ojdq
hex.i2p,sw7m3pxa4d3niun7tz4keq2kwpffhpu6b4zcdeupjem2y2tmycqa
hiddenbooru.i2p,zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q
hiddenchan.i2p,6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa
hiddenwiki.i2p,2iz3nkopz6fxbzlcjq3ofligi7mwdseuj4ndzqljogyvsggh6dvq
hisdarkmaterials.i2p,qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq
homosexualchan.i2p,suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
horo.i2p,vrxh2vbqsfvh2utnt3ighimu4vrgla2mfpwksipkjsguv5vewhdq
hive.i2p,2koqsqujgndkz3ozgrvx4txezvxpnm65orrr3c5itszy3vd46eea
hopjoy.i2p,3wifx34yzdnj5vw3zu3kmqyz57tvlypmdnnyalqjdcaqrege6bpa
hotline.i2p,6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq
hp-net.bandura.i2p,z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq
hq.postman.i2p,7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra
http-false.telegram.i2p,77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
hungryewok.i2p,to3afquvmrmk4kvozisb562elb2hdka6hwk6oeud32m6h2qtkcqa
hutor.i2p,vouttzj22msx7lcpgybfhbqoignrawsgo2sg7g7ml5kyuugbbkza
hype.i2p,vytu5npewxcve3i2qhdqcb5wqmd6lrdmdfkaiv2kpx2lfm6sejkq
i2chan2.i2p,rqd4efol6ooxukq2jj6toml2s7uutj3kbkl6k7kfm7vpmmt2k4fq
i2p-mirror.bandura.i2p,aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q
i2p-projekt.i2p,udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna
i2pd.i2p,4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa
i2pdocs.str4d.i2p,yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq
i2peek-a-boo.i2p,qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa
i2pforum.i2p,tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda
i2pjump.i2p,2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka
@@ -128,241 +178,297 @@ i2pnews.i2p,tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq
i2podisy.i2p,3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq
i2pseed.bandura.i2p,2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia
i2psurvey.i2p,pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia
i2ptimes.i2p,563tjwihw2ql5q2kl7d7md7ywedpapoqgkxgazkz4gmlrb2flqbq
i2ptorrents.i2p,yt2qxe6nq3meofloobawy6nlnmu5pxkobqjyspdngfrasd5v7bca
i2pwiki.bandura.i2p,isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q
i2pyacy.bandura.i2p,owy6s5xlkf4zsrwwpemvoru6x6qmrye2pe3v4v3dncvcrzix3fiq
i2speed.i2p,532c5r6ra6rcf2mvfgtlcxbn3lpplybwxul4xsg3ps64dlx73fga
i2search.i2p,cpgupqyhxamjfgdd3qk5ux673qomu3o5kqszvq6fwuigzifkxzta
ibft.i2p,ds36spqcf7dnj46in5vfnbbwcbjpslo6aafkdrkc47a2oq3zvtta
identiguy.i2p,3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva
idk.i2p,b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq
ilcosmista.i2p,6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q
ilita.i2p,isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba
in.i2p,r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq
infirium.i2p,4iovxkkupux5nnl3cnsdhpqzpjg3jmqatdmogpuu637gxdybjqhq
infoserver.i2p,jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q
infox.i2p,qoz4bwrtnicqyxemrxubdc65uojrqn2iem6v55b6xmxzdmfzcvlq
inr.i2p,joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq
instantexchange.i2p,5wiyndm44bysev22kxvczxt37p6o6qroiqykytrvn2yzi55aqfxq
insecurities.i2p,4uggkxbumfoufekfu7scfx4vkqfoqslv4fsog7kgwjcat2yqzb2q
irc.acetone.i2p,qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq
irc.coldhell.i2p,d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq
irc.crustyirc.i2p,4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
irc.echelon.i2p,ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq
irc.hutor.i2p,3xx4cinvepbneik4efvpbgwtax7xudgdulffqvcvzo623maitu7q
irc.ilita.i2p,5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a
irc.kitsune.i2p,cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q
irc.kobomy.i2p,2j75o23f3hhpebthdiuzevjo3sphmok4jbr5yrtmwav64v2hzuqq
irc.nerds.i2p,nlqhsdd5a7hanjea33mwizg5ixh3xcv5dczufpf3qcfpo6tx4esa
irc.postman.i2p,hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq
irc.r4sas.i2p,hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la
irc.rpi.i2p,ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q
ircs.nerds.i2p,w4d6hj3q7eyfrkb3kcy7rox2fdjzywypvmyrudtf2q4gdzs2qlhq
isitup.i2p,xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq
isotoxin.i2p,wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq
itphx.i2p,zwu2erk3wtyxlcbmd73kmxcirjghdkk4lpupy3xcavpm3qbob4da
ivorytower.i2p,fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq
javadoc.skank.i2p,us3amyq3emvm6rcxmrar3o3uoiifnafijgseho4dxdsjgonfyaxq
javascript.i2p,idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva
jikx.i2p,aazr55itvyns4lwppvx5njyx5tjdwemw4w6jbmpegdunznod2ieq
justanotherlibrary.i2p,f54ac34egsngkp5v7uf2mqbp7rjvegvcokgu6inujlxqjg24pcna
jbo.varikvalefor.i2p,3flbkdhahkgq47s7vytubh3v4vk3lyqgwwh6dd2k5szqlrivdmta
jdj.i2p,mqxhou4icts5tmoq7ndz56sb2ox4s2atzm2urmyn2ndrj2dzzguq
jimkiebs.i2p,epqxjestvatyv2ala7iqbm45elnecqecz2zmpoklzvekwjapu45q
k1773r.i2p,zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq
kallist.i2p,rpoqwcozn4pdxz7bp2vxsl7vfibpbccsymfuxg3c7v7yj3um4bta
karamba.i2p,g2lizyuyzms7m6gv24pzege5zapbinxfd2dzbaha6k246pl2xu3q
keep.i2p,giaufpixdvnhabu25srbyttmskz3wmhsfyf7vsbkgfrj5el4sn2a
kelvinchan.i2p,6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma
keys.dlms.i2p,znl2swe5pez65qxrr2s2s4lmdfky6mnppvh3p5j6suuiovymhjtq
keys.echelon.i2p,mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva
kibykarni.i2p,xowcvzbeq72slpbrwmjl3zy6xkrkb2ncctpkkskeqts63vedtg7a
kill-9.i2p,3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q
kislitsa.i2p,khceo3smaxtng2tnuicmcbhdnkk2j6myi4nkigcux76qh3aabdhq
kkk.i2p,kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva
knijka.i2p,knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa
kobomy.i2p,f2m5wb6iotejsdhimqunkggw2pbboozd6vcha3xi37zjsecya2ua
kohlchan.i2p,kohlchanvn6vtsujobyw4pt5naaszmxqutd5hsdatmxfe2qaqhya
korol4ik.i2p,mr3z5lggdppc3yw2r2egstpg33ga2wfocmozac6kjmhhfk3asm2q
kuchka.i2p,nzmvfaztssds5yaatmmnk2jdghfxizvr6lctmljvxqehnwsfsubq
kurator.i2p,sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q
kycklingar.i2p,gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva
lbt.i2p,5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq
legalloli.i2p,clxah7lssffdubl3iklopl5bkxewmmbi5zlerw7ryuxawo2dqx2q
ledechaine.i2p,7s4vtwkvxvmigj3r4zrc7s5ajdeqtris4qnj3n35cuuvuzkpgqsq
legalcases.i2p,tms2ibdkp67ddj5ez6l4zwvw33jdpz5tmavv3kpjdcpavfh7np4q
legwork.i2p,cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a
li.i2p,jwzmbp5djo5t4mkbchhejq5mrx2yye7tkbwry22scihwy5s4hcba
libertor.i2p,7gajvk4dnnob6wlkoo2zcws7nor3gunvoi7ofalcps5lc76wruuq
libreddit.i2p,libr7vbp7i3lsvqwy5aqgql44uxaufawi5yrloh3x7sezubsoaba
libremarkets.i2p,3jknyeprdyirtzhc5ysh7qma4bgswazxgeylfxjtrx2xxtycq2lq
limak.i2p,jzoxeuuqt6wo55pvt4uh7o5i47oyadrvhyjli4hidqldhihu6lna
linuxfarm.i2p,br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q
lm.i2p,yeyar743vuwmm6fpgf3x6bzmj7fxb5uxhuoxx4ea76wqssdi4f3q
lnxcloud.i2p,wryxsgqp3xl7fuohijmxlugrndtp2vixqlt2obpgriwt3fpdjn6q
lockdown.bnet.i2p,vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
lockdown.i2p,vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
lodikon.i2p,u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a
lolicat.i2p,2mvlbpgzlawdxqv3zlcgcje475kv35ow2itpztjpdqegbtjpvbda
lolicatgirls.i2p,pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra
longseason.i2p,ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da
losinka.i2p,r2z2tcs6eguevoxlkrmpkcanuwgnsit2o45svnwaer3wq4v76hrq
lyoko.i2p,afuuortfaqejkesne272krqvmafn65mhls6nvcwv3t7l2ic2p4kq
man.i2p,progskxxt44tlefm5uc4jqseanlhgbbkjyz4g3nvjjzbvhhp342q
lucas.i2p,hcb6j5indzeqfyerq4igx45xgruijbs433mh22ye4osoxkxhumwq
lunach.i2p,m27cpx55hqhcfjz4u62tiynjtzqdw4s3kanxdgluuthnndiquoeq
mail.i2p,mail4okikc3tknhn2tfyqzq7mxgzltqg2tw5v5frtzkcsm45zdra
major.acetone.i2p,majorivqe4wud5ksadgfycdkgqsesqbbnw4hpgcqfixy4sm77f4q
major.i2p,majorwsiehucyqfqbw3g2on3xqq2pwrwdd6hhyludqqr6ct7xdoa
mapwiki.i2p,p2lufcvbzq3smirs7ijwds3y34cxzchveogb4jflbpmk5pzy3wqa
marenostrum.i2p,tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq
masterdestroyer.i2p,yp2g7frk3ze5ljaxbmhmh6hhda3rmpwmpianozi6or2uzqzdur7q
mastodon.chudo.i2p,bba3rhijp3btiinfeixrk2jzz5rilnxxrxvjjx5os23ro4n6g4cq
masflam.i2p,ucvzbekxpbzfizwndx4bgsj5bjbygdu4vc3xukiseiw5bvatxivq
mattermost.i2p,x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya
mayvaneday.i2p,zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa
maza.i2p,wiigkmy5je5ox4byjt7z7fh4btojbixbmfv4chnzqoovmgnvdpoa
mdleom.i2p,ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa
metavertex2.i2p,4k6h5tsysycyaefvrh7maltvincdx6ugj4t2a37zzyzm4wf4g4dq
meduza.i2p,qlxgwqeyhdltlx66l6gcmnlacwkoex5dtcmlvagarvof2aaljpxq
metrics.i2p,z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq
mhatta.i2p,o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq
minecraft.reloaded.i2p,qs5ihihltxhhfi6wesihgbvoaurqxgdpxgmwnmsk5d5beabtvmvq
minecraftlog.i2p,vu2v5xnfk4ivrcmjx4fvofzts7fj47jcq23zfpg6ajj6p3ytt3hq
mk16de.bandura.i2p,rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq
moneroauth.i2p,kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa
monerod.i2p,fjvlhyxejnssd5yjxqvom6nooqjdrhd43umxnzw33h2nqzhza5qa
moneroexplorer.i2p,je4vbduigce7pgjivvo26d4abn3u5mfsos5zemp3a75xzcv7nm4q
monerujo.i2p,puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq
mooks.i2p,6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq
mosfet.i2p,s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q
mtn.i2p-projekt.i2p,f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa
mtproxy.ilita.i2p,vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q
mucats.i2p,4vjquedemoznbsva4j6wnr7hyms5k3gwucmxgcnwcwweontbcrha
mumble.acetone.i2p,plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa
muwire.i2p,c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa
nbtm.i2p,46iitklpnxzl7eeqweq5xq7nc3vcl2ll7wudpa4jcyyeahvfrgta
nekochan.i2p,dszr2z2swmeczeao2bqgop6fyh34jw5baeiybsavwtihllwa5qwq
neodome.i2p,5hkhjehj3ct2pvcah7dcylwef2oti3xij5myxbv3pd7rocio5vkq
neoniet.i2p,jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq
nebula.hutor.i2p,575g5k3loi72jyq6fni6w3cdp2uoj2g63qowqjbnylbpc6evxpfa
nekit.i2p,axis6zcqacv7le2ms5xqaerecuk3jyrijifrstvxl3or5g5n4ova
nekofiles.i2p,rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
nerds.i2p,5wpwlbka4wj74rrnwbieopppgtivbqxljznl3bs542mxtvjz7ffq
nethack.idk.i2p,zcojbufszefu5bfht5cem3zlhfvv5y3jzpzbaccu3ehje4d7pb2a
news-i2pn.i2p,wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca
news.neodome.i2p,trhwcnygfkeqjj6g4xhmrdp4gsjqsye47lsxshbmwbten4ywt5oq
nicksphere.i2p,nickg4tsj3wy3i23faxp5momjcnlwrvwl5ek5l7lkm5vrbblvgbq
nitter.i2p,axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q
newsxml.idk.i2p,dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka
nexus.i2p,6uz2ihv4avlfhui5eyrisw7yx2t5mclxyl6blwjgw7zc5q4j3isa
nitter.skank.i2p,l2aoqvwkq2prrv53cbk4k2ilxw5s2fc7eo2rjunnixp2hrv3iwda
nntp.txtcon.i2p,nntpsqgdoky2fuctc2hc6vuls2b4okxpkocic2eo66uup3dtaq7q
notbob.i2p,nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a
novabbs.i2p,bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola
nsa.i2p,nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga
nullchan.i2p,nullz2mkp7znirlcersxpk7qmkmgcc6u3yhe462p2qkpxsdb3mja
nvspc.i2p,anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra
obmen.i2p,vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa
ol.i2p,bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq
onelon.i2p,irkvgdnlc6tidoqomre4qr7q4w4qcjfyvbovatgyolk6d4uvcyha
oniichan.i2p,nnkikjorplul4dlytwfovkne66lwo7ln26xzuq33isvixw3wu3yq
opal.i2p,li5kue3hfaqhhvaoxiw2ollhhkw765myhwcijgock5rs4erdqdaa
omitracker.i2p,a5ruhsktpdhfk5w46i6yf6oqovgdlyzty7ku6t5yrrpf4qedznjq
opentracker.dg2.i2p,w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa
opentracker.r4sas.i2p,punzipidirfqspstvzpj6gb4tkuykqp6quurj6e23bgxcxhdoe7q
opentracker.skank.i2p,by7luzwhx733fhc5ug2o75dcaunblq2ztlshzd7qvptaoa73nqua
outproxy-tor.meeh.i2p,77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq
outproxy.bandura.i2p,smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q
overchan.oniichan.i2p,g7c54d4b7yva4ktpbaabqeu2yx6axalh4gevb44afpbwm23xuuya
p4bl0.i2p,lkgdfm4w6e2kkjhcdzr4ahhz26s3aunhrn6t2or436o73qh4z7ga
outproxy.purokishi.i2p,nieasaidj7wy5nammqf4f7zzcdafi4apygwn5qwscpn4pq34hqia
packages.i2p,2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja
pagwin.i2p,qggplwxvsvctsdzgld2shfyjlokfoxur3pkfapygs26i4hwawfga
palebluedot.i2p,earth35u3ezuvyxzlsokx374rp27zeu2mv3j6plmmdhsm55fbzaq
password.i2p,knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa
paste.idk.i2p,qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva
paste.r4sas.i2p,csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa
pehotin.i2p,e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa
pharos.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
pharoz.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
pirate.black.i2p,z67mwyo7o3tb42r3tjcckcx6gyh4tmnlh6sbmf2hz6qtn3lri2ta
phreeroma.i2p,44fu2fhq6q36re2xqnkuievdfsroi5xchgbowkqib6ekak3ynm6q
piradio.i2p,m2tsjo2sxabwimkeffsy2mlvtyebnzs6qndm5zpuw6mpwlja2ewa
pirates.i2p,iygdi3krhapgjmrehupbj6mum6q3qbdyudjo66chmwinhrgrwivq
pizda666.i2p,bczoowsc6ik7a4mya45qnlq5n6c6llpd5ni3u67r4r4drgohyira
pizdabol.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
planet.i2p,pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq
play.infirium.i2p,3pesucgkmky2unpxceuec7jopajyz44pvb2sgwyqz6x43bfovnda
play-it.i2p,oxt7gdu663baue7lugdmgxqkmtrfdy2izluneqdrpv4pfslxjlta
pocketlint.i2p,pocketzsq4r4fef2bw57sn4paufjh5dw75azu5sr4hk2qwdvucsa
podger.i2p,56pcmc4rxmtzs6ojvszpiqmh47et3m6amh7kfszp4wbvz2jbpnya
polistern.i2p,ztqi2zewgtifrg4efs6eyxxi5www27ymley3aiz4obhulbnszlva
pomoyka.i2p,omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q
pool.gostcoin.i2p,m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa
pop.postman.i2p,i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq
porest.i2p,46l7beij4rerlbuj7xmcngarlkhlpgaztywrleiwagjuiipcebbq
pravtor.i2p,2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq
privacy-handbuch.i2p,3cccw3cxxghkalgichofulid36ekwplv3stubvfot522mwxcnu5q
privatebin.i2p,e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a
privetalena.i2p,alenabivbkqo2xoikterpsc3gquqzacxfef6usbifrez5ioegjjq
project-future.i2p,ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta
programthink.i2p,programygfltn24q6foacm5gbuo3z2geub2k2k366llx3bph4ula
proof-of-loss.i2p,ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a
psi.i2p,avviiexdngd32ccoy4kuckvc3mkf53ycvzbz6vz75vzhv4tbpk5a
prophetgram.i2p,cufuwm75gjpt3svl4wjmo6r4zjv6eqyjdpiuqfckgb5aqqdbgyvq
psv.i2p,pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a
psy.i2p,s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q
psychonaut.i2p,laf5nvzn4wz7ndgtdysmhvebpyjo3fkth7i4z4c2kp7su3wi6e2a
psyco.i2p,eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q
pt.hiddenanswers.i2p,o5jlxbbnx3byzgmihqye3kysop5jgl3unsrkmurbtr2nrnl2y74a
pt.i2p,umbkgg3nhvgunyiwo2odfo3ufbdijb2ofg5eha6nyd4ymp4yitna
pubsub.i2p,kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa
pull.git.repo.i2p,3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q
purokishi.i2p,ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca
push.git.repo.i2p,jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a
pwcq.i2p,hcwrhp454aj2jen6clgkw5odw7pvtixhf5dnqsx5ax4vkbxybk7q
qis.i2p,sxfs4mmqxe4kj6yovbi54czfhhkpzxtj7mbwxjsvazgfulhq4gka
purplechan.i2p,tyiwxpgs7syjvz3cha3uckaxgondtiktlsvriebyy4qmzgbaj3gq
pvsur.i2p,pvsurxi2hz2n45kfrj5b3ny6ko4ipj2u2piftjen44npkpnbwh6q
qorg11.i2p,ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q
query.i2p,qzdh2potcfrqcwl2oejkidsyggaspvi63gfggmlz2xrhjkrnazda
quest.idk.i2p,k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa
r4sas.i2p,2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq
raccoondad.i2p,utoagugf3imr6mpjsithhnpvvvyehsnebisovn6kqn4vma6va3ca
radio.arav.i2p,plkybcgxt4cdanot75cy3pbnqlbqcsrib2fmrpsnug4bqphqvfda
radio.idk.i2p,gqla6svl56uazumw2a56rzmvfmcr6fb57bm5kpbb6oibqi6o66gq
radio.nerds.i2p,tpbfxyluryodtfxdpwsfvw7fl35p5ezrjk3tlcv2atlmc4fl2ctq
radio.r4sas.i2p,cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla
radioliberty.i2p,libertyx5gywnmn4snrr2fborvugmthl2x5vf3rh43v3744kmpwa
radioplayer.i2p,5tmr7qghx5eecoyvi77rsy7fqxeoyqcdpvg5wasoitn6ywkyobbq
ramble.i2p,smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq
ransack.i2p,mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq
realsite.i2p,ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta
rebel.i2p,nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq
redzara.i2p,ty7bt62rw5ryvk44dd3v5sua6c7wnbpxxqb6v4dohajmwmezi7va
reg.i2p,shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa
reg.rus.i2p,k2r2wda4eavt4hoq5hptprqfmixusirq3gi5bl3z2pqzcd6felwa
reichsmarket.i2p,2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq
reloaded.i2p,wxbh2yq5twqinsw3ztjogqovvdd6h6j5uxeg3lh53x4w7klzv3tq
repo.i2p,uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa
repo.i2pd.i2p,ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
repo.r4sas.i2p,ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
retrobbs.i2p,mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq
retrobbs2.i2p,ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q
rfocke.i2p,pphesm2icsbqi7uzsmxpgyy4kc22b3cdpb4uwplkkjmupexva7dq
ricycal.i2p,tfkz7rgqh6rwvlo2veftw4why2dej3gztiglzfqfvykyzak2syxa
rideronthestorm.i2p,xrdc2qc7quhumhglpbcuiqxr42nuffv4xj4a73jbr4ygepitibqq
rpi.i2p,56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq
rslight.i2p,bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq
rsync.anonroms.i2p,4q6llvjjpgncu6wbol2rqq24ksrtscu5njj65jjovqlsxounxbdq
ru.hiddenanswers.i2p,o6rmndvggfwnuvxwyq54y667fmmurgveerlzufyrhub6w3vkagva
ru.i2p,m7fqktjgtmsb3x7bvfrdx4tf7htnhytnz5qi2ujjcnph33u3hnja
rufurus.i2p,7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca
rus.i2p,gh6655arkncnbrzq5tmq4xpn36734d4tdza6flbw5xppye2dt6ga
rvklein.i2p,pzbqr2s25zpgbwiz22nc7hzxlusqxwhpxrsmln63y6fd45whnjcq
rus.azathabar.i2p,6gp6ykan6ovr7p6dln56msvmdk6nrtvzoypz5dbhkkt4bdnryjna
rutor.i2p,rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
s01.nullchan.i2p,mirrooeo34iokdgf3wno4ubx6x6uj7f2pqyjmmrvtg4m4parvguq
salama.i2p,4uoef63gv2sg6dtqmom5oypt6taypklekvlejfox56eiylprzrmq
samainu.i2p,zlwgylqmlx6wxwnxf3mx64jl6yp6wv4sjeiidqw7k3n2wh2m46pa
satoshivision.i2p,rn5c533w5baghskquu3gtqlehwjkstzzbk5chbc5qhivsz3a3nqq
scamdemia.i2p,fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq
sdmr.i2p,o2vtbbcddamtqqomtf7wbkzzkh2xovt23lc6np7qtxbuv6vtul6q
secure.thetinhat.i2p,4q3qyzgz3ub5npbmt3vqqege5lg4zy62rhbgage4lpvnujwfpala
scanner.linuxfarm.i2p,kojzsg33v2zxwqp3twpqzfvflaeoxgzxrl3douf2x7xv27ggfnaa
secret-site.i2p,p6hbhjgdv2e6gyydrqh2ztl6onxnyilmj4ts7d7aj3uqssr7vvfq
serien.i2p,3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda
sftp.anonroms.i2p,uozfd7ttkhjsofmgs7lfcy4pgngs4yp7kvnbhnppebjumgbjhjla
seven.i2p,anqf44jmf7kby2qcvcx7gug6nuyansdu4msdbnp5kojom27rrm7a
share-les-miquelots.i2p,uxwha4jswnt6jrznj7yhfwldfilvyasnjruimmbylbvq5qykpbpq
sharefile.i2p,o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta
shoieq3.i2p,3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q
shota.i2p,75xxnc5hkeg7a3z5re4cpybbxt7te3p2krgrrgoka4hib2nr7k4q
skank.i2p,qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q
smtp.postman.i2p,3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q
solr.chudo.i2p,utl2ds5vztfomjgerohvxrgaq3g6zrspyku4s35knfmu4rihhgxq
spoika.i2p,u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq
snapshots.i2p,4pxaygw4akqf4ej4p32vykw3ejml7houemmdgecnlvvq2yxuru4q
snippets.bentasker.i2p,vgduvgxudaceslvwlvtda6b4csobvczygcqpklm3yeuke2zgvcaa
speed-test.i2p,7lk5mgyi2knhqjjwjeiiuwlrn2rs2s577e7jh7z5rmbe2s6qkjpq
spirech.i2p,labhopl3kd3eo7cj7kqa6nkwpczc2qj52i37jky77ugqazy7dmna
sportloto.i2p,sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq
spyware.i2p,36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq
ss.i2p,7gg7xiiwjmigrijsmkpsyzl6n4pd7hqiioovdr6vsip2xsdxpsaq
ssh-vimarsha.i2p,ano6eegsaozt5nkbo4muy2o3uf3mfxk4qnlps23dtge5efgkjssa
stablo.i2p,d2nxpe3p6yeaajchgfqwflnaateq3bueqrmx6higesmbu6vqlhga
stats.i2p,kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq
status.str4d.i2p,ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q
sto-man.i2p,rg4eilfpe24ws6nctix63qw2dlvd2tqgwdcgdxzji6l5bc4dc7aa
str4d.i2p,wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa
stream.i2p,prmbv3xm63ksoetnhbzqg4nzu2lhqdnqytgsydb7u3quxfrg7rna
streams.darkrealm.i2p,ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq
svong.i2p,wlamzgxjc4k67fn2c2pdems2dzfq3hkdbbt3n7ela7p2wp3pew6a
switching.software.i2p,4ntxofeih4fopdgl3hxn7xu3xkhrbtadnshvcc2ikrggi2qar4ba
support.i2p,supportpwqa4cc7q43hb67tgd3dvntrwsy6725iufahm7kiluysq
support.torproject.i2p,6r7j6jlbrxb35k32zktopvr3w3pidm2baymwol33hq7xmy2sqm3a
syndie-project.i2p,xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq
syndie.echelon.i2p,vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta
t-ru.i2p,bkhuehxydyprxpd4372h4boyluardjogyuff5p5l3u7syguavz5a
tabak.i2p,y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia
tahoeserve.i2p,yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa
tails.i2p,5d7sl23h4uer4czjdtlomkb6ykeiss6vqkxzausp6f6gmty2plaa
takipsizad.i2p,ufkhvmacngokfufxinfkdvfmbpvwvog5vrjiavw5zv32jnekcxia
talk.community.i2p,talkakxfa6ihzn2mbzar6q5chdtkpnjp633w3tarul2bb6tfmoua
talks.i2p,v45dmrrbjg3ucrazgl3t2tktyjajo7gvfexhmbdos3pi5kfuocaa
technicalsuwako.i2p,xrp6lveka5phsitsjee6z53qwbgim6gkmbfjyf5fppmz6hsi2oya
teddit.i2p,k62ptris7p72aborr4zoanee7xai6wguucveptwgxs5vbgt7qzpq
telegram.i2p,i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja
term99.linuxfarm.i2p,dg3mso5klqqgcngalxdh5yvkwv56ou7yotsqxw3twneojytiehra
tesla.i2p,em2x6bwsbelqfvlgypcywwoov2rib7mvxiy775dmpfs76m4zcdtq
testbox.i2p,voa7ebdulhpcsupz4zqeyikdjztyhiutgvyri4qxqapistjwptbq
testmk16de.bandura.i2p,gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra
textboard.i2p,7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua
texterochtankar.i2p,woqimbz4v2synkwyif65izfz2t4gbfbqjrai2ic5ok5qhnvmfszq
testshark.i2p,u64ropzplqkncdmi4wcknqehjqudxb6elyut2k44ocvgx7ilpgia
theyosh.i2p,5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita
thornworld.i2p,vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva
ti2.i2p,6r77rkt53xcjdpaaihttqjmzigvapmdczkekpogf5epdtcvrhgca
tictactoe.i2p,cbr6sya637smfifq2hxj3kzqw5yv7aws2uknmi6ln45r65xej4aa
tmpsend.i2p,r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq
torrents.chudo.i2p,5ooemze55xiicrlvzjmz3il23dpo4fz5iqr7hmzrygdepan5m3lq
tomasgl.i2p,tyiu7xok7hvzymxtgg62rjz7mvzr3bryq4i7ii7gudncogn2lpfa
torproject.i2p,torprojaxvxevo4c5qvor3ywgasxkubs5ukazrpq3qcxed6lgbrq
tosios.idk.i2p,4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a
trac.i2p2.i2p,i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa
tracker.chudo.i2p,swhb5i7wcjcohmus3gbt3w6du6pmvl3isdvxvepuhdxxkfbzao6q
tracker.psi.i2p,vmow3h54yljn7zvzbqepdddt5fmygijujycod2q6yznpy2rrzuwa
tracker2.postman.i2p,6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea
traditio.i2p,wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq
triplechan.i2p,blrplscno3ecqb5ihhg73kufmypydjlv4r4gqiajftup5wmcdwna
translate.idk.i2p,g2l2zr4moqsk2bec346i5tfd2o22cozm5b2k4ifdhbcayazoz2ea
ts.i2p,nebcjgfx3f7q4wzihqmguwcdeopaf7f6wyk2dojw4bcuku472zxq
tube.i2p,vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq
tumbach.i2p,u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq
tutorials.i2p,zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja
tv.i2p,znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q
unodice.i2p,fukkqcornjsfn2ggd2h4cgeitu4dbin7hymp5xf6zypwzif2pcoq
txtcon.i2p,txtcons5lrayl7bq7zsk2mt24clocassid3kh2rvyd3rd2xeklpq
tymcz.i2p,pyog2x6v3eyna5pdr765osut52tpbmaheyi5atbqfaixmcq4dp7q
umbra.i2p,xunb4chkeo5xxpfkwrkaqb5etmqpp4ddgvcmy7qkvtxhk5ihck2q
umbrella-corp.i2p,un2dk5c7zp5eeppownhi5hbdrjbrz5a2qajk3khj6y6tvu6w4lea
unqueued.i2p,3gvn4kwd7z74jxc2sn4ucx52dpvpscxbzjluux3ul4t3eu5g64xq
upload.arav.i2p,a5txjx3gjrnw6do4zr66wpwlayxt3dg7kb43wbr3fjp53mkfkbdq
vanity-eth.i2p,6djvwwd3mtozyqhpuyvcwqkje5fk3rbxqbgqgdlr32b6hvdqeq5a
varikvalefor.i2p,yn7ovvjf4nhf7hhk6qqph7utcoce4f2j325rfeuyapw3emlqfqna
vimarsha.i2p,ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
volatile.i2p,q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a
w.i2p,j2xorlcb3qxubnthzqu7lt4fvxqn63it4ikwmze55yjkzeeampuq
walker.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
wallet.gostcoin.i2p,reuvum7lgetglafn72chypesvto773oy53zumagrpigkckybrwda
wbnet.i2p,2deeocx7jmrbmjxcpkxecw7yy2z7ybzwz5i6mg3ska3p3d2dx45q
web.telegram.i2p,re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a
webcam.i2p,fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a
webhosting.i2p,hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq
weedforums.i2p,weedlt72zyludsl6adm5asdcalufihyzoruh6ca2klstbicj5iua
webirc.coldhell.i2p,k2d6bius63w3g35j32dn66fssqwbnyvegx6w6pl5mdeojpp4rjba
wiki.i2p-projekt.i2p,b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa
wiki.ilita.i2p,r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a
wikimirror.i2p,2bhh73qhuwjkznnnzjfgo4buo7xy5l4ubhzt3oh23adksscx6gmq
wlm.i2p,nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa
woah.i2p,yh2eixirhlhvp7exrtalcwgeirg3fxi2vnumsbp7w6tily5oiwwq
wopen.i2p,xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza
worcester.i2p,5jtgpuzaabxyhahvbmokb3oeh2lwzpiiqlrg3w7kyyg63lzkwabq
wordle.i2p,games3kuxvadv3y6tfowiynk2cnbuokrn2guvhkigqulmrvfnyla
www.imule.i2p,657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq
www.infoserver.i2p,fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq
xadmpp.i2p,jb67tnpn67i3pwcuf45rtwu7gq6nkrs72iznhnakpkdzb6dkgfmq
xd.i2p,jynrjzdp5qajf2jsdif6bgpijuk72zmuiohq3o7omeksw4pdgejq
xeha.i2p,oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq
xmpp.chudo.i2p,gppd6rx5jkutmt637odkbxh4tjqxy63i4amyhllqn424yt7pd2hq
xinku.i2p,xlsmgjin444ccqu7ff5taoov7hecasdyg53keatpbr2qrvgmzvuq
xmpp.ilita.i2p,2dpg43zlfophx5jo4xeqc6cx3zm4x3tfdoinbfuzychf5lwn3dhq
xmpp.pubsub.i2p,yxbp3sn2x5t6k7hcxsg4njmaxjomr2wvh4xeldxjlij3ms3sikgq
xmpp.reloaded.i2p,hioylmlm3lf3qgp2ncmym3igx6eyytlwioeq2fip4cwpzjtyxfuq
xmpp.rpi.i2p,3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca
xmpp.xadmpp.i2p,s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
xmrnode.i2p,moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq
xn--80aaid2dua.i2p,dvem3jrqrymufihxnagr32q3aezgstmzcfbfp2wj7evo3ch5inta
xmrradio.i2p,olwxvhwaq422rcrlmvh6wgrdczyfyeag645du4cwncutqblkfmaq
xn--80ahmijpip2p.i2p,assist2a3jsikp7ufmzpa56mlflhi5kmoack5dm6ua5x2hbgckua
xn--80atndcgadjdf7duc9a.i2p,dn46ftj3cha4q7g2rreokiflxb4xksevp53hiwctfyztmcsb3d5q
xn--hallchen-q4a.i2p,h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq
xn--i2p-5cdawgbask1ay4cjf2a9o.i2p,gar7ipdnhfy2mtbefo5dvoapzuupyphfriutu5nsnjruganiuknq
xn--n3h.i2p,6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq
xotc.i2p,gqgvzum3xdgtaahkjfw3layb33vjrucmw5btyhrppm463cz3c5oq
xn--r2beng6b4e.i2p,ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
xsden.i2p,4dofwhzlkz3k3sedwzs2sx2fudq3jfvaygffc6kp6hsawmfmz6qa
xx.i2p,a7hrmb4kbftyk4ovr2la6azi7vjfqwt2zlckos4svoaclqu52j6a
yacy.idk.i2p,7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq
yat.i2p,zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq
yellowonion.i2p,7l4kgsyatdmntck22i27oui3llftjim33ydav7kdew6ewfqvjzfa
yggdrasil.acetone.i2p,tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq
yiffme.i2p,sm6dk2ovxhgdjuu3rmqussc4e2xkfz6rmhng6i2t7parcb4v4y3a
yoitsu.i2p,yaaqmj55lsi5c5nukf4hsrift2zslnqkbcghwvjlaqayidtyctwa
yggdrasil.i2p,7hhvvtephitji3ibz4vhbapj4rikoppd5324yttp6k35gkqgri3q
yggnet.i2p,deyg5puthy6tc44j56ee2zxv3wu36vlmgxjyz2zoc63w66l5ksua
yourdomain.i2p,witqoik7gjzywta5nss5m6dvialeciismabksrukcvpfdpe6aqha
yt2mp3.i2p,7ai77u54gxta2ry326amfq4ugiqgcxd4r663nmxtswcwezyxsbzq
zab.i2p,n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq
zerobin.i2p,3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq
zeronet.i2p,fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna
zhaoku.i2p,2hq32svuc6wxgumgsyavy4osfssiaqjpdgynpvtyblin5l5urr4q
znc.str4d.i2p,ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq
zog.i2p,7su4pwd7xicqu44rd36g2a3zjlsv2k6otommnh7ztjpyixyozq2a
zx.i2p,4ru5b25ixgz2wt2aqskbr2iflv42gt6ta6qet7rv4et5rh2kq6fq
zx3.i2p,lemti4gcp2jyraxuynqes5i2wuilptupkwjxdjlp3t4ue3thflaa
zzz.i2p,lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua
1 0pl.i2p 0xff.i2p gd7qe2pu2jwqabz4zcf3wwablrzym7p6qswczoapkm5oa5ouuaua apo53zid3xe7rewxjw7whdym2rmyowsj7jeoiwrl5zlmf7oqrxwq
2 102chan-memorial.i2p 0xpaste.i2p t6uwxydnfd7mo2knxklmnrudxafe4mw5ojiqikj7xfrc4ynltz3q oyfcxkrmrnaplu24aobv7s36hm3vyxszlbees4hl6kpk6izwa5da
3 102chan.i2p 111.i2p xxu3lso4h2rh6wmrxiou3ax7r7la7x6dhoepnku3jvrlwp35pefq s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
2ch.i2p suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq
4 333.i2p 333.i2p ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza
5 aaa.i2p AAAAAAAALIVETALKZZZZZZZZ09ALLARXMETAROOTSZNZARXPOSTMETASYMBOL.i2p zzhy7rumzzgxzodvgu4xz324nekbbccphegweukj4cm6nrbpg4oa seqqbywuvscfpvi3pjdvi646hckwojenfqux76utwac2ltd766cq
6 CrustyIRC.i2p 4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
7 aaoth.i2p aaoth5tidbhizgerysxlfrqmg5t7jzb76zt6lattwjj3up524qwa
8 abdlandrubbernetwork.i2p abdlandrubbernetwork.i2p asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca
9 acetone.i2p acetone.i2p tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a
10 agoradesk.i2p agentoocat.i2p ztqnvu7c35jyoqmfjyymqggjpyky6z3tlgewk2qgbgcmcyl4ecta voanmdeayaccgaxumtehvxxiv4sdscsixoxsqmhh7nfwhusrvfaa
11 albatcats.i2p algorithm.i2p ilgg7nbtofvgzrpl6kenxugfdsgi3apu6sgilmqi5rhpolnauyga algout6clo74ywqtjyemehnf4bzhegpju5yvi6zdcfszso7iirka
12 anek.i2p alphabay.i2p iprnd5ceoj3sovmhoigwammwi7zuklrqwzfzrhvhjppspfxepvpa tnaefzkcnhryeusi7hdpqujqiqmnbtah3dmjcg3gvezohunjuxbq
13 amogus.i2p udcjqqoo7mc54ephxnhzaxdwtqxsgxjzvh4wr4boope6vyr4mrhq
14 anilibria.i2p dak33oupjdimfhdmgrvfoclrbln5xlrvzp5ec4zvqlxq42clai3a
15 animal.i2p animal.i2p 5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla 5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla
anodex.i2p 25cb5kixhxm6i6c6wequrhi65mez4duc4l5qk6ictbik3tnxlu6a
16 anongw.i2p anongw.i2p owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq
anonroms.i2p w2sgx2i5n4uxtqjgekckxnhhpymigpn5lmgdaujyzib6sxq7j4cq
17 anonyradio.i2p anonyradio.i2p cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq
18 anothermusic.i2p p5mhrtnjfyonumqjzkzxakxais4fjtjgappvoioztqehaii4smpq
19 apophis.i2p aybax36xssplylkueyy3szi3n2spd7mgxcmzbawapg3vxznwlkda
20 apt.idk.i2p apt.idk.i2p s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia s7qemnncvmy5zs3khd6qzlcnsvtu6drnkeae4r3yyc7akuzuqiia
21 aqua.i2p xqwrqfuoae43grkmzs63sw5upathbjerid3ch4bhskle3bibeqba
22 arav.i2p t42fkp6zp5dfqywantq3zp427ig3q2onrmfv246tyaztpg4ckb5a
23 archaicbinarybbs.i2p archaicbinarybbs.i2p t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa
24 archiv.tutorials.i2p archiv.tutorials.i2p lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq
25 archlinux.i2p archlinux.i2p 5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa 5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa
26 ardor-wallet.i2p atetsu.i2p tm23k5ny3umhf6vf3kghnnwacli5zywq5wrr3xcqowbcofuyr4gq pcr6k5krxwcvmessygjmfsbxgnyju6ipq5236ki55n2i5u4uylpq
27 azathabar.i2p v35rwae5zb6fcgd7phzkireghtuen43umi7l5yvahm7ezkqg5uwq
28 bandura-yacy.i2p bandura-yacy.i2p e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq
29 bandura.i2p bandura.i2p n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a
30 bbs.i2p banka.i2p 7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua vuo5wavhhstnv5gehgmvhjy2jhpm3mdlcvtovfqunfzv5ngug5cq
31 bentasker.i2p gdncgijky3xvocpkq6xqk5uda4vsnvzuk7ke7jrvxnvyjwkq35iq
32 bible4u.i2p bible4u.i2p xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq
33 black.i2p bitchan.i2p sjwueu62qpe6dtv5b322k3f23fl4uz3w6qe6wcrwauiwpnymypfq waycuw2c27ruakfblkf5tcegwmt3ot445dlfoypil6bzmm4yxg7a
34 blackgnu.i2p hskxmtmwqnmq7pnxzntlwt36ew4nuqzmwhzbqjo233ncfoaj7mpa
35 blawg.i2p uq5hbw7bplczde3pbugbxnvtqbjjdba6wfggpvbmaghuwoulputq
36 blog.raccoondad.i2p ouc5i7xknchig3qdtkoydoeg2oqe354roxkjrrwzuzjcqr4xpvna
37 blog.tinlans.i2p ylkch2nkrwehakx4z6wiyjbeqwlgasknukdkex6r6yq4xusrjnda
38 blog.torproject.i2p woelslt2oh4dn5wlxfmpjggyyu6l7ntgk3rngrooldn57x4kduma
39 bobross.i2p 54y7lkvndr3fa4c4fw6e5udfx37dkrh4wbdjvxbwapertwz2vtqq
40 boerse.i2p boerse.i2p 7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq 7633w56hd53sesr6b532r5qlbdnvyl5bnvama6ign6xryaxol4rq
41 bofh.i2p bofh.i2p auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a auvuinzogu6gc4pwsgbjijuszxgcjygciu2wy53pfz7mo5nfpc5a
42 boran.i2p bonobonet.acetone.i2p boranyzcefxqw2ktndemy3npt4zhetpp6edldtlym2ap7n5azt5a keihicq2fcfooqvdqtufjpigg3ge5mw5mjdpdnxy5utazrqkcnxa
43 bote.i2p bote.i2p bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a bhjhc3lsdqzoyhxwzyrd63kvyg4br6n2337d74blyintae66mr2a
boxs.i2p owm3fy2t5vwbxowk5gsshihkwjfknqq7y4ylbeyhvzta7r3ybrpq
brain.i2p wbmkweyyedl5dp74hfyo2iot6y7oq5yzbe6hbscdszyi5dci2dka
44 braindead.i2p braindead.i2p braindsku6jnpmnaats2cu2qzax4pga6dwhx436kxanpxgx2pcyq braindsku6jnpmnaats2cu2qzax4pga6dwhx436kxanpxgx2pcyq
45 bunkerirc.i2p brick.i2p mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq lfeip77mf2j75izalrenv2aft5h3mfwauqqu3nqdmoq5ldwwsvga
46 bridges.torproject.i2p 2tiwhibsjvys63t43xncar6y52dy3dpct6edglenhzlalmyirb2a
47 bublik.i2p npx6e6trk37ovoxzk3j3yoh5huenh24avbmsgeroiejkuzb2vo6q
48 bugfuzz.i2p ubszn4gsf22vga67rvzzlg4qj2bfcq6o52fmxz46xruawqm6z7rq
49 ca.i2pd.i2p ca.i2pd.i2p u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba
50 cake.i2p cake.i2p hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq
51 cathugger.i2p calculator.i2p vq43xjjcnejqpzfprws5qzrea2siieshu4tglpdepql2w3w3bpba itj23yb325dma24i4qpnhuwrz26hzpps6izkaf3mowavtvoznnva
52 cantonese.i2p 3r3d43jejiezwb6daqgtk23ccs4jm3bvkhxwwwnpymvjn2aymriq
53 carvet.i2p r5ukmkit6n3ztitar6clfc6te3o3235ys4jdbiugnkvzmfurxbnq
54 cbs.i2p cbs.i2p u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq
55 chudo.i2p chaox.i2p iaublzhzc4ssa3rcrjbdigautm66mslt6g2sninugagiarl4at3q 6bcqgkedaq2krrhvidjlmdsoltmzuwaqtrafycfzbc56h5swumoq
56 cheapeth.i2p x6pq4h33wu6txj6vvpgywrgew2y6cwzs5l63w726paqsvogeqdra
57 chmok.i2p w7eqh6nndwk4yr5vxtbnvizgsg776vamwingijetnnqojrzjxm3q
58 ci.idk.i2p ci.idk.i2p antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq
59 cipherlist.i2p gbm4kiotqjqmklwsp3qibdtn7mhatjsyeebbb5zxwjlp6w22fuga
60 citrus.i2p citrusogkieyk3hleilk5scb5a64jdzoogi5wjv35klrvmqsh5ma
61 cloaca.i2p pnsyl5plmmwuqfvpg36cbvvhe6mpoy2j5zzemfb5sfbpvklyozta
62 closedgl.i2p 5q5kqrnb2mji5lzfjj2wwdrpp4veg72jw53i3tvxb4qb5umawvha
63 closedshop.i2p closedshop.i2p 6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq 6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq
co.i2p 3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q
64 cobalt.idk.i2p cobalt.idk.i2p m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q
65 coldhell.i2p coldhell.i2p z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja
66 community.i2p community.i2p 64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa 64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa
67 community.torproject.i2p wmw22z5c24b35hlepzc2g6k3cpcg44rcg46qdwfo5heiplv7m4ca
68 contact.i2p rn5hqxierph4eegft3hiiqkgn2zyyfgj2c6pq75bkahl3pu5shvq
69 costeira.i2p costeira.i2p abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa
70 cs.i2p cunnyjihad.i2p kzaeunogz6s75ptgy6ifjzwwy75xdfenenswvrczd7mewxgrad5a axdboajwlxlolrekv2wqlennbxuaiqib5oy7nmax6fcmehlaf4da
71 cyberchef.i2p 5k22kdukxkobertlyheal5aro32gls6nhgktneq3mtrracubt2bq
72 cyberia.i2p 3jrfzgnetbjwnyrua5jpyeqk7gb6dgfw3hu5q6lyggnwqhrury5q
73 darknetdaily.i2p gehxh3zlns3ezyuc35bszc42hdr4g5uzasexzyrqfxwcwkeiulia
74 darknethub.i2p tnh5bp4si7x47vhwk6njtimbbk77gai3abkfh2gz2dhml46uu3uq
75 darkrealm.i2p darkrealm.i2p gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq
76 darktech.i2p nlkpudgmmgsdiemnbehq5llymdmxp6tn4rzjuse7nhvavr2kgkga
77 dashninja.i2p dashninja.i2p dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma
78 datagrip.i2p ajreyxslv6lijap2hykp3uvnnsca6fyvax76u2w6n3vexngkif4a
79 dcherukhin.i2p dcherukhin.i2p qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a
80 dead.i2p deavmi.i2p 7ko27dxvicr2sezvykkrfiktlghx5y5onup3f2bas5ipocy6ibvq fh5r3hlkkwh7udtjeqmekmq4qd62jnjqmnqob5hm3ndiuo6lauza
deavmi.i2p t4cvvenniup6dcdlu2ehdycos5r3luccfemwd6hhvyqv5zd6obgq
deepwebradio.i2p 2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la
def2.i2p cepsrw27kdegwo7ihzouwvgcvw2obswwjs23ollgj7hk2yrce3da
def3.i2p xbf3ots2purqun7orn72ypkpjmrzbfrkj3u654zfe77hbrbow6la
def4.i2p yyzdq4fwwmnlojp23drfpfqujln2vcjozjrfzfeuriuqzdq7g4mq
81 det.i2p det.i2p y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q
82 diasporg.i2p diasporg.i2p edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua
83 dickinass.i2p 5x55ucmwxf2fvrcboapylnrcwdvunlokq5c7mnofno3bkrlqltza
84 diffyq.i2p diffyq.i2p hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq
85 digcitlab.i2p digitalsr.i2p gijabxlt4ox2mblh2nfxnds6u4mlsdeoonizknbdksl7klmbpvoq ldavoapfhoqpxvihdsdjjo3phlt5ujkgkzigzbesab3g42rwvbpq
86 discuss.i2p wrnowoalzz5mquzaygmcrm4feuqco5gsxyn42fizbqjaprtdx5gq
87 dist.torproject.i2p pbhgoronppg7tq3dssnwmhzkbrscbvtmy3d5pmar5hyhnqwjj46q
88 diva.i2p diva.i2p auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka
89 dlms.i2p dns.acetone.i2p krsbxsaw3lnb6ctdpydygm2gqobjcpm4pf367ddo5hylbscnynmq dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq
90 dns.chudo.i2p donate.torproject.i2p zzfmtnnmacop3xvpznc4c2jfvk226wpep2gaoanja3gfzf3ih7xq crxdz4n5viyy46upbd4amlzxcinkea7hwj3mkiudrw3nkpnfv42q
91 dosje.i2p donotafraid.i2p ir2ky5ejx4f646l4fsnug22gj4frn6jzlg7fgboudf2n5b4gdj3q w6jq5xsixmolxvh5xtxaqolary2nmx5n4orc5bilc2j7ejcytgfa
92 dreadpiratessociety.i2p drommedaris.i2p fbdd4syj2v52x5zord67av2xclmjsg6bc6xdvrqmvqkyd3whij6q 2cth2loujyjvouft5z7cr2ajdv7r46tdxxew5xoqwpprucd7nf2a
93 dropbox.i2p dysfinis.i2p omax2s5n4mzvymidpuxp2yqknf23asvu54uon6cxl6gdrlblnuiq 6dhhk2azkdqd4zt2azsmnxddhooiztnaxgz6ft5sbusb5a4vonva
94 dumpteam.i2p e-reading.i2p 2fwlpuouwxlk2nj4xklvm43m52tqyhqnu2fcfiuv7clvf3wd5nwa z54dnry6rxtmzcg7e6y3qtsig5yf5fmehuvakcg5wnuahx3iafuq
95 e8.i2p e8.i2p 5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a 5spb6cl4ffallahbaj2yadag2zgyuciouhz2rdcnyjcf5phqcu4a
96 easygpg2.i2p easygpg2.i2p bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora bwxry5alzx5ihgrd3glah4eotddblzhalvpheppnw4zcajzqoora
97 ebooks.i2p ebooks.i2p bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq
98 ebuild.agentoocat.i2p lu56romn7lp6ggjtofbwwsaee6kcfonci2ezi5jb5nyo3vdo7vkq
99 echo.idk.i2p echo.idk.i2p 63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq 63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq
100 eddysblog.i2p eddysblog.i2p ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq
101 elibrary.i2p ei2.i2p vrzdalcxclk6kylist2gum5eljpnignhiwkyoozqp2fudr443ctq y4hhbqzpjdcsgvz5dsgaytttxygos6h2qt66wbbiuvcpcekdmmoq
102 es.hiddenanswers.i2p eleven.i2p cw7ge5ey4ekp5iep2kaw6j54boebtqytpcbnvio2bfpccd5ejzfa n2er74vsv7szwvsbsukd2lwhz5epedws7eqwahsmxy65agvjizzq
103 fa.i2p elvn.i2p 6n6p3aj6xqhevfojj36dixwbl4reopkhymxmatz7ai5sroh75rka vwjtedtgyokakyxgfeoavg535bxe7ymdvfbdwsq4iqngljqtqi3a
104 envoicesalt.i2p nsamcq2zidlioxlfuinqzboblpvrnhkbdwavgsvzmt3n3mhuho4a
105 equwal.i2p j7zqkvkokxmpkbqrgrkkjym4j7kzuipko4qdujdjbxnrp3qj6ooa
106 erotic-snake-gallery.i2p wzgk77ifxl7kpgqxs4p2t6ujjyfpdvgjlqz3q3n4wfkdljfv3dya
107 esperanto.i2p 2yryi2eb72hnxavjpfot7paiminbzgv5w6fv4sl5wez55ventdeq
108 ethorn.i2p iuz4hj3bauo6avfs6esesmmh4sgrf7maqs5yve22ftyakx3fmrza
109 explorer.gostcoin.i2p ktoacmumifddtqdw6ewns3szxths2hq2fat2o7xnwq4y3auga3za
110 expmoneygame.i2p x47muddvawmtqwmmorhtq4r5hwyhl4coa3ud7ukuthleuowo2jfa
111 extinct.i2p atm7gdttp3ags6wmgb3hey5emhuqfojs5272kg7zvo46z5vfwraa
112 fabrice.i2p fabricexhumxqngfziy4xkao5m5ez27jpih4chtmigg46eu7rroa
113 false.i2p false.i2p 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
114 fantasy-worlds.i2p fantasy-worlds.i2p 62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq 62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq
115 fiat.i2p ldnhzi7emxnibjz6g55k2nyywzmcufnst2jy67e75o6dlvtx7wia
116 fido.r4sas.i2p fido.r4sas.i2p i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q
117 files.arav.i2p gajftpr47ze6ao7e3q2tb5xmcqneyaczu4edzvwwg2qzmnernpka
118 fileshare.linuxfarm.i2p rrx4hxejr4pod3tqrkj5ckzuauwy2aqsfvpiac2tkebp2iuv5qla
119 fishsticks.i2p btjbfuh2wav3c7bkjqylgatbkvqaireemvsvxwetkrifuvfa35da
120 flibs.i2p flibs.i2p ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a
121 flibusta.i2p flibusta.i2p zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq
122 forum.idk.i2p forbiddenhistory.i2p bg7kaiqjcqqeuuwb5nyo3ptcp5dgza7mihtizwqtnz2itombg6da nlduiogwtutni5nwf5kbuekrqf3ymqmkor3hughjkckz7tvruhva
123 forum.rus.i2p foto18+common.i2p zd37rfivydhkiyvau27qxwzmerlzbqtthsa5ohtcww62zrygjaga bwe4hnzsvnx73aye36hymhhqzi2dbbrgf4rbtqh2e2x3q3r67nfq
124 fourth.i2p 2cq65hjlt7nnl7mctthj7oejlgep7nh7gmqc6bnbflxw2ti4bxxa
125 freefallheavens.i2p freefallheavens.i2p 7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka 7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka
126 freenet-inproxy.bandura.i2p freegram.i2p rblg2sajac7winv4mgvnkfh2fa3nt2zxfvxfiybj76okpwdrt45a euatsdg24n3j52gd6ptc6gd7hhynl2edpshqyzbehmimpvubt4wa
127 freehaven.i2p y4giqqrbcb4xit5gp4y6njypupfklfdr74lfi424seenf7usjvza
128 freifunkmobi.bandura.i2p freifunkmobi.bandura.i2p 5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea 5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea
fresh.i2p jii6utg6ubwxgls6jegu24ifrroo4qzbcizjfft2bemodp4k2i6a
129 fs.i2p fs.i2p ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q
130 fsoc.i2p fuck-rkn.i2p vaqc4jm2trq7lx2kkglve7rkzxhhaptcwwl32uicx4ehf5k3hx6q qmlmnhr3ul2lmuu4fjf43kmk6hf3dzsuxv5xu77vwys36xwuu4sa
fuka.i2p e3aanmaobvwopjrmrnuqvrkr36gyubrv6f2lyygh5brku3ufwrsa
131 fxruby.i2p fxruby.i2p lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq
132 gandc.i2p galacticreststop.i2p m6zwig36wxbbhat5fxh5vzqo2uvq2vwl4q7kxc2f2w6wtzvzesoa uln6c2abwfzneakdz7dkfmdifwrjr3r53jvkmq6mxrjt2vflvbrq
133 gauteng.i2p 756vri7fovo2rtvynjy5yi3cbkxkap7oh7aggiz6di3s2hagdkwq
134 gedanken.i2p gedanken.i2p kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a
135 geekcode.i2p hzmyzxa6jzag67zcqxhicydusdev77byf2qoyxjxhsrtkce4qiqa
136 ginnegappen.i2p ginnegappen.i2p kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja
137 git.agentoocat.i2p 5ihrbnmcoewaax5kxsghnmxh6p6srufhmo5pqkybdwuz4yj7efja
138 git.apophis.i2p apep7dtwnuom6b7li6jirhrsygxgcdqb5svqpq6mh2rpindrzp2a
139 git.arav.i2p p5nkflgogwv4esy3ainup6mgurpugmdyufizhuufauznreyvprsa
140 git.community.i2p giteabolfdejtdzblkooalqei6jr67imiugmhtsh6ocw4hlj5a4q
141 git.i2p giteayof3hpwkfnwnryy6l4qhq3cwdzqlr72jokzbkc6ol43mypa
142 git.idk.i2p git.idk.i2p 7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a 7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a
143 git.psi.i2p git.qorg11.i2p em763732l4b7b7zhaolctpt6wewwr7zw3nsxfchr6qmceizzmgpa jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq
144 git.repo.i2p git.repo.i2p vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq
git.volatile.i2p gwqdodo2stgwgwusekxpkh3hbtph5jjc3kovmov2e2fbfdxg3woq
145 gitssh.idk.i2p gitssh.idk.i2p g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka
146 gopher.anonroms.i2p glue.idk.i2p wqfhyrnpknap3ushsck3ih3r7inz6uoqlr3u3ktwvejur3bejqha ykbx7chmkivx3idmxd3lu2jc5w4wtlps4r3md57wszhk5w7jykyq
147 gostcoin.i2p gostcoin.i2p 4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq 4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq
148 gusion.i2p gusion.i2p 4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta 4qyfdhizjixe2psu7wcvqufix5wlijocehpb2futurcmlhlktrta
149 h0p3.i2p h0p3.i2p k5fppzxc3bwoz2mjc7q37jojbrxo6vtprac3dzrk4wapv7irr4iq k5fppzxc3bwoz2mjc7q37jojbrxo6vtprac3dzrk4wapv7irr4iq
150 h13.i2p hacking.i2p tozb4vssixoccyqtgnpaatkg2ql52kkjwnsdo3dltezges2na4bq uvxiknnzaxtcijzagp5xuweua2ctghmjfubqdufxilvnkajhezaq
151 hagen.i2p hagen.i2p e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q
152 halifa.i2p harbour.i2p fpo5fq4kqulfxhb6odg25jskezvucbx4wlwzg6ngqsxhrzvmxtwa zohxpycufzcslwb2dgdkfo75flahkl2q7n57ciqjooqia75ybada
153 hardenedbsd.i2p 6ebmdsir52bi3q4wfwug7ylouoq6gdafl3wyy6ccfmpffijhtoca
154 heaven.i2p heaven.i2p y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq
155 heligoland.i2p hex.i2p gzrjm62ektpqjfsem3r3kwvg6zpjvvhvpjvwfxkm2ay4zu7sp6oq sw7m3pxa4d3niun7tz4keq2kwpffhpu6b4zcdeupjem2y2tmycqa
hgit.i2p ny4ev7me2y2ibfi37mykakwvf2jhnl7lfql4etaiykjiwtd735pa
hiddenanswers.i2p kj2kbzt27naifij4ki6bklsa2qfewxnkzbkgvximr4ecm7y4ojdq
156 hiddenbooru.i2p hiddenbooru.i2p zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q
157 hiddenchan.i2p hiddenchan.i2p 6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa 6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa
158 hiddenwiki.i2p 2iz3nkopz6fxbzlcjq3ofligi7mwdseuj4ndzqljogyvsggh6dvq
159 hisdarkmaterials.i2p hisdarkmaterials.i2p qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq
160 homosexualchan.i2p hive.i2p suzp44odgixf5lthy5ngy6ktabus5gz47squie2shudi6kmlwuaq 2koqsqujgndkz3ozgrvx4txezvxpnm65orrr3c5itszy3vd46eea
161 horo.i2p hopjoy.i2p vrxh2vbqsfvh2utnt3ighimu4vrgla2mfpwksipkjsguv5vewhdq 3wifx34yzdnj5vw3zu3kmqyz57tvlypmdnnyalqjdcaqrege6bpa
162 hotline.i2p hotline.i2p 6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq 6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq
163 hp-net.bandura.i2p hp-net.bandura.i2p z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq
164 hq.postman.i2p hq.postman.i2p 7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra 7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra
165 http-false.telegram.i2p http-false.telegram.i2p 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
166 hungryewok.i2p to3afquvmrmk4kvozisb562elb2hdka6hwk6oeud32m6h2qtkcqa
167 hutor.i2p vouttzj22msx7lcpgybfhbqoignrawsgo2sg7g7ml5kyuugbbkza
168 hype.i2p vytu5npewxcve3i2qhdqcb5wqmd6lrdmdfkaiv2kpx2lfm6sejkq
169 i2chan2.i2p rqd4efol6ooxukq2jj6toml2s7uutj3kbkl6k7kfm7vpmmt2k4fq
170 i2p-mirror.bandura.i2p i2p-mirror.bandura.i2p aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q
171 i2p-projekt.i2p i2p-projekt.i2p udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna
172 i2pd.i2p i2pd.i2p 4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa 4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa
i2pdocs.str4d.i2p yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq
173 i2peek-a-boo.i2p i2peek-a-boo.i2p qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa
174 i2pforum.i2p i2pforum.i2p tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda
175 i2pjump.i2p i2pjump.i2p 2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka 2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka
178 i2podisy.i2p i2podisy.i2p 3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq 3c2jzypzjpxuq2ncr3wn3swn5d4isxlulqgccb6oq5f6zylcrvcq
179 i2pseed.bandura.i2p i2pseed.bandura.i2p 2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia 2bpbnalf76ktxzhfekkwcklmo45xzedi5em5bdoyedrhw5bhvtia
180 i2psurvey.i2p i2psurvey.i2p pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia pemwrlamhiiv74ok4kwoo4eqwzzjshp4q7ir3nlh4jfnt4zjncia
181 i2ptimes.i2p 563tjwihw2ql5q2kl7d7md7ywedpapoqgkxgazkz4gmlrb2flqbq
182 i2ptorrents.i2p yt2qxe6nq3meofloobawy6nlnmu5pxkobqjyspdngfrasd5v7bca
183 i2pwiki.bandura.i2p i2pwiki.bandura.i2p isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q isbf7tzeyrutnd5rvmjpqaohe7cz6onqgci2wvbuyfwc62w74r3q
184 i2pyacy.bandura.i2p i2pyacy.bandura.i2p owy6s5xlkf4zsrwwpemvoru6x6qmrye2pe3v4v3dncvcrzix3fiq owy6s5xlkf4zsrwwpemvoru6x6qmrye2pe3v4v3dncvcrzix3fiq
185 i2speed.i2p i2search.i2p 532c5r6ra6rcf2mvfgtlcxbn3lpplybwxul4xsg3ps64dlx73fga cpgupqyhxamjfgdd3qk5ux673qomu3o5kqszvq6fwuigzifkxzta
186 ibft.i2p ds36spqcf7dnj46in5vfnbbwcbjpslo6aafkdrkc47a2oq3zvtta
187 identiguy.i2p identiguy.i2p 3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva 3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva
188 idk.i2p idk.i2p b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq
ilcosmista.i2p 6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q
189 ilita.i2p ilita.i2p isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba
190 in.i2p in.i2p r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq
infirium.i2p 4iovxkkupux5nnl3cnsdhpqzpjg3jmqatdmogpuu637gxdybjqhq
191 infoserver.i2p infoserver.i2p jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q
192 infox.i2p qoz4bwrtnicqyxemrxubdc65uojrqn2iem6v55b6xmxzdmfzcvlq
193 inr.i2p inr.i2p joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq
194 instantexchange.i2p insecurities.i2p 5wiyndm44bysev22kxvczxt37p6o6qroiqykytrvn2yzi55aqfxq 4uggkxbumfoufekfu7scfx4vkqfoqslv4fsog7kgwjcat2yqzb2q
195 irc.acetone.i2p irc.acetone.i2p qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq
196 irc.coldhell.i2p irc.coldhell.i2p d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq
197 irc.crustyirc.i2p 4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
198 irc.echelon.i2p irc.echelon.i2p ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq
199 irc.hutor.i2p 3xx4cinvepbneik4efvpbgwtax7xudgdulffqvcvzo623maitu7q
200 irc.ilita.i2p irc.ilita.i2p 5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a 5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a
201 irc.kitsune.i2p irc.kitsune.i2p cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q
202 irc.kobomy.i2p irc.nerds.i2p 2j75o23f3hhpebthdiuzevjo3sphmok4jbr5yrtmwav64v2hzuqq nlqhsdd5a7hanjea33mwizg5ixh3xcv5dczufpf3qcfpo6tx4esa
203 irc.postman.i2p irc.postman.i2p hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq
204 irc.r4sas.i2p irc.r4sas.i2p hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la
205 irc.rpi.i2p irc.rpi.i2p ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q ppqu4shst5hfjn6jgxyragcanyxurhmof7jdrxag5srpeobevh5q
206 ircs.nerds.i2p w4d6hj3q7eyfrkb3kcy7rox2fdjzywypvmyrudtf2q4gdzs2qlhq
207 isitup.i2p isitup.i2p xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq
208 isotoxin.i2p isotoxin.i2p wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq
209 itphx.i2p javadoc.skank.i2p zwu2erk3wtyxlcbmd73kmxcirjghdkk4lpupy3xcavpm3qbob4da us3amyq3emvm6rcxmrar3o3uoiifnafijgseho4dxdsjgonfyaxq
ivorytower.i2p fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq
210 javascript.i2p javascript.i2p idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva
211 jikx.i2p jbo.varikvalefor.i2p aazr55itvyns4lwppvx5njyx5tjdwemw4w6jbmpegdunznod2ieq 3flbkdhahkgq47s7vytubh3v4vk3lyqgwwh6dd2k5szqlrivdmta
212 justanotherlibrary.i2p jdj.i2p f54ac34egsngkp5v7uf2mqbp7rjvegvcokgu6inujlxqjg24pcna mqxhou4icts5tmoq7ndz56sb2ox4s2atzm2urmyn2ndrj2dzzguq
213 jimkiebs.i2p epqxjestvatyv2ala7iqbm45elnecqecz2zmpoklzvekwjapu45q
214 k1773r.i2p k1773r.i2p zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq
215 kallist.i2p karamba.i2p rpoqwcozn4pdxz7bp2vxsl7vfibpbccsymfuxg3c7v7yj3um4bta g2lizyuyzms7m6gv24pzege5zapbinxfd2dzbaha6k246pl2xu3q
216 keep.i2p giaufpixdvnhabu25srbyttmskz3wmhsfyf7vsbkgfrj5el4sn2a
217 kelvinchan.i2p kelvinchan.i2p 6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma 6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma
keys.dlms.i2p znl2swe5pez65qxrr2s2s4lmdfky6mnppvh3p5j6suuiovymhjtq
218 keys.echelon.i2p keys.echelon.i2p mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva
kibykarni.i2p xowcvzbeq72slpbrwmjl3zy6xkrkb2ncctpkkskeqts63vedtg7a
219 kill-9.i2p kill-9.i2p 3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q 3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q
220 kislitsa.i2p kislitsa.i2p khceo3smaxtng2tnuicmcbhdnkk2j6myi4nkigcux76qh3aabdhq khceo3smaxtng2tnuicmcbhdnkk2j6myi4nkigcux76qh3aabdhq
221 kkk.i2p kkk.i2p kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva
222 knijka.i2p knijka.i2p knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa
223 kobomy.i2p kohlchan.i2p f2m5wb6iotejsdhimqunkggw2pbboozd6vcha3xi37zjsecya2ua kohlchanvn6vtsujobyw4pt5naaszmxqutd5hsdatmxfe2qaqhya
224 korol4ik.i2p mr3z5lggdppc3yw2r2egstpg33ga2wfocmozac6kjmhhfk3asm2q
225 kuchka.i2p nzmvfaztssds5yaatmmnk2jdghfxizvr6lctmljvxqehnwsfsubq
226 kurator.i2p kurator.i2p sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q
227 kycklingar.i2p kycklingar.i2p gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva
228 lbt.i2p lbt.i2p 5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq 5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq
229 legalloli.i2p ledechaine.i2p clxah7lssffdubl3iklopl5bkxewmmbi5zlerw7ryuxawo2dqx2q 7s4vtwkvxvmigj3r4zrc7s5ajdeqtris4qnj3n35cuuvuzkpgqsq
230 legalcases.i2p tms2ibdkp67ddj5ez6l4zwvw33jdpz5tmavv3kpjdcpavfh7np4q
231 legwork.i2p legwork.i2p cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a
232 li.i2p libreddit.i2p jwzmbp5djo5t4mkbchhejq5mrx2yye7tkbwry22scihwy5s4hcba libr7vbp7i3lsvqwy5aqgql44uxaufawi5yrloh3x7sezubsoaba
233 libertor.i2p libremarkets.i2p 7gajvk4dnnob6wlkoo2zcws7nor3gunvoi7ofalcps5lc76wruuq 3jknyeprdyirtzhc5ysh7qma4bgswazxgeylfxjtrx2xxtycq2lq
234 limak.i2p jzoxeuuqt6wo55pvt4uh7o5i47oyadrvhyjli4hidqldhihu6lna
235 linuxfarm.i2p linuxfarm.i2p br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q
236 lm.i2p lnxcloud.i2p yeyar743vuwmm6fpgf3x6bzmj7fxb5uxhuoxx4ea76wqssdi4f3q wryxsgqp3xl7fuohijmxlugrndtp2vixqlt2obpgriwt3fpdjn6q
237 lockdown.bnet.i2p vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
238 lockdown.i2p vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
239 lodikon.i2p lodikon.i2p u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a
240 lolicat.i2p 2mvlbpgzlawdxqv3zlcgcje475kv35ow2itpztjpdqegbtjpvbda
241 lolicatgirls.i2p lolicatgirls.i2p pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra
242 longseason.i2p lucas.i2p ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da hcb6j5indzeqfyerq4igx45xgruijbs433mh22ye4osoxkxhumwq
243 losinka.i2p lunach.i2p r2z2tcs6eguevoxlkrmpkcanuwgnsit2o45svnwaer3wq4v76hrq m27cpx55hqhcfjz4u62tiynjtzqdw4s3kanxdgluuthnndiquoeq
244 lyoko.i2p mail.i2p afuuortfaqejkesne272krqvmafn65mhls6nvcwv3t7l2ic2p4kq mail4okikc3tknhn2tfyqzq7mxgzltqg2tw5v5frtzkcsm45zdra
245 man.i2p major.acetone.i2p progskxxt44tlefm5uc4jqseanlhgbbkjyz4g3nvjjzbvhhp342q majorivqe4wud5ksadgfycdkgqsesqbbnw4hpgcqfixy4sm77f4q
246 major.i2p majorwsiehucyqfqbw3g2on3xqq2pwrwdd6hhyludqqr6ct7xdoa
247 mapwiki.i2p p2lufcvbzq3smirs7ijwds3y34cxzchveogb4jflbpmk5pzy3wqa
248 marenostrum.i2p marenostrum.i2p tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq tlrae2xdtewfb262daw6ygm5nz5vusc7rbiefpndubjk4jvh5roq
249 masterdestroyer.i2p masflam.i2p yp2g7frk3ze5ljaxbmhmh6hhda3rmpwmpianozi6or2uzqzdur7q ucvzbekxpbzfizwndx4bgsj5bjbygdu4vc3xukiseiw5bvatxivq
mastodon.chudo.i2p bba3rhijp3btiinfeixrk2jzz5rilnxxrxvjjx5os23ro4n6g4cq
250 mattermost.i2p mattermost.i2p x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya
251 mayvaneday.i2p mayvaneday.i2p zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa
252 maza.i2p wiigkmy5je5ox4byjt7z7fh4btojbixbmfv4chnzqoovmgnvdpoa
253 mdleom.i2p mdleom.i2p ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa
254 metavertex2.i2p meduza.i2p 4k6h5tsysycyaefvrh7maltvincdx6ugj4t2a37zzyzm4wf4g4dq qlxgwqeyhdltlx66l6gcmnlacwkoex5dtcmlvagarvof2aaljpxq
255 metrics.i2p metrics.i2p z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq
256 mhatta.i2p mhatta.i2p o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq
257 minecraft.reloaded.i2p qs5ihihltxhhfi6wesihgbvoaurqxgdpxgmwnmsk5d5beabtvmvq
258 minecraftlog.i2p vu2v5xnfk4ivrcmjx4fvofzts7fj47jcq23zfpg6ajj6p3ytt3hq
259 mk16de.bandura.i2p mk16de.bandura.i2p rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq
260 moneroauth.i2p moneroauth.i2p kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa
261 monerod.i2p moneroexplorer.i2p fjvlhyxejnssd5yjxqvom6nooqjdrhd43umxnzw33h2nqzhza5qa je4vbduigce7pgjivvo26d4abn3u5mfsos5zemp3a75xzcv7nm4q
262 monerujo.i2p monerujo.i2p puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq
mooks.i2p 6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq
263 mosfet.i2p mosfet.i2p s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q
264 mtn.i2p-projekt.i2p mtn.i2p-projekt.i2p f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa
265 mtproxy.ilita.i2p mtproxy.ilita.i2p vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q
mucats.i2p 4vjquedemoznbsva4j6wnr7hyms5k3gwucmxgcnwcwweontbcrha
266 mumble.acetone.i2p mumble.acetone.i2p plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa
267 muwire.i2p muwire.i2p c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa
268 nbtm.i2p nebula.hutor.i2p 46iitklpnxzl7eeqweq5xq7nc3vcl2ll7wudpa4jcyyeahvfrgta 575g5k3loi72jyq6fni6w3cdp2uoj2g63qowqjbnylbpc6evxpfa
269 nekochan.i2p nekit.i2p dszr2z2swmeczeao2bqgop6fyh34jw5baeiybsavwtihllwa5qwq axis6zcqacv7le2ms5xqaerecuk3jyrijifrstvxl3or5g5n4ova
270 neodome.i2p nekofiles.i2p 5hkhjehj3ct2pvcah7dcylwef2oti3xij5myxbv3pd7rocio5vkq rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
271 neoniet.i2p nerds.i2p jf32pdnofckjvedni77vjt26m6opzzz6ocpkpxof4fptzym56raq 5wpwlbka4wj74rrnwbieopppgtivbqxljznl3bs542mxtvjz7ffq
272 nethack.idk.i2p zcojbufszefu5bfht5cem3zlhfvv5y3jzpzbaccu3ehje4d7pb2a
273 news-i2pn.i2p news-i2pn.i2p wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca
274 news.neodome.i2p newsxml.idk.i2p trhwcnygfkeqjj6g4xhmrdp4gsjqsye47lsxshbmwbten4ywt5oq dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka
275 nicksphere.i2p nexus.i2p nickg4tsj3wy3i23faxp5momjcnlwrvwl5ek5l7lkm5vrbblvgbq 6uz2ihv4avlfhui5eyrisw7yx2t5mclxyl6blwjgw7zc5q4j3isa
276 nitter.i2p nitter.skank.i2p axd6uavsstsrvstva4mzlzh4ct76rc6zdug3nxdgeitrzczhzf4q l2aoqvwkq2prrv53cbk4k2ilxw5s2fc7eo2rjunnixp2hrv3iwda
277 nntp.txtcon.i2p nntpsqgdoky2fuctc2hc6vuls2b4okxpkocic2eo66uup3dtaq7q
278 notbob.i2p notbob.i2p nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a
279 novabbs.i2p novabbs.i2p bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola
280 nsa.i2p nsa.i2p nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga
281 nullchan.i2p nullz2mkp7znirlcersxpk7qmkmgcc6u3yhe462p2qkpxsdb3mja
282 nvspc.i2p nvspc.i2p anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra
283 obmen.i2p obmen.i2p vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa
284 ol.i2p ol.i2p bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq
285 onelon.i2p omitracker.i2p irkvgdnlc6tidoqomre4qr7q4w4qcjfyvbovatgyolk6d4uvcyha a5ruhsktpdhfk5w46i6yf6oqovgdlyzty7ku6t5yrrpf4qedznjq
oniichan.i2p nnkikjorplul4dlytwfovkne66lwo7ln26xzuq33isvixw3wu3yq
opal.i2p li5kue3hfaqhhvaoxiw2ollhhkw765myhwcijgock5rs4erdqdaa
286 opentracker.dg2.i2p opentracker.dg2.i2p w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa
287 opentracker.r4sas.i2p punzipidirfqspstvzpj6gb4tkuykqp6quurj6e23bgxcxhdoe7q
288 opentracker.skank.i2p by7luzwhx733fhc5ug2o75dcaunblq2ztlshzd7qvptaoa73nqua
289 outproxy-tor.meeh.i2p outproxy-tor.meeh.i2p 77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq 77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq
290 outproxy.bandura.i2p outproxy.bandura.i2p smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q
291 overchan.oniichan.i2p outproxy.purokishi.i2p g7c54d4b7yva4ktpbaabqeu2yx6axalh4gevb44afpbwm23xuuya nieasaidj7wy5nammqf4f7zzcdafi4apygwn5qwscpn4pq34hqia
p4bl0.i2p lkgdfm4w6e2kkjhcdzr4ahhz26s3aunhrn6t2or436o73qh4z7ga
292 packages.i2p packages.i2p 2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja 2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja
293 pagwin.i2p qggplwxvsvctsdzgld2shfyjlokfoxur3pkfapygs26i4hwawfga
294 palebluedot.i2p earth35u3ezuvyxzlsokx374rp27zeu2mv3j6plmmdhsm55fbzaq
295 password.i2p password.i2p knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa
296 paste.idk.i2p paste.idk.i2p qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva
297 paste.r4sas.i2p paste.r4sas.i2p csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa
298 pehotin.i2p e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa
299 pharos.i2p pharos.i2p vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
300 pharoz.i2p pharoz.i2p vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
301 pirate.black.i2p phreeroma.i2p z67mwyo7o3tb42r3tjcckcx6gyh4tmnlh6sbmf2hz6qtn3lri2ta 44fu2fhq6q36re2xqnkuievdfsroi5xchgbowkqib6ekak3ynm6q
302 piradio.i2p m2tsjo2sxabwimkeffsy2mlvtyebnzs6qndm5zpuw6mpwlja2ewa
303 pirates.i2p iygdi3krhapgjmrehupbj6mum6q3qbdyudjo66chmwinhrgrwivq
304 pizda666.i2p bczoowsc6ik7a4mya45qnlq5n6c6llpd5ni3u67r4r4drgohyira
305 pizdabol.i2p pizdabol.i2p 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
306 planet.i2p planet.i2p pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq
307 play.infirium.i2p play-it.i2p 3pesucgkmky2unpxceuec7jopajyz44pvb2sgwyqz6x43bfovnda oxt7gdu663baue7lugdmgxqkmtrfdy2izluneqdrpv4pfslxjlta
308 pocketlint.i2p pocketzsq4r4fef2bw57sn4paufjh5dw75azu5sr4hk2qwdvucsa
309 podger.i2p podger.i2p 56pcmc4rxmtzs6ojvszpiqmh47et3m6amh7kfszp4wbvz2jbpnya 56pcmc4rxmtzs6ojvszpiqmh47et3m6amh7kfszp4wbvz2jbpnya
310 polistern.i2p ztqi2zewgtifrg4efs6eyxxi5www27ymley3aiz4obhulbnszlva
311 pomoyka.i2p pomoyka.i2p omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q
312 pool.gostcoin.i2p pool.gostcoin.i2p m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa
313 pop.postman.i2p pop.postman.i2p i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq
314 porest.i2p 46l7beij4rerlbuj7xmcngarlkhlpgaztywrleiwagjuiipcebbq
315 pravtor.i2p pravtor.i2p 2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq 2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq
316 privacy-handbuch.i2p 3cccw3cxxghkalgichofulid36ekwplv3stubvfot522mwxcnu5q
317 privatebin.i2p privatebin.i2p e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a
318 privetalena.i2p programthink.i2p alenabivbkqo2xoikterpsc3gquqzacxfef6usbifrez5ioegjjq programygfltn24q6foacm5gbuo3z2geub2k2k366llx3bph4ula
project-future.i2p ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta
319 proof-of-loss.i2p proof-of-loss.i2p ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a
320 psi.i2p prophetgram.i2p avviiexdngd32ccoy4kuckvc3mkf53ycvzbz6vz75vzhv4tbpk5a cufuwm75gjpt3svl4wjmo6r4zjv6eqyjdpiuqfckgb5aqqdbgyvq
321 psv.i2p psv.i2p pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a
322 psy.i2p psy.i2p s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q
323 psychonaut.i2p laf5nvzn4wz7ndgtdysmhvebpyjo3fkth7i4z4c2kp7su3wi6e2a
324 psyco.i2p psyco.i2p eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q
pt.hiddenanswers.i2p o5jlxbbnx3byzgmihqye3kysop5jgl3unsrkmurbtr2nrnl2y74a
pt.i2p umbkgg3nhvgunyiwo2odfo3ufbdijb2ofg5eha6nyd4ymp4yitna
325 pubsub.i2p pubsub.i2p kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa
pull.git.repo.i2p 3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q
326 purokishi.i2p purokishi.i2p ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca
327 push.git.repo.i2p purplechan.i2p jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a tyiwxpgs7syjvz3cha3uckaxgondtiktlsvriebyy4qmzgbaj3gq
328 pwcq.i2p pvsur.i2p hcwrhp454aj2jen6clgkw5odw7pvtixhf5dnqsx5ax4vkbxybk7q pvsurxi2hz2n45kfrj5b3ny6ko4ipj2u2piftjen44npkpnbwh6q
qis.i2p sxfs4mmqxe4kj6yovbi54czfhhkpzxtj7mbwxjsvazgfulhq4gka
329 qorg11.i2p qorg11.i2p ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q
query.i2p qzdh2potcfrqcwl2oejkidsyggaspvi63gfggmlz2xrhjkrnazda
330 quest.idk.i2p quest.idk.i2p k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa
331 r4sas.i2p r4sas.i2p 2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq 2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq
332 raccoondad.i2p utoagugf3imr6mpjsithhnpvvvyehsnebisovn6kqn4vma6va3ca
333 radio.arav.i2p plkybcgxt4cdanot75cy3pbnqlbqcsrib2fmrpsnug4bqphqvfda
334 radio.idk.i2p gqla6svl56uazumw2a56rzmvfmcr6fb57bm5kpbb6oibqi6o66gq
335 radio.nerds.i2p tpbfxyluryodtfxdpwsfvw7fl35p5ezrjk3tlcv2atlmc4fl2ctq
336 radio.r4sas.i2p radio.r4sas.i2p cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla
337 radioliberty.i2p libertyx5gywnmn4snrr2fborvugmthl2x5vf3rh43v3744kmpwa
338 radioplayer.i2p 5tmr7qghx5eecoyvi77rsy7fqxeoyqcdpvg5wasoitn6ywkyobbq
339 ramble.i2p ramble.i2p smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq
340 ransack.i2p ransack.i2p mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq
341 realsite.i2p realsite.i2p ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta
342 rebel.i2p rebel.i2p nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq
redzara.i2p ty7bt62rw5ryvk44dd3v5sua6c7wnbpxxqb6v4dohajmwmezi7va
343 reg.i2p reg.i2p shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa
344 reg.rus.i2p reloaded.i2p k2r2wda4eavt4hoq5hptprqfmixusirq3gi5bl3z2pqzcd6felwa wxbh2yq5twqinsw3ztjogqovvdd6h6j5uxeg3lh53x4w7klzv3tq
reichsmarket.i2p 2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq
345 repo.i2p repo.i2p uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa
346 repo.i2pd.i2p ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
347 repo.r4sas.i2p repo.r4sas.i2p ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
348 retrobbs.i2p retrobbs.i2p mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq mnn77stihntxdoade3ca2vcf456w6vhhvdsfepdvq5qggikvprxq
349 retrobbs2.i2p retrobbs2.i2p ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q ejff7jtyaus37slkwgeqrrcmyhpj26carp7n27f5h6s5vlbeiy6q
rfocke.i2p pphesm2icsbqi7uzsmxpgyy4kc22b3cdpb4uwplkkjmupexva7dq
ricycal.i2p tfkz7rgqh6rwvlo2veftw4why2dej3gztiglzfqfvykyzak2syxa
rideronthestorm.i2p xrdc2qc7quhumhglpbcuiqxr42nuffv4xj4a73jbr4ygepitibqq
350 rpi.i2p rpi.i2p 56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq 56p5qxsrvo5ereibevetw2qbj5bronmos7wxunku27g2s4kpbnlq
351 rslight.i2p rslight.i2p bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq
rsync.anonroms.i2p 4q6llvjjpgncu6wbol2rqq24ksrtscu5njj65jjovqlsxounxbdq
ru.hiddenanswers.i2p o6rmndvggfwnuvxwyq54y667fmmurgveerlzufyrhub6w3vkagva
ru.i2p m7fqktjgtmsb3x7bvfrdx4tf7htnhytnz5qi2ujjcnph33u3hnja
352 rufurus.i2p rufurus.i2p 7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca 7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca
353 rus.i2p rus.azathabar.i2p gh6655arkncnbrzq5tmq4xpn36734d4tdza6flbw5xppye2dt6ga 6gp6ykan6ovr7p6dln56msvmdk6nrtvzoypz5dbhkkt4bdnryjna
354 rvklein.i2p rutor.i2p pzbqr2s25zpgbwiz22nc7hzxlusqxwhpxrsmln63y6fd45whnjcq rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
355 s01.nullchan.i2p mirrooeo34iokdgf3wno4ubx6x6uj7f2pqyjmmrvtg4m4parvguq
356 salama.i2p 4uoef63gv2sg6dtqmom5oypt6taypklekvlejfox56eiylprzrmq
357 samainu.i2p zlwgylqmlx6wxwnxf3mx64jl6yp6wv4sjeiidqw7k3n2wh2m46pa
358 satoshivision.i2p rn5c533w5baghskquu3gtqlehwjkstzzbk5chbc5qhivsz3a3nqq
359 scamdemia.i2p scamdemia.i2p fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq
360 sdmr.i2p scanner.linuxfarm.i2p o2vtbbcddamtqqomtf7wbkzzkh2xovt23lc6np7qtxbuv6vtul6q kojzsg33v2zxwqp3twpqzfvflaeoxgzxrl3douf2x7xv27ggfnaa
361 secure.thetinhat.i2p secret-site.i2p 4q3qyzgz3ub5npbmt3vqqege5lg4zy62rhbgage4lpvnujwfpala p6hbhjgdv2e6gyydrqh2ztl6onxnyilmj4ts7d7aj3uqssr7vvfq
362 serien.i2p serien.i2p 3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda 3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda
363 sftp.anonroms.i2p seven.i2p uozfd7ttkhjsofmgs7lfcy4pgngs4yp7kvnbhnppebjumgbjhjla anqf44jmf7kby2qcvcx7gug6nuyansdu4msdbnp5kojom27rrm7a
364 share-les-miquelots.i2p uxwha4jswnt6jrznj7yhfwldfilvyasnjruimmbylbvq5qykpbpq
365 sharefile.i2p sharefile.i2p o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta
366 shoieq3.i2p shoieq3.i2p 3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q 3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q
367 shota.i2p 75xxnc5hkeg7a3z5re4cpybbxt7te3p2krgrrgoka4hib2nr7k4q
368 skank.i2p skank.i2p qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q
369 smtp.postman.i2p smtp.postman.i2p 3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q 3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q
370 solr.chudo.i2p snapshots.i2p utl2ds5vztfomjgerohvxrgaq3g6zrspyku4s35knfmu4rihhgxq 4pxaygw4akqf4ej4p32vykw3ejml7houemmdgecnlvvq2yxuru4q
371 spoika.i2p snippets.bentasker.i2p u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq vgduvgxudaceslvwlvtda6b4csobvczygcqpklm3yeuke2zgvcaa
372 speed-test.i2p 7lk5mgyi2knhqjjwjeiiuwlrn2rs2s577e7jh7z5rmbe2s6qkjpq
373 spirech.i2p labhopl3kd3eo7cj7kqa6nkwpczc2qj52i37jky77ugqazy7dmna
374 sportloto.i2p sportloto.i2p sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq
375 spyware.i2p spyware.i2p 36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq 36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq
376 ss.i2p ssh-vimarsha.i2p 7gg7xiiwjmigrijsmkpsyzl6n4pd7hqiioovdr6vsip2xsdxpsaq ano6eegsaozt5nkbo4muy2o3uf3mfxk4qnlps23dtge5efgkjssa
377 stablo.i2p d2nxpe3p6yeaajchgfqwflnaateq3bueqrmx6higesmbu6vqlhga
378 stats.i2p stats.i2p kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq
379 status.str4d.i2p status.str4d.i2p ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q
sto-man.i2p rg4eilfpe24ws6nctix63qw2dlvd2tqgwdcgdxzji6l5bc4dc7aa
380 str4d.i2p str4d.i2p wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa
stream.i2p prmbv3xm63ksoetnhbzqg4nzu2lhqdnqytgsydb7u3quxfrg7rna
381 streams.darkrealm.i2p streams.darkrealm.i2p ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq
382 svong.i2p support.i2p wlamzgxjc4k67fn2c2pdems2dzfq3hkdbbt3n7ela7p2wp3pew6a supportpwqa4cc7q43hb67tgd3dvntrwsy6725iufahm7kiluysq
383 switching.software.i2p support.torproject.i2p 4ntxofeih4fopdgl3hxn7xu3xkhrbtadnshvcc2ikrggi2qar4ba 6r7j6jlbrxb35k32zktopvr3w3pidm2baymwol33hq7xmy2sqm3a
384 syndie-project.i2p syndie-project.i2p xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq
385 syndie.echelon.i2p syndie.echelon.i2p vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta
386 t-ru.i2p bkhuehxydyprxpd4372h4boyluardjogyuff5p5l3u7syguavz5a
387 tabak.i2p tabak.i2p y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia
388 tahoeserve.i2p tahoeserve.i2p yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa
389 tails.i2p 5d7sl23h4uer4czjdtlomkb6ykeiss6vqkxzausp6f6gmty2plaa
390 takipsizad.i2p ufkhvmacngokfufxinfkdvfmbpvwvog5vrjiavw5zv32jnekcxia
391 talk.community.i2p talkakxfa6ihzn2mbzar6q5chdtkpnjp633w3tarul2bb6tfmoua
392 talks.i2p v45dmrrbjg3ucrazgl3t2tktyjajo7gvfexhmbdos3pi5kfuocaa
393 technicalsuwako.i2p xrp6lveka5phsitsjee6z53qwbgim6gkmbfjyf5fppmz6hsi2oya
394 teddit.i2p k62ptris7p72aborr4zoanee7xai6wguucveptwgxs5vbgt7qzpq
395 telegram.i2p telegram.i2p i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja
396 term99.linuxfarm.i2p dg3mso5klqqgcngalxdh5yvkwv56ou7yotsqxw3twneojytiehra
397 tesla.i2p em2x6bwsbelqfvlgypcywwoov2rib7mvxiy775dmpfs76m4zcdtq
398 testbox.i2p voa7ebdulhpcsupz4zqeyikdjztyhiutgvyri4qxqapistjwptbq
399 testmk16de.bandura.i2p testmk16de.bandura.i2p gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra
400 textboard.i2p testshark.i2p 7ubwrcixdcemzqwqzh2vaakjsnochj2biuzpo6dc2n4f7wqj4pua u64ropzplqkncdmi4wcknqehjqudxb6elyut2k44ocvgx7ilpgia
texterochtankar.i2p woqimbz4v2synkwyif65izfz2t4gbfbqjrai2ic5ok5qhnvmfszq
401 theyosh.i2p theyosh.i2p 5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita 5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita
402 thornworld.i2p thornworld.i2p vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva
403 ti2.i2p 6r77rkt53xcjdpaaihttqjmzigvapmdczkekpogf5epdtcvrhgca
404 tictactoe.i2p cbr6sya637smfifq2hxj3kzqw5yv7aws2uknmi6ln45r65xej4aa
405 tmpsend.i2p tmpsend.i2p r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq
406 torrents.chudo.i2p tomasgl.i2p 5ooemze55xiicrlvzjmz3il23dpo4fz5iqr7hmzrygdepan5m3lq tyiu7xok7hvzymxtgg62rjz7mvzr3bryq4i7ii7gudncogn2lpfa
407 torproject.i2p torprojaxvxevo4c5qvor3ywgasxkubs5ukazrpq3qcxed6lgbrq
408 tosios.idk.i2p tosios.idk.i2p 4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a 4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a
409 trac.i2p2.i2p trac.i2p2.i2p i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa
tracker.chudo.i2p swhb5i7wcjcohmus3gbt3w6du6pmvl3isdvxvepuhdxxkfbzao6q
tracker.psi.i2p vmow3h54yljn7zvzbqepdddt5fmygijujycod2q6yznpy2rrzuwa
410 tracker2.postman.i2p tracker2.postman.i2p 6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea 6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea
411 traditio.i2p traditio.i2p wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq
412 triplechan.i2p translate.idk.i2p blrplscno3ecqb5ihhg73kufmypydjlv4r4gqiajftup5wmcdwna g2l2zr4moqsk2bec346i5tfd2o22cozm5b2k4ifdhbcayazoz2ea
413 ts.i2p nebcjgfx3f7q4wzihqmguwcdeopaf7f6wyk2dojw4bcuku472zxq
414 tube.i2p tube.i2p vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq
415 tumbach.i2p tumbach.i2p u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq
416 tutorials.i2p tutorials.i2p zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja
417 tv.i2p tv.i2p znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q
418 unodice.i2p txtcon.i2p fukkqcornjsfn2ggd2h4cgeitu4dbin7hymp5xf6zypwzif2pcoq txtcons5lrayl7bq7zsk2mt24clocassid3kh2rvyd3rd2xeklpq
419 tymcz.i2p pyog2x6v3eyna5pdr765osut52tpbmaheyi5atbqfaixmcq4dp7q
420 umbra.i2p xunb4chkeo5xxpfkwrkaqb5etmqpp4ddgvcmy7qkvtxhk5ihck2q
421 umbrella-corp.i2p un2dk5c7zp5eeppownhi5hbdrjbrz5a2qajk3khj6y6tvu6w4lea
422 unqueued.i2p 3gvn4kwd7z74jxc2sn4ucx52dpvpscxbzjluux3ul4t3eu5g64xq
423 upload.arav.i2p a5txjx3gjrnw6do4zr66wpwlayxt3dg7kb43wbr3fjp53mkfkbdq
424 vanity-eth.i2p 6djvwwd3mtozyqhpuyvcwqkje5fk3rbxqbgqgdlr32b6hvdqeq5a
425 varikvalefor.i2p yn7ovvjf4nhf7hhk6qqph7utcoce4f2j325rfeuyapw3emlqfqna
426 vimarsha.i2p ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
427 volatile.i2p volatile.i2p q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a
w.i2p j2xorlcb3qxubnthzqu7lt4fvxqn63it4ikwmze55yjkzeeampuq
428 walker.i2p walker.i2p 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
429 wallet.gostcoin.i2p wbnet.i2p reuvum7lgetglafn72chypesvto773oy53zumagrpigkckybrwda 2deeocx7jmrbmjxcpkxecw7yy2z7ybzwz5i6mg3ska3p3d2dx45q
430 web.telegram.i2p web.telegram.i2p re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a
431 webcam.i2p webcam.i2p fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a
432 webhosting.i2p webhosting.i2p hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq
433 weedforums.i2p webirc.coldhell.i2p weedlt72zyludsl6adm5asdcalufihyzoruh6ca2klstbicj5iua k2d6bius63w3g35j32dn66fssqwbnyvegx6w6pl5mdeojpp4rjba
434 wiki.i2p-projekt.i2p wiki.i2p-projekt.i2p b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa
435 wiki.ilita.i2p wiki.ilita.i2p r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a
436 wikimirror.i2p 2bhh73qhuwjkznnnzjfgo4buo7xy5l4ubhzt3oh23adksscx6gmq
437 wlm.i2p wlm.i2p nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa
438 woah.i2p yh2eixirhlhvp7exrtalcwgeirg3fxi2vnumsbp7w6tily5oiwwq
439 wopen.i2p wopen.i2p xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza
440 worcester.i2p 5jtgpuzaabxyhahvbmokb3oeh2lwzpiiqlrg3w7kyyg63lzkwabq
441 wordle.i2p games3kuxvadv3y6tfowiynk2cnbuokrn2guvhkigqulmrvfnyla
442 www.imule.i2p www.imule.i2p 657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq 657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq
443 www.infoserver.i2p www.infoserver.i2p fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq
444 xadmpp.i2p jb67tnpn67i3pwcuf45rtwu7gq6nkrs72iznhnakpkdzb6dkgfmq
445 xd.i2p jynrjzdp5qajf2jsdif6bgpijuk72zmuiohq3o7omeksw4pdgejq
446 xeha.i2p xeha.i2p oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq oartgetziabrdemxctowp7bbeggc7ktmj7tr4qgk5y5jcz4prbtq
447 xmpp.chudo.i2p xinku.i2p gppd6rx5jkutmt637odkbxh4tjqxy63i4amyhllqn424yt7pd2hq xlsmgjin444ccqu7ff5taoov7hecasdyg53keatpbr2qrvgmzvuq
448 xmpp.ilita.i2p 2dpg43zlfophx5jo4xeqc6cx3zm4x3tfdoinbfuzychf5lwn3dhq
449 xmpp.pubsub.i2p yxbp3sn2x5t6k7hcxsg4njmaxjomr2wvh4xeldxjlij3ms3sikgq
450 xmpp.reloaded.i2p hioylmlm3lf3qgp2ncmym3igx6eyytlwioeq2fip4cwpzjtyxfuq
451 xmpp.rpi.i2p xmpp.rpi.i2p 3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca 3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca
452 xmpp.xadmpp.i2p s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
453 xmrnode.i2p xmrnode.i2p moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq
454 xn--80aaid2dua.i2p xmrradio.i2p dvem3jrqrymufihxnagr32q3aezgstmzcfbfp2wj7evo3ch5inta olwxvhwaq422rcrlmvh6wgrdczyfyeag645du4cwncutqblkfmaq
455 xn--80ahmijpip2p.i2p assist2a3jsikp7ufmzpa56mlflhi5kmoack5dm6ua5x2hbgckua
456 xn--80atndcgadjdf7duc9a.i2p dn46ftj3cha4q7g2rreokiflxb4xksevp53hiwctfyztmcsb3d5q
457 xn--hallchen-q4a.i2p xn--hallchen-q4a.i2p h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq
xn--i2p-5cdawgbask1ay4cjf2a9o.i2p gar7ipdnhfy2mtbefo5dvoapzuupyphfriutu5nsnjruganiuknq
458 xn--n3h.i2p xn--n3h.i2p 6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq 6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq
459 xotc.i2p xn--r2beng6b4e.i2p gqgvzum3xdgtaahkjfw3layb33vjrucmw5btyhrppm463cz3c5oq ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
460 xsden.i2p 4dofwhzlkz3k3sedwzs2sx2fudq3jfvaygffc6kp6hsawmfmz6qa
461 xx.i2p a7hrmb4kbftyk4ovr2la6azi7vjfqwt2zlckos4svoaclqu52j6a
462 yacy.idk.i2p yacy.idk.i2p 7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq 7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq
463 yat.i2p yat.i2p zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq
464 yellowonion.i2p 7l4kgsyatdmntck22i27oui3llftjim33ydav7kdew6ewfqvjzfa
465 yggdrasil.acetone.i2p yggdrasil.acetone.i2p tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq
466 yiffme.i2p yggdrasil.i2p sm6dk2ovxhgdjuu3rmqussc4e2xkfz6rmhng6i2t7parcb4v4y3a 7hhvvtephitji3ibz4vhbapj4rikoppd5324yttp6k35gkqgri3q
467 yoitsu.i2p yggnet.i2p yaaqmj55lsi5c5nukf4hsrift2zslnqkbcghwvjlaqayidtyctwa deyg5puthy6tc44j56ee2zxv3wu36vlmgxjyz2zoc63w66l5ksua
468 yourdomain.i2p witqoik7gjzywta5nss5m6dvialeciismabksrukcvpfdpe6aqha
469 yt2mp3.i2p 7ai77u54gxta2ry326amfq4ugiqgcxd4r663nmxtswcwezyxsbzq
470 zab.i2p zab.i2p n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq n4xen5sohufgjhv327ex4qra77f4tpqohlcyoa3atoboknzqazeq
zerobin.i2p 3564erslxzaoucqasxsjerk4jz2xril7j2cbzd4p7flpb4ut67hq
471 zeronet.i2p zeronet.i2p fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna fe6pk5sibhkr64veqxkfochdfptehyxrrbs3edwjs5ckjbjn4bna
zhaoku.i2p 2hq32svuc6wxgumgsyavy4osfssiaqjpdgynpvtyblin5l5urr4q
472 znc.str4d.i2p znc.str4d.i2p ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq ufkajv3stxpxlwgwwb2ae6oixdjircnbwog77qxpxv7nt67rpcxq
zog.i2p 7su4pwd7xicqu44rd36g2a3zjlsv2k6otommnh7ztjpyixyozq2a
473 zx.i2p zx.i2p 4ru5b25ixgz2wt2aqskbr2iflv42gt6ta6qet7rv4et5rh2kq6fq 4ru5b25ixgz2wt2aqskbr2iflv42gt6ta6qet7rv4et5rh2kq6fq
zx3.i2p lemti4gcp2jyraxuynqes5i2wuilptupkwjxdjlp3t4ue3thflaa
474 zzz.i2p zzz.i2p lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua lhbd7ojcaiofbfku7ixh47qj537g572zmhdc4oilvugzxdpdghua
@@ -0,0 +1,14 @@
-----BEGIN CERTIFICATE-----
MIICKDCCAc6gAwIBAgIUcPHZXtYSqGNRCD6z8gp79WUFtI0wCgYIKoZIzj0EAwIw
gZMxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGlu
MRgwFgYDVQQKDA9TdG9ybXlDbG91ZCBJbmMxIzAhBgNVBAMMGnN0b3JteWNsb3Vk
LmZhbWlseS5pMnAubmV0MSQwIgYJKoZIhvcNAQkBFhVhZG1pbkBzdG9ybXljbG91
ZC5vcmcwHhcNMjIwMzE5MTU1MjU2WhcNMzIwMzE2MTU1MjU2WjCBkzELMAkGA1UE
BhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xGDAWBgNVBAoM
D1N0b3JteUNsb3VkIEluYzEjMCEGA1UEAwwac3Rvcm15Y2xvdWQuZmFtaWx5Lmky
cC5uZXQxJDAiBgkqhkiG9w0BCQEWFWFkbWluQHN0b3JteWNsb3VkLm9yZzBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABFUli0hvJEmowNjJVjbKEIWBJhqe973S4VdL
cJuA5yY3dC4Y998abWEox7/Y1BhnBbpJuiodA341bXKkLMXQy/kwCgYIKoZIzj0E
AwIDSAAwRQIgD12F/TfY3iV1/WDF7BSKgbD5g2MfELUIy1dtUlJQuJUCIQD69mZw
V1Z9j2x0ZsuirS3i6AMfVyTDj0RFS3U1jeHzIQ==
-----END CERTIFICATE-----
@@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
MIIFyzCCA7OgAwIBAgIRALWNWsnQ0Vmn/99iCNT7cdQwDQYJKoZIhvcNAQELBQAw
cTELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwGA1UE
ChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxGjAYBgNVBAMM
EWVjaGVsb24zQG1haWwuaTJwMB4XDTIxMTEyOTE5MzU1OVoXDTMxMTEyOTE5MzU1
OVowcTELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwG
A1UEChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxGjAYBgNV
BAMMEWVjaGVsb24zQG1haWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEA3pccNiQWJUS1t3QHK7rBCNKAsM2dz4szN3+3SrDy1w+rOrK8Vt5aypPU
QYUQwG+odjEPacuoRtO/W14KJl5yAI3eQS+X/cYDXmxvfm4zx5JRumYptXwJD57G
rlPHnFvk8R+Hvh+/UyqgSAZ9ZaKjEzYK4AtbYEXtopaM4U2VYN8xKjvKyWlhPdxo
kI3//qcTlSqGHHeHrkItLG1LubM1EnPu+9zI2WN2zBBRcm8ZtWqHoqFJ1zgJr/49
nMK8Lnb3I54ctva8x5+gsSk4dbG/mMsOIZekFqYJJs3+u9w5fmOYI7v9GlQr7UhE
G3MwjJ5Cj1LmLVlz/4LApZrDSd2JvwIUdGL3UW8+blaTeCPKIRvmsTeRxo1gORMF
ZH0dg39722lK7ScwOlOUX9ggzRUlYCmvnjQJZGJEUoP68QxjlQfkXZyffmMfvm6K
V6mcZ5aHMGO1lYAl40kWNJ0jGpmxJqTDhNFDEKr0TlRGVxXGWzObEOrcJ8ysRMc1
x6oXQhh79HXZcKwhZaXLx23ZvVoTfhRm4JH0SSP6XqQm35j4NI1SllEsDns29wU3
Re4wOWJCCYlPG3CtY32CinwQRoVgtiJk18W8+Pxw7sBFq8sL5L0Z+5bB6nTkBfV6
7OrZGWL0i344zQE0e3yIsLih+5Wyqw6RSSMysenl3alnUB9EvE0CAwEAAaNeMFww
DgYDVR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAP
BgNVHRMBAf8EBTADAQH/MBoGA1UdDgQTBBFlY2hlbG9uM0BtYWlsLmkycDANBgkq
hkiG9w0BAQsFAAOCAgEAaUMnMYtNFBl9dFON6e4EjYo53Wknj61uIVO11dvLqjnh
7X6guPML+GgNZsPQGLu7Bqw4hVgy/cV5AlFc7SXOhzpaYo1ycpjg3Ws1VK2wrk7+
4bvUThNcS1KZVFDdRE62549rYNfYNfPxXvccOTW9meTCC1kLHerh65ySDr9J02O6
o5Mf685PgBasBH6dlosOLTtee2gRLNFcAluQYKerawS1gDys5239UNHPCqTgO+Od
FiKfl48OIOzPGLKEf4lXC+lkwZElewShrHhzd8aGueedTi0UHOtQuY7ocsofqXc8
OnyT/y2X6wn/YkzviKgfxYDSI7FJiUgXCPcT0jUNmuwR168yL5BfzoQmrCvlOOQg
P7ibdBJ6UkL8pRpv/SYpvaX/kf4agYtwh5IL9FzNCwNu54ZC6JilLUhYAU38Eolq
OZ/cGiMoSFQIeBPvB3cdsqEud9W4P+MqN5A76fMzdVV77lGsIS1eCGMceR3CjOiF
6SdAskcBZWhFiRNQweC0iv57/nPCeTCuNAqbZSHd7zC1AKhNmmsKSJUJQCGijcce
P8Gl0AFfZneN2bVEFvJ/zd71pD8ll1Gkju16bfdWn0V4NRaxFiXNr2bL+ah9blud
EXOomE3R6ow1QZk+Gnpy3wh9jfwlrJuFoANvHnv4WREbdjwr//71XjBri5p1wPE=
-----END CERTIFICATE-----
@@ -1,32 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIESg3kkzANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJY
WDELMAkGA1UECBMCWFgxCzAJBgNVBAcTAlhYMR4wHAYDVQQKExVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEZMBcGA1UEAwwQZWNoZWxvbkBtYWls
LmkycDAeFw0xNDA3MzExNjQ3MDJaFw0yNDA3MzAxNjQ3MDJaMHAxCzAJBgNVBAYT
AlhYMQswCQYDVQQIEwJYWDELMAkGA1UEBxMCWFgxHjAcBgNVBAoTFUkyUCBBbm9u
eW1vdXMgTmV0d29yazEMMAoGA1UECxMDSTJQMRkwFwYDVQQDDBBlY2hlbG9uQG1h
aWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmcEgLwwhzLNe
XLOMSrhwB8hWpOhfjo4s6S/wjBtjjUc8nI3D0hSn3HY26p0rvcvNEWexPUpPULmC
exGkU463nu7PiFONiORI1eJAiUFHibRiaA7Wboyo38pO73KirwjG07Y+Ua0jp+HS
+4FQ/I/9H/bPplReTOU/6hmRbgQ69U8nE68HzZHQxP68yVJ2rPHSXMPhF4R1h0G1
1mCAT+TgTsnwHNGF77XHJnY4/M4e2cgycEZjZow36C3t2mNDVkMgF19QQeb9WmLR
zREn3nq9BJqHpUkn9yWw0kKXTZSds+7UxESfzf3BzK0+hky2fh5H+qbYAo2lz4yj
81MXTAu+4RRkg4DBLlF+2dkclhwQLxxzvkRC6tPkn5i33Yltg7EfzA9IoQ05potJ
I+iOcF+aStfFgFj9u3B5UkcF4P0cH1QD3c6BK4hIezQYqRoPly1gHqg+XdwjG/dr
4as7HA9FTz3p2E8nClpIC1x3hfgwAdfd29aeBxO1WW/z99iMF7TBAF+u5T86XEW1
WpknqCbTli36yJ8a5fPWxZHrryBRJT5yLxejjFeadtutBSwljiVFq+Y38VqwFivq
VLiBt7IxAsZ8iilgfnnnAvBH6chWfSKb4H7kB4TJvDiV96QmmvoEaWYNHZozMhyK
tO3b5w+xqbJXyCLA3Q75jD0km76hjcECAwEAAaMhMB8wHQYDVR0OBBYEFAHQcAam
QRS/EUhuCSr9pB4Ux0rYMA0GCSqGSIb3DQEBDQUAA4ICAQBq1+1QLmgLAjrTg3tb
4XKgAVICQRoBDNUEobQg3pYeUX9eFNya2RxNljuvYpwT80ilGMPOXcjddmr5ngiK
dbGRcuuJk9MPEHtPaPT3+JJlvKQ3B3g2wva2Wz2OAyLZUGQs389K4nTbwh4QF0n2
aHFL8BHiD62hiKnCoNaW4ZovUNNvOxo9lMyAiaFU2gqQNcdad8hP9EAllbvbxDx9
Tjww2UbwQUIHS9rna4Tlu+f0hDXTWIutc2A51W2fJCb7L3+lYO7Wv55ND/WtryLZ
XpMp27+MpuEnN3kQmz/l9R0hIJsWc/x9GQkjm5wEaIZEyTtenqwRKGmVCtAj0Pgv
jn1L3/lWmrNq+OZHb/QeyfKtA3nXfQKVmT98ewQiK/S5i1xIAXCJPytOD887b/o1
cdurTmCiZMwgiQ+HLJqCg3MDa5mvKqRkRdZXfE6aQWEcSbpAhpV15R17q7L+Fg0W
shLSNucxyGNU8PjiC/nOmqfqUiPiMltJjPmscxBLim8foyxjakC4+6N6m+Jzgznj
PocBehFAfKYj66XEwzIBN7Z2uuXoYH9YptkocFjTzvchcryVulDWZ4FWxreUMhpM
4oyjjhSB4tB9clXlwMqg577q3D6Ms0zLTqsztyPN3zr6jGev3jpVq7Q1GOlciHPv
JNJOWTH/Vas1W6XlwGcOOAARTQ==
-----END CERTIFICATE-----
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFgTCCA2mgAwIBAgIETWAY1DANBgkqhkiG9w0BAQ0FADBxMQswCQYDVQQGEwJY
WDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsMA0kyUDEaMBgGA1UEAwwRaGlkdXNlcjBAbWFp
bC5pMnAwHhcNMjExMjEzMTU0MDI3WhcNMzExMjExMTU0MDI3WjBxMQswCQYDVQQG
EwJYWDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5v
bnltb3VzIE5ldHdvcmsxDDAKBgNVBAsMA0kyUDEaMBgGA1UEAwwRaGlkdXNlcjBA
bWFpbC5pMnAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXnjJ8UQ0f
lHHpfPMiHofBPSuL4sbOJY6fOXwPhSg/h6THh9DS/ZWmJXQ3qRD0glDVtv4/Dr/9
ldGQ5eltF9iCFXCQlMEy2HjQrBKq0nsl7RpYK12cyMaod0kkzCUk9ITLi9CmHM3Z
gQZcmG8TWjFEpDR+idx/QkQt2pcO4vzWlDit3Vh4ivnbX5jGQHbsVjQEMQWxr+pX
dsS+YQpjZ6RBmrooGTPO8QDOOeYLAn0lCjmffc/kzIH9E/p4/O0rOpyhVYbdxUD1
5wkqN9l4yrtxmORG/PudnRQQ0r4TUq8vsxfGY0Euo9IbhgXF2Parel1ZhDxB1WZV
VwWtgLIh9jGA1UMa8SYKnEfp8LWNZ3b3mUUnZb3kMrLk6jGYRWNsHmamhd4mC7AZ
qf/8lOkEIw3bPd3YguCDRVcLui5BwIEZmqXg8uoESxfO/sW3pBrN/8M7MkTex9kN
vjitGDDXvenK27qmNgZxbBlX72yTSfys7XTYTLnxZC8AwdAo2Wz9Z6HhGiPonf2h
vZkc9ZxuE0jFIrsbJra4X7iyjXgi4vV4ARNg/9Ft6F4/OIbECgeDcBQqq4TlT2bZ
EfWVrBbqXoj5vNsLigIkd+AyUNwPYEcB5IFSiiOh98pC7BH3pg0m8U5YBjxe1i+9
EQOOG0Qtx+JigXZHu6bGE0Twy9zy+UzoKQIDAQABoyEwHzAdBgNVHQ4EFgQUGK1b
0DkL6aLalcfBc/Uj/SF08C0wDQYJKoZIhvcNAQENBQADggIBAMpXM82bJDpH1TlH
TvhU3Z7nfZdvEhOQfujaFUYiuNripuEKcFGn948+DvAG0FUN+uNlJoqOVs8D7InD
gWlA9zpqw5Cl5Hij/Wns9QbXuAHJeA23fVUoaM2A6v9ifcIQ1A+rDuRQAo6/64KW
ChTg2e99RBpfGOyqgeh7tLLe0lPPekVpKHFuXabokaKRDuBcVHcUL4tWXe3dcyqa
Ej/PJrrS+nWL0EGZ4q80CEd2LPuDzPxNGCJt/R7ZfadENWajcgcXGceh1QBzozrB
SL/Ya6wF9SrsB7V/r5wX0LM4ZdDaLWbtmUe5Op0h/ZMH25Sa8xAXVz+O9L6sWSoO
FaiYTOvAiyyPz+nsxKa3xYryDHno7eKSt+hGOcaurhxbdZaEFY/CegEc73tCt9xK
e9qF8O/WkDLmixuErw3f5en4IfzGR7p3lJAwW/8WD8C6HS39h/eE7dVZNaWgtQnZ
SgGjgZMTJqTcQ3aZmfuCZefxGFok8w6AIkdbnd1pdMBRjYu8aXgl2hQSB9ZADDE9
R5d3rXi0PkSFLIvsNjVa5KXrZk/tB0Hpfmepq7CufBqjP/LG9TieRoXzLYUKFF74
QRwjP+y7AJ+VDUTpY1NV1P+k+2raubU2bOnLF3zL5DtyoyieGPhyeMMvp0fRIxdg
bSl5VHgPXHNM8mcnndMAuzvl7jEK
-----END CERTIFICATE-----
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIEbNbRPjANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJY
WDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsMA0kyUDEZMBcGA1UEAwwQb3JpZ25hbEBtYWls
LmkycDAeFw0yMTA3MDYyMjExMDFaFw0zMTA3MDQyMjExMDFaMHAxCzAJBgNVBAYT
AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNVBAoMFUkyUCBBbm9u
eW1vdXMgTmV0d29yazEMMAoGA1UECwwDSTJQMRkwFwYDVQQDDBBvcmlnbmFsQG1h
aWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvNJz2KGuAkHP
tGFobfLvpybtxB50fkcEsTc9opmiy7wBKK9rSI01VS616IhABkWKZVfK2A9NqpGv
v/CyhTKoaeSNeXY7+zORUWgWK/zA9fA4GRZFqlW8j4tbompDwcLYNqRBCsn1C0OY
YA5JhXPBixMcnXl8N8x4sXhQ4l9R3+QrydhUHRvgDc8dOxRyIX7zuQAyf8tmA2Xo
xZLdvDcCJdLBIbFwxhIceIhgcOwaOx7oRkZDZdYcLJd3zjyPbu8JtOM2ZkwH7r+0
ro5PktuDp2LAS6SII5yYNcwcrvPZGPqhLdifIw1BrdTIb/rIkQZ5iXOOdyPmT7e8
IwAJcPFlfvrS4Vbi9oDqyx3aDUBoubgmFnO1TirL56ck83R/ubcKtdnyzAn5dp+f
ZNYW6/foSBpDDOCViylbFAR5H0HJEbBns7PZx6mGEEI4tUAJdNYl7Ly7Df60a9Rz
cD/gz08U9UwFXYKoT6roEjToADGAzb5MI4cVlAb2AmQaMNXNe04HcDL1bU50mkNU
amqPv8nxf72fBQCEmZz2G57T6QiYTtcCwiWS1QdWsuaOtCo9zO0MKcjzSdUxuxEc
dXhjQdNegsgg/Xk7bJ8lKOsACqMpFftdPmuyeZU2t+3RPuBpV/0j2qUfg/y6kb0z
CxAOYmlcL4kqw4VT+5V/EeZLIG0h9I0CAwEAAaMhMB8wHQYDVR0OBBYEFD/wJObg
CCDuhMJCVWTSTj+B3rsUMA0GCSqGSIb3DQEBDQUAA4ICAQC0PjsTSPWlGbLNeeI8
F0B5xAwXYJzZ7/LRxh8u42HDUqVIDjqkuls1l3v9D7htty2Gr3Ws2dcvcOr2KcOy
mEWg+jdP/N3vt9IkZeVS4YQoPgq6orn7lVkk00bcKb24f7ZnoQnnVV0/m42Y5P4j
LLh+8MBxsez9azXyZbDVEkgsMUAkdVO6KNz6scqz7wb8egV2GAMAp7cwChC6lanK
gv9ZyJhG/HdTv6VyuMZhJy6rX4geM97tm1iHu1VLsQcIzBKAdEvWJv8ofMeiyINe
hqAP9NYaeowKi975NOrmf+XZwxd0niApIohV684RCVUfL8H7HSPbdXhBJ/WslyDP
cTGhA2BLqEXZBn/nLQknlnl0SZTQxG2n4fEgD1E5YS/aoBrig/uXtWm2Zdf8U3mM
+bNXhbi9s7LneN2ye8LlNJBSRklNn/bNo8OmzLII1RQwf1+vaHT96lASbTVepMZ/
Y9VcC8fAmho/zfQEKueLEB03K+gr2dGD+1crmMtUBjWJ9vPjtooZArtkDbh+kVYA
cx4N4NXULRwxVWZe5wTQOqcZ3qSS1ClMwaziwychGaj8xRAirHMZnlPOZO1UK4+5
8F4RMJktyZjNgSLP76XPS4rJK5fobuPqFeA4OpDFn/5+/XeQFF6i6wntx1tzztzH
zc+BrVZOdcYPqu9iLXyRQ9JwwA==
-----END CERTIFICATE-----
@@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
MIIFxzCCA6+gAwIBAgIQfKAV7rmoWA8jWpLfMtDQqzANBgkqhkiG9w0BAQsFADBw
MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4wHAYDVQQK
ExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEZMBcGA1UEAwwQ
cmFtYmxlckBtYWlsLmkycDAeFw0yMTExMDYwNzEwMzJaFw0zMTExMDYwNzEwMzJa
MHAxCzAJBgNVBAYTAlhYMQswCQYDVQQHEwJYWDELMAkGA1UECRMCWFgxHjAcBgNV
BAoTFUkyUCBBbm9ueW1vdXMgTmV0d29yazEMMAoGA1UECxMDSTJQMRkwFwYDVQQD
DBByYW1ibGVyQG1haWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAz4vQlIdjY56uqkFKWld9Oy3E8+06Ag9fUzBVleS2bdJfaFtmEa8xz6Pep7Bb
zJK0Q9t2CW7/xqIWuspWlYn5EYAS7BFiNOX70KX4PMpltj3C4Dpxpjll9LdydU2k
FquCflXNJESnBDdd0qDRMboMf4c9lTz0mTLwAtzInLwHGDrbxEiQ/YqPgPJreOXQ
anhjkpxJcgpLR+9od8EdLNKbShVWEeSBnYp0FcjnZKOb9KC2gjqP0sWdzlw3i1hh
CB38A7a03Q4yUcmxCw4ktM60d/2jCZ+G7KHwcbkfxDjl85r0UgEzgfF7LuIuxxmA
MNLH1eAACnLTl42O72EHdtD9VWWwZF2NuFgAzT3MEFnMKDk+OqZOeZQOEgkIfrNP
O5XYMYxHSWCf/dmSq36ZJwhC40k2S9ArS8BQNY8NvwZG5CSGDU52FKaHzFn6EwLE
4CpsrptUX2itXLaFUiNMw6I+eSgTO7x+gpahZVqpdRSQXmpE0xA5jP/DwPyt3ZVe
/4q4kn3imcSCxBP5NQHWfVszsruRkh9np4R0xVlT8UCwJmY8Yg8zwJG5UddTAck5
JavDsaXgWMwcZ/qQboZKlH/iAdQnbkte8Yd5GL5nmTeS+vwuluwmA/y9kUzSUhk+
86kA0eRJ1+e2HdA1/UOTRmyIoIeQ5/fhELMXzhksLcpMGTUCAwEAAaNdMFswDgYD
VR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNV
HRMBAf8EBTADAQH/MBkGA1UdDgQSBBByYW1ibGVyQG1haWwuaTJwMA0GCSqGSIb3
DQEBCwUAA4ICAQAxRdSTZGEblnNeVuRoEQq/a/6q4egFaOkzXCPKEnDzB5yvm83g
35ImquGFZkgaoc5qUAHVeBwOQrWgUI4xHPofnbM2VsgEUMz6h3ovobPNkN3+lRT5
30krd0y+A/Q895EHDu0lyf3BHMmtCWiKWQBttuc0dnmoLCRsQxgy+kYJCS/81jCM
4KNnyrtc6a/czqSq758CncjP2nErVucendsguQoA5JUw53YJ4FYHG/f9tYEkhm9C
D6u7L3vTUcMRUrRxSiJyNixH36nEwpM6DNHiPNc+CFKZ/Zx449R1GjcpDhTrXnWP
2H1r3cyKEM8a76VUEs2GQCaaglOR4N1goyqgYEjScf+/4VmARL3VUzfP8Oub70rM
t1fip5QD/4VDQuA/9C9g5Rr2nJ3K2jVnpSSKnBYFYf5z9RZdTOVXjXaEi72lWxpk
mjgK6c5EFOJxYoCaTbKX9Kz9ZIWVOVMrgHWwA/wDW+Qk5zgP9Ysau65xIp9P1RdB
qHgR5BcIrNky9RD8cIzxzMPCSMVgnf0eLFuHmG8uUl/xHHVRprf0pd7DYkQ44HWN
Z/g/gg3DaJdH7vvkShzgjt4iZrmOCHQIKkSGFRYZf0/Mpn6mgK9+grtO9osVgAQr
LBO+5LIxV/S5bcrzWQLOiMABTd2X/0PTOjuXpfinZ3rDSUiNFPq5kLLSlA==
-----END CERTIFICATE-----
@@ -1,31 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFVDCCAzwCCQC2r1XWYtqtAzANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJY
WDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMRMwEQYDVQQKDApQdXJwbGUgSTJQ
MQ0wCwYDVQQLDARJMlBEMR8wHQYJKoZIhvcNAQkBFhBvcmlnbmFsQG1haWwuaTJw
MB4XDTE1MDIyMjEzNTgxOFoXDTI1MDIxOTEzNTgxOFowbDELMAkGA1UEBhMCWFgx
CzAJBgNVBAgMAlhYMQswCQYDVQQHDAJYWDETMBEGA1UECgwKUHVycGxlIEkyUDEN
MAsGA1UECwwESTJQRDEfMB0GCSqGSIb3DQEJARYQb3JpZ25hbEBtYWlsLmkycDCC
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALp3D/gdvFjrMm+IE8tHZCWE
hQ6Pp0CCgCGDBC3WQFLqR98bqVPl4UwRG/MKY/LY7Woai06JNmGcpfw0LMoNnHxT
bvKtDRe/8kQdhdLHhgIkWKSbMvTAl7uUdV6FzsPgDR0x7scoFVWEhkF0wfmzGF2V
yr/WCBQejFPu69z03m5tRQ8Xjp2txWV45RawUmFu50bgbZvLCSLfTkIvxmfJzgPN
pJ3sPa/g7TBZl2uEiAu4uaEKvTuuzStOWCGgFaHYFVlTfFXTvmhFMqHfaidtzrlu
H35WGrmIWTDl6uGPC5QkSppvkj73rDj5aEyPzWMz5DN3YeECoVSchN+OJJCM6m7+
rLFYXghVEp2h+T9O1GBRfcHlQ2E3CrWWvxhmK8dfteJmd501dyNX2paeuIg/aPFO
54/8m2r11uyF29hgY8VWLdXtqvwhKuK36PCzofEwDp9QQX8GRsEV4pZTrn4bDhGo
kb9BF7TZTqtL3uyiRmIyBXrNNiYlA1Xm4fyKRtxl0mrPaUXdgdnCt3KxOAJ8WM2B
7L/kk9U8C/nexHbMxIZfTap49XcUg5dxSO9kOBosIOcCUms8sAzBPDV2tWAByhYF
jI/Tutbd3F0+fvcmTcIFOlGbOxKgO2SfwXjv/44g/3LMK6IAMFB9UOc8KhnnJP0f
uAHvMXn1ahRs4pM1VizLAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAIOxdaXT+wfu
nv/+1hy5T4TlRMNNsuj79ROcy6Mp+JwMG50HjTc0qTlXh8C7nHybDJn4v7DA+Nyn
RxT0J5I+Gqn+Na9TaC9mLeX/lwe8/KomyhBWxjrsyWj1V6v/cLO924S2rtcfzMDm
l3SFh9YHM1KF/R9N1XYBwtMzr3bupWDnE1yycYp1F4sMLr5SMzMQ0svQpQEM2/y5
kly8+eUzryhm+ag9x1686uEG5gxhQ1eHQoZEaClHUOsV+28+d5If7cqcYx9Hf5Tt
CiVjJQzdxBF+6GeiJtKxnLtevqlkbyIJt6Cm9/7YIy/ovRGF2AKSYN6oCwmZQ6i1
8nRnFq5zE7O94m+GXconWZxy0wVqA6472HThMi7S+Tk/eLYen2ilGY+KCb9a0FH5
5MOuWSoJZ8/HfW2VeQmL8EjhWm5F2ybg28wgXK4BOGR3jQi03Fsc+AFidnWxSKo0
aiJoPgOsfyu8/fnCcAi07kSmjzUKIWskApgcpGQLNXHFK9mtg7+VA8esRnfLlKtP
tJf+nNAPY1sqHfGBzh7WWGWal5RGHF5nEm3ta3oiFF5sMKCJ6C87zVwFkEcRytGC
xOGmiG1O1RPrO5NG7rZUaQ4y1OKl2Y1H+nGONzZ3mvoAOvxEq6JtUnU2kZscpPlk
fpeOSDoGBYJGbIpzDreBDhxaZrwGq36k
-----END CERTIFICATE-----
-4
View File
@@ -1,4 +0,0 @@
http://reg.i2p/hosts.txt
http://identiguy.i2p/hosts.txt
http://stats.i2p/cgi-bin/newhosts.txt
http://i2p-projekt.i2p/hosts.txt
@@ -29,7 +29,7 @@ public class DaemonWrapper {
private static final String TAG = "i2pd";
private final AssetManager assetManager;
private final ConnectivityManager connectivityManager;
private String i2pdpath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/i2pd/";
private String i2pdpath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/i2pd";
private boolean assetsCopied;
private static final String appLocale = Locale.getDefault().getDisplayLanguage(Locale.ENGLISH).toLowerCase(); // lower-case system language (like "english")
@@ -85,13 +85,12 @@ public class DaemonWrapper {
}
public int getTransitTunnelsCount() {
return I2PD_JNI.GetTransitTunnelsCount();
return I2PD_JNI.getTransitTunnelsCount();
}
public enum State {
uninitialized(R.string.uninitialized),
starting(R.string.starting),
jniLibraryLoaded(R.string.jniLibraryLoaded),
startedOkay(R.string.startedOkay),
startFailed(R.string.startFailed),
gracefulShutdownInProgress(R.string.gracefulShutdownInProgress),
@@ -129,7 +128,7 @@ public class DaemonWrapper {
private String daemonStartResult = "N/A";
private void fireStateUpdate1(State oldValue, State newValue) {
Log.i(TAG, "daemon state change: " + state);
Log.d(TAG, "daemon state change: " + state);
for (StateUpdateListener listener : stateUpdateListeners) {
try {
listener.daemonStateUpdate(oldValue, newValue);
@@ -153,7 +152,7 @@ public class DaemonWrapper {
public void changeDataDir(String dataDir, Boolean updateAssets) {
I2PD_JNI.setDataDir(dataDir);
if( updateAssets ) processAssets();
if (updateAssets) processAssets();
//ToDo: move old dir to new dir?
}
@@ -168,7 +167,6 @@ public class DaemonWrapper {
} catch (Throwable tr) {
Log.e(TAG, "", tr);
}
setState(State.stopped);
}
}
@@ -178,8 +176,7 @@ public class DaemonWrapper {
try {
processAssets();
I2PD_JNI.loadLibraries();
setState(State.jniLibraryLoaded);
registerNetworkCallback();
//registerNetworkCallback();
} catch (Throwable tr) {
lastThrowable = tr;
setState(State.startFailed);
@@ -189,7 +186,7 @@ public class DaemonWrapper {
synchronized (DaemonWrapper.this) {
I2PD_JNI.setDataDir(i2pdpath); // (Environment.getExternalStorageDirectory().getAbsolutePath() + "/i2pd");
Log.d(TAG, "setting webconsole language to " + appLocale);
Log.i(TAG, "setting webconsole language to " + appLocale);
I2PD_JNI.setLanguage(appLocale);
daemonStartResult = I2PD_JNI.startDaemon();
@@ -206,58 +203,51 @@ public class DaemonWrapper {
}
private void processAssets() {
if (!assetsCopied) {
try {
assetsCopied = true;
File holderFile = new File(i2pdpath, "assets.ready");
String versionName = BuildConfig.VERSION_NAME; // here will be app version, like 2.XX.XX
StringBuilder text = new StringBuilder();
Log.d(TAG, "checking assets");
File holderFile = new File(i2pdpath, "assets.ready");
String versionName = BuildConfig.VERSION_NAME; // here will be app version, like 2.XX.XX
StringBuilder text = new StringBuilder();
if (holderFile.exists()) {
try { // if holder file exists, read assets version string
FileReader fileReader = new FileReader(holderFile);
if (holderFile.exists()) {
try { // if holder file exists, read assets version string
FileReader fileReader = new FileReader(holderFile);
try {
BufferedReader br = new BufferedReader(fileReader);
try {
BufferedReader br = new BufferedReader(fileReader);
try {
String line;
try {
String line;
while ((line = br.readLine()) != null) {
text.append(line);
}
}finally {
try {
br.close();
} catch (IOException e) {
Log.e(TAG, "", e);
}
}
} finally {
try {
fileReader.close();
} catch (IOException e) {
Log.e(TAG, "", e);
}
while ((line = br.readLine()) != null) {
text.append(line);
}
}finally {
try {
br.close();
} catch (IOException e) {
Log.e(TAG, "", e);
}
}
} finally {
try {
fileReader.close();
} catch (IOException e) {
Log.e(TAG, "", e);
}
}
} catch (IOException e) {
Log.e(TAG, "", e);
}
}
// if version differs from current app version or null, try to delete certificates folder
if (!text.toString().contains(versionName))
try {
boolean deleteResult = holderFile.delete();
if (!deleteResult)
Log.e(TAG, "holderFile.delete() returned " + deleteResult + ", absolute path='" + holderFile.getAbsolutePath() + "'");
File certPath = new File(i2pdpath, "certificates");
deleteRecursive(certPath);
}
catch (Throwable tr) {
Log.e(TAG, "", tr);
}
// if version differs from current app version or null, try to delete certificates folder
if (!text.toString().contains(versionName)) {
try {
boolean deleteResult = holderFile.delete();
if (!deleteResult)
Log.e(TAG, "holderFile.delete() returned " + deleteResult + ", absolute path='" + holderFile.getAbsolutePath() + "'");
File certPath = new File(i2pdpath, "certificates");
deleteRecursive(certPath);
// copy assets. If processed file exists, it won't be overwritten
copyAsset("addressbook");
@@ -312,7 +302,7 @@ public class DaemonWrapper {
// Make the directory.
File dir = new File(i2pdpath, path);
boolean result = dir.mkdirs();
Log.d(TAG, "dir.mkdirs() returned " + result);
Log.d(TAG, "dir.mkdirs() returned " + result + " for " + dir);
// Recurse on the contents.
for (String entry : contents) {
@@ -361,7 +351,7 @@ public class DaemonWrapper {
}
boolean deleteResult = fileOrDirectory.delete();
if (!deleteResult)
Log.e(TAG, "fileOrDirectory.delete() returned " + deleteResult + ", absolute path='" + fileOrDirectory.getAbsolutePath() + "'");
Log.d(TAG, "fileOrDirectory.delete() returned " + deleteResult + ", absolute path='" + fileOrDirectory.getAbsolutePath() + "'");
}
private void registerNetworkCallback(){
@@ -383,14 +373,14 @@ public class DaemonWrapper {
public void onAvailable(Network network) {
super.onAvailable(network);
I2PD_JNI.onNetworkStateChanged(true);
Log.i(TAG, "NetworkCallback.onAvailable");
Log.d(TAG, "NetworkCallback.onAvailable");
}
@Override
public void onLost(Network network) {
super.onLost(network);
I2PD_JNI.onNetworkStateChanged(false);
Log.i(TAG, " NetworkCallback.onLost");
Log.d(TAG, " NetworkCallback.onLost");
}
}
}
@@ -84,7 +84,7 @@ public class ForegroundService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("ForegroundService", "Received start id " + startId + ": " + intent);
Log.d("ForegroundService", "Received start id " + startId + ": " + intent);
return START_STICKY;
}
@@ -27,8 +27,7 @@ import android.provider.Settings;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;
@@ -37,19 +36,20 @@ import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import static android.provider.Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS;
import static org.purplei2p.i2pd.DaemonWrapper.State.startedOkay;
import static org.purplei2p.i2pd.DaemonWrapper.State.starting;
import static org.purplei2p.i2pd.DaemonWrapper.State.stopped;
public class I2PDActivity extends Activity {
private static final String TAG = "i2pdActvt";
private static final int MY_PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 1;
public static final int GRACEFUL_DELAY_MILLIS = 10 * 60 * 1000;
public static final String PACKAGE_URI_SCHEME = "package:";
private Button enableButton;
private Button disableButton;
private TextView textView;
private CheckBox HTTPProxyState;
private CheckBox SOCKSProxyState;
private CheckBox BOBState;
private CheckBox SAMState;
private CheckBox I2CPState;
private static volatile DaemonWrapper daemon;
@@ -65,15 +65,23 @@ public class I2PDActivity extends Activity {
try {
if (textView == null)
return;
Throwable tr = daemon.getLastThrowable();
if (tr != null) {
textView.setText(throwableToString(tr));
return;
}
DaemonWrapper.State state = daemon.getState();
if(state == startedOkay){
disableButton.setVisibility(View.VISIBLE);
if (daemon.isStartedOkay()) {
HTTPProxyState.setChecked(I2PD_JNI.getHTTPProxyState());
SOCKSProxyState.setChecked(I2PD_JNI.getSOCKSProxyState());
BOBState.setChecked(I2PD_JNI.getBOBState());
SAMState.setChecked(I2PD_JNI.getSAMState());
I2CPState.setChecked(I2PD_JNI.getI2CPState());
}
String startResultStr = DaemonWrapper.State.startFailed.equals(state) ? String.format(": %s", daemon.getDaemonStartResult()) : "";
String graceStr = DaemonWrapper.State.gracefulShutdownInProgress.equals(state) ? String.format(": %s %s", formatGraceTimeRemaining(), getText(R.string.remaining)) : "";
textView.setText(String.format("%s%s%s", getText(state.getStatusStringResourceId()), startResultStr, graceStr));
@@ -99,12 +107,17 @@ public class I2PDActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
enableButton = findViewById(R.id.enableButton);
disableButton = findViewById(R.id.disableButton);
textView = (TextView) findViewById(R.id.appStatusText);
HTTPProxyState = (CheckBox) findViewById(R.id.service_httpproxy_box);
SOCKSProxyState = (CheckBox) findViewById(R.id.service_socksproxy_box);
BOBState = (CheckBox) findViewById(R.id.service_bob_box);
SAMState = (CheckBox) findViewById(R.id.service_sam_box);
I2CPState = (CheckBox) findViewById(R.id.service_i2cp_box);
if (daemon == null) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
daemon = new DaemonWrapper(getAssets(), connectivityManager);
@@ -113,25 +126,6 @@ public class I2PDActivity extends Activity {
daemon.addStateChangeListener(daemonStateUpdatedListener);
daemonStateUpdatedListener.daemonStateUpdate(DaemonWrapper.State.uninitialized, daemon.getState());
enableButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if( daemon.getState() != startedOkay && daemon.getState() != starting ){
daemon.stopDaemon();
daemon.startDaemon();
disableButton.setVisibility(View.VISIBLE);
}
}
});
disableButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if( daemon.getState() != stopped ){
daemon.stopDaemon();
disableButton.setVisibility(View.INVISIBLE);
}
}
});
// request permissions
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
@@ -179,11 +173,10 @@ public class I2PDActivity extends Activity {
{
if (requestCode == MY_PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
Log.e(TAG, "WR_EXT_STORAGE perm granted");
Log.w(TAG, "WR_EXT_STORAGE perm granted");
else {
Log.e(TAG, "WR_EXT_STORAGE perm declined, stopping i2pd");
i2pdStop();
//TODO must work w/o this perm, ask orignal
}
}
}
@@ -299,7 +292,7 @@ public class I2PDActivity extends Activity {
return true;
case R.id.action_start_webview:
if( daemon.getState() == startedOkay)
if(daemon.isStartedOkay())
startActivity(new Intent(getApplicationContext(), WebConsoleActivity.class));
else
Toast.makeText(this,"I2Pd not was started!", Toast.LENGTH_SHORT).show();
@@ -324,21 +317,22 @@ public class I2PDActivity extends Activity {
}
private void onReloadTunnelsConfig() {
Log.d(TAG, "reloading tunnels");
Log.i(TAG, "reloading tunnels");
daemon.reloadTunnelsConfigs();
Toast.makeText(this, R.string.tunnels_reloading, Toast.LENGTH_SHORT).show();
}
private void i2pdStop() {
cancelGracefulStop0();
Log.i(TAG, "stopping");
textView.setText(getText(R.string.stopping));
new Thread(() -> {
Log.d(TAG, "stopping");
try {
daemon.stopDaemon();
} catch (Throwable tr) {
Log.e(TAG, "", tr);
}
quit(); //TODO make menu items for starting i2pd. On my Android, I need to reboot the OS to restart i2pd.
quit();
}, "stop").start();
}
@@ -353,10 +347,10 @@ public class I2PDActivity extends Activity {
Toast.makeText(this, R.string.graceful_stop_is_already_in_progress, Toast.LENGTH_SHORT).show();
return;
}
Log.i(TAG, "graceful stopping");
Toast.makeText(this, R.string.graceful_stop_is_in_progress, Toast.LENGTH_SHORT).show();
new Thread(() -> {
try {
Log.d(TAG, "graceful stopping");
if (daemon.isStartedOkay()) {
daemon.stopAcceptingTunnels();
long gracefulStopAtMillis;
@@ -376,9 +370,9 @@ public class I2PDActivity extends Activity {
private void cancelGracefulStop()
{
cancelGracefulStop0();
Log.i(TAG, "canceling graceful stop");
new Thread(() -> {
try {
Log.d(TAG, "canceling graceful stop");
if (daemon.isStartedOkay()) {
daemon.startAcceptingTunnels();
runOnUiThread(() -> Toast.makeText(this, R.string.shutdown_canceled, Toast.LENGTH_SHORT).show());
@@ -395,7 +389,7 @@ public class I2PDActivity extends Activity {
gracefulQuitTimerOld.cancel();
if (daemon.getTransitTunnelsCount() <= 0) { // no tunnels left
Log.d(TAG, "no transit tunnels left, stopping");
Log.i(TAG, "no transit tunnels left, stopping");
i2pdStop();
return;
}
@@ -441,7 +435,7 @@ public class I2PDActivity extends Activity {
@SuppressLint("BatteryLife")
private void openBatteryOptimizationDialogIfNeeded() {
boolean questionEnabled = getPreferences().getBoolean(getBatteryOptimizationPreferenceKey(), true);
Log.i(TAG, "BATT_OPTIM_questionEnabled==" + questionEnabled);
Log.d(TAG, "BATT_OPTIM_questionEnabled==" + questionEnabled);
if (!isKnownIgnoringBatteryOptimizations()
&& android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M
&& questionEnabled) {
@@ -471,14 +465,14 @@ public class I2PDActivity extends Activity {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
final PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
if (pm == null) {
Log.i(TAG, "BATT_OPTIM: POWER_SERVICE==null");
Log.d(TAG, "BATT_OPTIM: POWER_SERVICE==null");
return false;
}
boolean ignoring = pm.isIgnoringBatteryOptimizations(getPackageName());
Log.i(TAG, "BATT_OPTIM: ignoring==" + ignoring);
Log.d(TAG, "BATT_OPTIM: ignoring==" + ignoring);
return ignoring;
} else {
Log.i(TAG, "BATT_OPTIM: old SDK version==" + Build.VERSION.SDK_INT);
Log.d(TAG, "BATT_OPTIM: old SDK version==" + Build.VERSION.SDK_INT);
return false;
}
}
@@ -3,35 +3,33 @@ package org.purplei2p.i2pd;
public class I2PD_JNI {
public static native String getABICompiledWith();
public static void loadLibraries() {
System.loadLibrary("i2pd");
}
/**
* returns error info if failed
* returns "ok" if daemon initialized and started okay
*/
public static native String startDaemon();
//should only be called after startDaemon() success
public static native void stopDaemon();
public static native void stopAcceptingTunnels();
public static native void startAcceptingTunnels();
public static native void stopAcceptingTunnels();
public static native void reloadTunnelsConfigs();
public static native void onNetworkStateChanged(boolean isConnected);
public static native void setDataDir(String jdataDir);
public static native int GetTransitTunnelsCount();
public static native String getWebConsAddr();
public static native void setLanguage(String jlanguage);
public static void loadLibraries() {
//System.loadLibrary("c++_shared");
System.loadLibrary("i2pd");
}
public static native int getTransitTunnelsCount();
public static native String getWebConsAddr();
public static native String getDataDir();
public static native boolean getHTTPProxyState();
public static native boolean getSOCKSProxyState();
public static native boolean getBOBState();
public static native boolean getSAMState();
public static native boolean getI2CPState();
public static native void onNetworkStateChanged(boolean isConnected);
}
@@ -21,7 +21,7 @@ public class NetworkStateChangeReceiver extends BroadcastReceiver {
I2PD_JNI.onNetworkStateChanged(isConnected);
} catch (Throwable tr) {
Log.d(TAG, "", tr);
Log.e(TAG, "", tr);
}
}
}
@@ -10,23 +10,24 @@ import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.view.MenuItem;
import android.widget.CompoundButton;
import android.widget.Switch;
import java.io.File;
import java.util.List;
import java.util.Objects;
import org.purplei2p.i2pd.iniedotr.IniEditor;
//import org.purplei2p.i2pd.iniedotr.IniEditor;
public class SettingsActivity extends Activity {
protected IniEditor iniedit = new IniEditor();
private String dataDir = DaemonWrapper.getDataDir();//for inieditor
//protected IniEditor iniedit = new IniEditor();
private String TAG = "i2pdSrvcSettings";
private File cacheDir;
public static String onBootFileName="/onBoot"; // just file, empty, if exist the do autostart, if not then no.
public static String onBootFileName = "/onBoot"; // just file, empty, if exist the do autostart, if not then no.
//https://gist.github.com/chandruark/3165a5ee3452f2b9ec7736cf1b4c5ea6
private void addAutoStartupswitch() {
private void addAutoStartupSwitch() {
try {
Intent intent = new Intent();
@@ -54,7 +55,7 @@ public class SettingsActivity extends Activity {
}
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
if (list.size() > 0) {
startActivity(intent);
}
} catch (Exception e) {
@@ -62,6 +63,7 @@ public class SettingsActivity extends Activity {
}
}
//@Override
private void requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@@ -71,38 +73,52 @@ public class SettingsActivity extends Activity {
Uri.parse("package:" + getPackageName())
);
startActivityForResult(intent, 232);
} else {
//Permission Granted-System will work
}
}
}
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
cacheDir = getApplicationContext().getCacheDir();
setContentView(R.layout.activity_settings);
Objects.requireNonNull(getActionBar()).setDisplayHomeAsUpEnabled(true);
Switch autostart_switch = findViewById(R.id.autostart_enable);
File onBoot= new File( cacheDir.getAbsolutePath()+onBootFileName);
cacheDir = getApplicationContext().getCacheDir();
File onBoot = new File(cacheDir.getAbsolutePath() + onBootFileName);
autostart_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something, the isChecked will be
// true if the switch is in the On position
if(isChecked){
if( !onBoot.exists() ) {
if (isChecked) {
if (!onBoot.exists()) {
requestPermission();
addAutoStartupswitch();
addAutoStartupSwitch();
try {
if( !onBoot.createNewFile()) Log.d(TAG, "Cant create new wile on: "+onBoot.getAbsolutePath());
if (!onBoot.createNewFile())
Log.d(TAG, "Cant create new wile on: "+onBoot.getAbsolutePath());
} catch (Exception e) {
Log.d(TAG, "error: " + e.toString());
Log.e(TAG, "error: " + e.toString());
}
}
}else{
if( onBoot.exists() )
} else {
if (onBoot.exists())
onBoot.delete();
}
}
});
if(onBoot.exists()) autostart_switch.setChecked(true);
if(onBoot.exists())
autostart_switch.setChecked(true);
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
finish();
return true;
}
return false;
}
}
@@ -8,7 +8,6 @@ import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import java.util.Objects;
public class WebConsoleActivity extends Activity {
@@ -22,7 +21,7 @@ public class WebConsoleActivity extends Activity {
Objects.requireNonNull(getActionBar()).setDisplayHomeAsUpEnabled(true);
webView = (WebView) findViewById(R.id.webview1);
webView = (WebView) findViewById(R.id.webconsole);
webView.setWebViewClient(new WebViewClient());
final WebSettings webSettings = webView.getSettings();
+99 -37
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
@@ -10,14 +11,17 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/mainLogo"
android:layout_width="match_parent"
android:layout_height="140dp"
android:src="@drawable/ic_logo" />
android:contentDescription="@string/app_name"
android:src="@drawable/ic_logo"
tools:ignore="ImageContrastCheck" />
<TextView
style="@android:style/Widget.Holo.Light.TextView.SpinnerItem"
@@ -43,50 +47,108 @@
android:layout_width="match_parent"
android:layout_height="@dimen/margin_medium" />
<LinearLayout
<TextView
android:id="@+id/appStatusText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:gravity="center_horizontal"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textColor="#DFDFDF" />
<RelativeLayout
android:layout_height="wrap_content"
<Space
android:layout_width="match_parent"
android:layout_height="@dimen/margin_medium" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/services"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textColor="#DFDFDF" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<TableRow
android:layout_width="match_parent"
android:layout_gravity="center">
android:layout_height="match_parent"
android:gravity="center_horizontal">
<Button
android:id="@+id/enableButton"
style="@android:style/Widget.Button.Inset"
android:layout_width="@dimen/margin_huge"
android:layout_height="@dimen/margin_huge"
android:layout_centerInParent="true"
android:background="@android:drawable/presence_offline"
android:longClickable="true" />
<CheckBox
android:id="@+id/service_httpproxy_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_http_proxy"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textColor="#DFDFDF" />
<Button
android:id="@+id/disableButton"
style="@android:style/Widget.Button.Inset"
android:layout_width="@dimen/margin_huge"
android:layout_height="@dimen/margin_huge"
android:layout_centerInParent="true"
android:background="@android:drawable/presence_online"
android:longClickable="true"
android:visibility="invisible" />
</TableRow>
</RelativeLayout>
<Space
android:layout_width="wrap_content"
android:layout_height="@dimen/margin_medium" />
<TextView
android:id="@+id/appStatusText"
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="#DFDFDF"
android:textSize="18sp" />
android:layout_height="match_parent"
android:gravity="center_horizontal">
</LinearLayout>
<CheckBox
android:id="@+id/service_socksproxy_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_socks_proxy"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textColor="#DFDFDF" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<CheckBox
android:id="@+id/service_bob_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_bob"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textColor="#DFDFDF" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<CheckBox
android:id="@+id/service_sam_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_sam"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textColor="#DFDFDF" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<CheckBox
android:id="@+id/service_i2cp_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_i2cp"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textColor="#DFDFDF" />
</TableRow>
</TableLayout>
</LinearLayout>
@@ -3,8 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/margin_medium"
android:orientation="vertical"
android:padding="@dimen/margin_medium"
tools:context=".SettingsActivity">
<TextView
@@ -21,15 +21,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:textOff="@string/disabled"
android:textOn="@string/enabled"
android:text="@string/autostart_enabled" />
android:text="@string/autostart_enabled"
tools:ignore="TouchTargetSizeCheck" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<!--
<!--
<TextView
android:id="@+id/settings_section2"
android:layout_width="match_parent"
@@ -11,7 +11,7 @@
android:id="@+id/swipe">
<WebView
android:id="@+id/webview1"
android:id="@+id/webconsole"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
+1
View File
@@ -25,6 +25,7 @@
android:title="@string/action_graceful_stop" />
<item
android:id="@+id/action_settings"
android:orderInCategory="95"
android:title="@string/action_settings" />
<item
android:id="@+id/action_stop"
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+8 -7
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_description">Invisible Internet Protocol:</string>
<string name="app_description2">Сеть без границ</string>
<string name="action_start">Запустить</string>
@@ -17,8 +16,8 @@
<string name="gracefulShutdownInProgress">Корректная остановка запущена</string>
<string name="already_stopped">Уже остановлено</string>
<string name="uninitialized">Приложение инициализируется</string>
<string name="starting">Приложение запускается</string>
<string name="uninitialized">Приложение инициализируется...</string>
<string name="starting">Приложение запускается...</string>
<string name="jniLibraryLoaded">Загружены JNI библиотеки</string>
<string name="startedOkay">Приложение запущено</string>
<string name="startFailed">Запуск не удался</string>
@@ -47,10 +46,12 @@
<string name="settings_section0">Основные настройки</string>
<string name="settings_section_tunnels">Туннели</string>
<string name="add_tunnel_button">Добавить</string>
<string name="add_tunnel_button">Добавить туннель</string>
<string name="add_tunnel">Управление туннелями</string>
<string name="del_tunnel_button">Удалить</string>
<string name="enabled">Вкл</string>
<string name="disabled">Выкл</string>
<string name="del_tunnel_button">Удалить туннель</string>
<string name="services">Внутренние сервисы</string>
<string name="services_http_proxy">HTTP Прокси</string>
<string name="services_socks_proxy">SOCKS5 Прокси</string>
<string name="stopping">Остановка приложения...</string>
</resources>
+53
View File
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_description2">Sınırları olmayan ağ</string>
<string name="action_start">Başlat</string>
<string name="action_stop">Durdur</string>
<string name="action_exit">Çık</string>
<string name="action_graceful_stop">Düzgün durdur</string>
<string name="action_cancel_graceful_stop">Düzgün durdurmayı İptal Et</string>
<string name="action_reload_tunnels_config">Tünelleri yeniden yükle</string>
<string name="action_start_webview">Web Konsolunu Aç</string>
<string name="action_settings">Ayarlar</string>
<string name="graceful_stop_is_already_in_progress">Düzgün durdurma zaten devam ediyor</string>
<string name="graceful_stop_is_in_progress">Düzgün durdurma devam ediyor</string>
<string name="gracefulShutdownInProgress">Düzgün kapatma devam ediyor</string>
<string name="already_stopped">Zaten durduruldu</string>
<string name="uninitialized">Uygulama ilk ayarları yapılıyor...</string>
<string name="starting">Uygulama başlatılıyor...</string>
<string name="jniLibraryLoaded">JNI kütüphaneleri yüklendi</string>
<string name="startedOkay">Uygulama başlatıldı</string>
<string name="startFailed">Başlatılamadı</string>
<string name="stopped">Uygulama durduruldu</string>
<string name="remaining">kalan</string>
<string name="title_activity_i2_pdperms_asker_prompt">Bilgi</string>
<string name="permDenied">SD karta yazma izni reddedildi, devam etmek için buna izin vermeniz gerekiyor</string>
<string name="permRequired">Anahtarları ve diğer dosyaları SD karttaki I2PD klasörüne yazmak için SD karta yazma erişimi gereklidir.</string>
<string name="retryPermRequest">SD karta yazma izinlerini istemeyi yeniden dene</string>
<string name="menu_item_battery_optimizations_str">Pil İyileştirmeleri</string>
<string name="battery_optimizations_enabled">Pil iyileştirmeleri etkin</string>
<string name="battery_optimizations_enabled_explained">Android aygıtınız, I2PD üzerinde başka bir neden olmaksızın arka plan programının kapanmasına neden olabilecek bazı ağır pil iyileştirmeleri yapıyor.\nBu pil iyileştirmelerinin devre dışı bırakılmasına izin verilmesi tavsiye edilir.</string>
<string name="battery_optimizations_enabled_dialog">Android aygıtınız, I2PD üzerinde başka bir neden olmaksızın arka plan programının kapanmasına neden olabilecek bazı ağır pil iyileştirmeleri yapıyor.\n\nŞimdi bunları devre dışı bırakmaya izin vermeniz istenecek.</string>
<string name="continue_str">Devam et</string>
<string name="device_does_not_support_disabling_battery_optimizations">Android sürümünüz pil iyileştirmelerini devre dışı bırakmayı desteklemiyor</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Android işletim sistemi sürümünüz, uygulamalar için pil iyileştirmeleri iletişim kutusunun gösterilmesini desteklemiyor.</string>
<string name="shutdown_canceled">Zamanlanan kapatma iptal edildi</string>
<string name="tunnels_reloading">Tünel yapılandırması yeniden yükleniyor...</string>
<string name="settings_section0">Ortak ayarlar</string>
<string name="settings_section_tunnels">Tüneller</string>
<string name="autostart_enabled">Önyüklemede başlat</string>
<string name="add_tunnel_button">Tünel ekle</string>
<string name="add_tunnel">Tünel yönetimi</string>
<string name="del_tunnel_button">Tünelis is</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="remaining">qoldi</string>
<string name="app_description2">Chegarasiz tarmoq</string>
<string name="action_start">Boshlash</string>
<string name="action_exit">Chiqish</string>
<string name="action_graceful_stop">Yumshoq to\'xtatish</string>
<string name="action_cancel_graceful_stop">Yumshoq to\'xtatish bekor qilish</string>
<string name="action_reload_tunnels_config">Tunnellarni qayta yuklash</string>
<string name="action_start_webview">Veb-konsolni ochish</string>
<string name="action_settings">Sozlamalar</string>
<string name="starting">Ilova ishga tushmoqda...</string>
<string name="jniLibraryLoaded">JNI kutubxonalari yuklangan</string>
<string name="startedOkay">Ilova ishga tushirildi</string>
<string name="startFailed">Ishga tushirish muvaffaqiyatsiz tugadi</string>
<string name="stopped">Ilova toʻxtatildi</string>
<string name="stopping">Ilova toʻxtatilmoqda...</string>
<string name="already_stopped">Allaqachon to\'xtatilgan</string>
<string name="gracefulShutdownInProgress">Yumshoq to\'xtatish amalga oshirilmoqda</string>
<string name="services">Ichki xizmatlar</string>
<string name="services_http_proxy">HTTP proksi</string>
<string name="services_socks_proxy">SOCKS5 proksi</string>
<string name="title_activity_i2_pdperms_asker_prompt">So\'rov</string>
<string name="action_stop">To\'xtatish</string>
<string name="graceful_stop_is_already_in_progress">Yumshoq to\'xtatish allaqachon amalga oshirilmoqda</string>
<string name="graceful_stop_is_in_progress">Yumshoq to\'xtatish amalga oshirilmoqda</string>
<string name="uninitialized">Ilova ishga tushiriladi...</string>
<string name="continue_str">Davom etish</string>
<string name="settings_section_tunnels">Tunnellar</string>
<string name="autostart_enabled">Avtomatik ishga tushirish</string>
<string name="add_tunnel_button">Tunnelni qo\'shish</string>
<string name="add_tunnel">Tunnellarni boshqarish</string>
<string name="del_tunnel_button">Tunnelni o\'chirish</string>
<string name="tunnels_reloading">Tunnellar konfiguratsiyalari qayta yuklanmoqda...</string>
<string name="settings_section0">Umumiy sozlamalar</string>
<string name="menu_item_battery_optimizations_str">Batareyani optimallashtirish</string>
<string name="battery_optimizations_enabled">Batareya optimallashtirishi yoqilgan</string>
<string name="shutdown_canceled">Rejalashtirilgan yumshoq o\'chirish bekor qilindi</string>
<string name="retryPermRequest">Endi sizdan ularni o\'chirishga ruxsat berish so\'raladi</string>
<string name="permDenied">SD kartaga yozish ruxsati rad etildi, buni davom ettirishga ruxsat berishingiz kerak</string>
<string name="permRequired">Kalitlarni va boshqa fayllarni SD-kartadagi I2PD jildiga yozish uchun SD kartaga yozish huquqi talab qilinadi.</string>
<string name="battery_optimizations_enabled_explained">Sizning Androidingiz I2PD-da batareyani kuchli optimallashtirishni amalga oshirmoqda, bu boshqa sababsiz demonning yopilishiga olib kelishi mumkin.\nUshbu batareyani optimallashtirishni o\'chirishga ruxsat berish tavsiya etiladi.</string>
<string name="battery_optimizations_enabled_dialog">Sizning Androidingiz I2PD-da batareyani kuchli optimallashtirishni amalga oshirmoqda, bu boshqa sababsiz demonning yopilishiga olib kelishi mumkin.\n\nEndi sizdan ularni o\'chirishga ruxsat berish so\'raladi.</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Sizning Android OS versiyangiz ilovalar uchun batareyani optimallashtirish dialogini ko\'rsatishni qo\'llab-quvvatlamaydi.</string>
<string name="device_does_not_support_disabling_battery_optimizations">Sizning Android versiyangiz batareyani optimallashtirishdan voz kechishni qo\'llab-quvvatlamaydi</string>
</resources>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="pref_bandwidth_limit_flags">
<item>L</item>
<item>O</item>
<item>P</item>
<item>X</item>
</string-array>
<string-array name="pref_loglevel">
<item>none</item>
<item>error</item>
<item>warn</item>
<item>info</item>
<item>debug</item>
</string-array>
</resources>
+14 -8
View File
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_name" translatable="false">i2pd</string>
<string name="app_description">Invisible Internet Protocol:</string>
<string name="app_description" translatable="false">Invisible Internet Protocol:</string>
<string name="app_description2">Network without borders</string>
<string name="action_start">Start</string>
<string name="action_stop">Stop</string>
<string name="action_exit">Exit</string>
<string name="action_graceful_stop">Graceful Stop</string>
<string name="action_cancel_graceful_stop">Cancel Graceful Stop</string>
<string name="action_graceful_stop">Graceful stop</string>
<string name="action_cancel_graceful_stop">Cancel Graceful stop</string>
<string name="action_reload_tunnels_config">Reload tunnels</string>
<string name="action_start_webview">Open Web Console</string>
<string name="action_settings">Settings</string>
@@ -18,15 +18,23 @@
<string name="gracefulShutdownInProgress">Graceful shutdown in progress</string>
<string name="already_stopped">Already stopped</string>
<string name="uninitialized">Application initializing</string>
<string name="starting">Application starting</string>
<string name="uninitialized">Application initializing...</string>
<string name="starting">Application starting...</string>
<string name="jniLibraryLoaded">Loaded JNI libraries</string>
<string name="startedOkay">Application Started</string>
<string name="startedOkay">Application started</string>
<string name="startFailed">Start failed</string>
<string name="stopped">Application stopped</string>
<string name="stopping">Application stopping...</string>
<string name="remaining">remaining</string>
<string name="ok" translatable="false">OK</string>
<string name="services">Internal services</string>
<string name="services_http_proxy">HTTP Proxy</string>
<string name="services_socks_proxy">SOCKS5 Proxy</string>
<string name="services_bob" translatable="false">BOB</string>
<string name="services_sam" translatable="false">SAM</string>
<string name="services_i2cp" translatable="false">I2CP</string>
<string name="title_activity_i2_pdperms_asker_prompt">Prompt</string>
<string name="permDenied">SD card write permission denied, you need to allow this to continue</string>
<string name="permRequired">SD card write access is required to write the keys and other files to the I2PD folder on SD card.</string>
@@ -52,7 +60,5 @@
<string name="add_tunnel">Tunnels management</string>
<string name="del_tunnel_button">Delete tunnel</string>
<string name="enabled">On</string>
<string name="disabled">Off</string>
</resources>
+193
View File
@@ -0,0 +1,193 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Main">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Log" />
<ListPreference
android:defaultValue="1"
android:entries="@array/pref_loglevel"
android:entryValues="@array/pref_loglevel"
android:key="list_preference_1"
android:summary="Logging level to file. Use 'none' to reduce memory usage"
android:title="Log level" />
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="IPv4" />
<CheckBoxPreference
android:defaultValue="false"
android:key="check_box_preference_1"
android:title="IPv6" />
<EditTextPreference
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<ListPreference
android:entries="@array/pref_bandwidth_limit_flags"
android:entryValues="@array/pref_bandwidth_limit_flags"
android:key="list_preference_1"
android:summary="Bandwidth limit for transit traffic"
android:title="Bandwidth" />
<CheckBoxPreference
android:defaultValue="false"
android:key="check_box_preference_1"
android:summary="Disable transit"
android:title="No transit" />
<CheckBoxPreference
android:defaultValue="false"
android:key="check_box_preference_1"
android:summary="Uses more battery"
android:title="Floodfill" />
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="SSU" />
</PreferenceCategory>
<PreferenceCategory android:title="NTCP2">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Enable" />
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:summary="Disable to make unable to connect to your device"
android:title="Publish" />
</PreferenceCategory>
<PreferenceCategory android:title="Web Console">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Enable" />
<EditTextPreference
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:defaultValue="7070"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<CheckBoxPreference
android:defaultValue="false"
android:key="check_box_preference_1"
android:summary="Use HTTP authorization to access Web Console"
android:title="Autorization" />
<EditTextPreference
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="User" />
<EditTextPreference
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Password" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/services_http_proxy">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Enable" />
<EditTextPreference
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:defaultValue="4444"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<EditTextPreference
android:defaultValue="proxy-keys.dat"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Keys" />
</PreferenceCategory>
<PreferenceCategory android:title="SOCKS Proxy">
<CheckBoxPreference
android:defaultValue="false"
android:key="check_box_preference_1"
android:title="Enable" />
<EditTextPreference
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:defaultValue="4447"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<EditTextPreference
android:defaultValue="proxy-keys.dat"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Keys" />
</PreferenceCategory>
<PreferenceCategory android:title="SAM">
<CheckBoxPreference
android:defaultValue="false"
android:key="check_box_preference_1"
android:title="Enable" />
<EditTextPreference
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:defaultValue="7656"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
</PreferenceCategory>
<PreferenceCategory android:title="UPnP">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Enable" />
<EditTextPreference
android:defaultValue="I2Pd"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Forwarding name" />
</PreferenceCategory>
<PreferenceCategory android:title="Limits">
<EditTextPreference
android:defaultValue="50"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:summary="Limit possible built transit tunnels"
android:title="Transit tunnels" />
</PreferenceCategory>
</PreferenceScreen>
+79
View File
@@ -0,0 +1,79 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := i2pd
LOCAL_CPP_FEATURES := rtti exceptions
LOCAL_C_INCLUDES += $(IFADDRS_PATH) $(LIB_SRC_PATH) $(LIB_CLIENT_SRC_PATH) $(LANG_SRC_PATH) $(DAEMON_SRC_PATH)
LOCAL_STATIC_LIBRARIES := \
boost_system \
boost_date_time \
boost_filesystem \
boost_program_options \
crypto \
ssl \
miniupnpc
LOCAL_LDLIBS := -lz
LOCAL_SRC_FILES := \
$(IFADDRS_PATH)/ifaddrs.cpp \
$(IFADDRS_PATH)/bionic_netlink.cpp \
$(wildcard $(LIB_SRC_PATH)/*.cpp) \
$(wildcard $(LIB_CLIENT_SRC_PATH)/*.cpp) \
$(wildcard $(LANG_SRC_PATH)/*.cpp) \
$(DAEMON_SRC_PATH)/UnixDaemon.cpp \
$(DAEMON_SRC_PATH)/Daemon.cpp \
$(DAEMON_SRC_PATH)/UPnP.cpp \
$(DAEMON_SRC_PATH)/HTTPServer.cpp \
$(DAEMON_SRC_PATH)/I2PControl.cpp \
$(DAEMON_SRC_PATH)/i2pd.cpp \
include $(BUILD_EXECUTABLE)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_system
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_date_time
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_filesystem
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := boost_program_options
LOCAL_SRC_FILES := $(BOOST_PATH)/out/$(TARGET_ARCH_ABI)/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := crypto
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ssl
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/include
LOCAL_STATIC_LIBRARIES := crypto
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := miniupnpc
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/include
include $(PREBUILT_STATIC_LIBRARY)
+34
View File
@@ -0,0 +1,34 @@
APP_ABI += all
#APP_ABI += arm64-v8a
#APP_ABI += armeabi-v7a
#APP_ABI += x86_64
#APP_ABI += x86
APP_PLATFORM := android-16
#APP_PLATFORM := android-21
NDK_TOOLCHAIN_VERSION := clang
APP_STL := c++_static
# Enable c++17 extensions in source code
APP_CPPFLAGS += -std=c++17 -fexceptions -frtti
APP_CPPFLAGS += -DANDROID_BINARY -DANDROID -D__ANDROID__ -DUSE_UPNP -Wno-deprecated-declarations
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
APP_CPPFLAGS += -DANDROID_ARM7A
endif
APP_LDFLAGS += -fPIE
IFADDRS_PATH = $(NDK_MODULE_PATH)/android-ifaddrs
BOOST_PATH = $(NDK_MODULE_PATH)/boost
MINIUPNP_PATH = $(NDK_MODULE_PATH)/miniupnp
OPENSSL_PATH = $(NDK_MODULE_PATH)/openssl
# don't change me
I2PD_SRC_PATH = $(NDK_MODULE_PATH)/i2pd
LIB_SRC_PATH = $(I2PD_SRC_PATH)/libi2pd
LIB_CLIENT_SRC_PATH = $(I2PD_SRC_PATH)/libi2pd_client
LANG_SRC_PATH = $(I2PD_SRC_PATH)/i18n
DAEMON_SRC_PATH = $(I2PD_SRC_PATH)/daemon
+1
View File
@@ -0,0 +1 @@
../../app/jni/android-ifaddrs
+1
View File
@@ -0,0 +1 @@
../../app/jni/boost
+1
View File
@@ -0,0 +1 @@
../../app/jni/build_boost.sh
+1
View File
@@ -0,0 +1 @@
../../app/jni/build_miniupnpc.sh
+1
View File
@@ -0,0 +1 @@
../../app/jni/build_openssl.sh
+1
View File
@@ -0,0 +1 @@
../../app/jni/i2pd
+1
View File
@@ -0,0 +1 @@
../../app/jni/miniupnp
+1
View File
@@ -0,0 +1 @@
../../app/jni/openssl
+1 -1
View File
@@ -4,7 +4,7 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.android.tools.build:gradle:7.1.3'
}
}
@@ -0,0 +1,2 @@
* Updated codebase to 2.40.0
* Disabled Network state changes listener (sometimes android not sends notifications, so application thinks that internet is not available)
@@ -0,0 +1,6 @@
* Updated codebase to 2.41.0
* Switch to minSdkVersion 16, ndk 23.1.7779620, gradlew 6.9.2
* Build required modules from source instead of using prebuilt
* Add mipmap icon for compatability with old Android
* Fix crash on start when ifaddrs was called (with meshnets.yggdrasil=true for example)
* Use TCP/IP socket for I2CP instead unix socket
@@ -0,0 +1,12 @@
* Updated codebase to 2.41.0-85-g2f10decf
* Revert to ndk 21.4.7075529, boost 1.74.0
* Switch to androidx.core 1.6.0, gradle 7.1.3, gradlew 7.2
* Add internal services (not user-defined tunnels) status on main page
* Add return button on settings page
* Add turkish translation
* Add uzbek translation
* Fix datadir and locale detection and passing of them to daemon
* Fix getting datadir from daemon
* Fix assets overwriting when they already extracted
* Removed Start/Stop button on main page
* Change application theme to Default (from Holo)
@@ -1,13 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) is a universal anonymous network layer.
All communications over I2P are anonymous and end-to-end encrypted, participants
don't reveal their real IP addresses.
All communications over I2P are anonymous and end-to-end encrypted, participants don't reveal their real IP addresses.
<b>I2P client</b> is a software used for building and using anonymous I2P
networks. Such networks are commonly used for anonymous peer-to-peer
applications (filesharing, cryptocurrencies) and anonymous client-server
applications (websites, instant messengers, chat-servers).
<b>I2P client</b> is a software used for building and using anonymous I2P networks.
Such networks are commonly used for anonymous peer-to-peer applications (filesharing, cryptocurrencies) and anonymous client-server applications (websites, instant messengers, chat-servers).
<b>I2P</b> allows people from all around the world to communicate and share information
without restrictions.
<b>I2P</b> allows people from all around the world to communicate and share information without restrictions.
For more information about <b>I2P</b>, you can read <a href="https://en.m.wikipedia.org/wiki/I2P">article on Wikipedia</a>.
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) является универсальным анонимным сетевым уровнем.
Все коммуникации по I2P анонимны и защищены сквозным шифрованием, участники не раскрывают своих реальных IP адресов.
<b>I2P клиент</b> является программным обеспечением, используемым для подключения и использования анонимной сети I2P.
Эта сеть обычно используется для анонимных peer-to-peer приложений (файлообмен, криптовалюты) и анонимных клиент-серверных приложений (веб-сайтов, служб мгновенных сообщений, чат-серверов).
<b>I2P</b> позволяет людям со всего мира общаться и обмениваться информацией без ограничений.
Для получения дополнительной информации о <b>I2P</b>, вы можете прочитать статью <a href="https://en.m.wikipedia.org/wiki/I2P">в Википедии</a>.
@@ -0,0 +1 @@
Полнофункциональная реализация I2P клиента на С++
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) evrensel bir anonim ağ katmanıdır.
I2P üzerinden yapılan tüm haberleşmeler anonimdir ve uçtan uca şifrelenir, katılımcılar gerçek IP adreslerini ifşa etmez.
<b>I2P istemcisi</b> anonim I2P ağları oluşturmak ve kullanmak için bir yazılımdır.
Bu tür ağlar genellikle anonim eşler arası uygulamalar (dosya paylaşımı, kripto paralar) ve anonim istemci-sunucu uygulamaları (web siteleri, anlık mesajlaşma programları, sohbet sunucuları) için kullanılır.
<b>I2P</b> dünyanın her yerinden insanların kısıtlama olmaksızın iletişim kurmasına ve bilgi paylaşmasına olanak tanır.
<b>I2P</b> hakkında daha fazla bilgi için <a href="https://en.m.wikipedia.org/wiki/I2P">Wikipedia makalesini</a> okuyabilirsiniz.
@@ -0,0 +1 @@
C++ ile yazılan tam özellikli I2P istemcisi
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) universal anonim tarmoq qatlami bo'lib hisoblanadi.
I2P orqali barcha aloqalar anonim va oxirigacha shifrlangan, ishtirokchilar haqiqiy IP manzillarini oshkor qilmaydi.
<b>I2P mijozi</b> anonim I2P tarmoqlarini yaratish va ulardan foydalanish uchun foydalaniladigan dasturdir.
Bunday tarmoqlar odatda anonim peer-to-peer ilovalari (fayl almashish, kriptovalyutalar) va anonim mijoz-server ilovalari (veb-saytlar, messenjerlar, chat-serverlar) uchun ishlatiladi.
<b>I2P</b> butun dunyo bo'ylab odamlarga cheklovlarsiz muloqot qilish va ma'lumot almashish imkonini beradi.
<b>I2P</b> haqida qoʻshimcha maʼlumot olish uchun <a href="https://en.m.wikipedia.org/wiki/I2P">Vikipediyadagi maqolani</a> oʻqishingiz mumkin.
@@ -0,0 +1 @@
I2P mijozining to'liq xususiyatli C++ ilovasi
Binary file not shown.
+6 -6
View File
@@ -1,6 +1,6 @@
#Thu Oct 15 17:35:03 MSK 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=f581709a9c35e9cb92e16f585d2c4bc99b2b1a5f85d2badbd3dc6bff59e1e6dd
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored
+174 -112
View File
@@ -1,78 +1,129 @@
#!/usr/bin/env sh
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
MAX_FD=maximum
warn () {
echo "$*"
}
} >&2
die () {
echo
echo "$*"
echo
exit 1
}
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD="$JAVA_HOME/bin/java"
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
@@ -89,84 +140,95 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
Vendored
+89 -84
View File
@@ -1,84 +1,89 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega