Compare commits

..

72 Commits

Author SHA1 Message Date
r4sas 8dba5a00e5 [i18n] pull updates
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-05-13 21:19:33 +00:00
r4sas c74235a279 2.52.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-05-13 21:13:50 +00:00
r4sas ca3ef80981 [gha] update workflow
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-04-07 09:17:05 +00:00
r4sas 8f56a56927 2.51.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-04-07 08:52:44 +00:00
wipedlifepotato cf5fe2e948 Perferences (#66) 2024-04-07 11:34:30 +03:00
R4SAS 938a85bc3c 2.50.2
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2024-01-11 05:19:41 +00:00
R4SAS 226c7e20e3 2.50.0
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-12-18 18:41:08 +00:00
r4sas 57f255cde2 2.49.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2023-09-18 18:34:33 +00:00
r4sas f3d71465d7 2.48.0.1
Signed-off-by: r4sas <r4sas@i2pmail.org>
2023-06-17 19:41:23 +00:00
r4sas 0ec2f1ae51 update OpenSSL to 1.1.1u
Signed-off-by: r4sas <r4sas@i2pmail.org>
2023-06-17 19:07:48 +00:00
R4SAS 96e217c1ee 2.48.0
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-12 17:15:24 +03:00
R4SAS e2f7391c5a i18n: update translation
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-12 17:13:03 +03:00
R4SAS 64696efbb6 ci: update checkout action
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-03 18:09:40 +03:00
R4SAS 94b784564e ci: fix sdkmanager command
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-03 17:46:06 +03:00
R4SAS 65b615ad45 ci: use preisntalled jdk
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-03 17:41:46 +03:00
R4SAS 5d1fa20733 ci: update workflow
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-03 17:38:19 +03:00
R4SAS 8f4b462a83 trunk build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-06-03 16:48:02 +03:00
r4sas be0d652875 2.47.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2023-03-12 01:22:17 +00:00
R4SAS c7bdaac061 2.46.1
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-02-24 12:35:50 +00:00
R4SAS 3b7f9b511f [i18n] add/update fastlane descriptions
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-02-16 14:57:45 +00:00
R4SAS 9bf0a7b787 2.46.0
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-02-16 14:45:21 +00:00
R4SAS 2d2662fe63 [i18n] update, add Portuguese
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-02-16 14:44:28 +00:00
r4sas 97abcc661f 2.45.1
Signed-off-by: r4sas <r4sas@i2pmail.org>
2023-01-11 22:59:51 +00:00
R4SAS 8a791c45c2 [readme] add release singing fingerprint info
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-08 21:22:49 +03:00
R4SAS 4334fd4bdb 2.45.0.2
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-08 20:16:24 +03:00
R4SAS f0132e9847 fix permissions asker activity start on some android 11+ devices
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-08 20:14:17 +03:00
R4SAS 06b567d910 2.45.0.1
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-07 15:01:54 +00:00
R4SAS dd17608af9 fix permissions API level
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-07 17:38:18 +03:00
R4SAS 2e10678278 add MANAGE_EXTERNAL_STORAGE permission for API 30+
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2023-01-07 17:33:10 +03:00
r4sas 8132dbde08 2.45.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2023-01-04 19:29:28 +00:00
r4sas f2ee4e5ea0 [i18n] add Czech translation
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-12-18 22:04:44 +00:00
r4sas 57fef00c48 trunk build, ndk r23c, target 32
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-12-18 21:26:14 +00:00
r4sas b003a07f1b 2.44.0
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-11-20 19:18:42 +00:00
R4SAS 3b328d7f7c [i18n] pull translation updates
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-11-20 08:20:48 +03:00
R4SAS f2b7ae1ada [jni] disable stack protector
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-11-20 08:20:47 +03:00
R4SAS fce1dc98d0 [i18n] pull translation updates
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-11-20 08:20:46 +03:00
r4sas 5d86c53204 fastlane: add icon
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-11-03 19:26:21 +00:00
r4sas a88037692f update submodules
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-11-03 19:25:54 +00:00
R4SAS 67a98991d0 fix binary build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-18 11:45:05 +03:00
R4SAS a3cddc954d fix typo
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-18 11:11:39 +03:00
R4SAS a36131b1bc [i2pd] update to trunk, fix build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-18 10:57:27 +03:00
R4SAS e0a2d6f015 [i18n] add translations from crowdin
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-09-04 22:39:26 +03:00
R4SAS a411f9132f [i18n] add Ukrainian translation
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-08-24 11:29:03 +03:00
R4SAS e2dfde17bf 2.43.0
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-08-21 23:13:06 +03:00
R4SAS 447407483d switch to i2pd 2.43.0, pull translations updates
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-08-21 23:07:44 +03:00
r4sas e925b58239 [i2pd] update to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-19 19:32:10 +00:00
r4sas 1a4e0c02de [i2pd] update to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-14 10:36:37 +00:00
r4sas b0f8bf87ba [i18n] fix translation directory name
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 19:06:18 +00:00
r4sas 99fc0992f2 [i18n] add Simplified Chinese translation
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 18:21:23 +00:00
r4sas e27534dbbe [i2pd] enable ssu2 by default and disable ssu
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 18:16:51 +00:00
r4sas 8abfd1f5fb [i2pd] update to trunk
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-08-09 18:14:58 +00:00
R4SAS 6c162bc689 [i2pd] update to trunk
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-07-10 01:27:39 +03:00
R4SAS a61012f72d switch to openssl 1.1.1q
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-07-10 01:25:34 +03:00
R4SAS 2bdb97db0f remove unused READ_PHONE_STATE permission
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-07-10 01:21:32 +03:00
r4sas d72e3aeea6 2.42.1
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-05-25 16:31:56 +00:00
R4SAS a82a4cc211 2.42.0
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-22 21:21:22 +03:00
R4SAS 063173e546 [boost] update paths for binary build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-22 14:04:09 +03:00
R4SAS cc14c7e6c2 [boost] do not make copy, use builder output directory
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-22 13:41:42 +03:00
R4SAS 61846ef57b update boost-for-android submodule
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-19 13:17:15 +03:00
R4SAS 063b416bf1 update readme
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-19 13:08:36 +03:00
R4SAS 470cc90b6a Make possible to build on Windows with MSYS2
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-19 13:02:13 +03:00
r4sas b0204a59ea rework libraries building scripts, output paths, remove rename usage
Signed-off-by: r4sas <r4sas@i2pmail.org>
2022-05-18 04:20:07 +00:00
R4SAS ef5f7a1d95 switch openssl to 1.1.1o
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-17 21:29:00 +03:00
R4SAS 82897ccb93 bump i2pd
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-15 11:50:57 +03:00
R4SAS 97f0490fdf pull french translation from crowdin
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-15 11:22:48 +03:00
R4SAS d1c6ecb850 test build
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-05-15 10:46:31 +03:00
R4SAS 2a4fa8c036 fix script paths
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-29 15:29:27 +03:00
R4SAS 8debf9fc73 use bash in script
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-29 14:44:30 +03:00
R4SAS 8e2e80ea5d [gha] build binaries package
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-29 13:04:51 +03:00
R4SAS 3dbb4e9759 binary pack: fix paths
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-29 12:57:20 +03:00
R4SAS 0ead601868 add binary pack script
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-29 12:55:28 +03:00
R4SAS 9b4ee8447a update README
Signed-off-by: R4SAS <r4sas@i2pmail.org>
2022-04-13 13:47:35 +03:00
99 changed files with 1644 additions and 2127 deletions
+29 -39
View File
@@ -6,32 +6,21 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install rename tool
- name: Install GNU C++ compiler
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: |
build-tools;31.0.0
platforms;android-31
ndk;21.4.7075529
cmake;3.18.1
cache: true
sudo apt-get install -y g++
- name: Switch to JDK 11
run: export JAVA_HOME=$JAVA_HOME_11_X64
- name: Install required Android SDK packages
run: $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "cmake;3.22.1" "ndk;23.2.8568313"
- name: Build required modules
run: |
export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313
pushd app/jni
sed -i -e 's/d+2/d+0/' boost/build-android.sh
./build_boost.sh
./build_openssl.sh
./build_miniupnpc.sh
@@ -39,7 +28,7 @@ jobs:
- name: Build with Gradle
run: ./gradlew --no-daemon assembleDebug
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: android-apks
path: app/build/outputs/apk/debug/*.apk
@@ -47,30 +36,21 @@ jobs:
build-binary:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install rename tool
- name: Install GNU C++ compiler
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
sudo apt-get install -y g++
- name: Switch to JDK 11
run: export JAVA_HOME=$JAVA_HOME_11_X64
- name: Install required Android SDK packages
run: $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "cmake;3.22.1" "ndk;23.2.8568313"
- name: Build required modules
run: |
export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/21.4.7075529
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313
pushd binary/jni
sed -i -e 's/d+2/d+0/' boost/build-android.sh
./build_boost.sh
./build_openssl.sh
./build_miniupnpc.sh
@@ -80,8 +60,18 @@ jobs:
pushd binary/jni
$ANDROID_NDK_HOME/ndk-build -j2 NDK_MODULE_PATH=$PWD
popd
- name: Upload artifacts
uses: actions/upload-artifact@v2
- name: Create package with built binaries
run: |
pushd contrib/binary_pack
./build-archive
popd
- name: Upload binaries archive
uses: actions/upload-artifact@v4
with:
name: android-binaries
path: binary/libs/*
- name: Upload binaries package
uses: actions/upload-artifact@v4
with:
name: android-binaries-pack
path: contrib/binary_pack/i2pd_*_android_binary.zip
+37 -13
View File
@@ -12,40 +12,46 @@ This repository contains Android application sources of i2pd
## How to build
### Install OpenJDK, g++, rename (used for building modules), gradle 5.1+, download Android SDK
### Install g++, OpenJDK 11+, gradle 5.1+
```bash
sudo apt-get install g++ rename gradle
sudo apt-get install g++ openjdk-11-jdk gradle
```
Android SDK Available here:
https://developer.android.com/studio#downloads
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
### Download and prepare Android SDK for building
Android SDK Available here:
https://developer.android.com/studio#downloads
Download Android SDK, unpack it to temporary directory `/tmp/anrdoid-sdk` and install it (in `/opt/android-sdk` for example) with required packages
```bash
mkdir /opt/android-sdk
cd /opt/android-sdk
mkdir /tmp/android-sdk
cd /tmp/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"
./cmdline-tools/bin/sdkmanager --sdk_root=/opt/android-sdk "build-tools;33.0.1" "cmake;3.22.1" "ndk;23.2.8568313"
```
### Clone repository with submodules
```bash
git clone --recurse-submodules https://github.com/PurpleI2P/i2pd-android.git
```
### Compile application
```bash
export ANDROID_SDK_ROOT=/opt/android-sdk
export ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/23.1.7779620
# if you are not using Java 11 by default:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export ANDROID_HOME=/opt/android-sdk
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313
pushd app/jni
./build_boost.sh
@@ -57,3 +63,21 @@ gradle clean assembleDebug
```
You will find APKs in `app/build/outputs/apk`
### Building on Windows
For building on Windows you must use MSYS2 with `mingw64` or `ucrt64` shell and preinstalled `gcc` ( package `mingw-w64-x86_64-gcc` or `mingw-w64-ucrt-x86_64-gcc`).
Java 11 can be downloaded from [jdk.java.com](https://jdk.java.net/java-se-ri/11)
Download Android SDK command line tools for Windows, unpack and install it replacing `--sdk_root=` path.
`ANDROID_HOME` variable must point to SDK using linux-way path, like `/c/dev/android-sdk` when SDK installed to `C:\dev\android-sdk`.
Gradle can be called with `./gradlew` command inside project root, or you can install it using `pacman` and call `gradle` like on linux.
## Release signing
Current releases signed with certificate fingerprint (SHA-256):
`FC:C3:C7:34:9E:22:6A:77:B3:70:46:BB:00:FD:04:BB:A5:30:32:21:01:F8:62:F3:6D:8C:3D:B0:EB:B6:35:20`
+25 -9
View File
@@ -3,21 +3,36 @@ plugins {
}
dependencies {
implementation 'androidx.core:core:1.6.0'
implementation 'androidx.core:core:1.9.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
// implementation 'org.ini4j:ini4j:0.5.4'
implementation 'org.apache.commons:commons-configuration2:2.9.0'
}
configurations {
all{
//exclude group: 'commons-logging', module: 'commons-logging'
//exclude group: 'org.apache.httpcomponents'
exclude module: 'httpclient'
}
}
android {
compileSdkVersion 29
lintOptions {
// Not so a good way
disable 'DuplicatePlatformClasses'
}
compileSdkVersion 33
defaultConfig {
applicationId "org.purplei2p.i2pd"
targetSdkVersion 29
targetSdkVersion 33
// TODO: 24?
minSdkVersion 16
versionCode 2410001
versionName "2.41.0.1"
versionCode 2520000
versionName "2.52.0"
archivesBaseName += "-$versionName"
ndkVersion "21.4.7075529"
ndkVersion "23.2.8568313"
ndk {
abiFilters "armeabi-v7a"
@@ -70,9 +85,10 @@ android {
}
compileOptions {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
namespace 'org.purplei2p.i2pd'
}
ext.abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'arm64-v8a': 3, 'x86_64': 4]
@@ -83,7 +99,7 @@ android.applicationVariants.all { variant ->
def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
if (baseAbiVersionCode != null) {
output.versionCodeOverride = baseAbiVersionCode * 10 + variant.versionCode
output.versionCodeOverride = baseAbiVersionCode + variant.versionCode
}
}
}
+16 -15
View File
@@ -24,56 +24,57 @@ LOCAL_SRC_FILES := \
$(DAEMON_SRC_PATH)/Daemon.cpp \
$(DAEMON_SRC_PATH)/UPnP.cpp \
$(DAEMON_SRC_PATH)/HTTPServer.cpp \
$(DAEMON_SRC_PATH)/I2PControl.cpp
$(DAEMON_SRC_PATH)/I2PControl.cpp \
$(DAEMON_SRC_PATH)/I2PControlHandlers.cpp
include $(BUILD_SHARED_LIBRARY)
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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/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_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/lib/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY)
+1 -1
View File
@@ -4,7 +4,7 @@ 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 -Wno-deprecated-declarations -fstack-protector
APP_CPPFLAGS += -DANDROID -D__ANDROID__ -DUSE_UPNP -Wno-deprecated-declarations
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
APP_CPPFLAGS += -DANDROID_ARM7A
endif
+16 -64
View File
@@ -2,70 +2,20 @@
set -e
BOOST_VERSION=1.74.0
BOOST_VERSION_SUFFIX=1_74
BOOST_VERSION=1.78.0
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
--boost=$BOOST_VERSION \
--arch=$CPU \
--target-version=$API \
--with-libraries=$BOOST_LIBS \
--layout=system \
$ANDROID_NDK_HOME
}
function checkPreRequisites {
@@ -82,14 +32,9 @@ function checkPreRequisites {
fi
}
checkPreRequisites
cd boost
rm -rf out
function build {
for arg in "$@"; do
case "${arg}" in
case "$arg" in
x86_64)
API=21
TARGET=x86_64
@@ -112,7 +57,6 @@ function build {
;;
all)
API=16
CPU=x86_64,arm64-v8a,x86,armeabi-v7a
build_one
;;
*)
@@ -121,6 +65,14 @@ function build {
done
}
checkPreRequisites
cd boost
# disable verbose output
sed -i -E -e 's/d\+2/d\+0/' build-android.sh
sed -i -E -e 's/\"23\.1\"\|\"25\.0\"/\"23\.1\"\|\"23\.2\"\|\"25\.0\"/' build-android.sh
if (( $# == 0 )); then
build all
else
+24 -25
View File
@@ -2,32 +2,31 @@
set -e
CMAKE_VERSION=3.18.1
CMAKE_VERSION=3.22.1
function build_one {
mkdir -p out/${CPU}
cd out/${CPU}
mkdir -p build out/$CPU
cd build
cmake \
-G "Unix Makefiles" \
-DUPNPC_BUILD_SHARED=False \
-DUPNPC_BUILD_TESTS=False \
-DUPNPC_BUILD_SAMPLE=False \
-DANDROID_NATIVE_API_LEVEL=${API} \
-DANDROID_ABI=${CPU} \
-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 \
../..
-DANDROID_NDK=$ANDROID_NDK_HOME \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=../out/$CPU \
..
echo "Building..."
cmake --build . -- libminiupnpc-static
make install
cd ../..
if [[ -n 'out/include' ]]; then
mkdir -p out/include/miniupnpc
cp include/* out/include/miniupnpc
fi
cd ..
rm -rf build
}
function checkPreRequisites {
@@ -38,8 +37,8 @@ function checkPreRequisites {
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"
if [ -z "$ANDROID_HOME" -a "$ANDROID_HOME" == "" ]; then
echo -e "\033[31mFailed! ANDROID_HOME is empty. Run 'export ANDROID_HOME=[PATH_TO_NDK]'\033[0m"
exit
fi
@@ -49,17 +48,9 @@ function checkPreRequisites {
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
case "$arg" in
x86_64)
API=21
CPU=x86_64
@@ -86,6 +77,14 @@ function build {
done
}
checkPreRequisites
cd miniupnp/miniupnpc
rm -rf build out
# add cmake from Android SDK to PATH
PATH=$ANDROID_HOME/cmake/$CMAKE_VERSION/bin:$PATH
if (( $# == 0 )); then
build x86_64 arm64 arm x86
else
+27 -32
View File
@@ -2,33 +2,25 @@
set -e
function build_one {
mkdir -p out/${CPU}
mkdir output
HOST_OS=`uname -a`
echo "Configuring OpenSSL for ${CPU}..."
function build_one {
mkdir -p out/$CPU
echo "Configuring OpenSSL for $CPU..."
./Configure \
--prefix="$PWD/output" \
${TARGET} \
--prefix="$PWD/out/$CPU" \
$TARGET \
no-shared \
no-tests \
-D__ANDROID_API__=${API} \
-D__ANDROID_API__=$API \
-Wno-macro-redefined
echo "Building OpenSSL for ${CPU}..."
make -j $(nproc) > output/build.log
echo "Building OpenSSL for $CPU..."
make -j $(nproc) > out/build.log
echo "Installing to temporary directory..."
make install_sw >> output/build.log
make install_sw >> out/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
}
@@ -46,21 +38,9 @@ function checkPreRequisites {
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
case "$arg" in
x86_64)
API=21
CPU=x86_64
@@ -91,6 +71,21 @@ function build {
done
}
checkPreRequisites
cd openssl
rm -rf out
if [[ "$HOST_OS" == *"_NT-"* ]]; then
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/windows-x86_64/bin:$PATH
else
PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
fi
if [[ -f 'Makefile' ]]; then
make clean
fi
if (( $# == 0 )); then
build x86_64 arm64 arm x86
else
+32 -7
View File
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.purplei2p.i2pd"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
@@ -20,6 +23,17 @@
android:theme="@android:style/Theme.DeviceDefault"
android:usesCleartextTraffic="true">
<service
android:name=".I2PdQSTileService"
android:exported="true"
android:label="I2Pd"
android:icon="@drawable/ic_logo"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>
<receiver
android:enabled="true"
android:name="org.purplei2p.i2pd.receivers.BootUpReceiver"
@@ -39,14 +53,17 @@
<receiver
android:name=".NetworkStateChangeReceiver"
android:label="NetworkChangeReceiver" >
android:label="NetworkChangeReceiver"
android:exported="true" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"
tools:ignore="BatteryLife" />
</intent-filter>
</receiver>
<activity
android:name=".I2PDPermsAskerActivity">
android:name=".I2PDPermsAskerActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@@ -58,6 +75,8 @@
<service
android:name=".ForegroundService"
android:exported="false"
android:stopWithTask="false"
android:enabled="true" />
<activity
@@ -68,5 +87,11 @@
android:name="android.support.PARENT_ACTIVITY"
android:value="org.purplei2p.i2pd.I2PDPermsAskerActivity" />
</activity>
<activity
android:name=".MainPreferenceActivity"
android:label="Settings"
>
</activity>
</application>
</manifest>
+57 -58
View File
@@ -2,18 +2,16 @@
0xpaste.i2p,oyfcxkrmrnaplu24aobv7s36hm3vyxszlbees4hl6kpk6izwa5da
111.i2p,s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
333.i2p,ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza
AAAAAAAALIVETALKZZZZZZZZ09ALLARXMETAROOTSZNZARXPOSTMETASYMBOL.i2p,seqqbywuvscfpvi3pjdvi646hckwojenfqux76utwac2ltd766cq
CrustyIRC.i2p,4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
aaoth.i2p,aaoth5tidbhizgerysxlfrqmg5t7jzb76zt6lattwjj3up524qwa
abdlandrubbernetwork.i2p,asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca
acetone.i2p,tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a
agentoocat.i2p,voanmdeayaccgaxumtehvxxiv4sdscsixoxsqmhh7nfwhusrvfaa
algorithm.i2p,algout6clo74ywqtjyemehnf4bzhegpju5yvi6zdcfszso7iirka
aliensarehere.i2p,6t3mm7mkmjcepgwbthqvrh3kjfsipqdwqurcptwruyy73enqkawa
alphabay.i2p,tnaefzkcnhryeusi7hdpqujqiqmnbtah3dmjcg3gvezohunjuxbq
amogus.i2p,udcjqqoo7mc54ephxnhzaxdwtqxsgxjzvh4wr4boope6vyr4mrhq
anilibria.i2p,dak33oupjdimfhdmgrvfoclrbln5xlrvzp5ec4zvqlxq42clai3a
animal.i2p,5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla
anongw.i2p,owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq
anonyradio.i2p,cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq
anothermusic.i2p,p5mhrtnjfyonumqjzkzxakxais4fjtjgappvoioztqehaii4smpq
apophis.i2p,aybax36xssplylkueyy3szi3n2spd7mgxcmzbawapg3vxznwlkda
@@ -23,14 +21,14 @@ arav.i2p,t42fkp6zp5dfqywantq3zp427ig3q2onrmfv246tyaztpg4ckb5a
archaicbinarybbs.i2p,t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa
archiv.tutorials.i2p,lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq
archlinux.i2p,5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa
atetsu.i2p,pcr6k5krxwcvmessygjmfsbxgnyju6ipq5236ki55n2i5u4uylpq
azathabar.i2p,v35rwae5zb6fcgd7phzkireghtuen43umi7l5yvahm7ezkqg5uwq
bandura-yacy.i2p,e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq
bandura.i2p,n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a
banka.i2p,vuo5wavhhstnv5gehgmvhjy2jhpm3mdlcvtovfqunfzv5ngug5cq
bellingcat.i2p,nk6hd2mzzoieui22xzcdiz7i2irp7gel3qscwanuqzstkdxqxp3a
bentasker.i2p,gdncgijky3xvocpkq6xqk5uda4vsnvzuk7ke7jrvxnvyjwkq35iq
bible4u.i2p,xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq
bitchan.i2p,waycuw2c27ruakfblkf5tcegwmt3ot445dlfoypil6bzmm4yxg7a
blackexchange.i2p,ztgr5kghkyn43fhhkuycroxgfti6cojo3vg4wdd3usqonyvrla5q
blackgnu.i2p,hskxmtmwqnmq7pnxzntlwt36ew4nuqzmwhzbqjo233ncfoaj7mpa
blawg.i2p,uq5hbw7bplczde3pbugbxnvtqbjjdba6wfggpvbmaghuwoulputq
blog.raccoondad.i2p,ouc5i7xknchig3qdtkoydoeg2oqe354roxkjrrwzuzjcqr4xpvna
@@ -46,6 +44,10 @@ brick.i2p,lfeip77mf2j75izalrenv2aft5h3mfwauqqu3nqdmoq5ldwwsvga
bridges.torproject.i2p,2tiwhibsjvys63t43xncar6y52dy3dpct6edglenhzlalmyirb2a
bublik.i2p,npx6e6trk37ovoxzk3j3yoh5huenh24avbmsgeroiejkuzb2vo6q
bugfuzz.i2p,ubszn4gsf22vga67rvzzlg4qj2bfcq6o52fmxz46xruawqm6z7rq
bunkerfiles.i2p,lyrhscn2hfe6mjn7jo3titioitfzcy7x23hhkksydin6ildsgxiq
bunkerirc.i2p,mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq
bunkertreffinfo.i2p,ow4q3pdfdwofiqb4btopg5ou734w32k3z4hoiinsezg5zkzdlq6a
bytepay.i2p,7amc4ztwkzu3cgsaaaw3223ohuihn5hlsqc6gpf2rxdyptdkyugq
ca.i2pd.i2p,u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba
cake.i2p,hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq
calculator.i2p,itj23yb325dma24i4qpnhuwrz26hzpps6izkaf3mowavtvoznnva
@@ -55,21 +57,20 @@ cbs.i2p,u3lp7wazvq6opodzwjg5sc5w5kwxehmxd4wcdpt4s4j2k4dx4apq
chaox.i2p,6bcqgkedaq2krrhvidjlmdsoltmzuwaqtrafycfzbc56h5swumoq
cheapeth.i2p,x6pq4h33wu6txj6vvpgywrgew2y6cwzs5l63w726paqsvogeqdra
chmok.i2p,w7eqh6nndwk4yr5vxtbnvizgsg776vamwingijetnnqojrzjxm3q
ci.idk.i2p,antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq
chungus.i2p,ot7kljg7js4iedtsxl7es4wnynvxxyyaravier2dqkxmr7wsdzxa
cipherlist.i2p,gbm4kiotqjqmklwsp3qibdtn7mhatjsyeebbb5zxwjlp6w22fuga
citrus.i2p,citrusogkieyk3hleilk5scb5a64jdzoogi5wjv35klrvmqsh5ma
cloaca.i2p,pnsyl5plmmwuqfvpg36cbvvhe6mpoy2j5zzemfb5sfbpvklyozta
closedgl.i2p,5q5kqrnb2mji5lzfjj2wwdrpp4veg72jw53i3tvxb4qb5umawvha
closedshop.i2p,6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq
cobalt.idk.i2p,m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q
co.i2p,3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q
coffeejazz.i2p,mrt55kugqimzxeittpwwjwznejs3b3zxcfht3hp6dlujetyqh5ua
coldhell.i2p,z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja
community.i2p,64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa
community.torproject.i2p,wmw22z5c24b35hlepzc2g6k3cpcg44rcg46qdwfo5heiplv7m4ca
contact.i2p,rn5hqxierph4eegft3hiiqkgn2zyyfgj2c6pq75bkahl3pu5shvq
costeira.i2p,abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa
cunnyjihad.i2p,axdboajwlxlolrekv2wqlennbxuaiqib5oy7nmax6fcmehlaf4da
cyberchef.i2p,5k22kdukxkobertlyheal5aro32gls6nhgktneq3mtrracubt2bq
cyberia.i2p,3jrfzgnetbjwnyrua5jpyeqk7gb6dgfw3hu5q6lyggnwqhrury5q
darknetbible.i2p,lcaocuhvocje2gociyyuiip5sxhbgmkvaicbm6g6axtflf5wc6pa
darknetdaily.i2p,gehxh3zlns3ezyuc35bszc42hdr4g5uzasexzyrqfxwcwkeiulia
darknethub.i2p,tnh5bp4si7x47vhwk6njtimbbk77gai3abkfh2gz2dhml46uu3uq
darkrealm.i2p,gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq
@@ -77,15 +78,17 @@ darktech.i2p,nlkpudgmmgsdiemnbehq5llymdmxp6tn4rzjuse7nhvavr2kgkga
dashninja.i2p,dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma
datagrip.i2p,ajreyxslv6lijap2hykp3uvnnsca6fyvax76u2w6n3vexngkif4a
dcherukhin.i2p,qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a
ddosecrets.i2p,vyhw7t7fbj7nghx3oe4y5komczeb5egnhuvlslpkqupaymnhtlka
deavmi.i2p,fh5r3hlkkwh7udtjeqmekmq4qd62jnjqmnqob5hm3ndiuo6lauza
deepwebradio.i2p,2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la
det.i2p,y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q
diasporg.i2p,edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua
dickinass.i2p,5x55ucmwxf2fvrcboapylnrcwdvunlokq5c7mnofno3bkrlqltza
diffyq.i2p,hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq
digitalsr.i2p,ldavoapfhoqpxvihdsdjjo3phlt5ujkgkzigzbesab3g42rwvbpq
discuss.i2p,wrnowoalzz5mquzaygmcrm4feuqco5gsxyn42fizbqjaprtdx5gq
dist.torproject.i2p,pbhgoronppg7tq3dssnwmhzkbrscbvtmy3d5pmar5hyhnqwjj46q
diva.i2p,auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka
dnl.i2p,4pjdhyaot4kktjathgjmom4ykfccezyezasbtvgdtmar2b76cpqa
dns.acetone.i2p,dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq
donate.torproject.i2p,crxdz4n5viyy46upbd4amlzxcinkea7hwj3mkiudrw3nkpnfv42q
donotafraid.i2p,w6jq5xsixmolxvh5xtxaqolary2nmx5n4orc5bilc2j7ejcytgfa
@@ -98,41 +101,34 @@ ebooks.i2p,bvpy6xf6ivyws6mshhqmdmr36pruh2hvoceznzeag52mpu647nzq
ebuild.agentoocat.i2p,lu56romn7lp6ggjtofbwwsaee6kcfonci2ezi5jb5nyo3vdo7vkq
echo.idk.i2p,63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq
eddysblog.i2p,ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq
ei2.i2p,y4hhbqzpjdcsgvz5dsgaytttxygos6h2qt66wbbiuvcpcekdmmoq
elefteria.i2p,f5s6jvekhmq7aj77xmgm7jwnw2f75ci275togqya76urm745zpdq
eleven.i2p,n2er74vsv7szwvsbsukd2lwhz5epedws7eqwahsmxy65agvjizzq
elgoog.i2p,z6hrgkg2ajmuzlrddjlffrgctx7x7fkipm6c4hdzmohyn5wkr4ya
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
forbiddenhistory.i2p,nlduiogwtutni5nwf5kbuekrqf3ymqmkor3hughjkckz7tvruhva
foto18+common.i2p,bwe4hnzsvnx73aye36hymhhqzi2dbbrgf4rbtqh2e2x3q3r67nfq
fourth.i2p,2cq65hjlt7nnl7mctthj7oejlgep7nh7gmqc6bnbflxw2ti4bxxa
freefallheavens.i2p,7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka
freegram.i2p,euatsdg24n3j52gd6ptc6gd7hhynl2edpshqyzbehmimpvubt4wa
freehaven.i2p,y4giqqrbcb4xit5gp4y6njypupfklfdr74lfi424seenf7usjvza
freifunkmobi.bandura.i2p,5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea
frontlinedefenders.i2p,pshxfoeefj67oj4jwjh3cqiztmrgcpsbuttclnc6fiwvv42p6inq
fs.i2p,ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q
fuck-rkn.i2p,qmlmnhr3ul2lmuu4fjf43kmk6hf3dzsuxv5xu77vwys36xwuu4sa
fxruby.i2p,lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq
galacticreststop.i2p,uln6c2abwfzneakdz7dkfmdifwrjr3r53jvkmq6mxrjt2vflvbrq
gauteng.i2p,756vri7fovo2rtvynjy5yi3cbkxkap7oh7aggiz6di3s2hagdkwq
gedanken.i2p,kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a
geekcode.i2p,hzmyzxa6jzag67zcqxhicydusdev77byf2qoyxjxhsrtkce4qiqa
gfap.i2p,yasbny2ndcpofprdbtv7dxdtshbebyydjv5zlnwy54gii6xnlmqa
ginnegappen.i2p,kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja
git.agentoocat.i2p,5ihrbnmcoewaax5kxsghnmxh6p6srufhmo5pqkybdwuz4yj7efja
git.apophis.i2p,apep7dtwnuom6b7li6jirhrsygxgcdqb5svqpq6mh2rpindrzp2a
@@ -142,6 +138,7 @@ git.i2p,giteayof3hpwkfnwnryy6l4qhq3cwdzqlr72jokzbkc6ol43mypa
git.idk.i2p,7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a
git.qorg11.i2p,jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq
git.repo.i2p,vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq
git.varikvalefor.i2p,6sqxtpnpqqnlqbdxu7dadmorrffnpe3evbz5zye4y5kvljkzkbra
gitssh.idk.i2p,g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka
glue.idk.i2p,ykbx7chmkivx3idmxd3lu2jc5w4wtlps4r3md57wszhk5w7jykyq
gostcoin.i2p,4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq
@@ -152,24 +149,21 @@ hagen.i2p,e2t6rqd2ysbvs53t5nnaf7drllkgk6kfriq3lfuz6mip6xfg644q
harbour.i2p,zohxpycufzcslwb2dgdkfo75flahkl2q7n57ciqjooqia75ybada
hardenedbsd.i2p,6ebmdsir52bi3q4wfwug7ylouoq6gdafl3wyy6ccfmpffijhtoca
heaven.i2p,y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq
hex.i2p,sw7m3pxa4d3niun7tz4keq2kwpffhpu6b4zcdeupjem2y2tmycqa
hiddenbooru.i2p,zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q
hiddenchan.i2p,6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa
hiddenwiki.i2p,2iz3nkopz6fxbzlcjq3ofligi7mwdseuj4ndzqljogyvsggh6dvq
hisdarkmaterials.i2p,qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq
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
@@ -186,19 +180,20 @@ i2search.i2p,cpgupqyhxamjfgdd3qk5ux673qomu3o5kqszvq6fwuigzifkxzta
ibft.i2p,ds36spqcf7dnj46in5vfnbbwcbjpslo6aafkdrkc47a2oq3zvtta
identiguy.i2p,3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva
idk.i2p,b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq
ilcosmista.i2p,6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q
ilita.i2p,isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba
in.i2p,r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq
infocon.i2p,ic7rentjh6ilzz6p5kveiuyzov534ksfcexmpeniyallzf5in67a
infoserver.i2p,jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q
infox.i2p,qoz4bwrtnicqyxemrxubdc65uojrqn2iem6v55b6xmxzdmfzcvlq
inr.i2p,joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq
insecurities.i2p,4uggkxbumfoufekfu7scfx4vkqfoqslv4fsog7kgwjcat2yqzb2q
ioannism.i2p,g2246vc2tq64rmomwe47v3jnbpz3b3ec2wrrhadukj7lxmwd5aoa
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.nerds.i2p,nlqhsdd5a7hanjea33mwizg5ixh3xcv5dczufpf3qcfpo6tx4esa
irc.postman.i2p,hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq
irc.r4sas.i2p,hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la
@@ -206,6 +201,8 @@ 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
jbo.varikvalefor.i2p,3flbkdhahkgq47s7vytubh3v4vk3lyqgwwh6dd2k5szqlrivdmta
@@ -213,7 +210,6 @@ jdj.i2p,mqxhou4icts5tmoq7ndz56sb2ox4s2atzm2urmyn2ndrj2dzzguq
jimkiebs.i2p,epqxjestvatyv2ala7iqbm45elnecqecz2zmpoklzvekwjapu45q
k1773r.i2p,zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq
karamba.i2p,g2lizyuyzms7m6gv24pzege5zapbinxfd2dzbaha6k246pl2xu3q
keep.i2p,giaufpixdvnhabu25srbyttmskz3wmhsfyf7vsbkgfrj5el4sn2a
kelvinchan.i2p,6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma
keys.echelon.i2p,mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva
kill-9.i2p,3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q
@@ -222,25 +218,25 @@ kkk.i2p,kukluxklanib666d73z5fyeyb6vnystmvvreaodhjf73rhl4wxva
knijka.i2p,knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa
kohlchan.i2p,kohlchanvn6vtsujobyw4pt5naaszmxqutd5hsdatmxfe2qaqhya
korol4ik.i2p,mr3z5lggdppc3yw2r2egstpg33ga2wfocmozac6kjmhhfk3asm2q
kuchka.i2p,nzmvfaztssds5yaatmmnk2jdghfxizvr6lctmljvxqehnwsfsubq
kurator.i2p,sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q
kycklingar.i2p,gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva
lbt.i2p,5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq
ledechaine.i2p,7s4vtwkvxvmigj3r4zrc7s5ajdeqtris4qnj3n35cuuvuzkpgqsq
legalcases.i2p,tms2ibdkp67ddj5ez6l4zwvw33jdpz5tmavv3kpjdcpavfh7np4q
legwork.i2p,cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a
lenczewski.i2p,7uypwo47x4vnryoz25vwisu5jpyhz7pcdvnfzvopww3wxc7wiiia
libreddit.i2p,libr7vbp7i3lsvqwy5aqgql44uxaufawi5yrloh3x7sezubsoaba
libremarkets.i2p,3jknyeprdyirtzhc5ysh7qma4bgswazxgeylfxjtrx2xxtycq2lq
limak.i2p,jzoxeuuqt6wo55pvt4uh7o5i47oyadrvhyjli4hidqldhihu6lna
linuxfarm.i2p,br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q
lnxcloud.i2p,wryxsgqp3xl7fuohijmxlugrndtp2vixqlt2obpgriwt3fpdjn6q
lockdown.bnet.i2p,vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
lockdown.i2p,vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
lodikon.i2p,u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a
lolicat.i2p,2mvlbpgzlawdxqv3zlcgcje475kv35ow2itpztjpdqegbtjpvbda
lolicatgirls.i2p,pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra
longseason.i2p,ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da
lucas.i2p,hcb6j5indzeqfyerq4igx45xgruijbs433mh22ye4osoxkxhumwq
lunach.i2p,m27cpx55hqhcfjz4u62tiynjtzqdw4s3kanxdgluuthnndiquoeq
madaidans-insecurities.i2p,4uggkxbumfoufekfu7scfx4vkqfoqslv4fsog7kgwjcat2yqzb2q
mail.i2p,mail4okikc3tknhn2tfyqzq7mxgzltqg2tw5v5frtzkcsm45zdra
major.acetone.i2p,majorivqe4wud5ksadgfycdkgqsesqbbnw4hpgcqfixy4sm77f4q
major.i2p,majorwsiehucyqfqbw3g2on3xqq2pwrwdd6hhyludqqr6ct7xdoa
@@ -251,7 +247,7 @@ mattermost.i2p,x5oovnhnuli5fnwtgkbd5z5jvrvdvprqyuofywx6uoxkk4bie6ya
mayvaneday.i2p,zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa
maza.i2p,wiigkmy5je5ox4byjt7z7fh4btojbixbmfv4chnzqoovmgnvdpoa
mdleom.i2p,ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa
meduza.i2p,qlxgwqeyhdltlx66l6gcmnlacwkoex5dtcmlvagarvof2aaljpxq
metager.i2p,4zdcetlcp3tdg5h23gd3aeyzbvodepid7a6mb3w4qvxkdnm2by6q
metrics.i2p,z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq
mhatta.i2p,o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq
minecraft.reloaded.i2p,qs5ihihltxhhfi6wesihgbvoaurqxgdpxgmwnmsk5d5beabtvmvq
@@ -260,15 +256,16 @@ mk16de.bandura.i2p,rrllz7nkoeaydqzc5tqdexbfpkvensi26nqg3ly3cxrm5qt6m5sq
moneroauth.i2p,kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa
moneroexplorer.i2p,je4vbduigce7pgjivvo26d4abn3u5mfsos5zemp3a75xzcv7nm4q
monerujo.i2p,puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq
mooks.i2p,6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq
mosfet.i2p,s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q
mtn.i2p-projekt.i2p,f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa
mtproxy.ilita.i2p,vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q
mumble.acetone.i2p,plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa
muwire.i2p,c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa
nebula.hutor.i2p,575g5k3loi72jyq6fni6w3cdp2uoj2g63qowqjbnylbpc6evxpfa
nekit.i2p,axis6zcqacv7le2ms5xqaerecuk3jyrijifrstvxl3or5g5n4ova
nekofiles.i2p,rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
nerds.i2p,5wpwlbka4wj74rrnwbieopppgtivbqxljznl3bs542mxtvjz7ffq
netbsd.i2p,jjz5ajknu5rku4p6xb6i5xwjnp3nd6c3jwi2qnzbpaodyf7g2lja
nethack.idk.i2p,zcojbufszefu5bfht5cem3zlhfvv5y3jzpzbaccu3ehje4d7pb2a
news-i2pn.i2p,wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca
newsxml.idk.i2p,dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka
@@ -276,6 +273,7 @@ nexus.i2p,6uz2ihv4avlfhui5eyrisw7yx2t5mclxyl6blwjgw7zc5q4j3isa
nitter.skank.i2p,l2aoqvwkq2prrv53cbk4k2ilxw5s2fc7eo2rjunnixp2hrv3iwda
nntp.txtcon.i2p,nntpsqgdoky2fuctc2hc6vuls2b4okxpkocic2eo66uup3dtaq7q
notbob.i2p,nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a
notochina.i2p,h3xsjhfyf4wah4sou3gepzibetdntrmiax3zl3x7ozyjv5krakaa
novabbs.i2p,bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola
nsa.i2p,nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga
nullchan.i2p,nullz2mkp7znirlcersxpk7qmkmgcc6u3yhe462p2qkpxsdb3mja
@@ -283,24 +281,24 @@ nvspc.i2p,anlncoi2fzbsadbujidqmtji7hshfw3nrkqvbgdleepbxx3d5xra
obmen.i2p,vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa
ol.i2p,bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq
omitracker.i2p,a5ruhsktpdhfk5w46i6yf6oqovgdlyzty7ku6t5yrrpf4qedznjq
openbsd.i2p,ahwlj76krc5do77pibighi2frqmfccpezyiqfmiernvivwomgvuq
opentracker.dg2.i2p,w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa
opentracker.r4sas.i2p,punzipidirfqspstvzpj6gb4tkuykqp6quurj6e23bgxcxhdoe7q
opentracker.skank.i2p,by7luzwhx733fhc5ug2o75dcaunblq2ztlshzd7qvptaoa73nqua
outproxy-tor.meeh.i2p,77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq
outproxy.bandura.i2p,smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q
outproxy.purokishi.i2p,nieasaidj7wy5nammqf4f7zzcdafi4apygwn5qwscpn4pq34hqia
p2p-node.i2p,e7uvwnpkzbn5zdwr76ujlhym4lk5pfkqhvfwivt3mszx7l4lpj7q
packages.i2p,2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja
pagwin.i2p,qggplwxvsvctsdzgld2shfyjlokfoxur3pkfapygs26i4hwawfga
palebluedot.i2p,earth35u3ezuvyxzlsokx374rp27zeu2mv3j6plmmdhsm55fbzaq
panzerradio.i2p,rawdhtmxzynf5mhrpyhnbjqqxswidr6gvvcbbt4hbpjuv5jebw7q
password.i2p,knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa
paste.idk.i2p,qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva
paste.r4sas.i2p,csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa
pehotin.i2p,e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa
pharos.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
pharoz.i2p,vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
photosarchive.bentasker.i2p,w4lnfcg2chbkwigogba7q3o5pgtq2baip7z3z4afaj65axhyc5ca
phreeroma.i2p,44fu2fhq6q36re2xqnkuievdfsroi5xchgbowkqib6ekak3ynm6q
piradio.i2p,m2tsjo2sxabwimkeffsy2mlvtyebnzs6qndm5zpuw6mpwlja2ewa
pirates.i2p,iygdi3krhapgjmrehupbj6mum6q3qbdyudjo66chmwinhrgrwivq
pizda666.i2p,bczoowsc6ik7a4mya45qnlq5n6c6llpd5ni3u67r4r4drgohyira
pizdabol.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
planet.i2p,pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq
@@ -312,10 +310,10 @@ pomoyka.i2p,omt56v4jxa4hurbwk44vqbbcwn3eavuynyc24c25cy7grucjh24q
pool.gostcoin.i2p,m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa
pop.postman.i2p,i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq
porest.i2p,46l7beij4rerlbuj7xmcngarlkhlpgaztywrleiwagjuiipcebbq
pravtor.i2p,2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq
privacy-handbuch.i2p,3cccw3cxxghkalgichofulid36ekwplv3stubvfot522mwxcnu5q
privatebin.i2p,e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a
programthink.i2p,programygfltn24q6foacm5gbuo3z2geub2k2k366llx3bph4ula
project-future.i2p,ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta
proof-of-loss.i2p,ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a
prophetgram.i2p,cufuwm75gjpt3svl4wjmo6r4zjv6eqyjdpiuqfckgb5aqqdbgyvq
psv.i2p,pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a
@@ -323,11 +321,12 @@ psy.i2p,s3elzoj3wo6v6wqu5ehd56vevpz2vrhhjc5m6mxoazicrl43y62q
psychonaut.i2p,laf5nvzn4wz7ndgtdysmhvebpyjo3fkth7i4z4c2kp7su3wi6e2a
psyco.i2p,eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q
pubsub.i2p,kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa
pull.git.repo.i2p,3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q
purokishi.i2p,ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca
purplechan.i2p,tyiwxpgs7syjvz3cha3uckaxgondtiktlsvriebyy4qmzgbaj3gq
push.git.repo.i2p,jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a
pvsur.i2p,pvsurxi2hz2n45kfrj5b3ny6ko4ipj2u2piftjen44npkpnbwh6q
qorg11.i2p,ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q
quest.idk.i2p,k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa
r4sas.i2p,2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq
raccoondad.i2p,utoagugf3imr6mpjsithhnpvvvyehsnebisovn6kqn4vma6va3ca
radio.arav.i2p,plkybcgxt4cdanot75cy3pbnqlbqcsrib2fmrpsnug4bqphqvfda
@@ -336,11 +335,13 @@ radio.nerds.i2p,tpbfxyluryodtfxdpwsfvw7fl35p5ezrjk3tlcv2atlmc4fl2ctq
radio.r4sas.i2p,cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla
radioliberty.i2p,libertyx5gywnmn4snrr2fborvugmthl2x5vf3rh43v3744kmpwa
radioplayer.i2p,5tmr7qghx5eecoyvi77rsy7fqxeoyqcdpvg5wasoitn6ywkyobbq
raklet.i2p,j3vnnihngp3ti2trktoxlyblltjn6gxscbmasb5zun5pdndkxkoq
ramble.i2p,smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq
ransack.i2p,mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq
realsite.i2p,ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta
rebel.i2p,nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq
recipebook.bentasker.i2p,ajagzagm5uyc2oac32ycx42znnatejliqorbk3y66xt25guxnh2q
reg.i2p,shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa
reichsmarket.i2p,2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq
reloaded.i2p,wxbh2yq5twqinsw3ztjogqovvdd6h6j5uxeg3lh53x4w7klzv3tq
repo.i2p,uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa
repo.i2pd.i2p,ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
@@ -352,6 +353,7 @@ rslight.i2p,bitag46q3465nylvzuikfwjcj7ewi4gjkjtvuxhn73f6vsxffyiq
rufurus.i2p,7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca
rus.azathabar.i2p,6gp6ykan6ovr7p6dln56msvmdk6nrtvzoypz5dbhkkt4bdnryjna
rutor.i2p,rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
ryona.i2p,mzt45ux3budteuxz2b4xkwnphgspgljuwp3rxm3d2yr2sij6wopq
s01.nullchan.i2p,mirrooeo34iokdgf3wno4ubx6x6uj7f2pqyjmmrvtg4m4parvguq
salama.i2p,4uoef63gv2sg6dtqmom5oypt6taypklekvlejfox56eiylprzrmq
samainu.i2p,zlwgylqmlx6wxwnxf3mx64jl6yp6wv4sjeiidqw7k3n2wh2m46pa
@@ -359,38 +361,39 @@ satoshivision.i2p,rn5c533w5baghskquu3gtqlehwjkstzzbk5chbc5qhivsz3a3nqq
scamdemia.i2p,fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq
scanner.linuxfarm.i2p,kojzsg33v2zxwqp3twpqzfvflaeoxgzxrl3douf2x7xv27ggfnaa
secret-site.i2p,p6hbhjgdv2e6gyydrqh2ztl6onxnyilmj4ts7d7aj3uqssr7vvfq
securityinabox.i2p,np3agu3ekd3isrzqzvsw4llwlr3hg5xbw7n7a23n2zfvhhm4e7iq
serien.i2p,3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda
seven.i2p,anqf44jmf7kby2qcvcx7gug6nuyansdu4msdbnp5kojom27rrm7a
shadowwiki.i2p,63gxkfc4hlcbxrdoepw2i2hyxai5qkxmi636ag3y7sf5tq3imoya
share-les-miquelots.i2p,uxwha4jswnt6jrznj7yhfwldfilvyasnjruimmbylbvq5qykpbpq
sharefile.i2p,o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta
shoieq3.i2p,3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q
shota.i2p,75xxnc5hkeg7a3z5re4cpybbxt7te3p2krgrrgoka4hib2nr7k4q
silkr0adrel0aded.i2p,rdqt2xxpsc5tzj7gjvcrpi7jea5gtbetgx7w2npobveg5teatdvq
silkroadreloaded.i2p,hyn3mwmyeovcn2paujxur2eury2ufqpoahvbbqshfoggljn25tra
skank.i2p,qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q
smtp.postman.i2p,3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q
snapshots.i2p,4pxaygw4akqf4ej4p32vykw3ejml7houemmdgecnlvvq2yxuru4q
snippets.bentasker.i2p,vgduvgxudaceslvwlvtda6b4csobvczygcqpklm3yeuke2zgvcaa
speed-test.i2p,7lk5mgyi2knhqjjwjeiiuwlrn2rs2s577e7jh7z5rmbe2s6qkjpq
spirech.i2p,labhopl3kd3eo7cj7kqa6nkwpczc2qj52i37jky77ugqazy7dmna
spoika.i2p,u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq
sportloto.i2p,sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq
spyware.i2p,36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq
ssh-vimarsha.i2p,ano6eegsaozt5nkbo4muy2o3uf3mfxk4qnlps23dtge5efgkjssa
stablo.i2p,d2nxpe3p6yeaajchgfqwflnaateq3bueqrmx6higesmbu6vqlhga
srr.i2p,t6vdyn5sbtorn3bp6i7ndnv4lmxhk4qnqmyqlaxykdhcwatchlza
ssh.vimarsha.i2p,zttfrujqde5ddndps4stdspvro3khawdhcdgf73pae4i7dnvv4ea
stats.i2p,kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq
status.str4d.i2p,ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q
str4d.i2p,wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa
streams.darkrealm.i2p,ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq
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
@@ -398,48 +401,46 @@ tesla.i2p,em2x6bwsbelqfvlgypcywwoov2rib7mvxiy775dmpfs76m4zcdtq
testbox.i2p,voa7ebdulhpcsupz4zqeyikdjztyhiutgvyri4qxqapistjwptbq
testmk16de.bandura.i2p,gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra
testshark.i2p,u64ropzplqkncdmi4wcknqehjqudxb6elyut2k44ocvgx7ilpgia
thealiensarehere.i2p,6t3mm7mkmjcepgwbthqvrh3kjfsipqdwqurcptwruyy73enqkawa
theyosh.i2p,5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita
thornworld.i2p,vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva
ti2.i2p,6r77rkt53xcjdpaaihttqjmzigvapmdczkekpogf5epdtcvrhgca
tictactoe.i2p,cbr6sya637smfifq2hxj3kzqw5yv7aws2uknmi6ln45r65xej4aa
tmpsend.i2p,r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq
tomasgl.i2p,tyiu7xok7hvzymxtgg62rjz7mvzr3bryq4i7ii7gudncogn2lpfa
torch.i2p,vdpmmcq4ysca5rdczr5lqohjtaf5togdy5itoos54s6nn6xqox3a
torproject.i2p,torprojaxvxevo4c5qvor3ywgasxkubs5ukazrpq3qcxed6lgbrq
tosios.idk.i2p,4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a
torque.i2p,hc3mefp6cq2btwmmjl76atgtftzswu774dyv4a3qkl34wn4g6vta
trac.i2p2.i2p,i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa
tracker2.postman.i2p,6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea
traditio.i2p,wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq
translate.idk.i2p,g2l2zr4moqsk2bec346i5tfd2o22cozm5b2k4ifdhbcayazoz2ea
ts.i2p,nebcjgfx3f7q4wzihqmguwcdeopaf7f6wyk2dojw4bcuku472zxq
tube.i2p,vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq
tumbach.i2p,u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq
tutorials.i2p,zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja
tv.i2p,znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q
txtcon.i2p,txtcons5lrayl7bq7zsk2mt24clocassid3kh2rvyd3rd2xeklpq
tymcz.i2p,pyog2x6v3eyna5pdr765osut52tpbmaheyi5atbqfaixmcq4dp7q
ukrainews.i2p,2bocbwrmakg252kicblp5i42feao7qpcw3xppms2i5oevkgelpsa
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
vps.webhosting.i2p,kfqflh2y36jzp26vloaptqpgwtvw4qtz232wv53xxbggkydhpkaq
walker.i2p,5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
wbnet.i2p,2deeocx7jmrbmjxcpkxecw7yy2z7ybzwz5i6mg3ska3p3d2dx45q
web.telegram.i2p,re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a
webcam.i2p,fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a
webhosting.i2p,hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq
webirc.coldhell.i2p,k2d6bius63w3g35j32dn66fssqwbnyvegx6w6pl5mdeojpp4rjba
wiki.i2p-projekt.i2p,b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa
wiki.ilita.i2p,r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a
wikiless.i2p,x33lx4h6d7h6xs4eiqwhvaxn3ea5gn2ifmu3jobnvuvn4k4aej7a
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
@@ -450,17 +451,15 @@ xmpp.pubsub.i2p,yxbp3sn2x5t6k7hcxsg4njmaxjomr2wvh4xeldxjlij3ms3sikgq
xmpp.reloaded.i2p,hioylmlm3lf3qgp2ncmym3igx6eyytlwioeq2fip4cwpzjtyxfuq
xmpp.rpi.i2p,3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca
xmpp.xadmpp.i2p,s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
xmpp2.reloaded.i2p,ufeplugqot5e22kottvejlw7yq24kynw5v5faulehc6n2zs62ura
xmrnode.i2p,moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq
xmrradio.i2p,olwxvhwaq422rcrlmvh6wgrdczyfyeag645du4cwncutqblkfmaq
xn--80ahmijpip2p.i2p,assist2a3jsikp7ufmzpa56mlflhi5kmoack5dm6ua5x2hbgckua
xn--80atndcgadjdf7duc9a.i2p,dn46ftj3cha4q7g2rreokiflxb4xksevp53hiwctfyztmcsb3d5q
xn--hallchen-q4a.i2p,h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq
xn--n3h.i2p,6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq
xn--r2beng6b4e.i2p,ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
xsden.i2p,4dofwhzlkz3k3sedwzs2sx2fudq3jfvaygffc6kp6hsawmfmz6qa
xx.i2p,a7hrmb4kbftyk4ovr2la6azi7vjfqwt2zlckos4svoaclqu52j6a
yacy.idk.i2p,7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq
yat.i2p,zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq
yellowonion.i2p,7l4kgsyatdmntck22i27oui3llftjim33ydav7kdew6ewfqvjzfa
yggdrasil.acetone.i2p,tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq
yggdrasil.i2p,7hhvvtephitji3ibz4vhbapj4rikoppd5324yttp6k35gkqgri3q
1 0xff.i2p apo53zid3xe7rewxjw7whdym2rmyowsj7jeoiwrl5zlmf7oqrxwq
2 0xpaste.i2p oyfcxkrmrnaplu24aobv7s36hm3vyxszlbees4hl6kpk6izwa5da
3 111.i2p s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
4 333.i2p ctvfe2fimcsdfxmzmd42brnbf7ceenwrbroyjx3wzah5eudjyyza
AAAAAAAALIVETALKZZZZZZZZ09ALLARXMETAROOTSZNZARXPOSTMETASYMBOL.i2p seqqbywuvscfpvi3pjdvi646hckwojenfqux76utwac2ltd766cq
5 CrustyIRC.i2p 4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
6 aaoth.i2p aaoth5tidbhizgerysxlfrqmg5t7jzb76zt6lattwjj3up524qwa
7 abdlandrubbernetwork.i2p asnpognglrcx34l5vywatfkoaashziedfylun4w6cf5wue5gujca
8 acetone.i2p tzwfy3dnqtm4wuofmcp3gcb5qjcytri635ei7kw7yrl6n3ul5n2a
9 agentoocat.i2p voanmdeayaccgaxumtehvxxiv4sdscsixoxsqmhh7nfwhusrvfaa
10 algorithm.i2p algout6clo74ywqtjyemehnf4bzhegpju5yvi6zdcfszso7iirka
11 aliensarehere.i2p 6t3mm7mkmjcepgwbthqvrh3kjfsipqdwqurcptwruyy73enqkawa
12 alphabay.i2p tnaefzkcnhryeusi7hdpqujqiqmnbtah3dmjcg3gvezohunjuxbq
13 amogus.i2p udcjqqoo7mc54ephxnhzaxdwtqxsgxjzvh4wr4boope6vyr4mrhq
anilibria.i2p dak33oupjdimfhdmgrvfoclrbln5xlrvzp5ec4zvqlxq42clai3a
14 animal.i2p 5iedafy32swqq4t2wcmjb4fvg3onscng7ct7wb237jkvrclaftla
anongw.i2p owrnciwubb3f3dctvlmnaknb6tjdxtlzvv7klocb45mmhievdjhq
15 anonyradio.i2p cbobsax3rhoyjbk7ii2nd2fnl5bxh3x7bbearokyxgvmudn7o5bq
16 anothermusic.i2p p5mhrtnjfyonumqjzkzxakxais4fjtjgappvoioztqehaii4smpq
17 apophis.i2p aybax36xssplylkueyy3szi3n2spd7mgxcmzbawapg3vxznwlkda
21 archaicbinarybbs.i2p t7o2tw36cffedgfr6kahewpkrntofnliuapji2e4rucl3os55epa
22 archiv.tutorials.i2p lldr2miowq6353fxy44pnxfk37d6yn2f6kaivzecbmvvnnf5exyq
23 archlinux.i2p 5ms4k3cn5dx53b46hqgwogigsjhtinuf4g6fdr6pplkldi5vjcxa
atetsu.i2p pcr6k5krxwcvmessygjmfsbxgnyju6ipq5236ki55n2i5u4uylpq
24 azathabar.i2p v35rwae5zb6fcgd7phzkireghtuen43umi7l5yvahm7ezkqg5uwq
25 bandura-yacy.i2p e4t4yer7o6dbttk4xmpsfd56vhuse5upksgjqejnrvrdz35ia2qq
26 bandura.i2p n6eqyu6glmtgt544ys43ggrozhpiw7biyrelrvmkmg7llfcjwm4a
27 banka.i2p bellingcat.i2p vuo5wavhhstnv5gehgmvhjy2jhpm3mdlcvtovfqunfzv5ngug5cq nk6hd2mzzoieui22xzcdiz7i2irp7gel3qscwanuqzstkdxqxp3a
28 bentasker.i2p gdncgijky3xvocpkq6xqk5uda4vsnvzuk7ke7jrvxnvyjwkq35iq
29 bible4u.i2p xs6lr2g5jiaajtb3nkno2zmy34eipitrggooxb7wtey7uko7bqmq
30 bitchan.i2p waycuw2c27ruakfblkf5tcegwmt3ot445dlfoypil6bzmm4yxg7a
31 blackexchange.i2p ztgr5kghkyn43fhhkuycroxgfti6cojo3vg4wdd3usqonyvrla5q
32 blackgnu.i2p hskxmtmwqnmq7pnxzntlwt36ew4nuqzmwhzbqjo233ncfoaj7mpa
33 blawg.i2p uq5hbw7bplczde3pbugbxnvtqbjjdba6wfggpvbmaghuwoulputq
34 blog.raccoondad.i2p ouc5i7xknchig3qdtkoydoeg2oqe354roxkjrrwzuzjcqr4xpvna
44 bridges.torproject.i2p 2tiwhibsjvys63t43xncar6y52dy3dpct6edglenhzlalmyirb2a
45 bublik.i2p npx6e6trk37ovoxzk3j3yoh5huenh24avbmsgeroiejkuzb2vo6q
46 bugfuzz.i2p ubszn4gsf22vga67rvzzlg4qj2bfcq6o52fmxz46xruawqm6z7rq
47 bunkerfiles.i2p lyrhscn2hfe6mjn7jo3titioitfzcy7x23hhkksydin6ildsgxiq
48 bunkerirc.i2p mdt7h4zsbwafsikg3r4iiqh5wriaisznjj5d3f3lyeahipudsxoq
49 bunkertreffinfo.i2p ow4q3pdfdwofiqb4btopg5ou734w32k3z4hoiinsezg5zkzdlq6a
50 bytepay.i2p 7amc4ztwkzu3cgsaaaw3223ohuihn5hlsqc6gpf2rxdyptdkyugq
51 ca.i2pd.i2p u5safmawcxj5vlrdtqrsqbsndkr5cfenpicgg5euu4xqm73yicba
52 cake.i2p hpdbe6o6qqqqvgygbcznssat46kybsm7rcauofqaoly4ajdi2jeq
53 calculator.i2p itj23yb325dma24i4qpnhuwrz26hzpps6izkaf3mowavtvoznnva
57 chaox.i2p 6bcqgkedaq2krrhvidjlmdsoltmzuwaqtrafycfzbc56h5swumoq
58 cheapeth.i2p x6pq4h33wu6txj6vvpgywrgew2y6cwzs5l63w726paqsvogeqdra
59 chmok.i2p w7eqh6nndwk4yr5vxtbnvizgsg776vamwingijetnnqojrzjxm3q
60 ci.idk.i2p chungus.i2p antkos5hjxraxduyewoo4qwwr6vyceiggd562nctvmtpnfjsuqlq ot7kljg7js4iedtsxl7es4wnynvxxyyaravier2dqkxmr7wsdzxa
61 cipherlist.i2p gbm4kiotqjqmklwsp3qibdtn7mhatjsyeebbb5zxwjlp6w22fuga
62 citrus.i2p citrusogkieyk3hleilk5scb5a64jdzoogi5wjv35klrvmqsh5ma
63 cloaca.i2p pnsyl5plmmwuqfvpg36cbvvhe6mpoy2j5zzemfb5sfbpvklyozta
64 closedgl.i2p co.i2p 5q5kqrnb2mji5lzfjj2wwdrpp4veg72jw53i3tvxb4qb5umawvha 3mvo5eifcwplcsoubtvqkzdahwo2sdhfygfdde7lj2glybk4q22q
65 closedshop.i2p coffeejazz.i2p 6fg67mbw2okopzyonsck4bsy3cy7l2fame56uiysr2cezhjhzdbq mrt55kugqimzxeittpwwjwznejs3b3zxcfht3hp6dlujetyqh5ua
cobalt.idk.i2p m63cbwomq4e4q6df3n6idnuveqa4yastxnls6kacseuutrp5um4q
66 coldhell.i2p z2kerfik5dzqd2kj74cuhhtptkrizsblc5nm6ke2gcnj5mnwgwja
67 community.i2p 64luakopnvffchxnibn3d2p7uqxixtyuallfqfgifkkcmfcrczxa
68 community.torproject.i2p wmw22z5c24b35hlepzc2g6k3cpcg44rcg46qdwfo5heiplv7m4ca
69 contact.i2p rn5hqxierph4eegft3hiiqkgn2zyyfgj2c6pq75bkahl3pu5shvq
70 costeira.i2p abhty5xlmnyab2kqdxcd56352kcescxoux3p6dbqdrghggyygnxa
cunnyjihad.i2p axdboajwlxlolrekv2wqlennbxuaiqib5oy7nmax6fcmehlaf4da
71 cyberchef.i2p 5k22kdukxkobertlyheal5aro32gls6nhgktneq3mtrracubt2bq
72 cyberia.i2p 3jrfzgnetbjwnyrua5jpyeqk7gb6dgfw3hu5q6lyggnwqhrury5q
73 darknetbible.i2p lcaocuhvocje2gociyyuiip5sxhbgmkvaicbm6g6axtflf5wc6pa
74 darknetdaily.i2p gehxh3zlns3ezyuc35bszc42hdr4g5uzasexzyrqfxwcwkeiulia
75 darknethub.i2p tnh5bp4si7x47vhwk6njtimbbk77gai3abkfh2gz2dhml46uu3uq
76 darkrealm.i2p gbh4eerxdsph7etxsxznfhvmuiz54trlkenakqep343u4xcoekzq
78 dashninja.i2p dzjzoefy7fx57h5xkdknikvfv3ckbxu2bx5wryn6taud343g2jma
79 datagrip.i2p ajreyxslv6lijap2hykp3uvnnsca6fyvax76u2w6n3vexngkif4a
80 dcherukhin.i2p qa4boq364ndjdgow4kadycr5vvch7hofzblcqangh3nobzvyew7a
81 ddosecrets.i2p vyhw7t7fbj7nghx3oe4y5komczeb5egnhuvlslpkqupaymnhtlka
82 deavmi.i2p fh5r3hlkkwh7udtjeqmekmq4qd62jnjqmnqob5hm3ndiuo6lauza
83 deepwebradio.i2p 2nait2gdeozkgf6gyhzjfij6mwldwkxxwcvtxobb4b5q5cvtm5la
84 det.i2p y6d4fs3rpqrctuv77ltfajf5m4tl4kzcu7rtwhxgiohylfxxow4q
85 diasporg.i2p edvccoobtjukjgw2os5eetywanbb2mpag5aknkrpia5qx2koksua
86 dickinass.i2p 5x55ucmwxf2fvrcboapylnrcwdvunlokq5c7mnofno3bkrlqltza
diffyq.i2p hkjvyuc3asswxa7uxyalrnpqab4lyvzriu2rsq6jbjc2kaoabghq
87 digitalsr.i2p ldavoapfhoqpxvihdsdjjo3phlt5ujkgkzigzbesab3g42rwvbpq
88 discuss.i2p wrnowoalzz5mquzaygmcrm4feuqco5gsxyn42fizbqjaprtdx5gq
89 dist.torproject.i2p pbhgoronppg7tq3dssnwmhzkbrscbvtmy3d5pmar5hyhnqwjj46q
90 diva.i2p auoqibfnyujhcht4v3nzahpqztwlyomesfywltuls5bqqi3nd3ka
91 dnl.i2p 4pjdhyaot4kktjathgjmom4ykfccezyezasbtvgdtmar2b76cpqa
92 dns.acetone.i2p dnsgzxkak4zlrrs5tfh42ob57iley4xrp7srrltn2j2yl2ynbiaq
93 donate.torproject.i2p crxdz4n5viyy46upbd4amlzxcinkea7hwj3mkiudrw3nkpnfv42q
94 donotafraid.i2p w6jq5xsixmolxvh5xtxaqolary2nmx5n4orc5bilc2j7ejcytgfa
101 ebuild.agentoocat.i2p lu56romn7lp6ggjtofbwwsaee6kcfonci2ezi5jb5nyo3vdo7vkq
102 echo.idk.i2p 63sgpiu6f33arldcxkbjsn3jgf6asyx3onjmz6j6gsk7hgbiehkq
103 eddysblog.i2p ieac3ub4g5sy3wuhsbqfembnpp7f3a37xgcx537ytzsmgfzexnbq
104 ei2.i2p elefteria.i2p y4hhbqzpjdcsgvz5dsgaytttxygos6h2qt66wbbiuvcpcekdmmoq f5s6jvekhmq7aj77xmgm7jwnw2f75ci275togqya76urm745zpdq
105 eleven.i2p n2er74vsv7szwvsbsukd2lwhz5epedws7eqwahsmxy65agvjizzq
106 elgoog.i2p z6hrgkg2ajmuzlrddjlffrgctx7x7fkipm6c4hdzmohyn5wkr4ya
107 elvn.i2p vwjtedtgyokakyxgfeoavg535bxe7ymdvfbdwsq4iqngljqtqi3a
envoicesalt.i2p nsamcq2zidlioxlfuinqzboblpvrnhkbdwavgsvzmt3n3mhuho4a
108 equwal.i2p j7zqkvkokxmpkbqrgrkkjym4j7kzuipko4qdujdjbxnrp3qj6ooa
erotic-snake-gallery.i2p wzgk77ifxl7kpgqxs4p2t6ujjyfpdvgjlqz3q3n4wfkdljfv3dya
109 esperanto.i2p 2yryi2eb72hnxavjpfot7paiminbzgv5w6fv4sl5wez55ventdeq
ethorn.i2p iuz4hj3bauo6avfs6esesmmh4sgrf7maqs5yve22ftyakx3fmrza
110 explorer.gostcoin.i2p ktoacmumifddtqdw6ewns3szxths2hq2fat2o7xnwq4y3auga3za
expmoneygame.i2p x47muddvawmtqwmmorhtq4r5hwyhl4coa3ud7ukuthleuowo2jfa
extinct.i2p atm7gdttp3ags6wmgb3hey5emhuqfojs5272kg7zvo46z5vfwraa
111 fabrice.i2p fabricexhumxqngfziy4xkao5m5ez27jpih4chtmigg46eu7rroa
112 false.i2p 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
113 fantasy-worlds.i2p 62a4xcyyhvfrcq2bkckb7ia37fmrssrgx467tlkxp32fjpq577wq
fiat.i2p ldnhzi7emxnibjz6g55k2nyywzmcufnst2jy67e75o6dlvtx7wia
114 fido.r4sas.i2p i522xmu63hfbaw2k54cthffcoqmeao6urjyq3jg4hddf6wf57p3q
115 files.arav.i2p gajftpr47ze6ao7e3q2tb5xmcqneyaczu4edzvwwg2qzmnernpka
116 fileshare.linuxfarm.i2p rrx4hxejr4pod3tqrkj5ckzuauwy2aqsfvpiac2tkebp2iuv5qla
117 fishsticks.i2p btjbfuh2wav3c7bkjqylgatbkvqaireemvsvxwetkrifuvfa35da
flibs.i2p ocdm33e3h5tdml3yyholj4objdwsrhlugfqjnqgdkslmgdzb6b3a
118 flibusta.i2p zmw2cyw2vj7f6obx3msmdvdepdhnw2ctc4okza2zjxlukkdfckhq
119 forbiddenhistory.i2p nlduiogwtutni5nwf5kbuekrqf3ymqmkor3hughjkckz7tvruhva
foto18+common.i2p bwe4hnzsvnx73aye36hymhhqzi2dbbrgf4rbtqh2e2x3q3r67nfq
120 fourth.i2p 2cq65hjlt7nnl7mctthj7oejlgep7nh7gmqc6bnbflxw2ti4bxxa
121 freefallheavens.i2p 7etudb75nhe6vxslitptjlwrnbybdshvzxnweuiepsxbbkkxy5ka
freegram.i2p euatsdg24n3j52gd6ptc6gd7hhynl2edpshqyzbehmimpvubt4wa
122 freehaven.i2p y4giqqrbcb4xit5gp4y6njypupfklfdr74lfi424seenf7usjvza
123 freifunkmobi.bandura.i2p 5shuxvx52e3qszylwn4w7qst4siap3latyap3ff7nfnpjgllkcea
124 frontlinedefenders.i2p pshxfoeefj67oj4jwjh3cqiztmrgcpsbuttclnc6fiwvv42p6inq
125 fs.i2p ah4r4vzunzfa67atljlbrdgtg3zak5esh7ablpm6xno6fhqij35q
126 fuck-rkn.i2p qmlmnhr3ul2lmuu4fjf43kmk6hf3dzsuxv5xu77vwys36xwuu4sa
127 fxruby.i2p lqhdnr2pvp2igu5e2cxichboqzcgypvrbooynzgkmoze3xae6qkq
128 galacticreststop.i2p uln6c2abwfzneakdz7dkfmdifwrjr3r53jvkmq6mxrjt2vflvbrq
gauteng.i2p 756vri7fovo2rtvynjy5yi3cbkxkap7oh7aggiz6di3s2hagdkwq
129 gedanken.i2p kw6isjbs66uf7576fbb3aniokxtrpqmbegf4tf3xskg2bmrjci7a
130 geekcode.i2p hzmyzxa6jzag67zcqxhicydusdev77byf2qoyxjxhsrtkce4qiqa
131 gfap.i2p yasbny2ndcpofprdbtv7dxdtshbebyydjv5zlnwy54gii6xnlmqa
132 ginnegappen.i2p kbhfkzx5jeqhfgss4xixnf4cb3jpuo432l3hxc32feelcmnr3yja
133 git.agentoocat.i2p 5ihrbnmcoewaax5kxsghnmxh6p6srufhmo5pqkybdwuz4yj7efja
134 git.apophis.i2p apep7dtwnuom6b7li6jirhrsygxgcdqb5svqpq6mh2rpindrzp2a
138 git.idk.i2p 7qeve4v2chmjdqlwpa3vl7aojf3nodbku7vepnjwrsxljzqipz6a
139 git.qorg11.i2p jf2mrxlbqsct67fces34x6kwbbnmlx6o7gd6g4knqk36soa6efqq
140 git.repo.i2p vsd2vtgtuua2vwqsal2mpmxm2b2cpn3qzmqjoeumrrw2p4aot7uq
141 git.varikvalefor.i2p 6sqxtpnpqqnlqbdxu7dadmorrffnpe3evbz5zye4y5kvljkzkbra
142 gitssh.idk.i2p g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka
143 glue.idk.i2p ykbx7chmkivx3idmxd3lu2jc5w4wtlps4r3md57wszhk5w7jykyq
144 gostcoin.i2p 4gzcllfxktrqzv3uys5k4vgkzbth4gqednwhfpt755yivm3davuq
149 harbour.i2p zohxpycufzcslwb2dgdkfo75flahkl2q7n57ciqjooqia75ybada
150 hardenedbsd.i2p 6ebmdsir52bi3q4wfwug7ylouoq6gdafl3wyy6ccfmpffijhtoca
151 heaven.i2p y6ejpmln3j2jvf4omb4ptyo2idognputhrccph74yn6eghkpxyhq
hex.i2p sw7m3pxa4d3niun7tz4keq2kwpffhpu6b4zcdeupjem2y2tmycqa
152 hiddenbooru.i2p zma5du344hy2ip5xcu6xmt4c7dgibnlv5jm4c2fre5nxv44sln3q
153 hiddenchan.i2p 6y4tltjdgqwfdcz6tqwc7dxhhuradop2vejatisu64nwjzh5tuwa
154 hiddenwiki.i2p 2iz3nkopz6fxbzlcjq3ofligi7mwdseuj4ndzqljogyvsggh6dvq
155 hisdarkmaterials.i2p qcf3vxllflqfsbvxjlypfxsx36g5srknxnhpyz3ph5bcxdjawraq
hive.i2p 2koqsqujgndkz3ozgrvx4txezvxpnm65orrr3c5itszy3vd46eea
156 hopjoy.i2p 3wifx34yzdnj5vw3zu3kmqyz57tvlypmdnnyalqjdcaqrege6bpa
157 hotline.i2p 6cczi27iuxkm3aivazaemzltdqgh42ljzurqp43uclbz2lid2uqq
158 hp-net.bandura.i2p z2ufexrgrxry37y4vs5hted35ygpleskfcs2enanl53hmlpzlqhq
159 hq.postman.i2p 7ewjvbcwgah57n64cwbsxqai7eutqofkesuxfsuhfheijivdjqra
160 http-false.telegram.i2p 77mpz4z6s4eenjexleclqb36uxvqjtztqikjfqa4sovojh6gwwha
161 hungryewok.i2p to3afquvmrmk4kvozisb562elb2hdka6hwk6oeud32m6h2qtkcqa
hutor.i2p vouttzj22msx7lcpgybfhbqoignrawsgo2sg7g7ml5kyuugbbkza
hype.i2p vytu5npewxcve3i2qhdqcb5wqmd6lrdmdfkaiv2kpx2lfm6sejkq
162 i2chan2.i2p rqd4efol6ooxukq2jj6toml2s7uutj3kbkl6k7kfm7vpmmt2k4fq
163 i2p-mirror.bandura.i2p aq7r54ebou47b533y5seiod7dc3aeycucevl2pqvphnjhjwblr6q
164 i2p-projekt.i2p udhdrtrcetjm5sxzskjyr5ztpeszydbh4dpl3pl4utgqqw2v4jna
165 i2pd.i2p 4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa
166 i2pdocs.str4d.i2p yfvbtrhjac3jutdsqzugog6mbz3jtyhpwovrt2mqc5mzv534y7cq
167 i2peek-a-boo.i2p qgv64klyy4tgk4ranaznet5sjgi7ccsrawtjx3j5tvekvvfl67aa
168 i2pforum.i2p tmipbl5d7ctnz3cib4yd2yivlrssrtpmuuzyqdpqkelzmnqllhda
169 i2pjump.i2p 2mwcgdjvfvd3xwumzqzqntual3l57h3zo7lwdmkjboeraudpkyka
180 ibft.i2p ds36spqcf7dnj46in5vfnbbwcbjpslo6aafkdrkc47a2oq3zvtta
181 identiguy.i2p 3mzmrus2oron5fxptw7hw2puho3bnqmw2hqy7nw64dsrrjwdilva
182 idk.i2p b2o47zwxqjbn7jj37yqkmvbmci7kqubwgxu3umqid7cexmc7xudq
183 ilcosmista.i2p 6u2rfuq3cyeb7ytjzjxgbfa73ipzpzen5wx3tihyast2f2oeo24q
184 ilita.i2p isxls447iuumsb35pq5r3di6xrxr2igugvshqwhi5hj5gvhwvqba
185 in.i2p r5vbv2akbp6txy5amkftia757klgdy44s6cglqhmstpg65xycyjq
186 infocon.i2p ic7rentjh6ilzz6p5kveiuyzov534ksfcexmpeniyallzf5in67a
187 infoserver.i2p jd3agbakybnhfvkeoxrx7t33iln6suzomv3kxkxf77j7rkonch6q
188 infox.i2p qoz4bwrtnicqyxemrxubdc65uojrqn2iem6v55b6xmxzdmfzcvlq
189 inr.i2p joajgazyztfssty4w2on5oaqksz6tqoxbduy553y34mf4byv6gpq
190 insecurities.i2p 4uggkxbumfoufekfu7scfx4vkqfoqslv4fsog7kgwjcat2yqzb2q
191 ioannism.i2p g2246vc2tq64rmomwe47v3jnbpz3b3ec2wrrhadukj7lxmwd5aoa
192 irc.acetone.i2p qyzbrdw26ejjdjzsrcmq5h3ggdzk6cq5xynrgee5t5q73gq545yq
193 irc.coldhell.i2p d4b3dcqt32yq55b6ct6f4rsib5svzgwkfz4klfczuz7e4p2v6rkq
194 irc.crustyirc.i2p 4ygmttynho5k32vfm64urriqx2vj3s6hkm52jwv2vlwrynu4z6iq
195 irc.echelon.i2p ez2czsvej5p3z5bquue5q3thujcodfze7ptybctqhnqc7hms5uzq
irc.hutor.i2p 3xx4cinvepbneik4efvpbgwtax7xudgdulffqvcvzo623maitu7q
196 irc.ilita.i2p 5xeoyfvtddmo5k3kxzv7b3d5risil6333ntqrr3yvx3yubz5tk3a
irc.kitsune.i2p cpesprosbsuycn4ui3neidqdtqz5ufekthob7cobl3p7bcuaoh3q
197 irc.nerds.i2p nlqhsdd5a7hanjea33mwizg5ixh3xcv5dczufpf3qcfpo6tx4esa
198 irc.postman.i2p hhcy7zznltay2tzwdvtd37g2inptemz3hk5zmxyi57d3sxgxbseq
199 irc.r4sas.i2p hodhusp73gltozgrnianlbploon3rrvhrzfn5mf2g46o7aaau5la
201 ircs.nerds.i2p w4d6hj3q7eyfrkb3kcy7rox2fdjzywypvmyrudtf2q4gdzs2qlhq
202 isitup.i2p xk6ypey2az23vtdkitjxvanlshztmjs2ekd6sp77m4obszf6ocfq
203 isotoxin.i2p wue3ycaccf4texikza3fh6p5yrmtgnooisuypnepo5mo67lmpcqq
204 itphx.i2p zwu2erk3wtyxlcbmd73kmxcirjghdkk4lpupy3xcavpm3qbob4da
205 ivorytower.i2p fpwrfvidfexsz7dspofkwtkmmizm7lyralfz5kvykffk7gubvxsq
206 javadoc.skank.i2p us3amyq3emvm6rcxmrar3o3uoiifnafijgseho4dxdsjgonfyaxq
207 javascript.i2p idxpwvskkaq3pssrnqpxmiilgeqwf7d2hf5xpusossqz6r2nudva
208 jbo.varikvalefor.i2p 3flbkdhahkgq47s7vytubh3v4vk3lyqgwwh6dd2k5szqlrivdmta
210 jimkiebs.i2p epqxjestvatyv2ala7iqbm45elnecqecz2zmpoklzvekwjapu45q
211 k1773r.i2p zam7u6vslhemddz347uusuzjdk5wma4h5hcmcqlng4ybbpdbjhnq
212 karamba.i2p g2lizyuyzms7m6gv24pzege5zapbinxfd2dzbaha6k246pl2xu3q
keep.i2p giaufpixdvnhabu25srbyttmskz3wmhsfyf7vsbkgfrj5el4sn2a
213 kelvinchan.i2p 6s72dyf6jwlvk2u455lksvcs5r7deafc3iniwo5kp4ssm777noma
214 keys.echelon.i2p mwfpkdmjur5ytq4og36ym3ychinv36b2a57f4rmgqmtrwepq3fva
215 kill-9.i2p 3i3bbs2zfabyleqxcqueeegakutrtk3hbxmvbtkrgwvetlmity4q
218 knijka.i2p knjkodsakcxihwk5w5new76hibywia5zqcgoqgjttzsausnd22oa
219 kohlchan.i2p kohlchanvn6vtsujobyw4pt5naaszmxqutd5hsdatmxfe2qaqhya
220 korol4ik.i2p mr3z5lggdppc3yw2r2egstpg33ga2wfocmozac6kjmhhfk3asm2q
kuchka.i2p nzmvfaztssds5yaatmmnk2jdghfxizvr6lctmljvxqehnwsfsubq
221 kurator.i2p sp3umnyofy5ytixbqcue4jrpxixccgnrxtiuvhg6juep5s5lrs6q
222 kycklingar.i2p gctswdhp4447yibxfbqg3uq2bvx63qjeqnaoaux75zw73leakyva
223 lbt.i2p 5uhjsgyca6ggdvwjjwf67bcmalpbxitopupjpygtahxvkwlh5mzq
224 ledechaine.i2p 7s4vtwkvxvmigj3r4zrc7s5ajdeqtris4qnj3n35cuuvuzkpgqsq
225 legalcases.i2p tms2ibdkp67ddj5ez6l4zwvw33jdpz5tmavv3kpjdcpavfh7np4q
226 legwork.i2p cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a
227 lenczewski.i2p 7uypwo47x4vnryoz25vwisu5jpyhz7pcdvnfzvopww3wxc7wiiia
228 libreddit.i2p libr7vbp7i3lsvqwy5aqgql44uxaufawi5yrloh3x7sezubsoaba
libremarkets.i2p 3jknyeprdyirtzhc5ysh7qma4bgswazxgeylfxjtrx2xxtycq2lq
229 limak.i2p jzoxeuuqt6wo55pvt4uh7o5i47oyadrvhyjli4hidqldhihu6lna
230 linuxfarm.i2p br3njhezhzx7mcv25nrxkrwu5g553xp4oyavsjhfa7jwmzyp3q5q
231 lnxcloud.i2p wryxsgqp3xl7fuohijmxlugrndtp2vixqlt2obpgriwt3fpdjn6q
232 lockdown.bnet.i2p vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
233 lockdown.i2p vgbvuawi5y7rh32xxjlqcmsoh6quigdvypqneoidiy7y7x7r2umq
lodikon.i2p u3f67staiwhqxpacya3clmvurdwd2kp7qcthzhstqnhrmlwc2g4a
234 lolicat.i2p 2mvlbpgzlawdxqv3zlcgcje475kv35ow2itpztjpdqegbtjpvbda
235 lolicatgirls.i2p pjhlh4h7zn3slglx46ffob5ifcccrcqr5dzbyyueh3wd6a6bizra
236 longseason.i2p ighnngssgd6p4kyrec6m556rasvbtx5xe7bsyxol4lie2dibi4da
237 lucas.i2p hcb6j5indzeqfyerq4igx45xgruijbs433mh22ye4osoxkxhumwq
238 lunach.i2p m27cpx55hqhcfjz4u62tiynjtzqdw4s3kanxdgluuthnndiquoeq
239 madaidans-insecurities.i2p 4uggkxbumfoufekfu7scfx4vkqfoqslv4fsog7kgwjcat2yqzb2q
240 mail.i2p mail4okikc3tknhn2tfyqzq7mxgzltqg2tw5v5frtzkcsm45zdra
241 major.acetone.i2p majorivqe4wud5ksadgfycdkgqsesqbbnw4hpgcqfixy4sm77f4q
242 major.i2p majorwsiehucyqfqbw3g2on3xqq2pwrwdd6hhyludqqr6ct7xdoa
247 mayvaneday.i2p zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa
248 maza.i2p wiigkmy5je5ox4byjt7z7fh4btojbixbmfv4chnzqoovmgnvdpoa
249 mdleom.i2p ggucqf2jmtfxcw7us5sts3x7u2qljseocfzlhzebfpihkyvhcqfa
250 meduza.i2p metager.i2p qlxgwqeyhdltlx66l6gcmnlacwkoex5dtcmlvagarvof2aaljpxq 4zdcetlcp3tdg5h23gd3aeyzbvodepid7a6mb3w4qvxkdnm2by6q
251 metrics.i2p z45ieamhex2ihqv7oowk5fz4qq47rbvxhhhbaaiinpajbhuevtpq
252 mhatta.i2p o4rsxdeepfrnncsnjq675xogp5v5qkbfgbt6ooqeyfvlifobrjxq
253 minecraft.reloaded.i2p qs5ihihltxhhfi6wesihgbvoaurqxgdpxgmwnmsk5d5beabtvmvq
256 moneroauth.i2p kt6uh4z24tendrol5zbm4wv4apq4nbv4w7k5vcguvbpg3alrqyxa
257 moneroexplorer.i2p je4vbduigce7pgjivvo26d4abn3u5mfsos5zemp3a75xzcv7nm4q
258 monerujo.i2p puri6y5dtwh6zr4u77ep6ozatun6iz7v4wai2dzxppz7654corlq
259 mooks.i2p 6txhjmnxnrjku4cmdwtyacjzhwythc7l5euqaxieyrc4vjotqwzq
260 mosfet.i2p s5ynkgagndmpxpf2kmnenv4x72io664gzd2x3qef54ilammnte3q
261 mtn.i2p-projekt.i2p f52x5fp6uhq53f5zle5d6rq5un34xgmxgazvilvmzcby37xcmsfa
262 mtproxy.ilita.i2p vxxfipsygx6jpz57pmb3d3mjgsk5ls2idxeo2bffs3yp62muyq7q
263 mumble.acetone.i2p plpu63ftpi5wdr42ew7thndoyaclrjqmcmngu2az4tahfqtfjoxa
264 muwire.i2p c3r6by4k4kzbx7yvq36u5rieuymshuq2pebo3dzs6oovpzn52uoa
nebula.hutor.i2p 575g5k3loi72jyq6fni6w3cdp2uoj2g63qowqjbnylbpc6evxpfa
265 nekit.i2p axis6zcqacv7le2ms5xqaerecuk3jyrijifrstvxl3or5g5n4ova
266 nekofiles.i2p rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
267 nerds.i2p 5wpwlbka4wj74rrnwbieopppgtivbqxljznl3bs542mxtvjz7ffq
268 netbsd.i2p jjz5ajknu5rku4p6xb6i5xwjnp3nd6c3jwi2qnzbpaodyf7g2lja
269 nethack.idk.i2p zcojbufszefu5bfht5cem3zlhfvv5y3jzpzbaccu3ehje4d7pb2a
270 news-i2pn.i2p wwcqkwfo5yhe6uribv5tzylk25j5hkdk6gdnyftzd3k7dawlzwca
271 newsxml.idk.i2p dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka
273 nitter.skank.i2p l2aoqvwkq2prrv53cbk4k2ilxw5s2fc7eo2rjunnixp2hrv3iwda
274 nntp.txtcon.i2p nntpsqgdoky2fuctc2hc6vuls2b4okxpkocic2eo66uup3dtaq7q
275 notbob.i2p nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a
276 notochina.i2p h3xsjhfyf4wah4sou3gepzibetdntrmiax3zl3x7ozyjv5krakaa
277 novabbs.i2p bicoankyijabtj2nlwzjmr4mamybr6bgc6xclpvsgzaaalzhhola
278 nsa.i2p nsetvbclpomqxfcit4mghn6z7vdhnza6jdzczby4crnto32uykga
279 nullchan.i2p nullz2mkp7znirlcersxpk7qmkmgcc6u3yhe462p2qkpxsdb3mja
281 obmen.i2p vodkv54jaetjw7q2t2iethc4cbi4gjdrmw2ovfmr43mcybt7ekxa
282 ol.i2p bnb46culzbssz6aipcjkuytanflz6dtndyhmlaxn3pfiv6zqrohq
283 omitracker.i2p a5ruhsktpdhfk5w46i6yf6oqovgdlyzty7ku6t5yrrpf4qedznjq
284 openbsd.i2p ahwlj76krc5do77pibighi2frqmfccpezyiqfmiernvivwomgvuq
285 opentracker.dg2.i2p w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa
286 opentracker.r4sas.i2p punzipidirfqspstvzpj6gb4tkuykqp6quurj6e23bgxcxhdoe7q
287 opentracker.skank.i2p by7luzwhx733fhc5ug2o75dcaunblq2ztlshzd7qvptaoa73nqua
288 outproxy-tor.meeh.i2p 77igjr2pbg73ox5ngqy5ohzvrnur3ezqcogtl4vpuqtrcl3irsqq
289 outproxy.bandura.i2p smaie7bxvpy53iiabfxkhmsjtqs7vzjcr5xxsysjbbobunwrav2q
290 outproxy.purokishi.i2p nieasaidj7wy5nammqf4f7zzcdafi4apygwn5qwscpn4pq34hqia
291 p2p-node.i2p e7uvwnpkzbn5zdwr76ujlhym4lk5pfkqhvfwivt3mszx7l4lpj7q
292 packages.i2p 2gbnylztt42dgpjh5r5tmy6oxm5xag6qv4femnbbqbpza4l2l6ja
293 pagwin.i2p qggplwxvsvctsdzgld2shfyjlokfoxur3pkfapygs26i4hwawfga
294 palebluedot.i2p panzerradio.i2p earth35u3ezuvyxzlsokx374rp27zeu2mv3j6plmmdhsm55fbzaq rawdhtmxzynf5mhrpyhnbjqqxswidr6gvvcbbt4hbpjuv5jebw7q
295 password.i2p knmjkeabbhudejkikbzhhjqsb4r77o45vkdhve6d254quttfx3wa
296 paste.idk.i2p qvgktychvlbmqwnoqgz2siuna7f5w764wgkbqcwogipfjzf3ksva
297 paste.r4sas.i2p csen43keji3qiw6uobsgzysxyjd225g6446ylq5uuz6ur2glkzaa
pehotin.i2p e6tfct7qvso7qrseseubsk5hxn3wejkdivojqeed6i7hbj4dsmqa
298 pharos.i2p vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
299 pharoz.i2p vathk2pyvaskeie63yyg4tshjkx5xt6zfvhwhgr3de67q46ob3sa
300 photosarchive.bentasker.i2p w4lnfcg2chbkwigogba7q3o5pgtq2baip7z3z4afaj65axhyc5ca
301 phreeroma.i2p 44fu2fhq6q36re2xqnkuievdfsroi5xchgbowkqib6ekak3ynm6q
piradio.i2p m2tsjo2sxabwimkeffsy2mlvtyebnzs6qndm5zpuw6mpwlja2ewa
pirates.i2p iygdi3krhapgjmrehupbj6mum6q3qbdyudjo66chmwinhrgrwivq
302 pizda666.i2p bczoowsc6ik7a4mya45qnlq5n6c6llpd5ni3u67r4r4drgohyira
303 pizdabol.i2p 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
304 planet.i2p pztcztaklof7s4me2vgtdddzesnunvk55zke6oz5e77ci3qk64yq
310 pool.gostcoin.i2p m4f4k3eeaj7otbc254ccj7d5hivguqgnohwelkibr4ddk43qhywa
311 pop.postman.i2p i7vd76psp3oyocljiqkoyz7fpr4fy2xq2asclf7qih6k57aj5xrq
312 porest.i2p 46l7beij4rerlbuj7xmcngarlkhlpgaztywrleiwagjuiipcebbq
pravtor.i2p 2sr27o5x2v2pyqro7wl5nl6krrsbizwrzsky5y7pkohwh24gn6xq
313 privacy-handbuch.i2p 3cccw3cxxghkalgichofulid36ekwplv3stubvfot522mwxcnu5q
314 privatebin.i2p e7qy5kc7ivqtnrbdn5ymx5nmbdedlrjkdchqmmkhud4ockrime5a
315 programthink.i2p programygfltn24q6foacm5gbuo3z2geub2k2k366llx3bph4ula
316 project-future.i2p ivqynpfwxzl746gxf376lxqvgktql2lqshzwnwjk2twut6xq7xta
317 proof-of-loss.i2p ofhehzoj5p4khpkookxb63tmqvrmcxaapgb3v3nm7kd5wjgebs4a
318 prophetgram.i2p cufuwm75gjpt3svl4wjmo6r4zjv6eqyjdpiuqfckgb5aqqdbgyvq
319 psv.i2p pmzcuml2oi2ok2h5i6cepcyxxjrughzgliai6hzspdlyt2bucy7a
321 psychonaut.i2p laf5nvzn4wz7ndgtdysmhvebpyjo3fkth7i4z4c2kp7su3wi6e2a
322 psyco.i2p eoilbrgyaiikxzdtmk2zeoalteupjrvcu3ui23p4wvfqo25bb73q
323 pubsub.i2p kse52thhz4srsf2ibw7zj6ua27df5a2u5gnqgf5jxwvranbw6mpa
324 pull.git.repo.i2p 3so7htzxzz6h46qvjm3fbd735zl3lrblerlj2xxybhobublcv67q
325 purokishi.i2p ia55kcrvskaitnxegirubvderl4vhva6bwkiducbkma4scy2rhca
326 purplechan.i2p tyiwxpgs7syjvz3cha3uckaxgondtiktlsvriebyy4qmzgbaj3gq
327 push.git.repo.i2p jef4g5vxnqybm4zpouum3lzbl6ti6456q57nbyj5kfyldkempm3a
328 pvsur.i2p pvsurxi2hz2n45kfrj5b3ny6ko4ipj2u2piftjen44npkpnbwh6q
329 qorg11.i2p ivusryc5mfrroomm6s5no4badevf7djzlgzlwarce33no2bsyi3q
quest.idk.i2p k6stkvw3jr6of4j5g3pu34jowfpl4k4jiqih3yozhcvinkok56aa
330 r4sas.i2p 2gafixvoztrndawkmhfxamci5lgd3urwnilxqmlo6ittu552cndq
331 raccoondad.i2p utoagugf3imr6mpjsithhnpvvvyehsnebisovn6kqn4vma6va3ca
332 radio.arav.i2p plkybcgxt4cdanot75cy3pbnqlbqcsrib2fmrpsnug4bqphqvfda
335 radio.r4sas.i2p cv72xsje5ihg6e24atitmhyk2cbml6eggi6b6fjfh2vgw62gdpla
336 radioliberty.i2p libertyx5gywnmn4snrr2fborvugmthl2x5vf3rh43v3744kmpwa
337 radioplayer.i2p 5tmr7qghx5eecoyvi77rsy7fqxeoyqcdpvg5wasoitn6ywkyobbq
338 raklet.i2p j3vnnihngp3ti2trktoxlyblltjn6gxscbmasb5zun5pdndkxkoq
339 ramble.i2p smv3cryi3n7d5ll7xpvlhstubi5yj4dadeltyrdwdr4onwd2jvvq
340 ransack.i2p mqamk4cfykdvhw5kjez2gnvse56gmnqxn7vkvvbuor4k4j2lbbnq
341 realsite.i2p ffacpzudiclaqh6fkck7ungeacfoafvijduhmwvnmp6e4jridhta
342 rebel.i2p recipebook.bentasker.i2p nch2arl45crkyk6bklyk2hrdwjf5nztyxdtoshy6llhwqgxho5jq ajagzagm5uyc2oac32ycx42znnatejliqorbk3y66xt25guxnh2q
343 reg.i2p shx5vqsw7usdaunyzr2qmes2fq37oumybpudrd4jjj4e4vk4uusa
344 reichsmarket.i2p 2uj4xomizi75swws7q5icmnavekb2w2ws2wlcqtyltde7pgymraq
345 reloaded.i2p wxbh2yq5twqinsw3ztjogqovvdd6h6j5uxeg3lh53x4w7klzv3tq
346 repo.i2p uxe3lqueuuyklel23sf5h25zwgqgjwsofrqchhnptd5y6pedzbxa
347 repo.i2pd.i2p ymzx5zgt6qzdg6nhxnecdgbqjd34ery6mpqolnbyo5kcwxadnodq
353 rufurus.i2p 7msryymfdta3ssyz34qur6gi4jyfkvca5iyfmnceviipwu7g2wca
354 rus.azathabar.i2p 6gp6ykan6ovr7p6dln56msvmdk6nrtvzoypz5dbhkkt4bdnryjna
355 rutor.i2p rutorktnoonk3t4sxmv6g5rj6mzsilfwxcplvfybemssjrva663q
356 ryona.i2p mzt45ux3budteuxz2b4xkwnphgspgljuwp3rxm3d2yr2sij6wopq
357 s01.nullchan.i2p mirrooeo34iokdgf3wno4ubx6x6uj7f2pqyjmmrvtg4m4parvguq
358 salama.i2p 4uoef63gv2sg6dtqmom5oypt6taypklekvlejfox56eiylprzrmq
359 samainu.i2p zlwgylqmlx6wxwnxf3mx64jl6yp6wv4sjeiidqw7k3n2wh2m46pa
361 scamdemia.i2p fdkiv7o4kzaikwkw6hbn7iedidp25lv6eo7yeyeqxai3jz7mrvzq
362 scanner.linuxfarm.i2p kojzsg33v2zxwqp3twpqzfvflaeoxgzxrl3douf2x7xv27ggfnaa
363 secret-site.i2p p6hbhjgdv2e6gyydrqh2ztl6onxnyilmj4ts7d7aj3uqssr7vvfq
364 securityinabox.i2p np3agu3ekd3isrzqzvsw4llwlr3hg5xbw7n7a23n2zfvhhm4e7iq
365 serien.i2p 3z5k3anbbk32thinvwcy4g5al7dmb75fagcm3zgh4rzrt3maphda
366 seven.i2p anqf44jmf7kby2qcvcx7gug6nuyansdu4msdbnp5kojom27rrm7a
367 shadowwiki.i2p 63gxkfc4hlcbxrdoepw2i2hyxai5qkxmi636ag3y7sf5tq3imoya
368 share-les-miquelots.i2p uxwha4jswnt6jrznj7yhfwldfilvyasnjruimmbylbvq5qykpbpq
369 sharefile.i2p o7jgnp7bubzdn7mxfqmghn3lzsjtpgkbnpjjsn6ddevqbchz3rta
370 shoieq3.i2p 3fjk4nfk3mccch4hdreghnyijcvovsi3yucjz3qzj5sxngqk5j6q
371 shota.i2p 75xxnc5hkeg7a3z5re4cpybbxt7te3p2krgrrgoka4hib2nr7k4q
372 silkr0adrel0aded.i2p rdqt2xxpsc5tzj7gjvcrpi7jea5gtbetgx7w2npobveg5teatdvq
373 silkroadreloaded.i2p hyn3mwmyeovcn2paujxur2eury2ufqpoahvbbqshfoggljn25tra
374 skank.i2p qiii4iqrj3fwv4ucaji2oykcvsob75jviycv3ghw7dhzxg2kq53q
375 smtp.postman.i2p 3nrunsrgeo6grhx6y6vsx7vibm5vabtockdbys3sqdmj6vha7k5q
snapshots.i2p 4pxaygw4akqf4ej4p32vykw3ejml7houemmdgecnlvvq2yxuru4q
376 snippets.bentasker.i2p vgduvgxudaceslvwlvtda6b4csobvczygcqpklm3yeuke2zgvcaa
377 speed-test.i2p 7lk5mgyi2knhqjjwjeiiuwlrn2rs2s577e7jh7z5rmbe2s6qkjpq
378 spirech.i2p labhopl3kd3eo7cj7kqa6nkwpczc2qj52i37jky77ugqazy7dmna
379 spoika.i2p u7uyxhgikc5ifj73oz6yedpy5pvtynbqo3n7rk5qyy5h5yhz4wbq
380 sportloto.i2p sportloto4cqlq6uhzzvgsgd7rcsfu6mqtk7wp6zmzqwcpflbsdq
381 spyware.i2p 36j7itgqmnbinh3ortujakkvqdrbhlqu4b2qcwb46mue3dpzxqfq
382 ssh-vimarsha.i2p srr.i2p ano6eegsaozt5nkbo4muy2o3uf3mfxk4qnlps23dtge5efgkjssa t6vdyn5sbtorn3bp6i7ndnv4lmxhk4qnqmyqlaxykdhcwatchlza
383 stablo.i2p ssh.vimarsha.i2p d2nxpe3p6yeaajchgfqwflnaateq3bueqrmx6higesmbu6vqlhga zttfrujqde5ddndps4stdspvro3khawdhcdgf73pae4i7dnvv4ea
384 stats.i2p kqypgjpjwrphnzebod5ev3ts2vtii6e5tntrg4rnfijqc7rypldq
385 status.str4d.i2p ycyyjo3psqbo45nuz243xvgvwnmzlanzqbzxv3kh6gyjztv7425q
str4d.i2p wrrwzdgsppwl2g2bdohhajz3dh45ui6u3y7yuop5ivvfzxtwnipa
386 streams.darkrealm.i2p ud3gcmvysjch4lbjr2khmhqpf7r2x5if4q43xkqdptl4k7lc4muq
387 support.i2p supportpwqa4cc7q43hb67tgd3dvntrwsy6725iufahm7kiluysq
388 support.torproject.i2p 6r7j6jlbrxb35k32zktopvr3w3pidm2baymwol33hq7xmy2sqm3a
389 syndie-project.i2p xa63tpfoaqt3zru2ehxjjfbpadwj4ha6qsdvtcqtyr3b7hmt4iaq
390 syndie.echelon.i2p vwrl2qmcif722fdkn3ldxcgz76df5cq4qypbndzthxwgmykyewta
391 t-ru.i2p bkhuehxydyprxpd4372h4boyluardjogyuff5p5l3u7syguavz5a
tabak.i2p y5o2vwb6kart7ivpnbpk4yte3i7kf2dsx7fy3i6w7htqtxhmbzia
392 tahoeserve.i2p yhs7tsjeznxdenmdho5gjmk755wtredfzipb5t272oi5otipfkoa
393 tails.i2p 5d7sl23h4uer4czjdtlomkb6ykeiss6vqkxzausp6f6gmty2plaa
394 takipsizad.i2p ufkhvmacngokfufxinfkdvfmbpvwvog5vrjiavw5zv32jnekcxia
395 talk.community.i2p talkakxfa6ihzn2mbzar6q5chdtkpnjp633w3tarul2bb6tfmoua
396 talks.i2p v45dmrrbjg3ucrazgl3t2tktyjajo7gvfexhmbdos3pi5kfuocaa
technicalsuwako.i2p xrp6lveka5phsitsjee6z53qwbgim6gkmbfjyf5fppmz6hsi2oya
397 teddit.i2p k62ptris7p72aborr4zoanee7xai6wguucveptwgxs5vbgt7qzpq
398 telegram.i2p i6jow7hymogz2s42xq62gqgej2zdm4xtnmpc6vjcwktdxpdoupja
399 term99.linuxfarm.i2p dg3mso5klqqgcngalxdh5yvkwv56ou7yotsqxw3twneojytiehra
401 testbox.i2p voa7ebdulhpcsupz4zqeyikdjztyhiutgvyri4qxqapistjwptbq
402 testmk16de.bandura.i2p gbdgvcv6wkwctls3tdx4ljmzo4zry3awrr37rkvrxcwg7jzjoyra
403 testshark.i2p u64ropzplqkncdmi4wcknqehjqudxb6elyut2k44ocvgx7ilpgia
404 thealiensarehere.i2p 6t3mm7mkmjcepgwbthqvrh3kjfsipqdwqurcptwruyy73enqkawa
405 theyosh.i2p 5m7ygxhcdyfa3kx3wfjbbunk4pjey7a5zr5lnfb3upgjbhanrita
406 thornworld.i2p vinz4ygmodxarocntyjlfwk2wjpvzndlf4hxss2w2t3fk52oplva
ti2.i2p 6r77rkt53xcjdpaaihttqjmzigvapmdczkekpogf5epdtcvrhgca
407 tictactoe.i2p cbr6sya637smfifq2hxj3kzqw5yv7aws2uknmi6ln45r65xej4aa
408 tmpsend.i2p r2al7m32cg2ypjcny627wkoiyanrasmorub2wqla3y6gn6rwzzvq
409 tomasgl.i2p tyiu7xok7hvzymxtgg62rjz7mvzr3bryq4i7ii7gudncogn2lpfa
410 torch.i2p vdpmmcq4ysca5rdczr5lqohjtaf5togdy5itoos54s6nn6xqox3a
411 torproject.i2p torprojaxvxevo4c5qvor3ywgasxkubs5ukazrpq3qcxed6lgbrq
412 tosios.idk.i2p torque.i2p 4mfy2ggcynt5xjkrdstwju2cqicayq7tg5bcb6o575wvab2div7a hc3mefp6cq2btwmmjl76atgtftzswu774dyv4a3qkl34wn4g6vta
413 trac.i2p2.i2p i43xzkihpdq34f2jlmtgiyyay5quafg5rebog7tk7xil2c6kbyoa
414 tracker2.postman.i2p 6a4kxkg5wp33p25qqhgwl6sj4yh4xuf5b3p3qldwgclebchm3eea
traditio.i2p wkpjjloylf6jopu2itgpktr45t2xvpjijxilxd5tq4i7wkqgwhhq
415 translate.idk.i2p g2l2zr4moqsk2bec346i5tfd2o22cozm5b2k4ifdhbcayazoz2ea
416 ts.i2p nebcjgfx3f7q4wzihqmguwcdeopaf7f6wyk2dojw4bcuku472zxq
417 tube.i2p vipzc556nzjraiqsk5xwvyhz54fvtqt3vrepdarat3zsj4a6eypq
418 tumbach.i2p u6pciacxnpbsq7nwc3tgutywochfd6aysgayijr7jxzoysgxklvq
419 tutorials.i2p zy37tq6ynucp3ufoyeegswqjaeofmj57cpm5ecd7nbanh2h6f2ja
tv.i2p znccrkhtgz4wqceyofwsqdsraqhdtteqzrag53lgmp6rhkutuy6q
420 txtcon.i2p txtcons5lrayl7bq7zsk2mt24clocassid3kh2rvyd3rd2xeklpq
421 tymcz.i2p pyog2x6v3eyna5pdr765osut52tpbmaheyi5atbqfaixmcq4dp7q
422 ukrainews.i2p 2bocbwrmakg252kicblp5i42feao7qpcw3xppms2i5oevkgelpsa
423 umbra.i2p xunb4chkeo5xxpfkwrkaqb5etmqpp4ddgvcmy7qkvtxhk5ihck2q
umbrella-corp.i2p un2dk5c7zp5eeppownhi5hbdrjbrz5a2qajk3khj6y6tvu6w4lea
424 unqueued.i2p 3gvn4kwd7z74jxc2sn4ucx52dpvpscxbzjluux3ul4t3eu5g64xq
425 upload.arav.i2p a5txjx3gjrnw6do4zr66wpwlayxt3dg7kb43wbr3fjp53mkfkbdq
426 vanity-eth.i2p 6djvwwd3mtozyqhpuyvcwqkje5fk3rbxqbgqgdlr32b6hvdqeq5a
427 varikvalefor.i2p yn7ovvjf4nhf7hhk6qqph7utcoce4f2j325rfeuyapw3emlqfqna
428 vimarsha.i2p ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
429 volatile.i2p vps.webhosting.i2p q6rve733tvhgyys57jfw4fymqf3xsnza6dqailcdjcq7w4fa5m3a kfqflh2y36jzp26vloaptqpgwtvw4qtz232wv53xxbggkydhpkaq
430 walker.i2p 5vik2232yfwyltuwzq7ht2yocla46q76ioacin2bfofgy63hz6wa
431 wbnet.i2p 2deeocx7jmrbmjxcpkxecw7yy2z7ybzwz5i6mg3ska3p3d2dx45q
432 web.telegram.i2p re6cgwg2yrkgaixlqvt5ufajbb3w42fsldlq7k5brpvnd5gp6x5a
webcam.i2p fhrkpj4iscrg6etgdlteseoed37q2ph7cizclgpabgcbnaq6g24a
433 webhosting.i2p hxqjbkpn5fxnmurlab6oluyqf3dd2xnxszeawn4ak2s4rpjnfheq
434 webirc.coldhell.i2p k2d6bius63w3g35j32dn66fssqwbnyvegx6w6pl5mdeojpp4rjba
435 wiki.i2p-projekt.i2p b2rpg7xtzwwfvtorfkrc3m7h222qbobnklra7g4oqhfjx64k2voa
436 wiki.ilita.i2p r233yskmowqe4od4he4b37wydr5fqzvj3z77v5fdei2etp2kg34a
437 wikiless.i2p x33lx4h6d7h6xs4eiqwhvaxn3ea5gn2ifmu3jobnvuvn4k4aej7a
438 wikimirror.i2p 2bhh73qhuwjkznnnzjfgo4buo7xy5l4ubhzt3oh23adksscx6gmq
439 wlm.i2p nigg3rveztrkpzoimq4z46pvbtml27mfhadt7n5bvl3pzzyzefxa
440 woah.i2p yh2eixirhlhvp7exrtalcwgeirg3fxi2vnumsbp7w6tily5oiwwq
441 wopen.i2p xvedtnzz3kpwpir23zyr3exrhkrn3267harw7gcjvp25yceyokza
442 worcester.i2p 5jtgpuzaabxyhahvbmokb3oeh2lwzpiiqlrg3w7kyyg63lzkwabq
443 wordle.i2p games3kuxvadv3y6tfowiynk2cnbuokrn2guvhkigqulmrvfnyla
www.imule.i2p 657xcllunctawyjtar5kgh3wpt6z4l7ba6mmam5rf7hev5w2lsvq
444 www.infoserver.i2p fq7xhxkdcauhwn4loufcadiiy24zbei25elnup33a3gfrdzrtlyq
445 xadmpp.i2p jb67tnpn67i3pwcuf45rtwu7gq6nkrs72iznhnakpkdzb6dkgfmq
446 xd.i2p jynrjzdp5qajf2jsdif6bgpijuk72zmuiohq3o7omeksw4pdgejq
451 xmpp.reloaded.i2p hioylmlm3lf3qgp2ncmym3igx6eyytlwioeq2fip4cwpzjtyxfuq
452 xmpp.rpi.i2p 3yv65pfwiwfuv4ciwtx34clqps6o2mc3vtyltcbqdkcki6untbca
453 xmpp.xadmpp.i2p s5ekktro7kk24gu67dgwi5xnhzhzjx6abujk44q4v56mmdnrv4lq
454 xmpp2.reloaded.i2p ufeplugqot5e22kottvejlw7yq24kynw5v5faulehc6n2zs62ura
455 xmrnode.i2p moneroti7lckp4hjrqckoq5cfi2apuyxia42sp5x7tkbzjfwqfiq
456 xmrradio.i2p olwxvhwaq422rcrlmvh6wgrdczyfyeag645du4cwncutqblkfmaq
457 xn--80ahmijpip2p.i2p assist2a3jsikp7ufmzpa56mlflhi5kmoack5dm6ua5x2hbgckua
xn--80atndcgadjdf7duc9a.i2p dn46ftj3cha4q7g2rreokiflxb4xksevp53hiwctfyztmcsb3d5q
458 xn--hallchen-q4a.i2p h5c4idxoweambtqajx3ecpu4iw425mfzckb4rrcvftrr7d2utfgq
xn--n3h.i2p 6a5bfeil667ksrdgg5hx5x2dse2v6ovnsng3r2k5gp5tb4z67egq
459 xn--r2beng6b4e.i2p ag5tjs7c4skyt6gh54ebhffgxt2gof2ood4psbciv32l6mg6fzia
460 xsden.i2p 4dofwhzlkz3k3sedwzs2sx2fudq3jfvaygffc6kp6hsawmfmz6qa
461 xx.i2p a7hrmb4kbftyk4ovr2la6azi7vjfqwt2zlckos4svoaclqu52j6a
462 yacy.idk.i2p 7ccyylqqxnyexz2acn3nqjdlwqmd5pororbovrarar2dkw3ddrbq
yat.i2p zxg4p6obolmrnkygoodqbdnikzychk5sild3o753hmaljuosl2fq
463 yellowonion.i2p 7l4kgsyatdmntck22i27oui3llftjim33ydav7kdew6ewfqvjzfa
464 yggdrasil.acetone.i2p tlfhgwzn4v5nlm2or5uy4leqmjbl5bncgcopbqnmcr4hbk3zrvqq
465 yggdrasil.i2p 7hhvvtephitji3ibz4vhbapj4rikoppd5324yttp6k35gkqgri3q
+1
View File
@@ -0,0 +1 @@
../../../jni/i2pd/contrib/certificates
@@ -1,13 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIB6jCCAY+gAwIBAgIJAPeWi4iUKLBJMAoGCCqGSM49BAMCMHoxCzAJBgNVBAYT
AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNVBAoMFUkyUCBBbm9u
eW1vdXMgTmV0d29yazEPMA0GA1UECwwGZmFtaWx5MSAwHgYDVQQDDBdnb3N0Y29p
bi5mYW1pbHkuaTJwLm5ldDAeFw0xNzA4MDExMzQ4MzdaFw0yNzA3MzAxMzQ4Mzda
MHoxCzAJBgNVBAYTAlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNV
BAoMFUkyUCBBbm9ueW1vdXMgTmV0d29yazEPMA0GA1UECwwGZmFtaWx5MSAwHgYD
VQQDDBdnb3N0Y29pbi5mYW1pbHkuaTJwLm5ldDBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABC+9iIYumUNnsqKbnTluHimV8OdGvo7yeGxuqhfNNB2b3jvbFJ81scgH
dsZtMQmUxgKM5nH+NQJMoCxHhSlRy2QwCgYIKoZIzj0EAwIDSQAwRgIhANNh7mOp
nBBPRh2a/ipG1VYS0d+mNjSrpz8xWcG3CXPLAiEAjM5MTfv9sOJ74PeZVhFZ02w4
vhgyZCeLJ57f123Lm1A=
-----END CERTIFICATE-----
@@ -1,13 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICCjCCAa2gAwIBAgIEfT9YJTAMBggqhkjOPQQDAgUAMHkxCzAJBgNVBAYTAlhY
MQswCQYDVQQIEwJYWDELMAkGA1UEBxMCWFgxHjAcBgNVBAoTFUkyUCBBbm9ueW1v
dXMgTmV0d29yazEPMA0GA1UECxMGZmFtaWx5MR8wHQYDVQQDExZpMnAtZGV2LmZh
bWlseS5pMnAubmV0MB4XDTE1MTIwOTIxNDIzM1oXDTI1MTIwODIxNDIzM1oweTEL
MAkGA1UEBhMCWFgxCzAJBgNVBAgTAlhYMQswCQYDVQQHEwJYWDEeMBwGA1UEChMV
STJQIEFub255bW91cyBOZXR3b3JrMQ8wDQYDVQQLEwZmYW1pbHkxHzAdBgNVBAMT
FmkycC1kZXYuZmFtaWx5LmkycC5uZXQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC
AAR7FPSglYrxeSPzv74A1fTwjajZWV0TljqEMBS/56juZQB/7xOwrsHFHA0eEEF9
dTH64wx3lhV/9sh/stwPU2MToyEwHzAdBgNVHQ4EFgQUQh4uRP1aaX8TJX5dljrS
CeFNjcAwDAYIKoZIzj0EAwIFAANJADBGAiEAhXlEKGCjJ4urpi2db3OIMl9pB+9t
M+oVtAqBamWvVBICIQDBaIqfwLzFameO5ULgGRMysKQkL0O5mH6xo910YQV8jQ==
-----END CERTIFICATE-----
@@ -1,13 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIB6TCCAY+gAwIBAgIJAI7G9MXxh7OjMAoGCCqGSM49BAMCMHoxCzAJBgNVBAYT
AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNVBAoMFUkyUCBBbm9u
eW1vdXMgTmV0d29yazEPMA0GA1UECwwGZmFtaWx5MSAwHgYDVQQDDBdpMnBkLWRl
di5mYW1pbHkuaTJwLm5ldDAeFw0xNjAyMjAxNDE2MzhaFw0yNjAyMTcxNDE2Mzha
MHoxCzAJBgNVBAYTAlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNV
BAoMFUkyUCBBbm9ueW1vdXMgTmV0d29yazEPMA0GA1UECwwGZmFtaWx5MSAwHgYD
VQQDDBdpMnBkLWRldi5mYW1pbHkuaTJwLm5ldDBZMBMGByqGSM49AgEGCCqGSM49
AwEHA0IABMlWL3loKVOfsA8Rm91QR53Il69mQiaB7n3rUhfPkJb9MYc1S4198azE
iSnNZSXicKDPIifaCgvONmbACzElHc8wCgYIKoZIzj0EAwIDSAAwRQIgYWmSFuai
TJvVrlB5RlbiiNFCEootjWP8BFM3t/yFeaQCIQDkg4xcQIRGTHhjrCsxmlz9KcRF
G+eIF+ATfI93nPseLw==
-----END CERTIFICATE-----
@@ -1,12 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIBwTCCAWigAwIBAgIJAOZBC10+/38EMAkGByqGSM49BAEwZzELMAkGA1UEBhMC
QVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdp
dHMgUHR5IEx0ZDEgMB4GA1UEAwwXbWNhMi1pMnAuZmFtaWx5LmkycC5uZXQwHhcN
MTYwMzI4MjIwMjMxWhcNMjYwMzI2MjIwMjMxWjBnMQswCQYDVQQGEwJBVTETMBEG
A1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkg
THRkMSAwHgYDVQQDDBdtY2EyLWkycC5mYW1pbHkuaTJwLm5ldDBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABNNyfzJr/rMSUeWliVBbJHRF2+qMypOlHEZ9m1nNATVX
64OhuyuVCmbF9R3oDkcZZJQQK1ovXd/EsbAIWDI8K/gwCQYHKoZIzj0EAQNIADBF
AiEApmv2tvMwzlvPjHJG1/5aXOSjYWw2s4ETeGt4abWPQkACIBbF3RuCHuzg+KN8
N0n9hAJztAqhRCdG3hilxF4fbVLp
-----END CERTIFICATE-----
@@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICKDCCAc6gAwIBAgIUcPHZXtYSqGNRCD6z8gp79WUFtI0wCgYIKoZIzj0EAwIw
gZMxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEPMA0GA1UEBwwGQXVzdGlu
MRgwFgYDVQQKDA9TdG9ybXlDbG91ZCBJbmMxIzAhBgNVBAMMGnN0b3JteWNsb3Vk
LmZhbWlseS5pMnAubmV0MSQwIgYJKoZIhvcNAQkBFhVhZG1pbkBzdG9ybXljbG91
ZC5vcmcwHhcNMjIwMzE5MTU1MjU2WhcNMzIwMzE2MTU1MjU2WjCBkzELMAkGA1UE
BhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xGDAWBgNVBAoM
D1N0b3JteUNsb3VkIEluYzEjMCEGA1UEAwwac3Rvcm15Y2xvdWQuZmFtaWx5Lmky
cC5uZXQxJDAiBgkqhkiG9w0BCQEWFWFkbWluQHN0b3JteWNsb3VkLm9yZzBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABFUli0hvJEmowNjJVjbKEIWBJhqe973S4VdL
cJuA5yY3dC4Y998abWEox7/Y1BhnBbpJuiodA341bXKkLMXQy/kwCgYIKoZIzj0E
AwIDSAAwRQIgD12F/TfY3iV1/WDF7BSKgbD5g2MfELUIy1dtUlJQuJUCIQD69mZw
V1Z9j2x0ZsuirS3i6AMfVyTDj0RFS3U1jeHzIQ==
-----END CERTIFICATE-----
@@ -1,12 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIBxDCCAWmgAwIBAgIJAJnJIdKHYwWcMAoGCCqGSM49BAMCMGcxCzAJBgNVBAYT
AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn
aXRzIFB0eSBMdGQxIDAeBgNVBAMMF3ZvbGF0aWxlLmZhbWlseS5pMnAubmV0MB4X
DTE2MDQyNjE1MjAyNloXDTI2MDQyNDE1MjAyNlowZzELMAkGA1UEBhMCQVUxEzAR
BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5
IEx0ZDEgMB4GA1UEAwwXdm9sYXRpbGUuZmFtaWx5LmkycC5uZXQwWTATBgcqhkjO
PQIBBggqhkjOPQMBBwNCAARf6LBfbbfL6HInvC/4wAGaN3rj0eeLE/OdBpA93R3L
s8EUp0YTEJHWPo9APiKMmAwQSsMJfjhNrbp+UWEnnx2LMAoGCCqGSM49BAMCA0kA
MEYCIQDpQu2KPV5G1JOFLoZvdj+rcvEnjxM/FxkaqikwkVx8FAIhANP7DkUal+GT
SuiCtcqM4QyIBsfsCJBWEMzovft164Bo
-----END CERTIFICATE-----
@@ -1,32 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIEctG1gDANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJY
WDELMAkGA1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnlt
b3VzIE5ldHdvcmsxDDAKBgNVBAsMA0kyUDEZMBcGA1UEAwwQYWNldG9uZUBtYWls
LmkycDAeFw0yMTAxMjUxMDMyMjBaFw0zMTAxMjMxMDMyMjBaMHAxCzAJBgNVBAYT
AlhYMQswCQYDVQQIDAJYWDELMAkGA1UEBwwCWFgxHjAcBgNVBAoMFUkyUCBBbm9u
eW1vdXMgTmV0d29yazEMMAoGA1UECwwDSTJQMRkwFwYDVQQDDBBhY2V0b25lQG1h
aWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwqF/BRRmvZ54
5XArgxbytDi7m7MDjFE/whUADruHj/9jXGCxE8DDiiKTt3yhfakV0SNo5xk7AMD+
wqiSNC5JCHTm18gd2M4cQLIaOVRqucLLge4XVgk2WPX6OT98wfxh7mqA3wlSdEpj
dY3Txtkf7VfZLicG76/RBtLFW3aBdsn63hZaQqZE4x/5MJyPVZx59+lys5RmMi0o
LpXJy4HOu1/Gl1iKDJoI/ARFG3y7uP/B+ZtZBitJetTs0HcqycnNJq0tVZf2HiGF
JNy67AL4foxNYPXP6QsvXvp6LRpGANaBCkFCBlriSF+x1zO2H3uAkRnuLYXuKIfB
HudejTp4R57VgZGiHYoawHaF17FVAApue9G8O82XYECjhET35B9yFoOBHTvaMxLU
CKrmayH8KMQon95mfe1qpoO3/YDa8DCxkjAfjdtytat7nt2pGZMH6/cLJxcFiofh
RtRVvb+omv/X12j/6iCFrwP4NvBnAZsa736igbjpyee5n+CSyYxd9cJkRX1vQVk7
WFSqL58Pz+g6CKJmdMPvqNOfUQ6mieBeejmx35B4pLzLcoNxw8R3O1+I2l4dg042
dEydKRQNwdzOec4jYwnKR40iwIyZxpchXWGRbBdyF5RQCbIIo60QBJlfXMJ2svan
q5lYIeWeY3mlODXu4KH4K09y10KT8FsCAwEAAaMhMB8wHQYDVR0OBBYEFMh+DoIL
APNiu2o+6I9A49joNYQuMA0GCSqGSIb3DQEBDQUAA4ICAQBFeOJi0rmkqN5/E3IB
nE2x4mUeLI82tUcN2D3Yu8J81vy4DnH+oMRQFDtYEHW5pfirRmgSZ7MQwYQnqWLp
iTE7SyCxlqGrmVsYp7PzfS1pUT2QeWPtsNYUDdraG0Zr9BkIGB60VMhjMSa9WUrj
lbchzr6E/j/EsEOE7IK08JxIDKCDZM2LLwis4tAM6tmiylkMf2RlUBIRBs1TCO+q
x3yByttNE2P4nQyQVQpjc1qsaOMvJvbxun37dwo+oTQy+hwkA86BWTDRYdN3xwOk
OfAOtlX6zM/wCKMN0ZRnjZoh59ZCn4JXokt3IjZ4n8qJOuJFRKeKGmGeKA8uaGW8
ih5tdB99Gu5Z8LOT1FxAJKwQBn5My0JijPoMit4B0WKNC8hy2zc2YvNfflu1ZRj5
wF4E5ktbtT/LWFSoRPas/GFS8wSXk/kbSB0ArDcRRszb3JHqbALmSQxngz3rfwb3
SHwQIIg956gjMDueEX5CrGrMqigiK53b9fqtpghUrHDsqtEXqeImpAY65PX1asqo
metDNuETHF7XrAjP7TGJfnrYQyeK90iS7j1G68ScBGkKY2nsTnFoXkSk5s5D338E
SUzPaOlh91spmkVY6gQTVQ7BakADBHw+zBgDA1gBN/4JPvgN36hquj63+aG1cKy3
3ZUnv2ipo2fpr69NtuBnutK6gw==
-----END CERTIFICATE-----
@@ -1,35 +0,0 @@
-----BEGIN CERTIFICATE-----
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
Hz8KWVkHZg==
-----END CERTIFICATE-----
@@ -1,33 +0,0 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
@@ -1,34 +0,0 @@
-----BEGIN CERTIFICATE-----
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
CCOJyu3XtyzFf+tAeixOnuQ=
-----END CERTIFICATE-----
@@ -1,32 +0,0 @@
-----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-----
@@ -1,33 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFxzCCA6+gAwIBAgIQZfqn0yiJL3dGgCjeOeWS6DANBgkqhkiG9w0BAQsFADBw
MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4wHAYDVQQK
ExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEZMBcGA1UEAwwQ
aG90dHVuYUBtYWlsLmkycDAeFw0xNjExMDkwMzE1MzJaFw0yNjExMDkwMzE1MzJa
MHAxCzAJBgNVBAYTAlhYMQswCQYDVQQHEwJYWDELMAkGA1UECRMCWFgxHjAcBgNV
BAoTFUkyUCBBbm9ueW1vdXMgTmV0d29yazEMMAoGA1UECxMDSTJQMRkwFwYDVQQD
DBBob3R0dW5hQG1haWwuaTJwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEA21Bfgcc9VVH4l2u1YvYlTw2OPUyQb16X2IOW0PzdsUO5W78Loueu974BkiKi
84lQZanLr0OwEopdfutGc6gegSLmwaWx5YCG5uwpLOPkDiObfX+nptH6As/B1cn+
mzejYdVKRnWd7EtHW0iseSsILBK1YbGw4AGpXJ8k18DJSzUt2+spOkpBW6XqectN
8y2JDSTns8yiNxietVeRN/clolDXT9ZwWHkd+QMHTKhgl3Uz1knOffU0L9l4ij4E
oFgPfQo8NL63kLM24hF1hM/At7XvE4iOlObFwPXE+H5EGZpT5+A7Oezepvd/VMzM
tCJ49hM0OlR393tKFONye5GCYeSDJGdPEB6+rBptpRrlch63tG9ktpCRrg2wQWgC
e3aOE1xVRrmwiTZ+jpfsOCbZrrSA/C4Bmp6AfGchyHuDGGkRU/FJwa1YLJe0dkWG
ITLWeh4zeVuAS5mctdv9NQ5wflSGz9S8HjsPBS5+CDOFHh4cexXRG3ITfk6aLhuY
KTMlkIO4SHKmnwAvy1sFlsqj6PbfVjpHPLg625fdNxBpe57TLxtIdBB3C7ccQSRW
+UG6Cmbcmh80PbsSR132NLMlzLhbaOjxeCWWJRo6cLuHBptAFMNwqsXt8xVf9M0N
NdJoKUmblyvjnq0N8aMEqtQ1uGMTaCB39cutHQq+reD/uzsCAwEAAaNdMFswDgYD
VR0PAQH/BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNV
HRMBAf8EBTADAQH/MBkGA1UdDgQSBBBob3R0dW5hQG1haWwuaTJwMA0GCSqGSIb3
DQEBCwUAA4ICAQCibFV8t4pajP176u3jx31x1kgqX6Nd+0YFARPZQjq99kUyoZer
GyHGsMWgM281RxiZkveHxR7Hm7pEd1nkhG3rm+d7GdJ2p2hujr9xUvl0zEqAAqtm
lkYI6uJ13WBjFc9/QuRIdeIeSUN+eazSXNg2nJhoV4pF9n2Q2xDc9dH4GWO93cMX
JPKVGujT3s0b7LWsEguZBPdaPW7wwZd902Cg/M5fE1hZQ8/SIAGUtylb/ZilVeTS
spxWP1gX3NT1SSvv0s6oL7eADCgtggWaMxEjZhi6WMnPUeeFY8X+6trkTlnF9+r/
HiVvvzQKrPPtB3j1xfQCAF6gUKN4iY+2AOExv4rl/l+JJbPhpd/FuvD8AVkLMZ8X
uPe0Ew2xv30cc8JjGDzQvoSpBmVTra4f+xqH+w8UEmxnx97Ye2aUCtnPykACnFte
oT97K5052B1zq+4fu4xaHZnEzPYVK5POzOufNLPgciJsWrR5GDWtHd+ht/ZD37+b
+j1BXpeBWUBQgluFv+lNMVNPJxc2OMELR1EtEwXD7mTuuUEtF5Pi63IerQ5LzD3G
KBvXhMB0XhpE6WG6pBwAvkGf5zVv/CxClJH4BQbdZwj9HYddfEQlPl0z/XFR2M0+
9/8nBfGSPYIt6KeHBCeyQWTdE9gqSzMwTMFsennXmaT8gyc7eKqKF6adqw==
-----END CERTIFICATE-----
@@ -1,33 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFvjCCA6agAwIBAgIQIDtv8tGMh0FyB2w5XjfZxTANBgkqhkiG9w0BAQsFADBt
MQswCQYDVQQGEwJYWDELMAkGA1UEBxMCWFgxCzAJBgNVBAkTAlhYMR4wHAYDVQQK
ExVJMlAgQW5vbnltb3VzIE5ldHdvcmsxDDAKBgNVBAsTA0kyUDEWMBQGA1UEAwwN
aWdvckBub3ZnLm5ldDAeFw0xNzA3MjQxODI4NThaFw0yNzA3MjQxODI4NThaMG0x
CzAJBgNVBAYTAlhYMQswCQYDVQQHEwJYWDELMAkGA1UECRMCWFgxHjAcBgNVBAoT
FUkyUCBBbm9ueW1vdXMgTmV0d29yazEMMAoGA1UECxMDSTJQMRYwFAYDVQQDDA1p
Z29yQG5vdmcubmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxst4
cam3YibBtQHGPCPX13uRQti56U3XZytSZntaKrUFmJxjt41Q/mOy3KYo+lBvhfDF
x3tWKjgP9LJOJ28zvddFhZVNxqZRjcnAoPuSOVCw88g01D9OAasKF11hCfdxZP6h
vGm8WCnjD8KPcYFxJC4HJUiFeProAwuTzEAESTRk4CAQe3Ie91JspuqoLUc5Qxlm
w5QpjnjfZY4kaVHmZDKGIZDgNIt5v85bu4pWwZ6O+o90xQqjxvjyz/xccIec3sHw
MHJ8h8ZKMokCKEJTaRWBvdeNXki7nf3gUy/3GjYQlzo0Nxk/Hw4svPcA+eL0AYiy
Jn83bIB5VToW2zYUdV4u3qHeAhEg8Y7HI0kKcSUGm9AQXzbzP8YCHxi0sbb0GAJy
f1Xf3XzoPfT64giD8ReUHhwKpyMB6uvG/NfWSZAzeAO/NT7DAwXpKIVQdkVdqy8b
mvHvjf9/kWKOirA2Nygf3r79Vbg2mqbYC/b63XI9hheU689+O7qyhTEhNz+11X0d
Zax7UPrLrwOeB9TNfEnztsmrHNdv2n+KcOO2o11Wvz2nHP9g+dgwoZSD1ZEpFzWP
0sD5knKLwAL/64qLlAQ1feqW7hMr80IADcKjLSODkIDIIGm0ksXqEzTjz1JzbRDq
jUjq7EAlkw3G69rv1gHxIntllJRQidAqecyWHOMCAwEAAaNaMFgwDgYDVR0PAQH/
BAQDAgKEMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8E
BTADAQH/MBYGA1UdDgQPBA1pZ29yQG5vdmcubmV0MA0GCSqGSIb3DQEBCwUAA4IC
AQADyPaec28qc1HQtAV5dscJr47k92RTfvan+GEgIwyQDHZQm38eyTb05xipQCdk
5ruUDFXLB5qXXFJKUbQM6IpaktmWDJqk4Zn+1nGbtFEbKgrF55pd63+NQer5QW9o
3+dGj0eZJa3HX5EBkd2r7j2LFuB6uxv3r/xiTeHaaflCnsmyDLfb7axvYhyEzHQS
AUi1bR+ln+dXewdtuojqc1+YmVGDgzWZK2T0oOz2E21CpZUDiP3wv9QfMaotLEal
zECnbhS++q889inN3GB4kIoN6WpPpeYtTV+/r7FLv9+KUOV1s2z6mxIqC5wBFhZs
0Sr1kVo8hB/EW/YYhDp99LoAOjIO6nn1h+qttfzBYr6C16j+8lGK2A12REJ4LiUQ
cQI/0zTjt2C8Ns6ueNzMLQN1Mvmlg1Z8wIB7Az7jsIbY2zFJ0M5qR5VJveTj33K4
4WSbC/zMWOBYHTVBvGmc6JGhu5ZUTZ+mWP7QfimGu+tdhvtrybFjE9ROIE/4yFr6
GkxEyt0UY87TeKXJ/3KygvkMwdvqGWiZhItb807iy99+cySujtbGfF2ZXYGjBXVW
dJOVRbyGQkHh6lrWHQM4ntBv4x+5QA+OAan5PBF3tcDx1vefPx+asYslbOXpzII5
qhvoQxuRs6j5jsVFG6RdsKNeQAt87Mb2u2zK2ZakMdyD1w==
-----END CERTIFICATE-----
@@ -1,34 +0,0 @@
-----BEGIN CERTIFICATE-----
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
+g==
-----END CERTIFICATE-----
@@ -1,32 +0,0 @@
-----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-----
@@ -1,32 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFiTCCA3GgAwIBAgIEY2XeQjANBgkqhkiG9w0BAQ0FADB1MQswCQYDVQQGEwJY
WDELMAkGA1UECAwCWFgxHjAcBgNVBAcMFUkyUCBBbm9ueW1vdXMgTmV0d29yazEL
MAkGA1UECgwCWFgxDDAKBgNVBAsMA0kyUDEeMBwGA1UEAwwVcjRzYXMtcmVzZWVk
QG1haWwuaTJwMB4XDTE3MDYyMjEwNTQ1NFoXDTI3MDYyMDEwNTQ1NFowdTELMAkG
A1UEBhMCWFgxCzAJBgNVBAgMAlhYMR4wHAYDVQQHDBVJMlAgQW5vbnltb3VzIE5l
dHdvcmsxCzAJBgNVBAoMAlhYMQwwCgYDVQQLDANJMlAxHjAcBgNVBAMMFXI0c2Fz
LXJlc2VlZEBtYWlsLmkycDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
ANgsj5LhF4uGG4RDueShqYQZsG5Rz6XUAtK9sVGFdmdJTDZirUMZcCGCGZP/Harz
QaZU9EYxOCztnpLCQksSCpdRsij56MURS0tW/1x7LHIDUOi911Of57jgIHH+3E5n
6tuRxEk6J/9Ji3PI+89kl0sPKMVFMyKkINprVTA5zr/keyYEG0p6HSEYYiJkQH78
8uoOCAmlk9mxkJFb+zviCk6jsYwdH+ofD6Lw5ueOlYUbeZ9Nd7jfSdf20XM7ofIw
W2COtsbq3J7vNrQJMV7HkHxVx/7OqmjQF02OahZFZREVZqbHpL501iTn9Iqd5qKq
IsxYjk7ZnP4UUCBk8NOU5TuWsy0qNw+TJDI9s55Fi4KPtXWf47HIl6CdpM5y/D5L
eufCojSwPKlrD6x9gTyJdBggBZRIyplXdKffo/95hUhEkv86yfsVVR7Gu1uy0O8T
Gtb8Da/oi5eEZBHWonLVicLPei5jeo+1gbR09PQ6s41uMZlOhMe4RSgiIQj/7UVo
ffKdl1MPNKr1u2fgVj8kxqg8ZivWKQ2taEgimU2EkQcNcE96M9yQlNNpNvqSAQVk
wYXlHt0AN6A1A8u1pItxaTwXnbmx+OBJZoKl4ZQeaC8wtKjTgAgVXp+g5iot2gir
LjxCRx1WLG1c8vRg1W8CDZII8Swc8EWpMhI+0hPv7/4/AgMBAAGjITAfMB0GA1Ud
DgQWBBTN5sKbrNzwE8sgMGDekfOPgX8/JDANBgkqhkiG9w0BAQ0FAAOCAgEAjLaB
bHqvFTs0ikAtesk9r8+8XVIsP5FR57zZCek2vxkHcCQWw8Uqs3ndInRX4FirKSLT
WRb4aSwFCkrmwueecTpXN/RBC+fZj+POCfdILEsA+FGreAM2q5ZXv/Q0jyIXOXEM
+KL0JZXnNS0/dqR3IYbC7f39CL6Sf40gRGTwTWWGg3KnynoS0v1zQcZLTMhHBD2X
tgdIPbroq9t4gXa7Dhm0egYfQOI/7re2wiZT7UWVVwEpYqKf6JApFHa1nNOFMrLF
45JHQIHArkoxpQdfSe9HBoyJiB5vz398rHZeqbJaF3PIg9rxWWY/NvvOVuIk8U5z
0jExhg29a88B32U7ndvQJqIuGiQghzCiLxC/y1+wAdpeDSbD3OAOHqplvMj3BUn9
yhDSLSjtfBJjnXKxtEcWLR0edHCGEk5mAcL7q1WNxDpxaICwGGpNZN53CtFx7amb
egYil448DmiqoQTCTE9pBz8YjwiVfCYLYv17O0NJyYM9Efy/wL3rFlsPJniWHMuH
imZybVU4ukjvfOZ+LY4COTwz6w4sfA7a+i+2mOynC7eKX8Yg6i1nXlcY1Z8ykNgi
7B3kz1T/DV56CIm6QUWtepfuKTYq4C6QrBBIXLk1d5g95aWA21u1LRqNZ9GLH+eA
gfvIm7v+cELj8a53EQY0LafzZqNC5kQAp916coU=
-----END CERTIFICATE-----
@@ -1,33 +0,0 @@
-----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,34 +0,0 @@
-----BEGIN CERTIFICATE-----
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
LD8d2z2Lgg==
-----END CERTIFICATE-----
+6 -2
View File
@@ -12,7 +12,7 @@ loglevel = none
ipv4 = true
ipv6 = false
# ssu = true
ssu = false
bandwidth = L
# share = 100
@@ -23,6 +23,10 @@ bandwidth = L
[ntcp2]
enabled = true
[ssu2]
enabled = true
published = true
[http]
enabled = true
address = 127.0.0.1
@@ -63,7 +67,7 @@ enabled = false
# port = 7656
[precomputation]
elgamal = true
elgamal = false
[upnp]
enabled = true
@@ -1,5 +1,7 @@
package org.purplei2p.i2pd;
import static android.app.PendingIntent.FLAG_IMMUTABLE;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -139,19 +141,19 @@ public class ForegroundService extends Service {
// The PendingIntent to launch our activity if the user selects this notification
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, I2PDActivity.class), 0);
new Intent(this, I2PDActivity.class),
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? FLAG_IMMUTABLE : 0);
// If earlier version channel ID is not used
// https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#NotificationCompat.Builder(android.content.Context)
String channelId = Build.VERSION.SDK_INT >= 26 ? createNotificationChannel() : "";
String channelId = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? createNotificationChannel() : "";
// Set the info for the views that show in the notification panel.
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId)
.setOngoing(true)
.setSmallIcon(R.drawable.ic_notification_icon); // the status icon
if (Build.VERSION.SDK_INT >= 16)
builder = builder.setPriority(Notification.PRIORITY_DEFAULT);
if (Build.VERSION.SDK_INT >= 21)
builder = builder.setPriority(Notification.PRIORITY_DEFAULT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
builder = builder.setCategory(Notification.CATEGORY_SERVICE);
Notification notification = builder
.setTicker(text) // the status text
@@ -20,6 +20,7 @@ import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Build;
import android.os.Environment;
import android.os.IBinder;
import android.os.PowerManager;
import android.preference.PreferenceManager;
@@ -110,7 +111,7 @@ public class I2PDActivity extends Activity {
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this, ForegroundService.class));
textView = (TextView) findViewById(R.id.appStatusText);
HTTPProxyState = (CheckBox) findViewById(R.id.service_httpproxy_box);
SOCKSProxyState = (CheckBox) findViewById(R.id.service_socksproxy_box);
@@ -126,11 +127,17 @@ public class I2PDActivity extends Activity {
daemon.addStateChangeListener(daemonStateUpdatedListener);
daemonStateUpdatedListener.daemonStateUpdate(DaemonWrapper.State.uninitialized, daemon.getState());
// request permissions
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if(!Environment.isExternalStorageManager()) {
Log.e(TAG, "MANAGE_EXTERNAL_STORAGE perm declined, stopping i2pd");
i2pdStop();
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
MY_PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE);
}
}
@@ -4,7 +4,11 @@ import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.Settings;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
@@ -16,6 +20,7 @@ import java.lang.reflect.Method;
public class I2PDPermsAskerActivity extends Activity {
private static final int PERMISSION_WRITE_EXTERNAL_STORAGE = 0;
private static final int PERMISSION_MANAGE_EXTERNAL_STORAGE = 0;
private Button button_request_write_ext_storage_perms;
private TextView textview_retry;
@@ -24,7 +29,7 @@ public class I2PDPermsAskerActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//if less than Android 6, no runtime perms req system present
if (android.os.Build.VERSION.SDK_INT < 23) {
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
startMainActivity();
return;
}
@@ -48,57 +53,66 @@ public class I2PDPermsAskerActivity extends Activity {
textview_retry.setVisibility(TextView.GONE);
button_request_write_ext_storage_perms.setVisibility(Button.GONE);
Method methodCheckPermission;
Method method_shouldShowRequestPermissionRationale;
Method method_requestPermissions;
try {
methodCheckPermission = getClass().getMethod("checkSelfPermission", String.class);
method_shouldShowRequestPermissionRationale =
getClass().getMethod("shouldShowRequestPermissionRationale", String.class);
method_requestPermissions =
getClass().getMethod("requestPermissions", String[].class, int.class);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
Integer resultObj;
try {
resultObj = (Integer) methodCheckPermission.invoke(
this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
} catch (Throwable e) {
throw new RuntimeException(e);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if(!Environment.isExternalStorageManager()) {
showExplanation();
} else {
startMainActivity();
}
} else {
Method methodCheckPermission;
Method method_shouldShowRequestPermissionRationale;
Method method_requestPermissions;
if (resultObj != PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
Boolean aBoolean;
try {
aBoolean = (Boolean) method_shouldShowRequestPermissionRationale.invoke(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
} catch (Exception e) {
methodCheckPermission = getClass().getMethod("checkSelfPermission", String.class);
method_shouldShowRequestPermissionRationale =
getClass().getMethod("shouldShowRequestPermissionRationale", String.class);
method_requestPermissions =
getClass().getMethod("requestPermissions", String[].class, int.class);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
if (aBoolean) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
Integer resultObj;
showExplanation();
} else {
// No explanation needed, we can request the permission.
try {
resultObj = (Integer) methodCheckPermission.invoke(
this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
} catch (Throwable e) {
throw new RuntimeException(e);
}
if (resultObj != PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
Boolean aBoolean;
try {
method_requestPermissions.invoke(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_WRITE_EXTERNAL_STORAGE);
aBoolean = (Boolean) method_shouldShowRequestPermissionRationale.invoke(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
} else startMainActivity();
if (aBoolean) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
showExplanation();
} else {
// No explanation needed, we can request the permission.
try {
method_requestPermissions.invoke(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_WRITE_EXTERNAL_STORAGE);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
} else startMainActivity();
}
}
@Override
@@ -136,6 +150,7 @@ public class I2PDPermsAskerActivity extends Activity {
}
private static final int SHOW_EXPLANATION_REQUEST = 1; // The request code
private static final int APP_STORAGE_ACCESS_REQUEST_CODE = 2;
private void showExplanation() {
Intent intent = new Intent(this, I2PDPermsExplanationActivity.class);
@@ -144,11 +159,14 @@ public class I2PDPermsAskerActivity extends Activity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == SHOW_EXPLANATION_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// Request the permission
super.onActivityResult(requestCode, resultCode, data);
// Check which request we're responding to and make sure the request was successful
if (requestCode == SHOW_EXPLANATION_REQUEST && resultCode == RESULT_OK) {
// Request the permission
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Intent intentManageAccess = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Uri.parse("package:" + BuildConfig.APPLICATION_ID));
startActivityForResult(intentManageAccess, APP_STORAGE_ACCESS_REQUEST_CODE);
} else {
Method method_requestPermissions;
try {
method_requestPermissions =
@@ -163,9 +181,21 @@ public class I2PDPermsAskerActivity extends Activity {
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
finish(); //close the app
}
} else if (requestCode == APP_STORAGE_ACCESS_REQUEST_CODE && resultCode == RESULT_OK) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (Environment.isExternalStorageManager()) {
startMainActivity();
} else {
textview_retry.setText(R.string.permDenied);
textview_retry.setVisibility(TextView.VISIBLE);
button_request_write_ext_storage_perms.setVisibility(Button.VISIBLE);
finish();
}
} else {
finish(); // close the app
}
}
}
}
@@ -0,0 +1,56 @@
package org.purplei2p.i2pd;
import android.content.Intent;
import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
import android.util.Log;
import android.annotation.TargetApi;
import android.os.Build;
@TargetApi(Build.VERSION_CODES.N)
public class I2PdQSTileService extends TileService {
private static final String TAG = "MyQSTileService";
@Override
public void onClick() {
super.onClick();
Log.d(TAG, "Tile clicked.");
try {
// Add the FLAG_ACTIVITY_NEW_TASK flag
Intent intent = new Intent(this, I2PDActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityAndCollapse(intent);
} catch (Exception e) {
Log.e(TAG, "Error starting ForegroundService", e);
}
}
@Override
public void onStartListening() {
super.onStartListening();
Log.d(TAG, "Tile started listening.");
}
@Override
public void onStopListening() {
super.onStopListening();
Log.d(TAG, "Tile stopped listening.");
}
@Override
public void onTileAdded() {
super.onTileAdded();
Log.d(TAG, "Tile added.");
}
@Override
public void onTileRemoved() {
super.onTileRemoved();
Log.d(TAG, "Tile removed.");
}
}
@@ -0,0 +1,459 @@
package org.purplei2p.i2pd;
import android.os.Build;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import android.util.Log;
import java.io.File;
import org.apache.commons.configuration2.INIConfiguration;
import java.io.StringWriter;
import java.io.Writer;
import java.nio.file.*;
public class MainPreferenceActivity extends PreferenceActivity {
private Boolean isOldConfigExists = false;
public static final String CONFIG_FILE_PATH = "/sdcard/i2pd/i2pd.conf";
private static final String OLD_FILE_PREFIX= "__old";
boolean isOldConfigExists()
{
try {
return new File(CONFIG_FILE_PATH + OLD_FILE_PREFIX).exists();
}catch(Exception e) { return false; }
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences_i2pd);
INIConfiguration properties = readConfiguration();
// backup old configuration.
if (!isOldConfigExists)
{
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (Files.exists(Paths.get(CONFIG_FILE_PATH))) {
Files.copy(Paths.get(CONFIG_FILE_PATH), Paths.get(CONFIG_FILE_PATH + OLD_FILE_PREFIX));
}
} // if build ...
} catch (IOException e) {
e.printStackTrace();
}
}
// delete empty sections
{
writeConfiguration(properties);
}
// Main Categoryре
ListPreference logLevel = (ListPreference) findPreference("logLevelPreference");
logLevel.setValue(properties.getString("log", "info"));
logLevel.setOnPreferenceChangeListener((preference, newValue) -> {
// Modify properties
//properties.setProperty("log", (String) newValue);
// Save modified properties
//writeConfiguration(properties);
writeConfiguration(properties, "log", (String) newValue);
return true;
});
CheckBoxPreference ipv4Enable = (CheckBoxPreference) findPreference("ipv4EnablePreference");
boolean ipv4Enabled = Boolean.parseBoolean(properties.getString("ipv4", "true")); // "true" - значение по умолчанию, если ключ отсутствует
ipv4Enable.setChecked(ipv4Enabled);
ipv4Enable.setOnPreferenceChangeListener((preference, newValue) -> {
// Modify properties
// Convert Object to boolean
boolean newValueBoolean = (boolean) newValue;
//properties.setProperty("ipv4", String.valueOf(newValueBoolean)); // assuming "ipv4" is the key
// Save modified properties
writeConfiguration(properties, "ipv4", String.valueOf(newValueBoolean));
return true;
});
CheckBoxPreference ipv6Enable = (CheckBoxPreference) findPreference("ipv6EnablePreference");
boolean ipv6Enabled = Boolean.parseBoolean(properties.getString("ipv6", "false"));
ipv6Enable.setChecked(ipv6Enabled);
ipv6Enable.setOnPreferenceChangeListener((preference, newValue) -> {
// Modify properties
// Convert Object to boolean
boolean newValueBoolean = (boolean) newValue;
//properties.setProperty("ipv6", String.valueOf(newValueBoolean)); // assuming "ipv4" is the key
// Save modified properties
writeConfiguration(properties, "ipv6", String.valueOf(newValueBoolean));
return true;
});
// Example for portPreference (EditTextPreference)
EditTextPreference portPreference = (EditTextPreference) findPreference("portPreference");
String portValue = properties.getString("port", "auto");
portPreference.setText(portValue);
portPreference.setOnPreferenceChangeListener((preference, newValue) -> {
// Modify properties
/*Properties properties = readProperties();
// Convert Object to String (assuming "port" is the key)
String newValueString = newValue.toString();
properties.setProperty("port", newValueString);
// Save modified properties
writeProperties(properties);*/
Toast.makeText(MainPreferenceActivity.this, "For security reasons, changes are not allowed. If you really want this, open the config.", Toast.LENGTH_SHORT).show();
return true;
});
// Example for bandwidthPreference (ListPreference)
ListPreference bandwidthPreference = (ListPreference) findPreference("bandwidthPreference");
String bandwidthValue = properties.getString("bandwidth", "L");
bandwidthPreference.setValue(bandwidthValue);
bandwidthPreference.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
//properties.setProperty("bandwidth", newValueString);
writeConfiguration(properties, "bandwidth", newValueString);
return true;
});
// Example for noTransitPreference (CheckBoxPreference)
CheckBoxPreference noTransitPreference = (CheckBoxPreference) findPreference("noTransitPreference");
boolean noTransitPreferenceEnabled = Boolean.parseBoolean(properties.getString("notransit", "false"));
noTransitPreference.setChecked(noTransitPreferenceEnabled);
noTransitPreference.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
//properties.setProperty("notransit", String.valueOf(newValueBoolean));
writeConfiguration(properties, "notransit", String.valueOf(newValueBoolean));
return true;
});
CheckBoxPreference floodfillPreference = (CheckBoxPreference) findPreference("floodfillPreference");
boolean floodfillPreferenceEnabled = Boolean.parseBoolean(properties.getString("floodfill", "false"));
floodfillPreference.setChecked(floodfillPreferenceEnabled);
floodfillPreference.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
//properties.setProperty("floodfill", String.valueOf(newValueBoolean));
writeConfiguration(properties, "floodfill", String.valueOf(newValueBoolean));
return true;
});
// ^^^ general
// vvv not general (sections name)
CheckBoxPreference ssuPreference = (CheckBoxPreference) findPreference("ssuPreference");
boolean ssuPreferenceEnabled = Boolean.parseBoolean(properties.getString("ssu2.enabled", "true"));
ssuPreference.setChecked(ssuPreferenceEnabled);
ssuPreference.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("ssu2.enabled", String.valueOf(newValueBoolean));
writeConfiguration(properties);
return true; // Allow the change
});
// NTCP2 Category
CheckBoxPreference ntcp2Enable = (CheckBoxPreference) findPreference("ntcp2EnablePreference");
boolean ntcp2EnabledPreference = Boolean.parseBoolean(properties.getString("ntcp2.enabled", "true"));
ntcp2Enable.setChecked(ntcp2EnabledPreference);
ntcp2Enable.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("ntcp2.enabled", String.valueOf(newValueBoolean));
writeConfiguration(properties);
return true; // Allow the change
});
CheckBoxPreference ntcp2Publish = (CheckBoxPreference) findPreference("ntcp2PublishPreference");
boolean ntcp2PublishEnabledPreference = Boolean.parseBoolean(properties.getString("ntcp2.published", "true"));
ntcp2Publish.setChecked(ntcp2EnabledPreference);
ntcp2Publish.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("ntcp2.published", String.valueOf(newValueBoolean));
writeConfiguration(properties);
return true; // Allow the change
});
// Web Console Category
CheckBoxPreference webConsoleEnable = (CheckBoxPreference) findPreference("webConsoleEnablePreference");
boolean webConsoleEnableValue = Boolean.parseBoolean(properties.getString("http.enabled", "false"));
webConsoleEnable.setChecked(webConsoleEnableValue);
webConsoleEnable.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("http.enabled", String.valueOf(newValueBoolean));
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference webConsoleAddress = (EditTextPreference) findPreference("webConsoleAddressPreference");
String webConsoleAddressValue = properties.getString("http.address", "127.0.0.1");
webConsoleAddress.setText(webConsoleAddressValue);
webConsoleAddress.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("http.address", newValueString);
writeConfiguration(properties);
return true;
});
EditTextPreference webConsolePort = (EditTextPreference) findPreference("webConsolePortPreference");
String webConsolePortValue = properties.getString("http.port", "7070");
webConsolePort.setText(webConsolePortValue);
webConsolePort.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("http.port", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
CheckBoxPreference webConsoleAuth = (CheckBoxPreference) findPreference("webConsoleAuthPreference");
boolean webConsoleAuthValue = Boolean.parseBoolean(properties.getString("http.auth", "false"));
webConsoleAuth.setChecked(webConsoleAuthValue);
webConsoleAuth.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("http.auth", String.valueOf(newValueBoolean));
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference webConsoleUser = (EditTextPreference) findPreference("webConsoleUserPreference");
String webConsoleUserValue = properties.getString("http.user", "user");
webConsoleUser.setText(webConsoleUserValue);
webConsoleUser.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("http.user", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference webConsolePassword = (EditTextPreference) findPreference("webConsolePasswordPreference");
String webConsolePasswordValue = properties.getString("http.pass", "pass");
webConsolePassword.setText(webConsolePasswordValue);
webConsolePassword.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("http.pass", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
// HTTP Proxy Category
CheckBoxPreference httpProxyEnable = (CheckBoxPreference) findPreference("httpProxyEnablePreference");
boolean httpProxyEnabled = Boolean.parseBoolean(properties.getString("httpproxy.enabled", "true"));
httpProxyEnable.setChecked(httpProxyEnabled);
httpProxyEnable.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("httpproxy.enabled", String.valueOf(newValueBoolean));
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference httpProxyAddress = (EditTextPreference) findPreference("httpProxyAddressPreference");
String httpProxyAddressValue = properties.getString("httpproxy.address", "127.0.0.1");
httpProxyAddress.setText(httpProxyAddressValue);
httpProxyAddress.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("httpproxy.address", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference httpProxyPort = (EditTextPreference) findPreference("httpProxyPortPreference");
String httpProxyPortValue = properties.getString("httpproxy.port", "4444");
httpProxyPort.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("httpproxy.port", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference httpProxyKeys = (EditTextPreference) findPreference("httpProxyKeysPreference");
String httpProxyKeyValue = properties.getString("httpproxy.keys", "transient");
httpProxyKeys.setText(httpProxyKeyValue);
httpProxyKeys.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("httpproxy.keys", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
// SOCKS Proxy Category
CheckBoxPreference socksProxyEnable = (CheckBoxPreference) findPreference("socksProxyEnablePreference");
boolean socksProxyEnabled = Boolean.parseBoolean(properties.getString("socksproxy.enabled", "true"));
socksProxyEnable.setChecked(socksProxyEnabled);
socksProxyEnable.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("socksproxy.enabled", String.valueOf(newValueBoolean));
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference socksProxyAddress = (EditTextPreference) findPreference("socksProxyAddressPreference");
String socksProxyAddressValue = properties.getString("socksproxy.address", "127.0.0.1");
socksProxyAddress.setText(socksProxyAddressValue);
socksProxyAddress.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("socksproxy.address", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference socksProxyPort = (EditTextPreference) findPreference("socksProxyPortPreference");
String socksProxyPortValue = properties.getString("socksproxy.port", "4447");
socksProxyPort.setText(socksProxyPortValue);
socksProxyPort.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("socksproxy.port", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference socksProxyKeys = (EditTextPreference) findPreference("socksProxyKeysPreference");
String socksProxyKeysValue = properties.getString("socksproxy.keys", "transient");
socksProxyKeys.setText(socksProxyKeysValue);
socksProxyKeys.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("socksproxy.keys", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
// SAM Category
CheckBoxPreference samEnable = (CheckBoxPreference) findPreference("samEnablePreference");
boolean samEnableValue = Boolean.parseBoolean(properties.getString("sam.enabled", "true"));
samEnable.setChecked(samEnableValue);
samEnable.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("sam.enabled", String.valueOf(newValueBoolean));
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference samAddress = (EditTextPreference) findPreference("samAddressPreference");
String samAddressValue = properties.getString("sam.address", "127.0.0.1");
samAddress.setText(samAddressValue);
samAddress.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("sam.address", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference samPort = (EditTextPreference) findPreference("samPortPreference");
String samPortValue = properties.getString("sam.port", "7656");
samPort.setText(samPortValue);
samPort.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("sam.port", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
// UPnP Category
CheckBoxPreference upnpEnable = (CheckBoxPreference) findPreference("upnpEnablePreference");
boolean upnpEnableValue = Boolean.parseBoolean(properties.getString("upnp.enabled", "true"));
upnpEnable.setChecked(upnpEnableValue);
upnpEnable.setOnPreferenceChangeListener((preference, newValue) -> {
boolean newValueBoolean = (boolean) newValue;
properties.setProperty("upnp.enabled", String.valueOf(newValueBoolean));
// Save modified properties
writeConfiguration(properties);
return true;
});
EditTextPreference upnpForwardName = (EditTextPreference) findPreference("upnpForwardNamePreference");
String upnpForwardNameValue = properties.getString("upnp.name", "I2Pd");
upnpForwardName.setText(upnpForwardNameValue);
upnpForwardName.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("upnp.name", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
// Limits Category
EditTextPreference transitTunnelEdit = (EditTextPreference) findPreference("transitTunnelPreference");
String transitTunnelValue = properties.getString("limits.transittunnels", "3000");
transitTunnelEdit.setText(transitTunnelValue);
transitTunnelEdit.setOnPreferenceChangeListener((preference, newValue) -> {
String newValueString = newValue.toString();
properties.setProperty("limits.transittunnels", newValueString);
// Save modified properties
writeConfiguration(properties);
return true;
});
}
/*
private Properties readProperties() {
if (isOldConfigExists) {
Toast.makeText(this, oldConfigErrMsg, Toast.LENGTH_SHORT).show();
}
Properties properties = new Properties();
try (FileReader reader = new FileReader(CONFIG_FILE_PATH)) {
properties.load(reader);
} catch (IOException e) {
e.printStackTrace();
}
return properties;
}
*/
/*
private void writeProperties(Properties properties) {
if (isOldConfigExists) {
Toast.makeText(this, oldConfigErrMsg, Toast.LENGTH_SHORT).show();
} else {
try (FileWriter writer = new FileWriter(CONFIG_FILE_PATH)) {
properties.store(writer, "Updated properties");
} catch (IOException e) {
e.printStackTrace();
}
}
}*/
private INIConfiguration readConfiguration() {
INIConfiguration iniConfiguration = new INIConfiguration();
try (FileReader reader = new FileReader(CONFIG_FILE_PATH)) {
iniConfiguration.read(reader);
} catch (Exception e) {
e.printStackTrace();
}
return iniConfiguration;
}
private void writeConfiguration(INIConfiguration iniConfiguration)
{
writeConfiguration(iniConfiguration, "", "");
}
private void writeConfiguration(INIConfiguration iniConfiguration, String option, String value) {
try (FileWriter writer = new FileWriter(CONFIG_FILE_PATH)) {
StringWriter stringWriter = new StringWriter();
iniConfiguration.write(stringWriter);
String configFileContent = stringWriter.toString();
// Удаление пустых секций из строки конфигурации
String regexEmptySections = "(\\[\\w+\\]\\n(\\n|$)|\\[\\w+\\](\\z|\\Z))";
configFileContent = configFileContent.replaceAll(regexEmptySections, "");
// Если указана опция для перемещения
if (!option.isEmpty()) {
Log.d("configFileContent","option is not empty");
String optionPattern = option + "\\s+?=\\s+?\\w+"; // Паттерн для поиска опции с присваиванием в начале строки
Log.d("confiFileContent","config File contains option");
if (configFileContent.contains(option)) configFileContent = configFileContent.replaceAll(optionPattern, ""); // Удаляем первое вхождение
Log.d("confiFileContent", option);
Log.d("confiFileContent", value);
Log.d("confiFileContent","Add on start line");
configFileContent = option + "=" + value + "\n" + configFileContent;
}
Log.d("configFileContent", configFileContent);
writer.write(configFileContent);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@@ -11,8 +11,12 @@ import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.Switch;
import java.io.File;
import java.util.List;
import java.util.Objects;
@@ -21,7 +25,6 @@ import java.util.Objects;
//import org.purplei2p.i2pd.iniedotr.IniEditor;
public class SettingsActivity extends Activity {
//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.
@@ -83,9 +86,16 @@ public class SettingsActivity extends Activity {
setContentView(R.layout.activity_settings);
Objects.requireNonNull(getActionBar()).setDisplayHomeAsUpEnabled(true);
Switch autostart_switch = findViewById(R.id.autostart_enable);
Button openPreferences = findViewById(R.id.OpenPreferences);
cacheDir = getApplicationContext().getCacheDir();
File onBoot = new File(cacheDir.getAbsolutePath() + onBootFileName);
openPreferences.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(SettingsActivity.this, MainPreferenceActivity.class);
startActivity(intent);
}
});
autostart_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// do something, the isChecked will be
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -52,7 +52,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textAppearance="@android:style/TextAppearance.Material.Large"
android:textAppearance="@android:style/TextAppearance.Large"
android:textColor="#DFDFDF" />
<Space
@@ -65,7 +65,7 @@
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/services"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="#DFDFDF" />
<TableLayout
@@ -84,7 +84,7 @@
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_http_proxy"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#DFDFDF" />
</TableRow>
@@ -100,7 +100,7 @@
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_socks_proxy"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#DFDFDF" />
</TableRow>
@@ -115,7 +115,7 @@
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_bob"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#DFDFDF" />
</TableRow>
@@ -130,7 +130,7 @@
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_sam"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#DFDFDF" />
</TableRow>
@@ -145,11 +145,11 @@
android:layout_height="wrap_content"
android:clickable="false"
android:text="@string/services_i2cp"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#DFDFDF" />
</TableRow>
</TableLayout>
</LinearLayout>
</ScrollView>
</ScrollView>
@@ -28,6 +28,18 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/OpenPreferences"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/OpenPreferences" />
</LinearLayout>
<!--
<TextView
android:id="@+id/settings_section2"
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Síť bez hranic</string>
<string name="action_start">Začít</string>
<string name="action_stop">Zastavit</string>
<string name="action_exit">Odejít</string>
<string name="action_graceful_stop">Hladké vypnutí</string>
<string name="action_cancel_graceful_stop">Zrušit hladké vypnutí</string>
<string name="action_reload_tunnels_config">Znovu načíst tunely</string>
<string name="action_start_webview">Otevřít webovou konzoli</string>
<string name="action_settings">Nastavení</string>
<string name="graceful_stop_is_already_in_progress">Hladké vypnutí již probíhá</string>
<string name="graceful_stop_is_in_progress">Hladké vypnutí právě probíhá</string>
<string name="gracefulShutdownInProgress">Hladké vypnutí právě probíhá</string>
<string name="already_stopped">Již zastaveno</string>
<string name="uninitialized">Aplikace se inicializuje...</string>
<string name="starting">Aplikace se zapíná...</string>
<string name="jniLibraryLoaded">JNI knihovny načteny</string>
<string name="startedOkay">Aplikace spuštěna</string>
<string name="startFailed">Spuštění se nezdrařilo</string>
<string name="stopped">Aplikace zastavena</string>
<string name="stopping">Aplikace se vypíná...</string>
<string name="remaining">zbývá</string>
<string name="services">Vnitřní služby</string>
<string name="services_http_proxy">HTTP Proxy</string>
<string name="services_socks_proxy">SOCKS5 Proxy</string>
<string name="title_activity_i2_pdperms_asker_prompt">Výzva</string>
<string name="permDenied">Oprávnění k zápisu na SD kartu bylo zamítnuto. Abyste mohli pokračovat, je třeba toto oprávnění povolit</string>
<string name="permRequired">Pro zápis klíčů a dalších souborů do I2PD složky na SD kartu je vyžadován přístup k SD kartě.</string>
<string name="retryPermRequest">Opakovat žádost o oprávnění k zápisu na SD kartu</string>
<string name="menu_item_battery_optimizations_str">Optimalizace baterie</string>
<string name="battery_optimizations_enabled">Optimalizace baterie je zapnutá</string>
<string name="battery_optimizations_enabled_explained">Váš Android dělá na I2PD náročné optimalizace baterie, což by mohlo vést k uzavření I2PD služby bez jediného důvodu.\nDoporučuje se povolit vypnutí optimalizace baterie.</string>
<string name="battery_optimizations_enabled_dialog">Váš Android dělá na I2PD náročné optimalizace baterie, což by mohlo vést k uzavření I2PD služby bez jediného důvodu.\n\nNyní budete požádáni o zakázání této optimalizace.</string>
<string name="continue_str">Pokračovat</string>
<string name="device_does_not_support_disabling_battery_optimizations">Vaše verze Androidu nepodporuje vypnutí optimalizace baterie</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Vaše verze Android OS nepodporuje zobrazování dialogových oken pro optimalizaci baterie pro aplikace.</string>
<string name="shutdown_canceled">Plánované vypnutí zrušeno</string>
<string name="tunnels_reloading">Obnovuji konfiguraci tunelů...</string>
<string name="settings_section0">Základní nastavení</string>
<string name="settings_section_tunnels">Tunely</string>
<string name="autostart_enabled">Spustit při spuštění systému</string>
<string name="add_tunnel_button">Přidat tunel</string>
<string name="add_tunnel">Správa tunelů</string>
<string name="del_tunnel_button">Smazat tunel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Red sin fronteras</string>
<string name="action_start">Iniciar</string>
<string name="action_stop">Detener</string>
<string name="action_exit">Salir</string>
<string name="action_graceful_stop">Parar con gracia</string>
<string name="action_cancel_graceful_stop">Cancelar parada con gracia</string>
<string name="action_reload_tunnels_config">Recargar túneles</string>
<string name="action_start_webview">Abrir Consola Web</string>
<string name="action_settings">Ajustes</string>
<string name="graceful_stop_is_already_in_progress">La parada con gracia ya se ha iniciado</string>
<string name="graceful_stop_is_in_progress">La parada con gracia está en proceso</string>
<string name="gracefulShutdownInProgress">Apagado con gracia en proceso</string>
<string name="already_stopped">Ya se ha parado</string>
<string name="uninitialized">Inicializando aplicación...</string>
<string name="starting">Iniciando aplicación...</string>
<string name="jniLibraryLoaded">Bibliotecas JNI cargadas</string>
<string name="startedOkay">Aplicación iniciada</string>
<string name="startFailed">Error al iniciar</string>
<string name="stopped">Aplicación detenida</string>
<string name="stopping">Deteniendo aplicación...</string>
<string name="remaining">restantes</string>
<string name="services">Servicios internos</string>
<string name="services_http_proxy">Proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Permiso</string>
<string name="permDenied">Permiso de escribir a la tarjeta SD denegado, necesitas permitirlo para continuar</string>
<string name="permRequired">Se requiere acceso de escritura de la tarjeta SD para escribir las claves y otros archivos en la carpeta I2PD de la tarjeta SD.</string>
<string name="retryPermRequest">Preguntar permisos de escritura de tarjeta SD de nuevo</string>
<string name="menu_item_battery_optimizations_str">Optimizaciones de Batería</string>
<string name="battery_optimizations_enabled">Optimizaciones de batería activadas</string>
<string name="battery_optimizations_enabled_explained">Tu Android está realizando optimizaciones de batería importantes en I2PD que pueden ocasionar que el servicio se cierre sin razón.\nEs recomendable que desactives esas optimizaciones de batería.</string>
<string name="battery_optimizations_enabled_dialog">Tu Android estáTu Android está realizando optimizaciones de batería importantes en I2PD que pueden ocasionar que el servicio se cierre sin razón.\n\nSe te pedirá que las desactives.</string>
<string name="continue_str">Continuar</string>
<string name="device_does_not_support_disabling_battery_optimizations">Tu versión de Android no soporta desactivar las optimizaciones de batería</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Tu versión de S.O Android no soporta desactivar optimizaciones de batería para ciertas aplicaciones.</string>
<string name="shutdown_canceled">Apagado planeado cancelado</string>
<string name="tunnels_reloading">Recargando configuración de túneles...</string>
<string name="settings_section0">Ajustes comunes</string>
<string name="settings_section_tunnels">Túneles</string>
<string name="autostart_enabled">Iniciar al arrancar</string>
<string name="add_tunnel_button">Añadir túnel</string>
<string name="add_tunnel">Gestión de túneles</string>
<string name="del_tunnel_button">Borrar túnel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Réseau sans frontières</string>
<string name="action_start">Démarrer</string>
<string name="action_stop">Arrêter</string>
<string name="action_exit">Quitter</string>
<string name="action_graceful_stop">Arrêt gracieux</string>
<string name="action_cancel_graceful_stop">Annuler l\'arrêt gracieux</string>
<string name="action_reload_tunnels_config">Actualiser les tunnels</string>
<string name="action_start_webview">Ouvrir console web</string>
<string name="action_settings">Paramètres</string>
<string name="graceful_stop_is_already_in_progress">Arrêt gracieux déjà en cours</string>
<string name="graceful_stop_is_in_progress">Arrêt gracieux en cours</string>
<string name="gracefulShutdownInProgress">Fermeture gracieuse en cours</string>
<string name="already_stopped">Déjà arrêté</string>
<string name="uninitialized">Initialisation de l\'application...</string>
<string name="starting">Démarrage de l\'application...</string>
<string name="jniLibraryLoaded">Librairies JNI chargées</string>
<string name="startedOkay">Application démarrée</string>
<string name="startFailed">Démarrage échoué</string>
<string name="stopped">Application arrêtée</string>
<string name="stopping">Arrêt de l\'application...</string>
<string name="remaining">restant</string>
<string name="services">Services internes</string>
<string name="services_http_proxy">Proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Message</string>
<string name="permDenied">Permission d\'écrire sur la carte SD refusée, vous devez autoriser pour continuer</string>
<string name="permRequired">La permission d\'écrire sur la carte SD est requise pour écrire les clés et autres fichiers dans le dossier I2PD sur la carte SD.</string>
<string name="retryPermRequest">Réessayer de demander la permission d\'écrire sur la carte SD</string>
<string name="menu_item_battery_optimizations_str">Optimisations de la pile</string>
<string name="battery_optimizations_enabled">Optimisations de la pile activées</string>
<string name="battery_optimizations_enabled_explained">Votre Android fait de l\'optimisation de pile importante pour I2PD et ceci peut mener à l\'arrêt du daemon sans aucune autre raison.\nIl est recommandé d\'autoriser la désactivation de cette optimisation de pile.</string>
<string name="battery_optimizations_enabled_dialog">Votre Android fait de l\'optimisation de pile importante pour I2PD et ceci peut mener à l\'arrêt du daemon sans aucune autre raison.\n\nVous allez maintenant vous faire demander d\'autoriser la désactivation de cette optimisation.</string>
<string name="continue_str">Continuer</string>
<string name="device_does_not_support_disabling_battery_optimizations">Votre version d\'Android ne supporte pas la désactivation de l\'optimisation de pile</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Votre version d\'Android ne supporte pas l\'affichage du dialogue de l\'optimisation de pile pour les applications.</string>
<string name="shutdown_canceled">Fermeture planifiée annulée</string>
<string name="tunnels_reloading">Actualisation de la configuration des tunnels...</string>
<string name="settings_section0">Paramètres généraux</string>
<string name="settings_section_tunnels">Tunnels</string>
<string name="autostart_enabled">Lancer au démarrage</string>
<string name="add_tunnel_button">Ajouter tunnel</string>
<string name="add_tunnel">Gestion des tunnels</string>
<string name="del_tunnel_button">Supprimer tunnel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Rete senza confini</string>
<string name="action_start">Avvia</string>
<string name="action_stop">Arresta</string>
<string name="action_exit">Esci</string>
<string name="action_graceful_stop">Interruzione controllata</string>
<string name="action_cancel_graceful_stop">Annulla interruzione controllata</string>
<string name="action_reload_tunnels_config">Ricarica i tunnel</string>
<string name="action_start_webview">Apri la console web</string>
<string name="action_settings">Impostazioni</string>
<string name="graceful_stop_is_already_in_progress">L\'interruzione controllata è già in corso</string>
<string name="graceful_stop_is_in_progress">L\'interruzione controllata è in corso</string>
<string name="gracefulShutdownInProgress">Interruzione controllata in corso</string>
<string name="already_stopped">Già interrotto</string>
<string name="uninitialized">Inizializzazione dell\'applicazione...</string>
<string name="starting">L\'applicazione si sta avviando...</string>
<string name="jniLibraryLoaded">Caricate le librerie JNI</string>
<string name="startedOkay">Applicazione avviata</string>
<string name="startFailed">Avvio fallito</string>
<string name="stopped">Applicazione arrestata</string>
<string name="stopping">Applicazione in arresto...</string>
<string name="remaining">rimanenti</string>
<string name="services">Servizi interni</string>
<string name="services_http_proxy">Proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Messaggio</string>
<string name="permDenied">Permesso di scrittura scheda SD negato, è necessario consentirlo per continuare</string>
<string name="permRequired">L\'accesso in scrittura della scheda SD è richiesto per scrivare le chiavi e gli altri file nella cartella I2PD sulla scheda SD.</string>
<string name="retryPermRequest">Riprova a richiedere il permesso di scrittura sulla scheda SD</string>
<string name="menu_item_battery_optimizations_str">Ottimizzazione batteria</string>
<string name="battery_optimizations_enabled">Ottimizzazione batteria abilitata</string>
<string name="battery_optimizations_enabled_explained">Il tuo dispositivo Android sta eseguendo alcune pesanti ottimizzazioni della batteria su I2PD che potrebbero comportare l\'arresto di quest\'ultimo senza alcun motivo.\nSi raccomanda di consentire a I2PD di disabilitare queste ottimizzazioni della batteria.</string>
<string name="battery_optimizations_enabled_dialog">Il tuo dispositivo Android sta eseguendo alcune pesanti ottimizzazioni della batteria su I2PD che potrebbero comportare l\'arresto di quest\'ultimo senza alcun motivo.\n\nOra verrà richiesto di disabilitare queste ottimizzazioni della batteria.</string>
<string name="continue_str">Continua</string>
<string name="device_does_not_support_disabling_battery_optimizations">La versione del tuo dispositivo Android non supporta l\'esclusione delle ottimizzazioni della batteria</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">La versione del tuo dispositivo Android non supporta la visualizzazione della finestra di dialogo per l\'ottimizzazione della batteria per le applicazioni.</string>
<string name="shutdown_canceled">Arresto programmato annullato</string>
<string name="tunnels_reloading">Ricaricando le configurazioni dei tunnel...</string>
<string name="settings_section0">Impostazioni generali</string>
<string name="settings_section_tunnels">Tunnel</string>
<string name="autostart_enabled">Avvia all\'accensione</string>
<string name="add_tunnel_button">Aggiungi tunnel</string>
<string name="add_tunnel">Gestione tunnel</string>
<string name="del_tunnel_button">Elimina tunnel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Sieć bez granic</string>
<string name="action_start">Rozpocznij</string>
<string name="action_stop">Zatrzymaj</string>
<string name="action_exit">Wyjdź</string>
<string name="action_graceful_stop">Łagodne zatrzymanie</string>
<string name="action_cancel_graceful_stop">Anuluj łagodne zatrzymanie</string>
<string name="action_reload_tunnels_config">Załaduj ponownie tunele</string>
<string name="action_start_webview">Otwórz konsolę Web</string>
<string name="action_settings">Ustawienia</string>
<string name="graceful_stop_is_already_in_progress">Łagodne zatrzymanie jest już w toku</string>
<string name="graceful_stop_is_in_progress">Łagodne zatrzymanie w toku</string>
<string name="gracefulShutdownInProgress">Łagodne wyłączenie w toku</string>
<string name="already_stopped">Już zatrzymano</string>
<string name="uninitialized">Inicjowanie aplikacji...</string>
<string name="starting">Uruchamianie aplikacji...</string>
<string name="jniLibraryLoaded">Wczytano biblioteki JNI</string>
<string name="startedOkay">Aplikacja rozpoczęta</string>
<string name="startFailed">Start nie powiódł się</string>
<string name="stopped">Aplikacja zatrzymana</string>
<string name="stopping">Zatrzymywanie aplikacji...</string>
<string name="remaining">pozostało</string>
<string name="services">Usługi wewnętrzne</string>
<string name="services_http_proxy">Serwer proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Informacja</string>
<string name="permDenied">Odmowa uprawnienia do zapisu karty SD, musisz zezwolić na kontynuowanie</string>
<string name="permRequired">Dostęp do zapisu karty SD jest wymagany do zapisywania kluczy i innych plików w folderze I2PD na karcie SD.</string>
<string name="retryPermRequest">Spróbuj ponownie poprosić o uprawnienia do zapisu karty SD</string>
<string name="menu_item_battery_optimizations_str">Optymalizacja baterii</string>
<string name="battery_optimizations_enabled">Optymalizacje zużycia baterii włączone</string>
<string name="battery_optimizations_enabled_explained">Twój Android wykonuje ciężkie optymalizacje baterii na I2PD, co może doprowadzić do zamknięcia demona bez żadnego innego powodu.\nZaleca się wyłączenie optymalizacji baterii.</string>
<string name="battery_optimizations_enabled_dialog">Twój Android wykonuje ciężkie optymalizacje baterii na I2PD, co może doprowadzić do zamknięcia demona bez żadnego innego powodu.\n\nZostaniesz teraz poproszony o zezwolenie na ich wyłączenie.</string>
<string name="continue_str">Kontynuuj</string>
<string name="device_does_not_support_disabling_battery_optimizations">Twoja wersja Androida nie obsługuje rezygnacji z optymalizacji baterii</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Twoja wersja Android OS nie obsługuje wyświetlania okna dialogowego optymalizacji baterii dla aplikacji.</string>
<string name="shutdown_canceled">Anulowano planowane wyłączenie</string>
<string name="tunnels_reloading">Przeładowywanie konfiguracji tuneli...</string>
<string name="settings_section0">Ustawienia ogólne</string>
<string name="settings_section_tunnels">Tunele</string>
<string name="autostart_enabled">Uruchom przy starcie systemu</string>
<string name="add_tunnel_button">Dodaj tunel</string>
<string name="add_tunnel">Zarządzanie tunelami</string>
<string name="del_tunnel_button">Usuń tunel</string>
</resources>
+46
View File
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Rede sem fronteiras</string>
<string name="action_start">Iniciar</string>
<string name="action_stop">Parar</string>
<string name="action_exit">Sair</string>
<string name="action_graceful_stop">Saída Graciosa</string>
<string name="action_cancel_graceful_stop">Cancelar Saída Graciosa</string>
<string name="action_reload_tunnels_config">Recarregar túneis</string>
<string name="action_start_webview">Abrir o Web Console</string>
<string name="action_settings">Configurações</string>
<string name="graceful_stop_is_already_in_progress">Saída Graciosa já está em progresso</string>
<string name="graceful_stop_is_in_progress">Saída Graciosa em progresso</string>
<string name="gracefulShutdownInProgress">Desligamento gracioso em progresso</string>
<string name="already_stopped">Já parou</string>
<string name="uninitialized">Iniciando aplicação...</string>
<string name="starting">Iniciando aplicação...</string>
<string name="jniLibraryLoaded">Bibliotecas JNI carregadas</string>
<string name="startedOkay">Aplicação iniciada</string>
<string name="startFailed">Inicialização falhou</string>
<string name="stopped">Aplicação parou</string>
<string name="stopping">Parando aplicação...</string>
<string name="remaining">restando</string>
<string name="services">Serviços internos</string>
<string name="services_http_proxy">Proxy HTTP</string>
<string name="services_socks_proxy">Proxy SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Permissão</string>
<string name="permDenied">Permissão de escrita no cartão SD foi negada, você precisa permitir isso para continuar</string>
<string name="permRequired">Permissão de escrita no cartão SD é necessária para gravar as chaves e outros arquivos na pasta do I2PD no cartão SD.</string>
<string name="retryPermRequest">Tente novamente solicitar a permissão de escrita no cartão SD</string>
<string name="menu_item_battery_optimizations_str">Otimizações da Bateria</string>
<string name="battery_optimizations_enabled">Otimizações da bateria ativadas</string>
<string name="battery_optimizations_enabled_explained">O seu sistema está realizando fortes otimizações de uso de bateria pelo I2PD que podem levar a fechamentos inesperados do serviço.\nÉ recomendando desativar estas otimizações.</string>
<string name="battery_optimizations_enabled_dialog">O seu sistema está realizando fortes otimizações de uso de bateria pelo I2PD que podem levar a fechamentos inesperados do serviço.\n\nVocê será solicitado a desativá-las.</string>
<string name="continue_str">Continuar</string>
<string name="device_does_not_support_disabling_battery_optimizations">A sua versão do Android não suporta a opção de não usar otimizações de bateria</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">A versão do seu sistema Android não suporta mostrar a caixa de diálogo para otimizações de bateria para aplicativos.</string>
<string name="shutdown_canceled">Desligamento planejado cancelado</string>
<string name="tunnels_reloading">Recarregando configurações dos túneis...</string>
<string name="settings_section0">Configurações comuns</string>
<string name="settings_section_tunnels">Túneis</string>
<string name="autostart_enabled">Iniciar no boot</string>
<string name="add_tunnel_button">Adicionar túnel</string>
<string name="add_tunnel">Gerenciamento de túneis</string>
<string name="del_tunnel_button">Exclui túnel</string>
</resources>
+7 -17
View File
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Сеть без границ</string>
<string name="action_start">Запустить</string>
<string name="action_stop">Остановить</string>
<string name="action_exit">Выход</string>
@@ -10,11 +9,9 @@
<string name="action_reload_tunnels_config">Перезагрузить туннели</string>
<string name="action_start_webview">Открыть Веб Консоль</string>
<string name="action_settings">Настройки</string>
<string name="graceful_stop_is_already_in_progress">Корректная остановка уже запущена</string>
<string name="graceful_stop_is_in_progress">Корректная остановка запущена</string>
<string name="gracefulShutdownInProgress">Корректная остановка запущена</string>
<string name="already_stopped">Уже остановлено</string>
<string name="uninitialized">Приложение инициализируется...</string>
<string name="starting">Приложение запускается...</string>
@@ -22,13 +19,15 @@
<string name="startedOkay">Приложение запущено</string>
<string name="startFailed">Запуск не удался</string>
<string name="stopped">Приложение было остановлено</string>
<string name="stopping">Остановка приложения...</string>
<string name="remaining">осталось</string>
<string name="services">Внутренние сервисы</string>
<string name="services_http_proxy">HTTP Прокси</string>
<string name="services_socks_proxy">SOCKS5 Прокси</string>
<string name="title_activity_i2_pdperms_asker_prompt">Запрос</string>
<string name="permDenied">Права для записи на SD карту отклонены, вам необходимо предоставить их для продолжения</string>
<string name="permRequired">Права на запись на SD карту необходимы для записи ключей и других файлов в папку I2PD на внутренней памяти.</string>
<string name="retryPermRequest">Повторить запрос прав на запись на SD карту</string>
<string name="menu_item_battery_optimizations_str">Оптимизации аккумулятора</string>
<string name="battery_optimizations_enabled">Оптимизации аккумулятора включены</string>
<string name="battery_optimizations_enabled_explained">Ваша операционная система осуществляет оптимизации расхода аккумулятора, которые могут приводить к выгрузке I2PD из памяти и прекращению его работы с целью сэкономить заряд аккумулятора.\nРекомендуется отключить эти оптимизации.</string>
@@ -36,22 +35,13 @@
<string name="continue_str">Продолжить</string>
<string name="device_does_not_support_disabling_battery_optimizations">Ваша версия Андроид не поддерживает отключение оптимизаций аккумулятора</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Ваша версия Андроид не поддерживает показ диалога об оптимизациях аккумулятора для приложений.</string>
<string name="shutdown_canceled">Плановая остановка отменена</string>
<string name="tunnels_reloading">Перезагрузка конфигурации туннелей...</string>
<string name="autostart_enabled">Запуск после загрузки телефона</string>
<string name="settings_section0">Основные настройки</string>
<string name="settings_section_tunnels">Туннели</string>
<string name="autostart_enabled">Запуск после загрузки телефона</string>
<string name="add_tunnel_button">Добавить туннель</string>
<string name="add_tunnel">Управление туннелями</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>
<string name="OpenPreferences">Открыть основные настройки</string>
</resources>
+5 -12
View File
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<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>
@@ -10,11 +9,9 @@
<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>
@@ -22,13 +19,15 @@
<string name="startedOkay">Uygulama başlatıldı</string>
<string name="startFailed">Başlatılamadı</string>
<string name="stopped">Uygulama durduruldu</string>
<string name="stopping">Uygulama durduruluyor...</string>
<string name="remaining">kalan</string>
<string name="services">İç servisler</string>
<string name="services_http_proxy">HTTP Proxy</string>
<string name="services_socks_proxy">SOCKS5 Proxy</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>
@@ -36,18 +35,12 @@
<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 xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Мережа без кордонів</string>
<string name="action_start">Почати</string>
<string name="action_stop">Зупинити</string>
<string name="action_exit">Вийти</string>
<string name="action_graceful_stop">Плавна зупинка</string>
<string name="action_cancel_graceful_stop">Скасувати плавну зупинку</string>
<string name="action_reload_tunnels_config">Перезавантажити тунелі</string>
<string name="action_start_webview">Відкрити веб-консоль</string>
<string name="action_settings">Налаштування</string>
<string name="graceful_stop_is_already_in_progress">Плавна зупинка вже виконується</string>
<string name="graceful_stop_is_in_progress">Плавна зупинка у процесі</string>
<string name="gracefulShutdownInProgress">Виконується плавне завершення</string>
<string name="already_stopped">Вже зупинено</string>
<string name="uninitialized">Додаток запускається...</string>
<string name="starting">Додаток запускається...</string>
<string name="jniLibraryLoaded">Завантажено бібліотеки JNI</string>
<string name="startedOkay">Запуск додатку</string>
<string name="startFailed">Не вдалося запустити</string>
<string name="stopped">Додаток зупинено</string>
<string name="stopping">Додаток зупиняється...</string>
<string name="remaining">залишилось</string>
<string name="services">Внутрішні служби</string>
<string name="services_http_proxy">Проксі HTTP</string>
<string name="services_socks_proxy">Проксі SOCKS5</string>
<string name="title_activity_i2_pdperms_asker_prompt">Запит</string>
<string name="permDenied">Дозвіл на запис до SD-карти відхилений, Вам необхідно дозволити для продовження</string>
<string name="permRequired">Для запису ключів та інших файлів до теки I2PD на SD-карті потрібен доступ до передачі даних на SD-карті.</string>
<string name="retryPermRequest">Повторити запит на запис до SD-карти</string>
<string name="menu_item_battery_optimizations_str">Оптимізація батареї</string>
<string name="battery_optimizations_enabled">Оптимізацію батареї ввімкнено</string>
<string name="battery_optimizations_enabled_explained">Ваш Android виконує деякі складні оптимізації використання заряду на I2PD, які можуть призвести до встановлення демонів без будь-яких інших причин.\nРекомендується дозволити вимкнення цих оптимізації використання акумулятора.</string>
<string name="battery_optimizations_enabled_dialog">Ваш Android виконує деякі складні оптимізації використання заряду на I2PD, які можуть призвести до встановлення демонів без будь-яких інших причин.\n\nРекомендується дозволити вимкнення цих оптимізації використання акумулятора.</string>
<string name="continue_str">Далі</string>
<string name="device_does_not_support_disabling_battery_optimizations">Ваш пристрій не підтримує відключення оптимізації батареї</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">Ваша версія ОС Android не підтримує відображення діалогу для оптимізації заряду акумулятора для програм.</string>
<string name="shutdown_canceled">Плановане завершення скасоване</string>
<string name="tunnels_reloading">Перезавантаження налаштувань тунелів...</string>
<string name="settings_section0">Загальні налаштування</string>
<string name="settings_section_tunnels">Тунелі</string>
<string name="autostart_enabled">Автозапуск</string>
<string name="add_tunnel_button">Додайте тунель</string>
<string name="add_tunnel">Керування тунелями</string>
<string name="del_tunnel_button">Видалити тунель</string>
</resources>
+46 -46
View File
@@ -1,46 +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>
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">Chegarasiz tarmoq</string>
<string name="action_start">Boshlash</string>
<string name="action_stop">To\'xtatish</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="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="gracefulShutdownInProgress">Yumshoq to\'xtatish amalga oshirilmoqda</string>
<string name="already_stopped">Allaqachon to\'xtatilgan</string>
<string name="uninitialized">Ilova ishga tushiriladi...</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="remaining">qoldi</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="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="retryPermRequest">Endi sizdan ularni o\'chirishga ruxsat berish so\'raladi</string>
<string name="menu_item_battery_optimizations_str">Batareyani optimallashtirish</string>
<string name="battery_optimizations_enabled">Batareya optimallashtirishi yoqilgan</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="continue_str">Davom etish</string>
<string name="device_does_not_support_disabling_battery_optimizations">Sizning Android versiyangiz batareyani optimallashtirishdan voz kechishni qo\'llab-quvvatlamaydi</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="shutdown_canceled">Rejalashtirilgan yumshoq o\'chirish bekor qilindi</string>
<string name="tunnels_reloading">Tunnellar konfiguratsiyalari qayta yuklanmoqda...</string>
<string name="settings_section0">Umumiy sozlamalar</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>
</resources>
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_description2">网络无国界</string>
<string name="action_start">开始运行</string>
<string name="action_stop">停止运行</string>
<string name="action_exit">退出</string>
<string name="action_graceful_stop">平滑关闭</string>
<string name="action_cancel_graceful_stop">取消平滑关闭</string>
<string name="action_reload_tunnels_config">重新加载隧道</string>
<string name="action_start_webview">打开网页控制台</string>
<string name="action_settings">设置</string>
<string name="graceful_stop_is_already_in_progress">平滑退出已在进行...</string>
<string name="graceful_stop_is_in_progress">正在平滑退出</string>
<string name="gracefulShutdownInProgress">正在平滑关闭 剩余时间:</string>
<string name="already_stopped">已停止</string>
<string name="uninitialized">I2Pd 正在初始化...</string>
<string name="starting">I2Pd 正在启动...</string>
<string name="jniLibraryLoaded">已加载Java本地接口库</string>
<string name="startedOkay">I2Pd 已启动</string>
<string name="startFailed">I2Pd 启动失败</string>
<string name="stopped">I2Pd 已停止运行</string>
<string name="stopping">I2Pd 正在停止运行...</string>
<string name="remaining">分钟</string>
<string name="services">内部服务</string>
<string name="services_http_proxy">HTTP 代理</string>
<string name="services_socks_proxy">SOCKS5 代理</string>
<string name="title_activity_i2_pdperms_asker_prompt">需要权限</string>
<string name="permDenied">无法获得 SD 卡写入权限,你需要允许它以继续</string>
<string name="permRequired">需要SD卡写入权限才能将密钥和其他文件写入SD卡上的 I2PD 文件夹中。</string>
<string name="retryPermRequest">尝试重新获取储存权限</string>
<string name="menu_item_battery_optimizations_str">电池优化</string>
<string name="battery_optimizations_enabled">电池优化已启用</string>
<string name="battery_optimizations_enabled_explained">您的安卓设备正在对 I2Pd 使用严格的电池优化策略,这可能导致I2Pd无缘无故停止运行。\n建议关闭电池优化。</string>
<string name="battery_optimizations_enabled_dialog">您的安卓设备正在对 I2Pd 进行严格的电池优化,这可能导致守护进程无缘无故停止运行。\n\n请点击继续以关闭电池优化。</string>
<string name="continue_str">继续</string>
<string name="device_does_not_support_disabling_battery_optimizations">您设备的 Android 版本不支持关闭电池优化</string>
<string name="os_version_does_not_support_battery_optimizations_show_os_dialog_api">您设备的 Android 版本不支持打开电池优化的界面。</string>
<string name="shutdown_canceled">计划关闭已取消</string>
<string name="tunnels_reloading">正在重新加载隧道配置...</string>
<string name="settings_section0">通用设置</string>
<string name="settings_section_tunnels">隧道</string>
<string name="autostart_enabled">开机自启</string>
<string name="add_tunnel_button">添加隧道</string>
<string name="add_tunnel">隧道管理</string>
<string name="del_tunnel_button">删除隧道</string>
</resources>
+1
View File
@@ -60,5 +60,6 @@
<string name="add_tunnel">Tunnels management</string>
<string name="del_tunnel_button">Delete tunnel</string>
<string name="OpenPreferences">Open i2pd settings</string>
</resources>
+67 -42
View File
@@ -3,97 +3,108 @@
<PreferenceCategory android:title="Main">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Log" />
<ListPreference
android:id="@+id/LogLevel"
android:defaultValue="1"
android:entries="@array/pref_loglevel"
android:entryValues="@array/pref_loglevel"
android:key="list_preference_1"
android:key="logLevelPreference"
android:summary="Logging level to file. Use 'none' to reduce memory usage"
android:title="Log level" />
<CheckBoxPreference
android:id="@+id/IPV4Enable"
android:defaultValue="true"
android:key="check_box_preference_1"
android:key="ipv4EnablePreference"
android:title="IPv4" />
<CheckBoxPreference
android:id="@+id/IPV6Enable"
android:defaultValue="false"
android:key="check_box_preference_1"
android:key="ipv6EnablePreference"
android:title="IPv6" />
<EditTextPreference
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:id="@+id/Port"
android:defaultValue="auto"
android:key="portPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<ListPreference
android:id="@+id/BandWithType"
android:entries="@array/pref_bandwidth_limit_flags"
android:entryValues="@array/pref_bandwidth_limit_flags"
android:key="list_preference_1"
android:key="bandwidthPreference"
android:summary="Bandwidth limit for transit traffic"
android:title="Bandwidth" />
<CheckBoxPreference
android:id="@+id/NoTransitCheckbox"
android:defaultValue="false"
android:key="check_box_preference_1"
android:key="noTransitPreference"
android:summary="Disable transit"
android:title="No transit" />
<CheckBoxPreference
android:id="@+id/FloodfillCheckBox"
android:defaultValue="false"
android:key="check_box_preference_1"
android:key="floodfillPreference"
android:summary="Uses more battery"
android:title="Floodfill" />
<CheckBoxPreference
android:id="@+id/SSUCheckBox"
android:defaultValue="true"
android:key="check_box_preference_1"
android:key="ssuPreference"
android:title="SSU" />
</PreferenceCategory>
<PreferenceCategory android:title="NTCP2">
<CheckBoxPreference
android:id="@+id/NTCP2Checkbox"
android:defaultValue="true"
android:key="check_box_preference_1"
android:key="ntcp2EnablePreference"
android:title="Enable" />
<CheckBoxPreference
android:id="@+id/NTCPPublishCheckbox"
android:defaultValue="true"
android:key="check_box_preference_1"
android:key="ntcp2PublishPreference"
android:summary="Disable to make unable to connect to your device"
android:title="Publish" />
</PreferenceCategory>
<PreferenceCategory android:title="Web Console">
<CheckBoxPreference
android:id="@+id/WebConsoleEnableCheckbox"
android:defaultValue="true"
android:key="check_box_preference_1"
android:key="webConsoleEnablePreference"
android:title="Enable" />
<EditTextPreference
android:id="@+id/WebConsoleIPText"
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:key="webConsoleAddressPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:id="@+id/WebConsolePortText"
android:defaultValue="7070"
android:key="edit_text_preference_1"
android:key="webConsolePortPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<CheckBoxPreference
android:id="@+id/WebConsoleUseAuthCheckbox"
android:defaultValue="false"
android:key="check_box_preference_1"
android:key="webConsoleAuthPreference"
android:summary="Use HTTP authorization to access Web Console"
android:title="Autorization" />
android:title="Authorization" />
<EditTextPreference
android:id="@+id/WebConsoleUser"
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:key="webConsoleUserPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="User" />
<EditTextPreference
android:id="@+id/WebConsoleUserPassword"
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:key="webConsolePasswordPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Password" />
@@ -101,24 +112,28 @@
<PreferenceCategory android:title="@string/services_http_proxy">
<CheckBoxPreference
android:id="@+id/EnableHTTPProxy"
android:defaultValue="true"
android:key="check_box_preference_1"
android:key="httpProxyEnablePreference"
android:title="Enable" />
<EditTextPreference
android:id="@+id/HTTPProxyHost"
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:key="httpProxyAddressPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:id="@+id/HTTPProxyPort"
android:defaultValue="4444"
android:key="edit_text_preference_1"
android:key="httpProxyPortPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<EditTextPreference
android:defaultValue="proxy-keys.dat"
android:key="edit_text_preference_1"
android:id="@+id/HTTPProxyKeys"
android:defaultValue="transient"
android:key="httpProxyKeysPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Keys" />
@@ -126,24 +141,28 @@
<PreferenceCategory android:title="SOCKS Proxy">
<CheckBoxPreference
android:id="@+id/SocksProxyEnableCheckbox"
android:defaultValue="false"
android:key="check_box_preference_1"
android:key="socksProxyEnablePreference"
android:title="Enable" />
<EditTextPreference
android:id="@+id/SocksProxyHost"
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:key="socksProxyAddressPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:id="@+id/SocksProxyPort"
android:defaultValue="4447"
android:key="edit_text_preference_1"
android:key="socksProxyPortPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
<EditTextPreference
android:defaultValue="proxy-keys.dat"
android:key="edit_text_preference_1"
android:id="@+id/SocksProxyKey"
android:defaultValue="transient"
android:key="socksProxyKeysPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Keys" />
@@ -151,18 +170,21 @@
<PreferenceCategory android:title="SAM">
<CheckBoxPreference
android:id="@+id/SAMEnable"
android:defaultValue="false"
android:key="check_box_preference_1"
android:key="samEnablePreference"
android:title="Enable" />
<EditTextPreference
android:id="@+id/SAMHost"
android:defaultValue="127.0.0.1"
android:key="edit_text_preference_1"
android:key="samAddressPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Address" />
<EditTextPreference
android:id="@+id/SAMPort"
android:defaultValue="7656"
android:key="edit_text_preference_1"
android:key="samPortPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Port" />
@@ -170,12 +192,14 @@
<PreferenceCategory android:title="UPnP">
<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:id="@+id/UPnPEnable"
android:defaultValue="false"
android:key="upnpEnablePreference"
android:title="Enable" />
<EditTextPreference
android:id="@+id/UPnPForwardName"
android:defaultValue="I2Pd"
android:key="edit_text_preference_1"
android:key="upnpForwardNamePreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Forwarding name" />
@@ -183,11 +207,12 @@
<PreferenceCategory android:title="Limits">
<EditTextPreference
android:defaultValue="50"
android:key="edit_text_preference_1"
android:id="@+id/TransitTunnelEdit"
android:defaultValue="3000"
android:key="transitTunnelPreference"
android:selectAllOnFocus="true"
android:singleLine="true"
android:summary="Limit possible built transit tunnels"
android:title="Transit tunnels" />
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>
+15 -14
View File
@@ -24,6 +24,7 @@ LOCAL_SRC_FILES := \
$(DAEMON_SRC_PATH)/UPnP.cpp \
$(DAEMON_SRC_PATH)/HTTPServer.cpp \
$(DAEMON_SRC_PATH)/I2PControl.cpp \
$(DAEMON_SRC_PATH)/I2PControlHandlers.cpp \
$(DAEMON_SRC_PATH)/i2pd.cpp \
include $(BUILD_EXECUTABLE)
@@ -31,49 +32,49 @@ 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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_system.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_date_time.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_filesystem.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/lib/libboost_program_options.a
LOCAL_EXPORT_C_INCLUDES := $(BOOST_PATH)/build/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libcrypto.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/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_SRC_FILES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/lib/libssl.a
LOCAL_EXPORT_C_INCLUDES := $(OPENSSL_PATH)/out/$(TARGET_ARCH_ABI)/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
LOCAL_SRC_FILES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/lib/libminiupnpc.a
LOCAL_EXPORT_C_INCLUDES := $(MINIUPNP_PATH)/miniupnpc/out/$(TARGET_ARCH_ABI)/include
include $(PREBUILT_STATIC_LIBRARY)
+3 -3
View File
@@ -1,17 +1,17 @@
buildscript {
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
classpath 'com.android.tools.build:gradle:7.3.1'
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
+2
View File
@@ -0,0 +1,2 @@
archive
i2pd_*_android_binary.zip
+53
View File
@@ -0,0 +1,53 @@
#!/bin/bash
# Copyright (c) 2013-2022, The PurpleI2P Project
#
# This file is part of Purple i2pd project and licensed under BSD3
#
# See full license text in LICENSE file at top of project tree
GITDESC=$(git describe --tags)
declare -A ABILIST=(
["armeabi-v7a"]="armv7l"
["arm64-v8a"]="aarch64"
["x86"]="x86"
["x86_64"]="x86_64"
)
# Remove old files and archives
if [ -d "archive" ]; then
rm -r archive
fi
if [ -f "../i2pd_*_android_binary.zip" ]; then
rm i2pd_*_android_binary.zip
fi
# Prepare files for package
mkdir archive
if [ ! -d "../../binary/libs/" ]; then
echo "Prebuilt binaries folder is not found. Have you built them?"
exit 1
fi
for ABI in "${!ABILIST[@]}"; do
if [ -f "../../binary/libs/${ABI}/i2pd" ]; then
cp ../../binary/libs/${ABI}/i2pd archive/i2pd-${ABILIST[$ABI]}
fi
done
cp i2pd archive/i2pd
cp -rH ../../app/src/main/assets/certificates archive/
cp -rH ../../app/src/main/assets/tunnels.d archive/
cp -H ../../app/src/main/assets/i2pd.conf archive/
cp -H ../../app/src/main/assets/tunnels.conf archive/
# Compress files
cd archive
zip -r6 ../i2pd_${GITDESC}_android_binary.zip .
# Remove temporary folder
cd ..
rm -r archive
+33
View File
@@ -0,0 +1,33 @@
#!/bin/sh
# Copyright (c) 2013-2020, The PurpleI2P Project
#
# This file is part of Purple i2pd project and licensed under BSD3
#
# See full license text in LICENSE file at top of project tree
#
# That script written for use with Termux.
# https://stackoverflow.com/a/246128
SOURCE="${0}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
arch=$(uname -m)
screenfind=$(which screen)
if [ -z $screenfind ]; then
echo "Can't find 'screen' installed. That script needs it!";
exit 1;
fi
if [ -z i2pd-$arch ]; then
echo "Can't find i2pd binary for your architecture.";
exit 1;
fi
screen -AmdS i2pd ./i2pd-$arch --datadir=$DIR
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) je univerzální anonymní síťová vrstva.
Veškerá komunikace přes I2P je anonymní a end-to-end šifrována, účastníci neodhalí své skutečné IP adresy.
<b>I2P klient</b> je software používaný pro vytváření a používání anonymních I2P sítí.
Tyto sítě se běžně používají pro anonymní aplikace typu peer-to-peer (sdílení souborů, kryptoměny) a anonymní aplikace typu klient-server (webové stránky, instantní messengery, chat-servery).
<b>I2P</b> umožňuje lidem z celého světa komunikovat a sdílet informace bez omezení.
Pro více informací o <b>I2P</b> si můžete přečíst <a href="https://en.m.wikipedia.org/wiki/I2P">článek na Wikipedii</a>.
@@ -0,0 +1 @@
Kompletní C++ implementace I2P klienta
@@ -0,0 +1,3 @@
* Updated codebase to 2.42.0
* Switch to OpenSSL 1.1.1o
* Added French translation
@@ -0,0 +1 @@
* Updated codebase to 2.42.1
@@ -0,0 +1,5 @@
* Updated codebase to 2.43.0
* Remove unused READ_PHONE_STATE permission
* Switch to OpenSSL 1.1.1q
* Added Simplified Chinese translation
* Disable SSU and enable SSU2 for new installations
@@ -0,0 +1,4 @@
* Updated codebase to 2.44.0
* Switch to OpenSSL 1.1.1s
* Added Ukrainian, Spain and Italian translations
* Disable SSU and enable SSU2 for new installations
@@ -0,0 +1,4 @@
* Updated codebase to 2.45.0
* Buildtools 32, target SDK 32, NDK 23c
* Switch to Boost 1.78.0
* Added Czech translation
@@ -0,0 +1 @@
* Fix storage access issue on Android 11+
@@ -0,0 +1 @@
* Fix installation and start on some Android 11+ devices
@@ -0,0 +1 @@
* Updated codebase to 2.45.1
@@ -0,0 +1 @@
* Updated codebase to 2.46.0
@@ -0,0 +1,3 @@
* Updated codebase to 2.46.1
* Switch to OpenSSL 1.1.1t
* Update Boost building scripts
@@ -0,0 +1 @@
* Updated codebase to 2.47.0
@@ -0,0 +1 @@
* Updated codebase to 2.48.0
@@ -0,0 +1,2 @@
* Updated codebase to 2.48.0 with SOCKS5 authorization fix (2.48.0-3-g07c5291)
* Updated OpenSSL to 1.1.1u
@@ -0,0 +1,2 @@
* Updated codebase to 2.49.0
* Updated OpenSSL to 1.1.1w
@@ -0,0 +1 @@
* Updated codebase to 2.50.0
@@ -0,0 +1 @@
* Updated codebase to 2.50.2
@@ -0,0 +1,2 @@
* Updated codebase to 2.51.0
* Added minimal configuration menu (cudos: @wipedlifepotato)
@@ -0,0 +1 @@
* Updated codebase to 2.52.0
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol, Protocolo de Internet Invisible) es una capa de red anónima universal.
Todas las comunicaciones a través de I2P son anónimas y cifradas de extremo a extremo, los participantes no revelan sus direcciones IP reales.
Un <b>cliente de I2P</b> es un software utilizado para construir y utilizar redes I2P anónimas.
Tales redes son comúnmente utilizadas para aplicaciones de par en par (intercambio de archivos, criptomonedas) y aplicaciones anónimas cliente-servidor (sitios web, mensajería instantánea, servidores de chat).
<b>I2P</b> le permite a la gente de todo el mundo comunicarse y compartir información sin restricciones.
Para más información sobre <b>I2P</b>, puedes leer <a href="https://es.m.wikipedia.org/wiki/I2P">este artículo en Wikipedia</a>.
@@ -0,0 +1 @@
Implementación completa en C++ del cliente I2P
@@ -0,0 +1,9 @@
<b>I2P</b> (پروتکل اینترنت نامرئی) یک لایه جهانی و بی نام و نشان از شبکه است.
تمام ارتباطات بر روی I2P بی نام و نشان و سرتاسر رمزگذاری شده، مشترکین آدرس IP واقعی خود را آشکار نمیکنند.
<b>I2P client</b> یک نرم افزاری است که برای ساخت و تعامل با شبکه های بی نام و نشان I2P استفاده می شود.
این شبکه ها عموما برای ارتباطات بی نام و نشان همتا به همتا (اشتراک فایل، رمزارز) و ارتباطات بی نام و نشان کاربر و سرور (وبسایت ها، پیامرسان ها، سرور های گفت و گو) استفاده می شود.
<b>I2P</b> به همه مردم دنیا این امکان را میدهد که بدون محدودیت ارتباط برقرار کنند و اطلاعات به اشتراک بگذارند.
برای اطلاعات بیشتر در مورد <b>I2P</b>, میتوانید <a href="https://en.m.wikipedia.org/wiki/I2P">در ویکیپدیا مطالعه کنید</a>.
@@ -0,0 +1 @@
پیاده سازی کاملی از I2P به زبان ++C
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol, litt. «Protocole de l'Internet Invisible») est une couche réseau anonyme universelle.
Toute communication par I2P est anonyme et chiffrée de bout en bout, les participants ne révèlent pas leur vraie adresse IP.
Le <b>client I2P</b> est un logiciel qui sert à bâtir et à utiliser les réseaux anonymes I2P.
De tels réseaux sont habituellement utilisés pour des applications pair à pair anonymes (partage de fichiers, cryptomonnaies) et des applications client serveur anonymes (sites web, messagerie instantanée, serveurs de chat).
<b>I2P</b> permet aux gens partout dans le monde de communiquer et de partager de l'information sans restrictions.
Pour plus d'information sur <b>I2P</b>, vous pouvez lire <a href="https://fr.wikipedia.org/wiki/I2P">l'article sur Wikipédia</a>.
@@ -0,0 +1 @@
Implémentation complète en C++ du client I2P
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) è un livello di rete anonimo universale.
Tutte le comunicazioni su I2P sono anonime e crittografate end-to-end, i partecipanti non rivelano i propri indirizzi IP reali.
<b>Il client I2P</b> è un software utilizzato per costruire e utilizzare reti I2P anonime.
Tali reti sono comunemente utilizzate per applicazioni peer-to-peer anonime (trasferimento file, cryptovalute) e applicazioni client-server anonime (siti web, applicazioni di messaggistica istantanea, server di chat).
<b>I2P</b> permette alle persone di tutto il mondo di comunicare e condividere informazioni senza restrizioni.
Per ulteriori informazioni riguardo <b>I2P</b>, puoi consultare l'<a href="https://en.m.wikipedia.org/wiki/I2P">articolo su Wikipedia</a>.
@@ -0,0 +1 @@
Implementazione C++ completa del client I2P
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) jest uniwersalną, anonimową warstwą sieci.
Wszystkie komunikaty przez I2P są anonimowe i zaszyfrowane end-to-end, uczestnicy nie ujawniają swoich rzeczywistych adresów IP.
<b>Klient I2P</b> jest oprogramowaniem używanym do budowania i używania anonimowych sieci I2P.
Sieci takie są powszechnie używane do anonimowych aplikacji peer-to-peer (udostępnianie plików, kryptowaluty) i anonimowych aplikacji klient-serwer (strony internetowe, komunikatory błyskawiczne, serwery czatów).
<b>I2P</b> pozwala ludziom z całego świata komunikować się i dzielić się informacjami bez ograniczeń.
Aby uzyskać więcej informacji na temat <b>I2P</b>możesz przeczytać artykuł <a href="https://en.m.wikipedia.org/wiki/I2P">na Wikipedii</a>.
@@ -0,0 +1 @@
Pełna implementacja klienta I2P napisanej w C++
@@ -0,0 +1,9 @@
<b>I2P</b> (Invisible Internet Protocol) é uma camada de rede anônima universal.
Todas as comunicações pela I2P são anonimas e criptografadas ponto-a-ponto, os participantes não revelam os seus verdadeiros endereços IP.
<b>Um cliente I2P</b> é um software usado para construir e utilizar redes I2P anonimas.
Tais redes são comumente usadas em aplicações P2P anonimas (compartilhamento de arquivos, criptomoedas) e aplicações cliente-servidor (websites, mensageiros instantâneos, servidores de chat).
O <b> I2P </b> permite às pessoas de todo o mundo se comunicarem e compartilharem informações sem restrições.
Para mais informações sobre a <b> I2P </b>, você pode ler o <a href="https://pt.wikipedia.org/wiki/I2P"> artigo na Wikipédia </a>.
@@ -0,0 +1 @@
Implementação completa do cliente I2P em C++
@@ -6,4 +6,4 @@ Bu tür ağlar genellikle anonim eşler arası uygulamalar (dosya paylaşımı,
<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.
<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,9 @@
<b>I2P</b> (Невидимий Інтернет Протокол) - це універсальний анонімний шар мережі.
Усі повідомлення по I2P є анонімними та наскрізними до кінця зашифрованих, учасники не розкривають їхні реальні IP-адреси.
<b>I2P клієнт</b> є програмним забезпеченням для будівництва і використання анонімних I2P мереж.
Такі мережі зазвичай використовуються для анонімних однорангових додатків (обмін файлами, криптовалютами) та анонімних додатків на сервері клієнта (вебсайт, миттєві повідомлення, чат-сервери).
<b>I2P</b> дозволяє людям з усього світу обмінюватися інформацією без обмежень.
Для отримання додаткової інформації про <b>I2P</b>ви можете прочитати <a href="https://en.m.wikipedia.org/wiki/I2P">статтю у Вікіпедії</a>.
@@ -0,0 +1 @@
Повнофункціональна C++ реалізація I2P клієнта
@@ -0,0 +1,9 @@
<b>I2P</b> (隐形互联网计划) 是一个通用的匿名网络层。
所有通过 I2P 进行的通信都是匿名、端到端加密的,用户不会透露他们真实的 IP 地址。
<b>I2P 客户端</b> 是一个用于构建和使用匿名 I2P 网络的软件。
这种网络通常用于匿名的 P2P 应用(如文件共享、加密货币) 以及匿名的客户端-服务器架构的应用(如网站、即时通讯、聊天服务器等) 。
<b>I2P</b> 允许来自世界各地的人不受限制地交流和分享信息。
欲了解更多关于 <b>I2P</b>的信息,请参见 <a href="https://en.m.wikipedia.org/wiki/I2P">Wikipedia</a> 。
@@ -0,0 +1 @@
I2P 客户端的全功能C++ 实现
+2 -2
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=f581709a9c35e9cb92e16f585d2c4bc99b2b1a5f85d2badbd3dc6bff59e1e6dd
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionSha256Sum=8cc27038d5dbd815759851ba53e70cf62e481b87494cc97cfd97982ada5ba634
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists