forked from cwtch.im/cwtch-ui
Update UI Tests to Run with Flutter 3 / In Drone (#621)
Reviewed-on: cwtch.im/cwtch-ui#621 Co-authored-by: Sarah Jamie Lewis <sarah@openprivacy.ca> Co-committed-by: Sarah Jamie Lewis <sarah@openprivacy.ca>
This commit is contained in:
parent
bf05a52d63
commit
8417204a24
12
.drone.yml
12
.drone.yml
|
@ -60,6 +60,18 @@ steps:
|
||||||
- tar -czf cwtch-`cat ../VERSION`.tar.gz cwtch
|
- tar -czf cwtch-`cat ../VERSION`.tar.gz cwtch
|
||||||
- rm -r cwtch
|
- rm -r cwtch
|
||||||
|
|
||||||
|
- name: linux-ui-tests
|
||||||
|
image: openpriv/flutter-desktop:linux-fstable-3.3.9
|
||||||
|
volumes:
|
||||||
|
- name: deps
|
||||||
|
path: /root/.pub-cache
|
||||||
|
commands:
|
||||||
|
- # todo: add xvfb to openpriv/flutter-desktop:linux-fstable-3.7
|
||||||
|
- sudo apt update
|
||||||
|
- sudo apt-get install -y xvfb
|
||||||
|
- ./fetch-tor.sh
|
||||||
|
- ./run-tests-headless.sh 02_save_load
|
||||||
|
|
||||||
- name: test-build-android
|
- name: test-build-android
|
||||||
image: cirrusci/flutter:3.3.8
|
image: cirrusci/flutter:3.3.8
|
||||||
when:
|
when:
|
||||||
|
|
|
@ -41,15 +41,29 @@ app.*.symbols
|
||||||
app.*.map.json
|
app.*.map.json
|
||||||
|
|
||||||
# Tor
|
# Tor
|
||||||
data-dir*
|
*data-dir*
|
||||||
|
|
||||||
|
# Test Artificats
|
||||||
|
*.log
|
||||||
|
flutter_gherkin
|
||||||
|
run-tests.env
|
||||||
|
report.json
|
||||||
|
package.
|
||||||
|
|
||||||
# Compiled Libs
|
# Compiled Libs
|
||||||
linux/tor
|
linux/tor
|
||||||
linux/libCwtch.so
|
linux/libCwtch.so
|
||||||
android/cwtch/cwtch.aar
|
android/cwtch/cwtch.aar
|
||||||
android/app/src/main/jniLibs/*/libtor.so
|
android/app/src/main/jniLibs/*/libtor.so
|
||||||
libCwtch.dylib
|
*.dylib
|
||||||
|
integration_test/gherkin_suite_test.g.dart
|
||||||
|
integration_test/gherkin_suite_test.dart
|
||||||
|
integration_test/gherkin/
|
||||||
|
integration_test/CustomSteps.md
|
||||||
|
analysis_options.yaml
|
||||||
|
integration_test/env/default/tor
|
||||||
|
linux/Tor
|
||||||
|
linux/tor.tar.gz
|
||||||
|
|
||||||
coverage
|
coverage
|
||||||
test/failures
|
test/failures
|
||||||
|
|
|
@ -51,6 +51,8 @@ android {
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode flutterVersionCode.toInteger()
|
||||||
versionName flutterVersionName
|
versionName flutterVersionName
|
||||||
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
multiDexEnabled true
|
||||||
}
|
}
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
|
@ -93,6 +95,13 @@ dependencies {
|
||||||
implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
|
implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
|
||||||
implementation "com.android.support.constraint:constraint-layout:2.0.4"
|
implementation "com.android.support.constraint:constraint-layout:2.0.4"
|
||||||
|
|
||||||
|
// Test Dependencies
|
||||||
|
testImplementation 'junit:junit:4.12'
|
||||||
|
|
||||||
|
// https://developer.android.com/jetpack/androidx/releases/test/#1.2.0
|
||||||
|
androidTestImplementation 'androidx.test:runner:1.2.0'
|
||||||
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||||
|
|
||||||
// WorkManager
|
// WorkManager
|
||||||
|
|
||||||
// (Java only)
|
// (Java only)
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package im.cwtch.flwtch;
|
||||||
|
|
||||||
|
import androidx.test.rule.ActivityTestRule;
|
||||||
|
import dev.flutter.plugins.integration_test.FlutterTestRunner;
|
||||||
|
import org.junit.Rule;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
@RunWith(FlutterTestRunner.class)
|
||||||
|
public class MainActivityTest {
|
||||||
|
@Rule
|
||||||
|
public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class, true, false);
|
||||||
|
}
|
|
@ -7,7 +7,7 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.5.4'
|
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#Mon Jun 20 10:33:21 PDT 2022
|
#Mon Jun 20 10:33:21 PDT 2022
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
// This is a basic Flutter integration test.
|
|
||||||
//
|
|
||||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
|
||||||
// utility that Flutter provides. For example, you can send tap and scroll
|
|
||||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
|
||||||
// tree, read text, and verify that the values of widget properties are correct.
|
|
||||||
|
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
import 'package:integration_test/integration_test.dart';
|
|
||||||
|
|
||||||
import 'package:cwtch/main_test.dart' as app;
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
|
||||||
_testMain();
|
|
||||||
}
|
|
||||||
|
|
||||||
void _testMain() {
|
|
||||||
testWidgets('Blocked message rejection test', (WidgetTester tester) async {
|
|
||||||
final String testerProfile = "mr roboto";
|
|
||||||
final String blockedProfile = "rudey";
|
|
||||||
|
|
||||||
// start the app and render a few frames
|
|
||||||
app.main();
|
|
||||||
await tester.pump(); await tester.pump(); await tester.pump();
|
|
||||||
//await tester.pumpAndSettle();
|
|
||||||
|
|
||||||
for (var i = 0; i < 30; i++) {
|
|
||||||
print("$i pump");
|
|
||||||
await tester.pump();
|
|
||||||
}
|
|
||||||
|
|
||||||
// log in to a profile with a blocked contact
|
|
||||||
await tester.tap(find.text(testerProfile));
|
|
||||||
await tester.pump(); await tester.pump(); await tester.pump();
|
|
||||||
expect(find.byIcon(Icons.block), findsOneWidget);
|
|
||||||
|
|
||||||
// use the debug control to inject a message from the contact
|
|
||||||
await tester.tap(find.byIcon(Icons.bug_report));
|
|
||||||
await tester.pump(); await tester.pump(); await tester.pump();
|
|
||||||
|
|
||||||
|
|
||||||
// screenshot test
|
|
||||||
print(Directory.current);
|
|
||||||
//Directory.current = "/home/erinn/AndroidStudioProjects/flwtch/integration_test";
|
|
||||||
await expectLater(find.byKey(Key('app')), matchesGoldenFile('blockedcontact.png'));
|
|
||||||
// any active message badges?
|
|
||||||
expect(find.text('1'), findsNothing);
|
|
||||||
});
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
|
@ -1,411 +0,0 @@
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
|
||||||
dir-key-published 2021-09-01 00:00:00
|
|
||||||
dir-key-expires 2022-03-01 00:00:00
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
|
||||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
|
||||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
|
||||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
|
||||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
|
||||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
|
||||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
|
||||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
|
||||||
lyS28jsPht9VAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
|
||||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
|
||||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
|
||||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
|
||||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
|
||||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
|
||||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
|
||||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
|
||||||
S8iAur2GohFFAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
|
||||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
|
||||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
|
||||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
|
||||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
|
||||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
|
||||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
|
||||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
|
||||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
|
||||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
|
||||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
|
||||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
|
||||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
|
||||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
|
||||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
|
||||||
dir-key-published 2021-08-01 20:00:02
|
|
||||||
dir-key-expires 2022-08-01 20:00:02
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
|
||||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
|
||||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
|
||||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
|
||||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
|
||||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
|
||||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
|
||||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
|
||||||
qTCMStn1jfDDAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
|
||||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
|
||||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
|
||||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
|
||||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
|
||||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
|
||||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
|
||||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
|
||||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
|
||||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
|
||||||
VsB9h7YagNHJHLiGeBT1kg==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
|
||||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
|
||||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
|
||||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
|
||||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
|
||||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
|
||||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
|
||||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
|
||||||
dir-key-published 2021-11-28 16:32:54
|
|
||||||
dir-key-expires 2022-02-28 16:32:54
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
|
||||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
|
||||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
|
||||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
|
||||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
|
||||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
|
||||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
|
||||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
|
||||||
ThLI/8OzZq4LAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
|
||||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
|
||||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
|
||||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
|
||||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
|
||||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
|
||||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
|
||||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
|
||||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
|
||||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
|
||||||
AZHvl12tKzZF3F9MKPcNyQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
|
||||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
|
||||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
|
||||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
|
||||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
|
||||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
|
||||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
|
||||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
|
||||||
dir-key-published 2021-03-29 03:27:58
|
|
||||||
dir-key-expires 2022-03-29 03:27:58
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
|
||||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
|
||||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
|
||||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
|
||||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
|
||||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
|
||||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
|
||||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
|
||||||
DNyyzRG8iP61AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
|
||||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
|
||||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
|
||||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
|
||||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
|
||||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
|
||||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
|
||||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
|
||||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
|
||||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
|
||||||
60UQ0hNb6KAP+FZKPz9/dA==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
|
||||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
|
||||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
|
||||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
|
||||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
|
||||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
|
||||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
|
||||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
|
||||||
dir-key-published 2021-09-06 18:42:41
|
|
||||||
dir-key-expires 2022-09-06 18:42:41
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
|
||||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
|
||||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
|
||||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
|
||||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
|
||||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
|
||||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
|
||||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
|
||||||
JHkjBCD4WTWVAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
|
||||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
|
||||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
|
||||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
|
||||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
|
||||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
|
||||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
|
||||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
|
||||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
|
||||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
|
||||||
C8amqpSD8HqsCK6MvN7V9g==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
|
||||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
|
||||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
|
||||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
|
||||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
|
||||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
|
||||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
|
||||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
|
||||||
dir-key-published 2021-08-21 23:12:45
|
|
||||||
dir-key-expires 2022-08-21 23:12:45
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
|
||||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
|
||||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
|
||||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
|
||||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
|
||||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
|
||||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
|
||||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
|
||||||
y7Pu7li8WyW9AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
|
||||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
|
||||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
|
||||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
|
||||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
|
||||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
|
||||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
|
||||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
|
||||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
|
||||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
|
||||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
|
||||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
|
||||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
|
||||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
|
||||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
|
||||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
|
||||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
|
||||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
|
||||||
dir-key-published 2021-11-09 19:16:37
|
|
||||||
dir-key-expires 2023-05-09 19:16:37
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
|
||||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
|
||||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
|
||||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
|
||||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
|
||||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
|
||||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
|
||||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
|
||||||
7LXm/wENwn1/AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
|
||||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
|
||||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
|
||||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
|
||||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
|
||||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
|
||||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
|
||||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
|
||||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
|
||||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
|
||||||
pEW/OauwlDlr3yXEKh05aQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
|
||||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
|
||||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
|
||||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
|
||||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
|
||||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
|
||||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
|
||||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
|
||||||
dir-key-published 2021-09-18 16:07:20
|
|
||||||
dir-key-expires 2022-09-18 16:07:20
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
|
||||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
|
||||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
|
||||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
|
||||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
|
||||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
|
||||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
|
||||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
|
||||||
dOFYaftOkuGPAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
|
||||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
|
||||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
|
||||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
|
||||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
|
||||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
|
||||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
|
||||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
|
||||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
|
||||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
|
||||||
X4d/mLOAQeYWEalQC812iw==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
|
||||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
|
||||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
|
||||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
|
||||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
|
||||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
|
||||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
|
||||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
dir-address 154.35.175.225:80
|
|
||||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
|
||||||
dir-key-published 2021-02-08 18:16:07
|
|
||||||
dir-key-expires 2022-02-08 18:16:07
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
|
||||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
|
||||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
|
||||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
|
||||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
|
||||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
|
||||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
|
||||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
|
||||||
5RDUlwZaQiaXAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
|
||||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
|
||||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
|
||||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
|
||||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
|
||||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
|
||||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
|
||||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
|
||||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
|
||||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
|
||||||
ungKyPS6LTytSuU/rjWCbQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
|
||||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
|
||||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
|
||||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
|
||||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
|
||||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
|
||||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
|
||||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
|
||||||
-----END SIGNATURE-----
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,58 +0,0 @@
|
||||||
# Tor state file last generated on 2022-02-04 13:53:23 local time
|
|
||||||
# Other times below are in UTC
|
|
||||||
# You *do not* need to edit this file.
|
|
||||||
|
|
||||||
CircuitBuildTimeBin 675 1
|
|
||||||
CircuitBuildTimeBin 825 1
|
|
||||||
CircuitBuildTimeBin 875 1
|
|
||||||
CircuitBuildTimeBin 925 1
|
|
||||||
CircuitBuildTimeBin 975 1
|
|
||||||
CircuitBuildTimeBin 1075 1
|
|
||||||
CircuitBuildTimeBin 1125 2
|
|
||||||
CircuitBuildTimeBin 1175 1
|
|
||||||
CircuitBuildTimeBin 1225 9
|
|
||||||
CircuitBuildTimeBin 1275 21
|
|
||||||
CircuitBuildTimeBin 1325 7
|
|
||||||
CircuitBuildTimeBin 1375 6
|
|
||||||
CircuitBuildTimeBin 1425 9
|
|
||||||
CircuitBuildTimeBin 1475 2
|
|
||||||
CircuitBuildTimeBin 1525 6
|
|
||||||
CircuitBuildTimeBin 1575 4
|
|
||||||
CircuitBuildTimeBin 1625 4
|
|
||||||
CircuitBuildTimeBin 1675 13
|
|
||||||
CircuitBuildTimeBin 1725 3
|
|
||||||
CircuitBuildTimeBin 1775 1
|
|
||||||
CircuitBuildTimeBin 1875 1
|
|
||||||
CircuitBuildTimeBin 1925 1
|
|
||||||
CircuitBuildTimeBin 1975 3
|
|
||||||
CircuitBuildTimeBin 2025 1
|
|
||||||
CircuitBuildTimeBin 2075 2
|
|
||||||
CircuitBuildTimeBin 2275 1
|
|
||||||
CircuitBuildTimeBin 2325 1
|
|
||||||
CircuitBuildTimeBin 2575 1
|
|
||||||
CircuitBuildTimeBin 2725 1
|
|
||||||
CircuitBuildTimeBin 2775 2
|
|
||||||
Dormant 0
|
|
||||||
Guard in=default rsa_id=BD4C647508162F59CB44E4DFC1C2B2B8A9387CCA nickname=regar42 sampled_on=2022-01-27T11:01:16 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-25T23:44:41 confirmed_idx=2 pb_use_attempts=78.000000 pb_use_successes=78.000000 pb_circ_attempts=102.000000 pb_circ_successes=100.000000 pb_successful_circuits_closed=100.000000 pb_timeouts=1.000000
|
|
||||||
Guard in=default rsa_id=AADD84AF8D3C24F492D9EC1E08360D1C7CD5730D nickname=axeTorC sampled_on=2022-01-28T04:55:37 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-04T01:41:15 confirmed_idx=0 pb_use_attempts=1.000000 pb_use_successes=1.000000 pb_circ_attempts=1.000000 pb_circ_successes=1.000000 pb_successful_circuits_closed=1.000000
|
|
||||||
Guard in=default rsa_id=F7B8A4B5F16ECDF6CA626F96F4E3C219D1A664EC nickname=kerneloopsRelay sampled_on=2022-01-26T16:41:28 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-24T18:55:06 confirmed_idx=1
|
|
||||||
Guard in=default rsa_id=274A1DC6210E91827CDF40DC0E95E4A3CA929A08 nickname=AllanonTor sampled_on=2022-01-26T18:56:19 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=891FB8477529A6B2894B7A3129402E0FD5DD281F nickname=hers sampled_on=2022-01-31T03:58:06 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=898B2FBA56F3707B72A0B97CC492CBB466D9D707 nickname=julianrelay sampled_on=2022-01-30T07:22:54 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=84A9473665250B752B621892834E71EECBD610FF nickname=flyingcubetech sampled_on=2022-01-24T19:47:40 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=7DFC30D7EAAEF6E74B081EC0291757E9414A8C06 nickname=TorRelay1337 sampled_on=2022-01-27T01:43:00 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=A5E42F1A3AFA948A7F2FDB1954A4CF6C6489D418 nickname=bauruine sampled_on=2022-01-31T11:16:43 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=F9AEA07ACE06E8E7D55E10FFBAE037E8C833FA93 nickname=DTFNODE46 sampled_on=2022-01-24T22:18:09 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=3910C5CA0CC5AFE22C709DF471A2B5B6B4AEDC98 nickname=criticalcat sampled_on=2022-01-25T22:53:24 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=FD449127D30D8F5D124653D9EF736EDF4A12B4DC nickname=lw sampled_on=2022-02-01T00:36:22 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=0E2EEC125A6AC8D5EBF5DB36B776A3DA5510E7A0 nickname=Nako sampled_on=2022-02-04T00:40:19 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=2C7C9294CFA7AAFB3D25B72DEAED242E96927F03 nickname=ChomelesDEnetcup sampled_on=2022-01-30T05:51:02 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=916DC3199F639168CD20AEC4D45969268E807699 nickname=defcon777 sampled_on=2022-01-27T11:01:04 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=A6C3B64EC8EE20D77987EBC5E894CA6CCE4B5295 nickname=OwlRelay sampled_on=2022-01-30T19:20:11 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=6FB33CCBEF5135AFA3D6D33CE030F96728EDD70C nickname=MDMIT1 sampled_on=2022-01-31T16:49:37 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=85703987A509438D96E22AD367E99FF295E089AF nickname=gbtUSicebeer09b sampled_on=2022-02-03T22:13:49 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=BA053C72E476C1EB9D05237D0D6A289C18FBE8E7 nickname=straDEicebeer02b sampled_on=2022-01-24T08:18:24 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=225A8EA367DF3073433E0A845DDDA26D2357E4C6 nickname=Manureva sampled_on=2022-01-29T21:39:31 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
|
||||||
LastWritten 2022-02-04 21:53:23
|
|
||||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
|
||||||
TotalBuildTimes 108
|
|
|
@ -1,3 +0,0 @@
|
||||||
SocksPort 9667 OnionTrafficOnly
|
|
||||||
ControlPort 9668
|
|
||||||
HashedControlPassword 16:501107AD0642A3C66029D6A37845E976D5F55B4DED7C4A43CC044638A5
|
|
|
@ -1,411 +0,0 @@
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
|
||||||
dir-key-published 2021-11-09 19:16:37
|
|
||||||
dir-key-expires 2023-05-09 19:16:37
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
|
||||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
|
||||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
|
||||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
|
||||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
|
||||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
|
||||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
|
||||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
|
||||||
7LXm/wENwn1/AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
|
||||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
|
||||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
|
||||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
|
||||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
|
||||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
|
||||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
|
||||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
|
||||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
|
||||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
|
||||||
pEW/OauwlDlr3yXEKh05aQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
|
||||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
|
||||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
|
||||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
|
||||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
|
||||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
|
||||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
|
||||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
dir-address 154.35.175.225:80
|
|
||||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
|
||||||
dir-key-published 2021-02-08 18:16:07
|
|
||||||
dir-key-expires 2022-02-08 18:16:07
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
|
||||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
|
||||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
|
||||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
|
||||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
|
||||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
|
||||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
|
||||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
|
||||||
5RDUlwZaQiaXAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
|
||||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
|
||||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
|
||||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
|
||||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
|
||||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
|
||||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
|
||||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
|
||||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
|
||||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
|
||||||
ungKyPS6LTytSuU/rjWCbQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
|
||||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
|
||||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
|
||||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
|
||||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
|
||||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
|
||||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
|
||||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
|
||||||
dir-key-published 2021-11-28 16:32:54
|
|
||||||
dir-key-expires 2022-02-28 16:32:54
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
|
||||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
|
||||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
|
||||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
|
||||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
|
||||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
|
||||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
|
||||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
|
||||||
ThLI/8OzZq4LAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
|
||||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
|
||||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
|
||||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
|
||||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
|
||||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
|
||||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
|
||||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
|
||||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
|
||||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
|
||||||
AZHvl12tKzZF3F9MKPcNyQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
|
||||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
|
||||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
|
||||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
|
||||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
|
||||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
|
||||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
|
||||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
|
||||||
dir-key-published 2021-09-06 18:42:41
|
|
||||||
dir-key-expires 2022-09-06 18:42:41
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
|
||||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
|
||||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
|
||||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
|
||||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
|
||||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
|
||||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
|
||||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
|
||||||
JHkjBCD4WTWVAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
|
||||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
|
||||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
|
||||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
|
||||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
|
||||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
|
||||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
|
||||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
|
||||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
|
||||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
|
||||||
C8amqpSD8HqsCK6MvN7V9g==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
|
||||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
|
||||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
|
||||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
|
||||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
|
||||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
|
||||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
|
||||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
|
||||||
dir-key-published 2021-03-29 03:27:58
|
|
||||||
dir-key-expires 2022-03-29 03:27:58
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
|
||||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
|
||||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
|
||||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
|
||||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
|
||||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
|
||||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
|
||||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
|
||||||
DNyyzRG8iP61AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
|
||||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
|
||||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
|
||||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
|
||||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
|
||||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
|
||||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
|
||||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
|
||||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
|
||||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
|
||||||
60UQ0hNb6KAP+FZKPz9/dA==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
|
||||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
|
||||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
|
||||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
|
||||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
|
||||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
|
||||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
|
||||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
|
||||||
dir-key-published 2021-09-01 00:00:00
|
|
||||||
dir-key-expires 2022-03-01 00:00:00
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
|
||||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
|
||||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
|
||||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
|
||||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
|
||||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
|
||||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
|
||||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
|
||||||
lyS28jsPht9VAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
|
||||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
|
||||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
|
||||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
|
||||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
|
||||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
|
||||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
|
||||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
|
||||||
S8iAur2GohFFAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
|
||||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
|
||||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
|
||||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
|
||||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
|
||||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
|
||||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
|
||||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
|
||||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
|
||||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
|
||||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
|
||||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
|
||||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
|
||||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
|
||||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
|
||||||
dir-key-published 2021-08-21 23:12:45
|
|
||||||
dir-key-expires 2022-08-21 23:12:45
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
|
||||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
|
||||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
|
||||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
|
||||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
|
||||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
|
||||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
|
||||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
|
||||||
y7Pu7li8WyW9AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
|
||||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
|
||||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
|
||||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
|
||||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
|
||||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
|
||||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
|
||||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
|
||||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
|
||||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
|
||||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
|
||||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
|
||||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
|
||||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
|
||||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
|
||||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
|
||||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
|
||||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
|
||||||
dir-key-published 2021-08-01 20:00:02
|
|
||||||
dir-key-expires 2022-08-01 20:00:02
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
|
||||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
|
||||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
|
||||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
|
||||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
|
||||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
|
||||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
|
||||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
|
||||||
qTCMStn1jfDDAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
|
||||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
|
||||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
|
||||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
|
||||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
|
||||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
|
||||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
|
||||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
|
||||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
|
||||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
|
||||||
VsB9h7YagNHJHLiGeBT1kg==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
|
||||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
|
||||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
|
||||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
|
||||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
|
||||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
|
||||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
|
||||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
|
||||||
dir-key-published 2021-09-18 16:07:20
|
|
||||||
dir-key-expires 2022-09-18 16:07:20
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
|
||||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
|
||||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
|
||||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
|
||||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
|
||||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
|
||||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
|
||||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
|
||||||
dOFYaftOkuGPAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
|
||||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
|
||||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
|
||||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
|
||||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
|
||||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
|
||||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
|
||||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
|
||||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
|
||||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
|
||||||
X4d/mLOAQeYWEalQC812iw==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
|
||||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
|
||||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
|
||||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
|
||||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
|
||||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
|
||||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
|
||||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
|
||||||
-----END SIGNATURE-----
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,39 +0,0 @@
|
||||||
# Tor state file last generated on 2022-02-04 13:57:02 local time
|
|
||||||
# Other times below are in UTC
|
|
||||||
# You *do not* need to edit this file.
|
|
||||||
|
|
||||||
CircuitBuildTimeBin 875 1
|
|
||||||
CircuitBuildTimeBin 1025 1
|
|
||||||
CircuitBuildTimeBin 1125 1
|
|
||||||
CircuitBuildTimeBin 1175 1
|
|
||||||
CircuitBuildTimeBin 1275 1
|
|
||||||
CircuitBuildTimeBin 1475 1
|
|
||||||
CircuitBuildTimeBin 1875 1
|
|
||||||
CircuitBuildTimeBin 1925 1
|
|
||||||
CircuitBuildTimeBin 2025 1
|
|
||||||
CircuitBuildTimeBin 2375 1
|
|
||||||
Dormant 0
|
|
||||||
Guard in=default rsa_id=D70A5E01EC14D078164D5E587608949F85FD771B nickname=leaders2 sampled_on=2022-01-30T18:34:14 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-02T06:04:33 confirmed_idx=1 pb_circ_attempts=13.000000 pb_circ_successes=10.000000 pb_successful_circuits_closed=10.000000 pb_timeouts=1.000000
|
|
||||||
Guard in=default rsa_id=598C8E4E92D8D7750991D23F6776EE92EC1A00C1 nickname=Unnamed sampled_on=2022-02-01T01:24:07 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-29T15:09:32 confirmed_idx=2
|
|
||||||
Guard in=default rsa_id=013ABAED8F4CDB677BE0B5212E4B2583B86035EE nickname=b0rken sampled_on=2022-01-27T22:32:07 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-03T10:23:27 confirmed_idx=0
|
|
||||||
Guard in=default rsa_id=66DFC51E724E38DDCB3AB67DDF4C0BB0F1F49C0B nickname=Seccom04 sampled_on=2022-01-26T06:52:32 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=9400AF52EC2929DA41E6DDD3B684F23643BC316C nickname=BM03 sampled_on=2022-01-30T16:35:42 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=DD0C8EEC5CA402A9FA4478F10C31A440F71F6885 nickname=chaosDelroth sampled_on=2022-01-31T18:30:35 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=6055FE90C18DD4B2593A9D0E02DDC4D68E9BA62E nickname=elects2 sampled_on=2022-01-29T10:24:36 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=79233E8202A0EE755B39BC24BE80939C023B3FCD nickname=m83fr2 sampled_on=2022-02-01T17:58:48 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=C4BDBFD1049EE1D4F6977C42485F94CD5F97BA92 nickname=lenin sampled_on=2022-01-29T15:57:51 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=876C5AC1D2811E650AD4C78B77841C1ACB3B0088 nickname=whoUSicebeer05b sampled_on=2022-01-29T15:26:49 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=FF8B7CAD5F508972509D79F933FB24D2F524AB75 nickname=einNettesRelay sampled_on=2022-02-02T09:24:01 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=BFB14B9ADF1F19E59258CAE7FCDBAAC9937B7B10 nickname=Yggdrasil sampled_on=2022-02-02T13:42:48 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=ACBD72F9395DE8DE293D37CCF7733F1BE23EDA53 nickname=hopUSicebeer7b sampled_on=2022-02-02T18:42:20 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=F79370BA46ADC03CC10866924EE4A3C470BAFE93 nickname=skankhunt42de4 sampled_on=2022-01-25T11:00:17 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=C1939D36649DE98A202429631D8EFC70128D5F5F nickname=rinderwahnRelay10L sampled_on=2022-01-26T01:10:26 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=3BC258C20BBB8094C12DA7CB982B36D1502FAC3C nickname=Assange041us sampled_on=2022-01-31T23:57:37 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=B2242163F681F77F93190663AC5F696ACF76C4FD nickname=torexit42 sampled_on=2022-02-03T12:50:47 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=1F953ACBFB9F44CE38543B7E9C0E0BE1BDC7E941 nickname=bauruine sampled_on=2022-01-24T00:30:24 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=F00C8B7589FEE52BE84387CDB422C1F1386979C0 nickname=JennyRelay sampled_on=2022-01-30T03:59:39 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=CD39C258265B25EAA4ABA4FDCB2DF98104CAA362 nickname=normaray sampled_on=2022-01-30T09:12:11 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
|
||||||
LastWritten 2022-02-04 21:57:02
|
|
||||||
MinutesSinceUserActivity 3
|
|
||||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
|
||||||
TotalBuildTimes 10
|
|
|
@ -1,3 +0,0 @@
|
||||||
SocksPort 9735 OnionTrafficOnly
|
|
||||||
ControlPort 9736
|
|
||||||
HashedControlPassword 16:178423CBFA6B25BD608424EE12A1FACF5D36FF43215636A5917F8D64DF
|
|
|
@ -1,411 +0,0 @@
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 14C131DFC5C6F93646BE72FA1401C02A8DF2E8B4
|
|
||||||
dir-key-published 2021-09-01 00:00:00
|
|
||||||
dir-key-expires 2022-03-01 00:00:00
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA7cZXvDRxfjDYtr9/9UsQ852+6cmHMr8VVh8GkLwbq3RzqjkULwQ2
|
|
||||||
R9mFvG4FnqMcMKXi62rYYA3fZL1afhT804cpvyp/D3dPM8QxW88fafFAgIFP4LiD
|
|
||||||
0JYjnF8cva5qZ0nzlWnMXLb32IXSvsGSE2FRyAV0YN9a6k967LSgCfUnZ+IKMezW
|
|
||||||
1vhL9YK4QIfsDowgtVsavg63GzGmA7JvZmn77+/J5wKz11vGr7Wttf8XABbH2taX
|
|
||||||
O9j/KGBOX2OKhoF3mXfZSmUO2dV9NMwtkJ7zD///Ny6sfApWV6kVP4O9TdG3bAsl
|
|
||||||
+fHCoCKgF/jAAWzh6VckQTOPzQZaH5aMWfXrDlzFWg17MjonI+bBTD2Ex2pHczzJ
|
|
||||||
bN7coDMRH2SuOXv8wFf27KdUxZ/GcrXSRGzlRLygxqlripUanjVGN2JvrVQVr0kz
|
|
||||||
pjNjiZl2z8ZyZ5d4zQuBi074JPGgx62xAstP37v1mPw14sIWfLgY16ewYuS5bCxV
|
|
||||||
lyS28jsPht9VAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA+jzmadukj4Q0qLgJ0at+nDXGruO5JD3HsehobiwO8HrdaaImY+rY
|
|
||||||
CZzxRWM4xryQ2AFuAGbSxGoNQT3dTLvjKNVdGY6jPzlS7vxKbPeNZtc/YMvfZ+Fx
|
|
||||||
uEjvaZ6nDbviVtQhtE0J2EZ32n90Ob8YC8l/7zh0hp+mZO6Wf2DGXWjNvG7d8Ucc
|
|
||||||
p5A1ZVIpJ/VQzdlPaocO+6AvxvSBpaIUF0yGpTwofTOjtUmZyuWbhRndsQj1qMcj
|
|
||||||
e8wzOIgr3HZyhO9wztQGkZ8bzHq65oZe0IIOXZu0icZamFGQ5I6y5duCqxDDe4C/
|
|
||||||
v1/6bD1I+/ujLXRMmkcbJ3NZE+KrZg7KIE5ScGbkJIX7vIicqtsf+7VipdOh3/wp
|
|
||||||
qaDxX9Sp2cbVUU0M/aJ14nDSeFlx0XQAgWkPjG2lYtTNEC2zuudBCuCD8es8EhAW
|
|
||||||
FrU94cYg9lVId0NDMOpWPMH2QJFS4tk3Hc66si3+gkCOt2GOaSQeD+gGWkdwDzn3
|
|
||||||
S8iAur2GohFFAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
B4914rKqUc51Q1nq8CrA/e7EaMQ0ug08qlBqWyzZSDiBKVCoQj446ZJMU9VKlzJF
|
|
||||||
XtuURlJ7zswXMze7HceakrkxZAc7GiAGKO5hgbbI8XGLvXn16Lsr/MP1cmbKoI04
|
|
||||||
g5tG9Kx6yOB4r/l2TQY9Tw22YcdJ24W2/mw6TmDv0b+IorsIBnxIDv7Q7j25IkNE
|
|
||||||
hW3F9R+Ntja1RWPqKnptp8nxBt5/2jVr637BFczDv9K509QX+HHKyICA1hnvDDU7
|
|
||||||
N5Y1/mVu4JwQrBAFL857XbobP4QaLsZ34Q8LRE4dveuyw+vjVa1YimZ6h/RvrYyP
|
|
||||||
8DUi4XnzFyztecivXbdSTpMTSMfC4NQXFeT+XStRdWlapZyCFhp74w3wv7HCB0z6
|
|
||||||
7QT1HWMKPRvj1DsHhvPviyLVCL2tl2x+G7aaledOPf6BbhO7VolNeHiubyYCQl2H
|
|
||||||
t/Vy72DZbQeuLhf5GyqVyUm9uugzvVrryUiNUApOW8Xta2dAEBqinDrrY6iMYxh/
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
UrJN3Ey1hSHTaMUAhINCVFhojt48ppxky0bvwztQ9p/Vy7dfRx0APNbL70/XZOrR
|
|
||||||
sRj8zxtx2+tc5Lnkfaah63bmVsUNTgD6LudDaffXiV8XhIeVbzS0r/YJ0U1OsbK+
|
|
||||||
ApDItNDUz+VIJL5JUDjq/6fojFlWPYNIwyk5G8zOM70Atjk6UDyCIihV2u5pofW3
|
|
||||||
znFaFp/XhC14S8lMPZYKbnyl2iQ7UsqLpTxg3EwivIlSVFs5YQe0yXgJFX0oNd9Z
|
|
||||||
gAf3JIonA2g8Oo9EkgRfYCI33AwyVoU3QN1/AmLH2uPWTKhMu7k+OHktuIBfyFTR
|
|
||||||
9jbUq+YTU1ni6kEsJVBP/0I4n9Xb4VYIoqOq0BrcEp3lQ8BCEWjIGwLh1HYc9/DY
|
|
||||||
meE+cwLp0RNU8cuxyrGnkLA350bsNxrDkiaHAkj5ZA8W9VTGYsBxVhbLdQzN3GOm
|
|
||||||
63GJBgjdaOsD6WXs/737nD2sLu6dnA/Jbz84ouZSafQO/FNQZnndfj4osjabmq8O
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint D586D18309DED4CD6D57C18FDB97EFA96D330566
|
|
||||||
dir-key-published 2021-09-06 18:42:41
|
|
||||||
dir-key-expires 2022-09-06 18:42:41
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAvi5+A+XPw4jxMYhmEI4+MpnaX3dUEbsMGHA+xAMnmVhuxbm3Dn5c
|
|
||||||
TyhQNY2LOlsieE84UYG+J4dABfaFH4w0l6zUJkuytX4+6WRQontw9puR/IcXkRwM
|
|
||||||
8Tv/tY675OYRCm9DgDAWfqZM0IgTzSrYRDl8eFPSFCOP0NhMrQZeUrdKgwAXVZWP
|
|
||||||
xt9nTCwT4K9BMp47LEmZKdEokeVsr0l29Z9v5+r24k9x8EQjDexsoHwlVrxWfarG
|
|
||||||
1klWssfSFpkMN+FkTQnBC6ByiBh5ZKM5AC/HkVFvuHjehUpfrtNk6XNFcKbDvEIg
|
|
||||||
qPdg1QWuuSWpZVA+/EwSBtwMNcq9pv60L8Cm9WCJoSC691WByiGwFCy1/XcBI4J/
|
|
||||||
BkoMEvP3kAxzm92jqGbpFSJawFRPZKy89FDKpha/So3CERQPV0ar+DTpVqDlryWV
|
|
||||||
N4x1IzpPeSHFj7T74q8qdrxx0wcAjWJ9WYoGQif6FK3hHcmbSGSgyvAFeoYxyUCL
|
|
||||||
JHkjBCD4WTWVAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEA1Hguh3PNTfMd7kLD8NupSdye1KB6hhQitx8DipvT71ZaCZYI8fZ3
|
|
||||||
z5xa6fCcJXv/xoz1tzKeJ1n4/AzAbc7ltCyyWkj9CbiB99cEe+sVE9R899eFvPP9
|
|
||||||
DUmsmgy0Bn2MrdfD/N5VeJ219TTtqI75BJMd9n1+r5zUzhji2ihcLWYgi0GVZoec
|
|
||||||
6B+xfPtYbifCdrPRBwrMAW4EhtMKeJfzsYFO220f7x2OmmZB9muesi5O8/0zjwu1
|
|
||||||
xOKldXCFbccTfFN88nYmaO8j0SpG9nOveFXavPs0LyVzhuMkbLXSWAN+M/S6GC4L
|
|
||||||
1kbkjQ6YhuYSnKxGFo/wdax41jrSFCf3qQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
r2a4uvuN2LUgSuHoWYckJusjzeaEfTTN+DHJdQjJrMueZtxhhz+C+soYoSAvBsHI
|
|
||||||
huc2y0wLbeNMpLXeyGoYh0M4zm6RyjMksHQZbgPjkibflbUI3csJcvaBMQonfo9B
|
|
||||||
knoqOzeQd8NioOlnbYQ+k78swGtg2ndHpK4G4NMBK6ZQrbhrIk0nVhOhaIHpGdiN
|
|
||||||
icr+czGq6SzH4Snp26dJ+J+9SAdTOzgat/C2Othdu122JR2/7GzCnz8dqS3LabN9
|
|
||||||
iWJWMLxayFKi+Z5f1WjCNOVh5lSjpeLjUNSrA1hXXKSRD0eFOQFRvgvO60gyvooH
|
|
||||||
C8amqpSD8HqsCK6MvN7V9g==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
uuQhm7YYbqR4/fGSDWqzwiw40nr7y3laCmfiTDHOA5N6lVOw/tM4bdMbGH58wkkK
|
|
||||||
XBIEz4zQnIT4Sgaumc9PZK3/a8wkx3HgvSNZAEvv5GK2iD8QQNaR0mv7/gbCOLeD
|
|
||||||
4MAsWH7ehc2u0AcebYehYWE7/fknYRfIGLRzeAeR479LgtFIaaZ54lGeEWKA7qBc
|
|
||||||
B3njJcNDlekChydxw2JRMw2GmK7Gn/cVRLjFiG32aaTPA37Ietw6Z8wXEjTy4087
|
|
||||||
KTzTe6puX0g9kCWMaGIBzod+ucNOG9WhgVfy6M+OMddI4KbgizUM7a5c3DZwnQHk
|
|
||||||
nn5yqib/W7NmHZOL1k2qYlKQlbr412bsDgBDoFYSYPIkbO4x7LHJnGGiwxYx4vmx
|
|
||||||
caxDySQtqCcR9ygMrZVrL9W/Z+w2N/KCXnL+SgTmN0x/Saor1ZTkONj5Tfn4dg/W
|
|
||||||
xDxvLO02DpVTfgidUsBeHSnMQn7w0iG0abhWFmYNFDjxZFEWy30mRCEYADC/1NCI
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 49015F787433103580E3B66A1707A00E60F2D15B
|
|
||||||
dir-key-published 2021-11-28 16:32:54
|
|
||||||
dir-key-expires 2022-02-28 16:32:54
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAxVbS0noZKz1Ei6858RGyyuQgwQUKG4Urrp2BiAzkYxwX+6fURlut
|
|
||||||
AjeLb4XysqCdNdUipuLRQ2QIy1C220QiCHV6jZAsM4tmEq6TpK6q1lxi5YPKqbGS
|
|
||||||
CfUQFT1nO4s4DCYSLCwiRNy6bMe8tNHc0MpXP3loCbPkYCoXrEL6vYIROw3oeGWE
|
|
||||||
KbFPQrzYJAPHgUubBibsY5lkUY9N/5QZw2y1bn+dq9mFOoCIHLd6DkQmySmftnMe
|
|
||||||
QrpYA2WvE4M5yN2HB8QGT7TdzXPPL6889rFw/mjqYExQPX7cqmILkchsB7I5whjA
|
|
||||||
u0oodF8Y9ooK9QT0GeK4h3xQhzNG17anuUxbZ7sxzmBwBNmkNyLWEeIntazyjRFr
|
|
||||||
P2mDY/9YK2JOQKkh3tKl1whcCG9ZtAhKmm/ijG7OrhqtusdGKBXIgALf4f111AK1
|
|
||||||
gNcacDx2fJzRHuNK8zkIORAzStxKdLbAbBNeLENk1zBjSkrxCOJH4mBpr8TXULq1
|
|
||||||
ThLI/8OzZq4LAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAo32l4qg46cqP/sAL+oLmQM0mDiQUy6EtNa73vyy0BJEGWJeImUO4
|
|
||||||
gHNg9pyMFqyF+rP824gAzwX9Un9HaKgFpIrsKcZzg+Yl2vlrBQpJ0NPIkN9oqj27
|
|
||||||
W/A7RftMhH2itv0v87QudD7FqJpxdYNf3wpr9GvsAiHZMBfC88WhCnmJoDBwyucY
|
|
||||||
HFH7gzjPeDx37KD57o2M1KC/SRVtQtrccA/WzcxNypgAYkJu4yE2gaDr2WFn3hFv
|
|
||||||
kscW0jn6+157UuKH0rCNeRFDx8SsSS0nr6Zk/n+dlXzHGDO3vQIKCoRoH9yL4T//
|
|
||||||
hkMYE/4qc9R49VyXxK+n/qU6HQYpQMi+VwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
KKrOMRAg1bx+XFLRjhQB5OFjtupkqkFnGjS3LZQ5FHNwJ7cKG1X7K0aJNAumRPMD
|
|
||||||
w9xraIMuuok46wj35P9Tcy68qi3EqIJP5378ZtdK3Ncy9KkSWJSA9MLPmB3fClL/
|
|
||||||
/5TwboePXRdlt++Bcw9OC83HDuFVBqZArFIvopKf/AJOyViRVHlBmgNKFpm9RJTo
|
|
||||||
XsD415rJAi79tAfXzKuagke6DTVqobMhxrUmp3RjbEEEC6icQ3YX9X6NOPQ4Gwl2
|
|
||||||
bpWOVi3/9EGRge0X8IYsqB6/pnEXM2FSOTMdwo4YQzIgW/HLE9hXjFCx7QcPkcos
|
|
||||||
AZHvl12tKzZF3F9MKPcNyQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
wb40bfNLWyU9pWW+2BAHbrmZZfbs9UEIS/6G66VE6823/r6M90RCmFx1JlwqgmaV
|
|
||||||
/WMbBE9DxFKILyhuQi6whIKoYndg72VDeZL5BzWctalw24VpJePVjeGLcTdJHBVh
|
|
||||||
a6UiQFaQdH+bTX6qNIFv9nNwq7ZzJRBvaYF9bK8kaTrZilFKoRVBxXssBUFjEz6t
|
|
||||||
f+sei5WIiBnzaQOUxdMjvdDAHci4DXwGw1U2M7jcYARo4FfvWkAxzWLxocWmauPM
|
|
||||||
8tDn0fSgMnLlSOR2crnriQMFhYD+9xyxfOq1IDH2IWCKlejz7j3DHSqBYiUSO9oD
|
|
||||||
uX6htwbMWwZQeqt+LttE/zZX1Tcv6PJqemT8uabH0s94W2A3sJpstWJ+0capb+Mj
|
|
||||||
bvTXj7t2ilqa5RX35KKhaQ6wlh4OXZb2ydeJZc7wtyG8eN53aVqJNJQ+WZn4IiTq
|
|
||||||
fefr2ojy2VDJLDHJVNpKQQzmjXtSs+69wCvrqdHGjGAQl5L31LjZgaNLNj14RI+H
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 27102BC123E7AF1D4741AE047E160C91ADC76B21
|
|
||||||
dir-key-published 2021-08-21 23:12:45
|
|
||||||
dir-key-expires 2022-08-21 23:12:45
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAuxgnMVH4vwBjMeGvrEODOYcjbCS4N+Wt0SZ6XA5I08HyMf5AbaaF
|
|
||||||
MDscJBRIUOp7DyLmUwK+jp+QI8pUjjKsB8S0ctb/J3Im2T6CXnP2KgEfVmpNVQmV
|
|
||||||
XdMm8cRZl1uIZDDBAXizSQ51f9A17TJh7pF/5khYp/SAzl6aO5ETn7ry0ITiJnNa
|
|
||||||
6cY+400F7ZBA8NuXnCHVGfmpFFsiJKFrS1Kve629eeaNEd3mynRviBXJy5a4NEGf
|
|
||||||
y42Ev8on6SxEnF9OG0NMJ081/+mP+j8Dsl3+Uehzr9B42MQQfDo4RdYGrt9XolBm
|
|
||||||
L4eay1ieZEsFeDy0TMfiGGbr90wo1fgGLHIRSfTNLhhPJ/f9cTZPe98rhSgGWiAd
|
|
||||||
RvK5SljoIOR4qdS9/aiZkj1P+etvh1rIQUcG4/xCOBnouEBK+DDHZFqyMtpMPtV0
|
|
||||||
Bxi20DVaMJcyhdfjVqcRSyuR8tlOnTid6QwBj6kgIIfMaC+4Ht6yO/SYquCWlaZl
|
|
||||||
y7Pu7li8WyW9AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAu1QJ+qlCbtrYsg9QENtOpvMrEDc+WgH1ZFxEqk0v/ad2ACQYe4dT
|
|
||||||
g1gJ6VZyGths3p8+WQXIA9YbcEr2oajXlLmLT2QAlqlsXMPKwwIpeG4rvR43Wwq5
|
|
||||||
mQ7aX+/VjZ9YZNoZVEAy1O7ti7GIXJzJYDOdgBjLifSjpjcEmSaf+v4E357azs9R
|
|
||||||
ndLHRRwbBLdUl7G3aMkL4ejrv6AAXexPxAL90xsb/MAhVEOQrJNcVMTgII0fSf56
|
|
||||||
P1J17SQwthNZ4rTMo2O9TvWUGNf1sMb9kdm+A2Nwo2CKmUR0uo5wHN4YHSBYFDcb
|
|
||||||
hxRtZlhSFfBJvJgrX8/+CnJrBFC6S/7vJwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
VzdxGiA6egLcZjm3hHrTW+N+7sPwaEcdYR5/GW757MO79O8QwjOLJSa5dOF5yDWa
|
|
||||||
3Ie+QDB2Q++a3+w776zqpFsaGCuEHBCfU9pxatKdoTsExZdQnWHJg4u9YD1JcYvL
|
|
||||||
dZq9uCCWaKa91OjA6/U9zp/LY3tOPUWCyO4MHehHYggzapbcF5uaMG0AT0lZzaXJ
|
|
||||||
vh180N5YGMfm0eYXJqkJyX3WCZhGroh7o3DyaqtBSJ1cY4NzTNgPoCAi3J/XEoCI
|
|
||||||
3JzxfH97uyqQngR1yGb5KggdM2ejci3Ld9q99hjXlzYRtsobUQBTlZca2vUk5ALh
|
|
||||||
vFWU7GzcNIdDjKBUd+IhTQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
WldVJc0L3fByDY9D+Yha2/8Bw5nqRpHu8RL8lU8zXb0rhfiA6DN2aefSCG9WEay1
|
|
||||||
sTVs4zhS8N0+278oP51Lg7S+V6SmXxKZbF3I2zNaFMIPVspRA3OF0R9vCP1YMxeo
|
|
||||||
D4EDQXiRxNNeM9hAjmmLiE0j7ZMetZ88ewwsOOXAvPHmCth09nWdCYKwibwUW/U3
|
|
||||||
w1HXCHK4BdZ7XXkMJNry7kZP/H1/5oYyuKshue4+f8tgRa0xg0wbHDrdbrR1qBBu
|
|
||||||
Xg9Q11hV29RIdD0ZgugUdyGKlpRa6Mb3GD5DzN845sFhCjsPrYyZv7Xo/S+uTtN4
|
|
||||||
t59BtF1TjnsAhUk7shk2W3zzaauzUarkDA1v+mb9NZ3CFsNgfxt6d1yDDyuxJgaC
|
|
||||||
VkIfO9nX9dCORSC9Ow+XOq+D/o4FfSe4q0VvrJJILAcw2Nu1Zg4ZhHBeugP9f4I9
|
|
||||||
p/+ZMrEr+YAKkjPw+uIEdR0l/YZEhcrjymX4FY829LNll2AceqMCKoapFWuEzzDP
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint ED03BB616EB2F60BEC80151114BB25CEF515B226
|
|
||||||
dir-key-published 2021-03-29 03:27:58
|
|
||||||
dir-key-expires 2022-03-29 03:27:58
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEA1d6uTRiqdMp4BHBYIHKR6NB599Z1Bqw4TbOVkM2N1aSA4V/L/hKI
|
|
||||||
nl6m/2LL/UAS+E3NCFX0dhw2+D7r7BTJyfGwz0H2MR6Py5/rCMAnPl20wCjXk2qY
|
|
||||||
ACQa0rJvIqXobwGnDlvxn4ezsj0IEY/FEb61zHnnPHf6d3uyFR1QT06qEOQyYzML
|
|
||||||
76f/Lud8MUt+8KzsdnadAPL8okNvcS/nqa2bWbbGhC8S8rtDpPg5BhX2ikXa88RM
|
|
||||||
QdrrackdppB2ttHlq9+iH3c8Wyp7bvdH8uhv410W7RnIE4P+KIxt3L0gqkxCjjyh
|
|
||||||
mn9ONcdgNOKe31q2cdW5LOPSIK+I5/VTjYjICza7Euyg03drpoBMGLuuJZY6FXEV
|
|
||||||
auIBncWe+So8FMxqU/fwo5xm6x085U1MwXUmi4XDYpr/kau6ytPnzzw9J++4W9iC
|
|
||||||
em5Jp0vaxrDnPdphqT0FWsBAwsZFL7nZRnmUlTgGsXUa0oSM9/MErDwzELh/NwG4
|
|
||||||
DNyyzRG8iP61AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAsw2ZJlGsmfDmDwoKbzjOno759Xwqn6JX+tFasI8eRjOFnOyjYzd1
|
|
||||||
XjG6Gj2hVpF/ze2NiTuUyRu3Ybp8G9/gs8VGPljxSHkEugGjQdYFoST02ma0vUHA
|
|
||||||
8YqpBYOiLvsXnqfEkl3Yj6HVxmVJA9j8BxODODlBtxRMJWFrpp/b+qCo/YyGmCh3
|
|
||||||
n0qd3QNqFPLIzwvjWVhaFfga8dXBT73wX9uYT7nT/e3pV7ZvTw0caqi7svNzj0I8
|
|
||||||
/OxOEjoBQEQMQVPT2bNZKBe9X8QKDSgdealZQwBT9wdZ4KndtCj6Y8MVjj15/YtH
|
|
||||||
fWfNyUHgVqOmfDK7m3pHXR9fGgsLQexIfQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
GyN9MMaPABXJ16WAFIhdzOhNT59BI0RAfV9ZpUJgzkAAmpoj+WwUtWfcrW7a08CT
|
|
||||||
9g60QwJonP/Nh+8iLvQYH5ZyEqsEj0HEUD/yI2kvN41Y5QBD1Sku8Cu4E2UaICzL
|
|
||||||
V63oitjQzppKlVXHyP/SXsI2bUjoHLtT2pBvxRJ84DlZBEQ/ZqS38NN/+Z6DtMR/
|
|
||||||
kn0l7W5yA3bYWzeKy1TeKLWo7p0hHzv/Hswe/eha+27LuwZZwwfSQrRy1fi66Fmj
|
|
||||||
0xBP+iXXtmNleFegFuhEBPXa+9udrT9rodSdazkGPzjyF6HWRMP5DtmTI6ovJDVX
|
|
||||||
60UQ0hNb6KAP+FZKPz9/dA==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
zAgmCR7tf0btsogvBmdxJ7+RWjPBzmDSA7f+zlK0jOc3lDDD4pxuQO6iNcoEDYMC
|
|
||||||
5hkzVoGBMYsxLfLZXFGE518dn79iKr6SQoq87AhnAsIiAfXMk2AWLkWI7MTzZo2U
|
|
||||||
dcgo+7vzxMObk86vzFxYWrSqp6CSZ7RwBRnH3vCGLfOMZ1lXMug+MQAQYAyl6KIR
|
|
||||||
3d/uEu3+sPFJcHQFP3C/7bHDG5j/76kwoFzjSjg974rSjr1j1FbrpNn35mLc+2X/
|
|
||||||
11n7cOADHWaSN3MlLWGsYxuuX2l1w/XZNfFEezDwK3BOotbj5spU2nQ8xbDFPB5+
|
|
||||||
ixDfc00TC3YbveSz+S8W9czfysJt3KaWmQczDtSIXag1qrL52CBGUVGP6+R7xnpR
|
|
||||||
/4QD6yCKmDcNk2D1YnindwYC48ydDt/u9A/97cEBpUbul3feW7eKLk79MIklWlWo
|
|
||||||
3c3aQVH6Ewrb76oXYYwzNbqJOp2ceREu72/Fk/keprVcupVDtVoqHgDDpfOUYTJd
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 23D15D965BC35114467363C165C4F724B64B4F66
|
|
||||||
dir-key-published 2021-09-18 16:07:20
|
|
||||||
dir-key-expires 2022-09-18 16:07:20
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAlv6XS+VppPaQzOgor0YFlcXLWeXiMn5N3VBneXuw8maLOu9oPJ9z
|
|
||||||
2/oMQN8a+VOWTf+/jebGzOBK6MamXpgsIZPQWiT18gZMsYdR8mcqBYqVP3khwUWh
|
|
||||||
9QYkV+m+Auxa0TLzTrsi6dLDJ384XdpDweU+YJghMJNZ1NqiT8ogj84hxs5Tf+Qf
|
|
||||||
bn7EBIcU7SAKr5Lw25KrMb5e3AZSC5MilBS/KLgVTq/GiWb7pKd5pxGwlGolNX8a
|
|
||||||
PccZ2ZT2DrSQsct4wVxhSbUqANI3PfMpXvmUDxWWBgbQwLF02/4gi+13snlHtqwl
|
|
||||||
y1WjE55HVfx1CTX13SStwmF/N3SFtFf1qil3j5qrHdHtKlAYOaTfqab1eLVH1l83
|
|
||||||
LI5QWD7ri9GpPqIjlh6PuaHjaO2FW20SouZtS9jJKwi1l1G3ef1tSlha1cxkRxIp
|
|
||||||
U/ngvQBsoa9X26VfQA4MieZgVVdMVwjCNh2YC9aEXc/KxfcBueZkM1194qP88cVu
|
|
||||||
dOFYaftOkuGPAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEA3OigVlkOvlx54wcY0RRuExNw2sPYHr8m8QP+SnzARDbrubvsKT0S
|
|
||||||
z/+aVWccgacBtihOpF9juQLHb+nqhea9s6QS8XAQ98bqm8foKToWuxnIRS9c+8e1
|
|
||||||
qcENTfh6U2Dr8ckwVcKAPtnLnPtbxuFF5UiqXAPA89ZmtqUPv+DfmDr5fdeb0bCu
|
|
||||||
Lo6TCFLQOcn2Qz1WsSv/2JRkSBy8pgaC01zErgv9oRVIzFfLn8YpfnWZkFiRGwX6
|
|
||||||
/GBLsS19SLLX0xLkPwQ/CwN6OkipOtYi6UNq0osHw9xfm5sCzcnltJShA1YtIp72
|
|
||||||
e1HkTx03a43uAKlJBo1rMD29stVJu9ABEwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
r2YFJIj1zR9iMPWRJYMDEKuLlV0Gbis9232Gog5sS06LpUFPYL6clLDf7eWAimPs
|
|
||||||
u8rUUP4JEjmAY7bWHyqbG3D5iljNin50W7kvY8ip+Vqf64vjNUXFDKUbi0iGkfVC
|
|
||||||
nfX67FL0JF74hqtCtMlS5QPvD4oLsC40DdmPD4kCulaSrMlmsFRGFdl60HeSLbeP
|
|
||||||
oopRA4yYB4ZGJxJUaSuMm6RrcK08G2l7vLfHpxhcJWQVb2fKB7Ds+AogZYnc6ZYF
|
|
||||||
hpGAP9y+Yn8TUUqPMhhZwLw/8eUAhtv8G2aBBxHyctlGvg1YFiquPP6VEn88h9GZ
|
|
||||||
X4d/mLOAQeYWEalQC812iw==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
OlLQuEDdagECnVy1Nke/C7dpS8+8XvgLK/hGgV/OpCWr+Gq8bL6/NpK9GP7EbsUI
|
|
||||||
NxsguJ2r1wkEGTixz88gdKWDCC3evGW1pqnsjkCk69gHGtCxmrFeiCxCSomaOjzw
|
|
||||||
HCnp3TcT1DA4EstoXUqPysVkBYkx8OBO6rGhvE+G1S4bVG/EJkPCMhjPlxX41ON6
|
|
||||||
NWvtf32dviA5W1BrYKWJy/v0pCsApgjZa6qpaLdgqQabG5YEJA0rONS1hL+AcJks
|
|
||||||
CnvkSS7iU/4jrDPfgOLoVxEkH68swLol2Qf0RFHg12EL5kf0xbPnfE84aQyt99an
|
|
||||||
6VAMVIy/tCxR2efZ0+uQmQk7S35uQH/PxZ3/mq6cDMw7+WZdYbrkyfmFK/A+yL2P
|
|
||||||
op71Ik0Xf0Qwd0qMhTZMVPZpZDQmxvr0j0r3xHia0Ez+PhovnnxqI9/cThRQ/ceN
|
|
||||||
jE2cA46H4ZfYn5OdCP+mP9L+MsqJYoHj/SigcIrXUX58R1D0JWVX2KPU+tVyQ03B
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
dir-address 154.35.175.225:80
|
|
||||||
fingerprint EFCBE720AB3A82B99F9E953CD5BF50F7EEFC7B97
|
|
||||||
dir-key-published 2021-02-08 18:16:07
|
|
||||||
dir-key-expires 2022-02-08 18:16:07
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAwBmqdD+G0q3smN5OBFHCcK5pQH5G1GIpFJ1JxCVEp92tTK4ZHnot
|
|
||||||
9RzMfag6zQFqwLaJ+yEb1DOjTdTMfcUTsj5f3GUqPB+U7shSMAvvAAM+Bx/4m1AU
|
|
||||||
u6sk4XmPB1bCBfcRl4zhnY6XFIbj0ktuBDblcxHz3lDgHFpBoci9sF59mM14MZ09
|
|
||||||
EdwgeckcU5oeq6ApuSlUVaOT8xsKV/yeK4SKaFfDclwPAJuitQ5CpqctP7ExmlrY
|
|
||||||
sboTDtz7/Xa6OccaGDEUf7TRlipvUX6rvlmvHm3qjdixVfExpa8E5QG79GZTL82p
|
|
||||||
1zBd3iqc6QEnRDTiW9cMUeQt4EvrwOUVVYPWo3hp1C/iiNzWraDays2xuhaSB0gj
|
|
||||||
fPatu2CFW5XB2vd9IvIiWeklSFqnF8DL38jDL7DbFiETJreGsDMR03yHWVd0MbPz
|
|
||||||
OrvAxG4tJn+JtnwhzlbRjnfk53jOTbiM0vMV8h/ztapCiJeT/6i7nVQ1xL2boeYw
|
|
||||||
5RDUlwZaQiaXAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEApIIcKBWvD0P2YQtsrFKEF1kprJUCEUlWqzV4mVbTcVdzVQpct8t8
|
|
||||||
NAO8kDbxRSyU2S6gKecusy4H1MJWVAe2qvKIY974espuJwBXWFgT70jSBTFzjMpB
|
|
||||||
dAaTTY+kNZa66kjBjCVolr8UfFvL7HaL3CCtWD9ds7+ep76co1h3s3sD2BWW/M5m
|
|
||||||
V6ML8kYkjRW6SW8YHW6By3G+UuqRiGziJIIwQAoPnNSWrzW6UTLpVRDjdo70bQvU
|
|
||||||
vvfppUuNNji5SFfzSiakxHIse/eHG/rTNSzOvlpjuZxzPIcekr71eu1hCVHb2QdA
|
|
||||||
9Ikc5pUQeB0zImI8WJ9OVJDFUEgjJ9LGtQIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
cy+VPbSGSJ5aI7egCwgNY6mgSlJumULFmUN8gfahvMo5hUwVLqP1FtoKIO8yBUc0
|
|
||||||
Y47pt6G5a0fjm6mjapFbU7IpqIUl+5gLBRKD6ugx+hr2IoqIVJY7WQUvVMBnfqHp
|
|
||||||
Z5N6kXfFBT+EbnbLiUqoRo1/AHC6E6CqI5pdhV86UCFydmuLf/MfwJpXiYRJueqk
|
|
||||||
DnPYEflq+Zu/RReL5aJlVOVuWq0ZpuzUHk4gIicKESLGkv4eI2CvuB5HTeNAB9L5
|
|
||||||
laMe+YpoXqgqMae1HT+rupPXYeONPygFXXbNLNVrR7OjAYG2TOaqdUTQkFefFVtD
|
|
||||||
ungKyPS6LTytSuU/rjWCbQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
sV4ouMb8pmCM3WjLTFxfRVb6qZl8rQ0tYM/AjKz1ufU0UmL7yx/7JMg2InDcYPH3
|
|
||||||
4PIUQrDLoAMxnnNVMDaDGoGDGI5keUmU1eSGvdJYN7okd0aRvA9LFGw4uDVVyB0K
|
|
||||||
l7BOk80y15P34R4G6oPvcR8aCxoiMh9UusbhiVjBr6dAfJGVVxZAO1ZJ8pa8fcrA
|
|
||||||
IbtNks2vut6Oy4oaC7zLCwcbRJM6dSvzcbzBpCf7/b9w6NQNqCBBQkqKgUl0FqKM
|
|
||||||
QRKqHWuhbqcL9+lj7rvgWCEigLu9ff1+E7C4BV7GzOm5FPcRqfkPaMsjQuM/HErH
|
|
||||||
swhf2Ra+Tcdk9gdI4AomqwaoD6B2uKsZkcFpZhq4HAle6rOP9eC16DpqsokpqoW9
|
|
||||||
vb5Mic7ABYVpB4t3o5wOI9D4exXmzv6gpuOyl5rJGL5ORYSEhnMGsKMyPceCGysg
|
|
||||||
SzwfPWBqRTM2LfBxhW05UEBJev4EXk7AA5sr6GkcX/CXeR47pyXQAyc2doZo7Aoq
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint 0232AF901C31A04EE9848595AF9BB7620D4C5B2E
|
|
||||||
dir-key-published 2021-08-01 20:00:02
|
|
||||||
dir-key-expires 2022-08-01 20:00:02
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAu9O0Pueesn0+29BlxZs60mBqehjdQtgSnKOm9QZxbQ0xrMQgbFnR
|
|
||||||
hWbKD8erenyeFk2SF6AJkbyzgYC89hyPW+8GBDmg5bE8fRKjgV/nI3tY2m4rkY3u
|
|
||||||
zSmYIdwqHUUc98Xzt9PaQ8IJAlDBY4XLKrWmJMxSyhBlVEept7+9Tj23qowW44Mz
|
|
||||||
xPJZ1aFkB1FpkD6qmoCzVZbhXy3cGt1nDwdJK7KqlaXziz9pFiw8PzTVU2xFgJNy
|
|
||||||
+nEcT72DBtk3G5K2Riu/aXY/D541Cioj9KMV4Nv4g8aBKx58Xq2tq1pFkc1Bqj1y
|
|
||||||
2MomVR3iskFzlqC8yKWGVe4OP2IaOhtcQJYp5GR9q+dWnr53WWNVxNu3sA9iMal3
|
|
||||||
PJUk5pIYrsmArGew5gmlCe+Al46nPINxc7ouztmStAV+2F6SpZlKOcstnT+KJ52O
|
|
||||||
1xnOSaj/WnzG2o4KZ9UrFQoUNOLQJcelPcC+vrinMk9BQPcB072l9NjpUBC9brsW
|
|
||||||
qTCMStn1jfDDAgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAp7nHn/R+ZZ8lza379M7BJ00JYPAcncjtoa2K2Z75bDoxlegGvZXp
|
|
||||||
j4D0WhqksaaOr/+YCSPMcs4HAapKE/Dj09p1kjzh6Xu/iVp51NiQAARS5j3tu/5k
|
|
||||||
WJQ7ig207TdtjmslZIx0UU8pieuenRdyUN0PvjOkaoZIpao1+UlIe47DP+42D3QX
|
|
||||||
1J2wu48QDvt7hUUA3y7yLUyNMarqYBbbXQ/MpH8tcMT76TTN1uilP6W/3j1b6Fr7
|
|
||||||
NGtbUrS1EzOOHnCpgpnD8qGcisDKrHcVkNkh1w+8LW9ef7RGpFPpn022hUQG0WLD
|
|
||||||
5zrh19SAsKetWAZY6RlvyCHPVReajIAovwIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
ca3I8mHu2zEOCnzySzdk+rbZLpohw5aa3NmTGFzRUXqOeHClOYHRc+glAyCrtUA3
|
|
||||||
lEa5fiFaZTImKu0J/uroyR4uF5JpzLOfojTQi9P5hMCBSdd7uGzoKC+/dKb2OngZ
|
|
||||||
VkBjptMf1S9dy2lUdDksHnnyg8UrV7EolIHUFNdEBI1LeONkdesZ5oQMg3HRlVpU
|
|
||||||
v+m/7y/MB+o3KAXkQyAxTcV4bKdsHm3Pf0CSfDgOPImwFS4lwyEW0STlOmVHojZR
|
|
||||||
5wm+5dwt9vbD7K6ectbnWtWjiSrvtGjqixO652lxz1qrsid99S5wEzJNhfif8lYe
|
|
||||||
VsB9h7YagNHJHLiGeBT1kg==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
ZkHpe8JVvGsiAsH8gw1eZVIIE8WuM+3Sdd37U2tOyDi7FVwJV+oJ+aKwcCTqTLaj
|
|
||||||
jglQJbg2JdV4ofy49ZaQa6FBGLrzxAS6Gx0jg+28Kzbr0xu9hSX81oPSXKn9KDLr
|
|
||||||
BvmuSqKBB+5B9nIEBjm6FwPc8MjqlvNesuJ3IpW9+e85eB7qsH4ozjHF0GIgpXu/
|
|
||||||
qXrk2TEK1nMc9EN+VCYuy3gAm46GHQEYR1U7gIofCYf7LQpDrfj1sAGquCQ3vYqT
|
|
||||||
Ex3GtqcDV22IME67Cou5rv9OmMnmy1dbeHO4g843RX0LXtEDdGYGSLHzl8EAscrg
|
|
||||||
i55XFlS6z5OwCbdDvFTkHUWRlaiDtoymaxAEW6GUmNjHhgWY9wJwgroVNRsP8Ihi
|
|
||||||
aex9HIND1MY4ERS41Csba/0grf+FahMVI12gwpmrnKfF95QHWw2MEvT1pzZGtMnq
|
|
||||||
XD8mcVNYJtcTvYM/cUa0I4BFD1AyeIP54hEXwIsqHm8KBJpjX/ZpPzksnc4NY8i0
|
|
||||||
-----END SIGNATURE-----
|
|
||||||
dir-key-certificate-version 3
|
|
||||||
fingerprint E8A9C45EDE6D711294FADF8E7951F4DE6CA56B58
|
|
||||||
dir-key-published 2021-11-09 19:16:37
|
|
||||||
dir-key-expires 2023-05-09 19:16:37
|
|
||||||
dir-identity-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBigKCAYEAu/DOrbv/4IAYvyxsy/6ivC3q5yCQBWLKHZGYKQa5G/3rem8wen0f
|
|
||||||
qF7y4ye6U6faWc5kcNMHEKMIeBzMErxwF345qoGHITxbbOWnizgwPgrdCwlK3p0H
|
|
||||||
1XZGU/TTjoaM25P+ZNCBvGmDQRAtgs2odnv+i8hpu6vrcAUZYXmmw/Ag1Ou2AlLC
|
|
||||||
mPpbjV1O5SMylgC4IuCBPr3iA+M1kKkvj4LmwU6pJxjAae76GLzzQ/Ffvi7rRpvU
|
|
||||||
2BHetjehk+7/t8izgbhT4VABtzKgrv9ATnhfEgPeT/WBq0E75iciBBAXRPF5kEA4
|
|
||||||
k++NPy21XpL7jkQ4wnMs2HyiFhHbUwbLcoyQ/JVq/WBboSwStYbkdizRpkhJ1eNg
|
|
||||||
LiD8CPWcZnhWZi9VWrwT0xl+Mu4v6kwo9kVnXhOfcK8Wni9FqiBu2tmNDoGPG1Ac
|
|
||||||
wptYQSIoujuLgn4MARREwo9cWrKp2w+D7Dt4U7U5OrXL7TXjonEKuEHwRhzz1JA8
|
|
||||||
7LXm/wENwn1/AgMBAAE=
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-signing-key
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
|
||||||
MIIBCgKCAQEAuxJxHCGOw9DgNtw4wqi78OE3djdiLwbie+2CevKMRaO14IhuQGVK
|
|
||||||
w1PYsnTuVLVcJl3Y4QKQ4nnbe1QCiGrLq9wueQy7ZvBeZry3f+QD1Q/PAG19n6/7
|
|
||||||
hlhXclSOJ/jRah0Gi+QXAycKE5RES/Qn4F5fNE7MxzM0ZQHIlszZLNUrcpeLE9nX
|
|
||||||
avlqlSqK8FmLPOpOSRrdPtzKP2sjW9UUFVGMfurDYIC51hkZI/nyy8A1C844sfuF
|
|
||||||
LV6oYpYw5+soA122zBqGqP6vApwFCvWSDcGlx8xj1Irdo+JIDfK8vklu9P11rTWB
|
|
||||||
R7dZw9pD21reD0pf0Bipzneho6iiL++w+QIDAQAB
|
|
||||||
-----END RSA PUBLIC KEY-----
|
|
||||||
dir-key-crosscert
|
|
||||||
-----BEGIN ID SIGNATURE-----
|
|
||||||
aMzjdOHri8Kmdoy0qt1a33Y9/e5vKkJQkzCKdHN34Il5FMMCkOrJ1yeQgZyp6mU4
|
|
||||||
jPSpUZlr1Iq52x5ers4fH4SybvX16BDq+p6+Zel9f5TpFg1vzdpJH1WOJ3ZoES1N
|
|
||||||
S8CpiXVz8flc5Ez6Dc7uZGSE2fYRl1Pswn3GuLfR1Wjw0VNp1VgHZk6xYXRk/YLx
|
|
||||||
OyjZTWEWAF/0qw3usXtvTvh6wGniVxr0rg3zZbesLXti4TAn3B3N6VG1TPOizna6
|
|
||||||
s26edpQ6RQPigAuccEwU5iaIQEGkIxcoe61qnPvAoWP3Jk/sZAGCqhbya0CBCH8U
|
|
||||||
pEW/OauwlDlr3yXEKh05aQ==
|
|
||||||
-----END ID SIGNATURE-----
|
|
||||||
dir-key-certification
|
|
||||||
-----BEGIN SIGNATURE-----
|
|
||||||
XhAoF04YrM2zJUvrQuEsGhU53Pbf1B0jv5F4YkMlRX2y15rKXKI93vQTM1LbnYc0
|
|
||||||
ETkhSOQB2rpnX0bcE+K+x0sWXiMRtR1HSX/oIPDI9MNqHv75eZlEkSaDJHIsQJlj
|
|
||||||
Dd++tMHkRc49nNNo2J25J3TiBU0ecpVYYvtJzynE3W8tX3io6EmvTehkj2o79z0A
|
|
||||||
ax2A5JG65plch0ES2yK2jqgBEmkA/eZENDNQAaERXMFJbbpHIMBaGguwCEieJe77
|
|
||||||
JBAOxJFRGpL6MhMpcvi5MgEMqfAv3AhlBo93n4apT2CYR8PdCHUZyq7FrgwTSJS7
|
|
||||||
ndl3YmvxJ7wnyTXitw0GcSVeQaYMQV+LR9Z1VkmjIwRuHliUn7hR79pYqs3t11aQ
|
|
||||||
muW8jOrx+5QsiTLEPV6Hs0pzXc9XDw7mnJ6M2gxxF8fZCztal3TNLs9+1O22fxME
|
|
||||||
0VU1oS7SG6T4M1YOXgKFUP20gLl8sZf+3lGp3aLZIK8psR3vzggpaRSUKgip4Lqv
|
|
||||||
-----END SIGNATURE-----
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,35 +0,0 @@
|
||||||
# Tor state file last generated on 2022-02-04 13:58:29 local time
|
|
||||||
# Other times below are in UTC
|
|
||||||
# You *do not* need to edit this file.
|
|
||||||
|
|
||||||
CircuitBuildTimeBin 1075 1
|
|
||||||
CircuitBuildTimeBin 1175 1
|
|
||||||
CircuitBuildTimeBin 1325 1
|
|
||||||
CircuitBuildTimeBin 1675 1
|
|
||||||
CircuitBuildTimeBin 2125 2
|
|
||||||
CircuitBuildTimeBin 2175 1
|
|
||||||
Dormant 0
|
|
||||||
Guard in=default rsa_id=73283C4DEBC01D3E4A5FD1BB1F2B50D927379F59 nickname=rinderwahnRelay29L sampled_on=2022-01-31T13:54:49 sampled_idx=0 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-01-26T00:18:13 confirmed_idx=2 pb_circ_attempts=7.000000 pb_circ_successes=7.000000 pb_successful_circuits_closed=7.000000
|
|
||||||
Guard in=default rsa_id=955F15325D6F3E3350EA8A70EB5C49C5BF95C5A0 nickname=XTOMDUS sampled_on=2022-01-31T07:54:08 sampled_idx=1 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-01T08:12:17 confirmed_idx=1
|
|
||||||
Guard in=default rsa_id=82DA9678A0BAE60087AA68A3E1D6E6A2C4246D6D nickname=Ichotolot63 sampled_on=2022-02-03T05:29:22 sampled_idx=2 sampled_by=0.4.5.9 listed=1 confirmed_on=2022-02-02T08:46:50 confirmed_idx=0
|
|
||||||
Guard in=default rsa_id=77A3ADC5D455778B53C2803761916DFB7DA0A790 nickname=redvader sampled_on=2022-02-02T15:23:39 sampled_idx=3 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=2096BCFEBB95A1134F39FCF8CEB076FF41A2B48B nickname=freja sampled_on=2022-02-03T19:51:55 sampled_idx=4 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=AE4FAE2EB5DC5D078458F0FCBF2B37F5D73F0868 nickname=sinkrlogin sampled_on=2022-01-24T19:30:40 sampled_idx=5 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=680F212ADE23311C658CC560DAF80DB42FEB85DF nickname=a9 sampled_on=2022-01-28T12:54:55 sampled_idx=6 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=3D5D6178C44537E3692853B344385F6572A55767 nickname=TorZabehlice sampled_on=2022-01-31T02:57:52 sampled_idx=7 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=CEDB8AB22915097A3A14F63F28E1E43F86CBECC0 nickname=knight sampled_on=2022-01-26T09:02:31 sampled_idx=8 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=0B555940D37DC849728841C0B290074E1A1BDCA8 nickname=TORro sampled_on=2022-01-26T04:11:45 sampled_idx=9 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=2A6D9EAE2FB319486C5E3BF5CC0F83F06B73CE0F nickname=clicker1 sampled_on=2022-01-28T16:27:29 sampled_idx=10 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=7B3535760987464C8B5686F203B6EBE767C0873E nickname=Hydra69 sampled_on=2022-01-25T23:46:36 sampled_idx=11 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=0F0F690AF1D32C7C3C72C543836625628887BA85 nickname=Hydra57 sampled_on=2022-01-24T15:26:39 sampled_idx=12 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=AC2275831607A95CD8B939C3B8DC466CCF48E2B9 nickname=notsorelay sampled_on=2022-01-25T04:52:58 sampled_idx=13 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=38F732DD349A2E59078434651162A2F4201934A5 nickname=mixminion sampled_on=2022-01-25T18:16:12 sampled_idx=14 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=2F844B6701E6C614240214489A99DF607F43C5B0 nickname=3totalrecovery3 sampled_on=2022-01-31T01:50:15 sampled_idx=15 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=EBE718E1A49EE229071702964F8DB1F318075FF8 nickname=fluxe4 sampled_on=2022-01-24T07:17:01 sampled_idx=16 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=8118F4C0E60C84A453ACCD1641F3A7328CBE6280 nickname=wilfong sampled_on=2022-02-01T10:05:37 sampled_idx=17 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=2AA5F598F9A1812F01CD99E3B59BB87362ED7438 nickname=setsun sampled_on=2022-02-01T12:40:07 sampled_idx=18 sampled_by=0.4.5.9 listed=1
|
|
||||||
Guard in=default rsa_id=CF6A6080091BB210AA3892FEFE2F6A396DA08DF3 nickname=cryzrelay01 sampled_on=2022-02-01T11:05:41 sampled_idx=19 sampled_by=0.4.5.9 listed=1
|
|
||||||
LastWritten 2022-02-04 21:58:29
|
|
||||||
MinutesSinceUserActivity 1
|
|
||||||
TorVersion Tor 0.4.5.9 (git-d0ed04d50e80fe1c)
|
|
||||||
TotalBuildTimes 7
|
|
|
@ -1,3 +0,0 @@
|
||||||
SocksPort 9982 OnionTrafficOnly
|
|
||||||
ControlPort 9983
|
|
||||||
HashedControlPassword 16:D95A03E7895DC6A2605B7AF7E28AB1E24D813742A0E86A2818C7179CE6
|
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
|
@ -1,11 +1,9 @@
|
||||||
@env:clean
|
@env:clean
|
||||||
Feature: Splash screen displays and then closes
|
Feature: Splash screen displays and then closes
|
||||||
Scenario: splash screen appears
|
Scenario: splash screen appears
|
||||||
Then I expect the widget 'SplashView' to be present within 1 second
|
Then I expect the widget 'SplashView' to be present within 10 seconds
|
||||||
Scenario: splash screen completes
|
|
||||||
Then I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
Then I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
||||||
Scenario: first-run of cwtch creates expected files and folders
|
# first-run of cwtch creates expected files and folders
|
||||||
Given I expect the widget 'ProfileManagerView' to be present within 10 seconds
|
|
||||||
Then I expect the folder 'integration_test/env/temp' to exist
|
Then I expect the folder 'integration_test/env/temp' to exist
|
||||||
And I expect the folder 'integration_test/env/temp/dev' to exist
|
And I expect the folder 'integration_test/env/temp/dev' to exist
|
||||||
And I expect the file 'integration_test/env/temp/dev/SALT' to exist
|
And I expect the file 'integration_test/env/temp/dev/SALT' to exist
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
@env:persist
|
@env:persist
|
||||||
Feature: Settings pane opens and can save settings persistently
|
Feature: Settings pane opens and can save settings persistently
|
||||||
Scenario: Open the Settings pane
|
Scenario: Open the Settings pane
|
||||||
Given I tap the 'OpenSettingsView' button
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
Then I expect the text 'Cwtch Settings' to be present
|
And I tap the 'OpenSettingsView' button
|
||||||
|
And I wait until the text 'Cwtch Settings' is present
|
||||||
And I take a screenshot
|
And I take a screenshot
|
||||||
|
|
||||||
Scenario: Change every setting (except Language)
|
Scenario: Change every setting (except Language)
|
||||||
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
Given I tap the 'OpenSettingsView' button
|
Given I tap the 'OpenSettingsView' button
|
||||||
And I wait for 1 second
|
And I wait until the text 'Use Light Themes' is present
|
||||||
When I tap the widget that contains the text "Use Light Themes"
|
When I tap the widget that contains the text "Use Light Themes"
|
||||||
#And I choose option 3 from the "DropdownTheme" dropdown
|
|
||||||
#When I tap the "DropdownTheme" button
|
|
||||||
#And I tap the first "ddi_mermaid" element
|
|
||||||
#And I tap the element that contains the text "Mermaid"
|
|
||||||
#And I tap the element that contains the text "Mermaid" within the "DropdownTheme"
|
|
||||||
And I tap the widget that contains the text "Block Unknown Contacts"
|
And I tap the widget that contains the text "Block Unknown Contacts"
|
||||||
And I tap the widget that contains the text "Streamer/Presentation Mode"
|
And I tap the widget that contains the text "Streamer/Presentation Mode"
|
||||||
And I tap the widget that contains the text "Enable Experiments"
|
And I tap the widget that contains the text "Enable Experiments"
|
||||||
|
Then I wait until the text 'Enable Group Chat' is present
|
||||||
And I tap the widget that contains the text "Enable Group Chat"
|
And I tap the widget that contains the text "Enable Group Chat"
|
||||||
And I tap the widget that contains the text "Hosting Servers"
|
And I tap the widget that contains the text "Hosting Servers"
|
||||||
And I tap the widget that contains the text "File Sharing"
|
And I tap the widget that contains the text "File Sharing"
|
||||||
|
Then I wait until the text 'Image Previews and Profile Pictures' is present
|
||||||
And I tap the widget that contains the text "Image Previews and Profile Pictures"
|
And I tap the widget that contains the text "Image Previews and Profile Pictures"
|
||||||
|
And I wait until the text 'Download Folder' is present
|
||||||
And I fill the "DownloadFolderPicker" field with "/this/is/a/test"
|
And I fill the "DownloadFolderPicker" field with "/this/is/a/test"
|
||||||
And I tap the widget that contains the text "Enable Clickable Links"
|
And I tap the widget that contains the text "Enable Clickable Links"
|
||||||
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
||||||
|
@ -35,8 +35,9 @@ Feature: Settings pane opens and can save settings persistently
|
||||||
And I expect the switch that contains the text "Enable Clickable Links" to be checked
|
And I expect the switch that contains the text "Enable Clickable Links" to be checked
|
||||||
|
|
||||||
Scenario: When the app is reloaded, settings from the previous scenario have persisted
|
Scenario: When the app is reloaded, settings from the previous scenario have persisted
|
||||||
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
Given I tap the 'OpenSettingsView' button
|
Given I tap the 'OpenSettingsView' button
|
||||||
And I wait for 1 second
|
And I wait until the text 'Use Light Themes' is present
|
||||||
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
Then I expect the switch that contains the text "Use Light Themes" to be checked
|
||||||
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
|
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
|
||||||
And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
|
And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
Feature: Tor initializes correctly
|
Feature: Tor initializes correctly
|
||||||
Scenario: Check the Tor version
|
Scenario: Check the Tor version
|
||||||
Given I tap the icon with type "TorIcon"
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
|
And I tap the icon with type "TorIcon"
|
||||||
Then I expect the Tor version to be present
|
Then I expect the Tor version to be present
|
||||||
And I expect the string 'Online' to be present within 60 seconds
|
And I expect the string 'Online' to be present within 60 seconds
|
||||||
|
|
||||||
Scenario: Reset Tor
|
Scenario: Reset Tor
|
||||||
Given I tap the icon with type "TorIcon"
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
|
And I tap the icon with type "TorIcon"
|
||||||
Then I expect the string 'Online' to be present within 60 seconds
|
Then I expect the string 'Online' to be present within 60 seconds
|
||||||
Then I tap the button with text "Reset"
|
Then I tap the button that contains the text "Reset"
|
||||||
|
And I wait for 1 second
|
||||||
Then I expect the text "Online" to be absent
|
Then I expect the text "Online" to be absent
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
Feature: Shutdown Cwtch button works correctly
|
Feature: Shutdown Cwtch button works correctly
|
||||||
Scenario: Clicking 'Shutdown Cwtch' shuts down Cwtch
|
Scenario: Clicking 'Shutdown Cwtch' shuts down Cwtch
|
||||||
Given I tap the button with tooltip 'Shutdown Cwtch'
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
|
And I tap the button with tooltip 'Shutdown Cwtch'
|
||||||
Then I expect the text 'Shutdown Cwtch?' to be present
|
Then I expect the text 'Shutdown Cwtch?' to be present
|
||||||
#this also kills the testing framework sadly. will have to find a workaround
|
#this also kills the testing framework sadly. will have to find a workaround
|
||||||
#And I tap the button that contains the text 'Shutdown Cwtch'
|
#And I tap the button that contains the text 'Shutdown Cwtch'
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
Feature: Global 'language' setting
|
Feature: Global 'language' setting
|
||||||
Scenario: Change the language to French and back
|
Scenario: Change the language to French and back
|
||||||
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
Given I tap the 'OpenSettingsView' button
|
Given I tap the 'OpenSettingsView' button
|
||||||
And I wait for 1 second
|
And I wait until the text 'Language' is present
|
||||||
Then I expect the text 'Language' to be present
|
Then I expect the text 'Language' to be present
|
||||||
And I expect the text 'Langue' to be absent
|
And I expect the text 'Langue' to be absent
|
||||||
When I tap the widget that contains the text "English"
|
When I tap the widget that contains the text "English"
|
||||||
And I tap the widget that contains the text "Frances"
|
And I wait until the text 'French' is present
|
||||||
Then I expect the text 'Langue' to be present
|
And I tap the widget that contains the text "French"
|
||||||
|
And I wait until the text 'Langue' is present
|
||||||
And I expect the text 'Language' to be absent
|
And I expect the text 'Language' to be absent
|
||||||
When I tap the widget that contains the text "Français"
|
When I tap the widget that contains the text "Français"
|
||||||
And I tap the widget that contains the text "Anglais"
|
And I tap the widget that contains the text "Anglais"
|
||||||
Then I expect the text 'Language' to be present
|
And I wait until the text 'Language' is present
|
||||||
And I expect the text 'Langue' to be absent
|
And I expect the text 'Langue' to be absent
|
|
@ -1,10 +1,12 @@
|
||||||
Feature: Global 'Theme' setting
|
Feature: Global 'Theme' setting
|
||||||
Scenario: Change the theme to Mermaid
|
Scenario: Change the theme to Mermaid
|
||||||
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
Given I tap the 'OpenSettingsView' button
|
Given I tap the 'OpenSettingsView' button
|
||||||
And I wait for 1 second
|
And I wait for 1 second
|
||||||
When I tap the "DropdownTheme" button
|
When I tap the "DropdownTheme" button
|
||||||
And I tap the element that contains the text "Mermaid"
|
And I tap the element that contains the text "Mermaid"
|
||||||
Scenario: Change the theme to Light Mode
|
Scenario: Change the theme to Light Mode
|
||||||
|
Given I wait until the widget with type 'ProfileMgrView' is present
|
||||||
Given I tap the 'OpenSettingsView' button
|
Given I tap the 'OpenSettingsView' button
|
||||||
And I wait for 1 second
|
And I wait for 1 second
|
||||||
And I tap the widget that contains the text "Theme"
|
And I tap the widget that contains the text "Theme"
|
|
@ -9,6 +9,7 @@ import 'dart:io';
|
||||||
import 'package:cwtch/main.dart' as app;
|
import 'package:cwtch/main.dart' as app;
|
||||||
import 'package:glob/glob.dart';
|
import 'package:glob/glob.dart';
|
||||||
|
|
||||||
|
import 'gherkin_suite_test.dart';
|
||||||
import 'hooks/env.dart';
|
import 'hooks/env.dart';
|
||||||
import 'steps/chat.dart';
|
import 'steps/chat.dart';
|
||||||
import 'steps/files.dart';
|
import 'steps/files.dart';
|
||||||
|
@ -18,10 +19,11 @@ import 'steps/text.dart';
|
||||||
import 'steps/utils.dart';
|
import 'steps/utils.dart';
|
||||||
|
|
||||||
part 'gherkin_suite_test.g.dart';
|
part 'gherkin_suite_test.g.dart';
|
||||||
|
|
||||||
const REPLACED_BY_SCRIPT = <String>['integration_test/features/**.feature'];
|
const REPLACED_BY_SCRIPT = <String>['integration_test/features/**.feature'];
|
||||||
|
|
||||||
@GherkinTestSuite(executionOrder: ExecutionOrder.alphabetical, featurePaths: REPLACED_BY_SCRIPT)
|
@GherkinTestSuite(executionOrder: ExecutionOrder.alphabetical, featurePaths: REPLACED_BY_SCRIPT)
|
||||||
void main() {
|
void main() async {
|
||||||
final params = [
|
final params = [
|
||||||
SwitchStateParameter(),
|
SwitchStateParameter(),
|
||||||
];
|
];
|
||||||
|
@ -56,13 +58,20 @@ void main() {
|
||||||
];
|
];
|
||||||
|
|
||||||
var sb = StringBuffer();
|
var sb = StringBuffer();
|
||||||
sb..writeln("## Custom Parameters\n")
|
sb
|
||||||
|
..writeln("## Custom Parameters\n")
|
||||||
..writeln("| name | pattern |")
|
..writeln("| name | pattern |")
|
||||||
..writeln("| --- | --- |");
|
..writeln("| --- | --- |");
|
||||||
for (var i in params) {
|
for (var i in params) {
|
||||||
sb..write("| ")..write(i.identifier)..write(" | ")..write(i.pattern.toString().replaceFirst("RegExp: pattern=","").replaceFirst(" flags=i","").replaceAll("|", "|"))..writeln(" |");
|
sb
|
||||||
|
..write("| ")
|
||||||
|
..write(i.identifier)
|
||||||
|
..write(" | ")
|
||||||
|
..write(i.pattern.toString().replaceFirst("RegExp: pattern=", "").replaceFirst(" flags=i", "").replaceAll("|", "|"))
|
||||||
|
..writeln(" |");
|
||||||
}
|
}
|
||||||
sb..writeln("\n## Custom steps\n")
|
sb
|
||||||
|
..writeln("\n## Custom steps\n")
|
||||||
..writeln("| pattern |")
|
..writeln("| pattern |")
|
||||||
..writeln("| --- |");
|
..writeln("| --- |");
|
||||||
for (var i in steps) {
|
for (var i in steps) {
|
||||||
|
@ -71,10 +80,10 @@ void main() {
|
||||||
var f = File("integration_test/CustomSteps.md");
|
var f = File("integration_test/CustomSteps.md");
|
||||||
f.writeAsString(sb.toString());
|
f.writeAsString(sb.toString());
|
||||||
|
|
||||||
executeTestSuite(
|
await executeTestSuite(
|
||||||
FlutterTestConfiguration.DEFAULT([])
|
configuration: FlutterTestConfiguration(
|
||||||
..reporters = [
|
reporters: [
|
||||||
StdoutReporter(MessageLevel.error)
|
StdoutReporter(MessageLevel.verbose)
|
||||||
..setWriteLineFn(print)
|
..setWriteLineFn(print)
|
||||||
..setWriteFn(print),
|
..setWriteFn(print),
|
||||||
ProgressReporter()
|
ProgressReporter()
|
||||||
|
@ -83,18 +92,16 @@ void main() {
|
||||||
TestRunSummaryReporter()
|
TestRunSummaryReporter()
|
||||||
..setWriteLineFn(print)
|
..setWriteLineFn(print)
|
||||||
..setWriteFn(print),
|
..setWriteFn(print),
|
||||||
JsonReporter(
|
JsonReporter(),
|
||||||
writeReport: (_, __) => Future<void>.value(),
|
],
|
||||||
),
|
customStepParameterDefinitions: [
|
||||||
]
|
|
||||||
..customStepParameterDefinitions = [
|
|
||||||
SwitchStateParameter(),
|
SwitchStateParameter(),
|
||||||
]
|
],
|
||||||
..stepDefinitions = steps
|
stepDefinitions: steps,
|
||||||
..hooks = [
|
hooks: [
|
||||||
ResetCwtchEnvironment(),
|
ResetCwtchEnvironment(),
|
||||||
AttachScreenshotOnFailedStepHook(),
|
AttachScreenshotOnFailedStepHook(),
|
||||||
],
|
]),
|
||||||
(World world) => app.main(),
|
appMainFunction: (World world) => app.main(),
|
||||||
);
|
);
|
||||||
}
|
}
|
|
@ -10,6 +10,7 @@ class ResetCwtchEnvironment extends Hook {
|
||||||
Future<void> onBeforeRun(TestConfiguration config) async {
|
Future<void> onBeforeRun(TestConfiguration config) async {
|
||||||
// initialize @env:persist
|
// initialize @env:persist
|
||||||
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
||||||
|
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||||
await Process.run("cp", ["-R", "integration_test/env/persist", "integration_test/env/temp-persist"]);
|
await Process.run("cp", ["-R", "integration_test/env/persist", "integration_test/env/temp-persist"]);
|
||||||
|
|
||||||
return super.onBeforeRun(config);
|
return super.onBeforeRun(config);
|
||||||
|
@ -17,7 +18,10 @@ class ResetCwtchEnvironment extends Hook {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> onAfterRun(TestConfiguration config) async {
|
Future<void> onAfterRun(TestConfiguration config) async {
|
||||||
|
// Clean up After a Test Run...
|
||||||
|
print("clean up environments after run...");
|
||||||
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
await Process.run("rm", ["-rf", "integration_test/env/temp-persist"]);
|
||||||
|
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
||||||
return super.onAfterRun(config);
|
return super.onAfterRun(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,17 +35,15 @@ class ResetCwtchEnvironment extends Hook {
|
||||||
// use the default environment if no @env: tag specified
|
// use the default environment if no @env: tag specified
|
||||||
await Process.run("cp", ["-R", "integration_test/env/default", "integration_test/env/temp"]);
|
await Process.run("cp", ["-R", "integration_test/env/default", "integration_test/env/temp"]);
|
||||||
} else {
|
} else {
|
||||||
print("no environment initialized");
|
print("clean environment initialized");
|
||||||
}
|
}
|
||||||
return super.onBeforeScenario(config, scenario, tags);
|
return super.onBeforeScenario(config, scenario, tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> onAfterScenario(TestConfiguration config, String scenario, Iterable<Tag> tags) async {
|
Future<void> onAfterScenario(TestConfiguration config, String scenario, Iterable<Tag> tags, {bool passed = true}) async {
|
||||||
if (tags.any((t) => t.name == "@env:persist")) {
|
if (tags.any((t) => t.name == "@env:persist")) {
|
||||||
await Process.run("mv", ["integration_test/env/temp", "integration_test/env/temp-persist"]);
|
await Process.run("mv", ["integration_test/env/temp", "integration_test/env/temp-persist"]);
|
||||||
} else {
|
|
||||||
await Process.run("rm", ["-rf", "integration_test/env/temp"]);
|
|
||||||
}
|
}
|
||||||
return super.onAfterScenario(config, scenario, tags);
|
return super.onAfterScenario(config, scenario, tags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,28 +15,20 @@ import 'overrides.dart';
|
||||||
|
|
||||||
StepDefinitionGeneric ExpectReply() {
|
StepDefinitionGeneric ExpectReply() {
|
||||||
return given3<String, String, int, FlutterWorld>(
|
return given3<String, String, int, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I expect to see the message {string} replying to {string} within {int} second(s)$'),
|
||||||
r'I expect to see the message {string} replying to {string} within {int} second(s)$'),
|
|
||||||
(originalMessage, responseMessage, seconds, context) async {
|
(originalMessage, responseMessage, seconds, context) async {
|
||||||
await context.world.appDriver.waitUntil(
|
await context.world.appDriver.waitUntil(
|
||||||
() async {
|
() async {
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
|
|
||||||
return await context.world.appDriver.isPresent(
|
return await context.world.appDriver.isPresent(
|
||||||
context.world.appDriver.findByDescendant(
|
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(QuotedMessageBubble, FindType.type), context.world.appDriver.findBy(originalMessage, FindType.text))) &&
|
||||||
context.world.appDriver.findBy(QuotedMessageBubble, FindType.type),
|
await context.world.appDriver.isPresent(
|
||||||
context.world.appDriver.findBy(originalMessage, FindType.text)
|
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(QuotedMessageBubble, FindType.type), context.world.appDriver.findBy(responseMessage, FindType.text)));
|
||||||
)
|
|
||||||
) && await context.world.appDriver.isPresent(
|
|
||||||
context.world.appDriver.findByDescendant(
|
|
||||||
context.world.appDriver.findBy(QuotedMessageBubble, FindType.type),
|
|
||||||
context.world.appDriver.findBy(responseMessage, FindType.text)
|
|
||||||
));
|
|
||||||
},
|
},
|
||||||
timeout: Duration(seconds: seconds),
|
timeout: Duration(seconds: seconds),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
configuration: StepDefinitionConfiguration()
|
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||||
..timeout = const Duration(days: 1),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
|
@ -4,8 +4,7 @@ import 'package:gherkin/gherkin.dart';
|
||||||
|
|
||||||
StepDefinitionGeneric FolderExists() {
|
StepDefinitionGeneric FolderExists() {
|
||||||
return then1<String, FlutterWorld>(
|
return then1<String, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I expect the folder {string} to exist'),
|
||||||
r'I expect the folder {string} to exist'),
|
|
||||||
(input1, context) async {
|
(input1, context) async {
|
||||||
context.expect(Directory(input1).existsSync(), true);
|
context.expect(Directory(input1).existsSync(), true);
|
||||||
},
|
},
|
||||||
|
@ -14,8 +13,7 @@ StepDefinitionGeneric FolderExists() {
|
||||||
|
|
||||||
StepDefinitionGeneric FileExists() {
|
StepDefinitionGeneric FileExists() {
|
||||||
return then1<String, FlutterWorld>(
|
return then1<String, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I expect the file {string} to exist'),
|
||||||
r'I expect the file {string} to exist'),
|
|
||||||
(input1, context) async {
|
(input1, context) async {
|
||||||
context.expect(File(input1).existsSync(), true);
|
context.expect(File(input1).existsSync(), true);
|
||||||
},
|
},
|
||||||
|
|
|
@ -38,8 +38,7 @@ class CheckSwitchState extends Given2WithWorld<String,SwitchState,FlutterWorld>
|
||||||
|
|
||||||
StepDefinitionGeneric CheckSwitchStateWithText() {
|
StepDefinitionGeneric CheckSwitchStateWithText() {
|
||||||
return then2<String, SwitchState, FlutterWorld>(
|
return then2<String, SwitchState, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I expect the switch that contains the text {string} to be {toggle}'),
|
||||||
r'I expect the switch that contains the text {string} to be {toggle}'),
|
|
||||||
(input1, state, context) async {
|
(input1, state, context) async {
|
||||||
final textFinder = context.world.appDriver.findBy(input1, FindType.text);
|
final textFinder = context.world.appDriver.findBy(input1, FindType.text);
|
||||||
await context.world.appDriver.scrollIntoView(textFinder);
|
await context.world.appDriver.scrollIntoView(textFinder);
|
||||||
|
@ -53,8 +52,7 @@ StepDefinitionGeneric CheckSwitchStateWithText() {
|
||||||
|
|
||||||
StepDefinitionGeneric DropdownChoose() {
|
StepDefinitionGeneric DropdownChoose() {
|
||||||
return then2<int, String, FlutterWorld>(
|
return then2<int, String, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I choose option {int} from the {string} dropdown'),
|
||||||
r'I choose option {int} from the {string} dropdown'),
|
|
||||||
(idx, input1, context) async {
|
(idx, input1, context) async {
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
final ddFinder = context.world.appDriver.findBy(input1, FindType.key);
|
final ddFinder = context.world.appDriver.findBy(input1, FindType.key);
|
||||||
|
@ -78,4 +76,3 @@ StepDefinitionGeneric DropdownChoose() {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,10 +31,8 @@ StepDefinitionGeneric TapWidgetWithLabel() {
|
||||||
return given2<String, String, FlutterWorld>(
|
return given2<String, String, FlutterWorld>(
|
||||||
RegExp(r'I tap the {string} widget with label {string}$'),
|
RegExp(r'I tap the {string} widget with label {string}$'),
|
||||||
(ofType, text, context) async {
|
(ofType, text, context) async {
|
||||||
final finder = context.world.appDriver.findByDescendant(
|
final finder =
|
||||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||||
context.world.appDriver.findBy(text, FindType.text),
|
|
||||||
firstMatchOnly: true);
|
|
||||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||||
//print(wdg.debugDescribeChildren().first.)
|
//print(wdg.debugDescribeChildren().first.)
|
||||||
await context.world.appDriver.scrollIntoView(finder);
|
await context.world.appDriver.scrollIntoView(finder);
|
||||||
|
@ -48,10 +46,8 @@ StepDefinitionGeneric TapWidgetWithTooltip() {
|
||||||
return given2<String, String, FlutterWorld>(
|
return given2<String, String, FlutterWorld>(
|
||||||
RegExp(r'I tap the {string} widget with tooltip {string}$'),
|
RegExp(r'I tap the {string} widget with tooltip {string}$'),
|
||||||
(ofType, text, context) async {
|
(ofType, text, context) async {
|
||||||
final finder = context.world.appDriver.findByDescendant(
|
final finder = context.world.appDriver
|
||||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.tooltip), firstMatchOnly: true);
|
||||||
context.world.appDriver.findBy(text, FindType.tooltip),
|
|
||||||
firstMatchOnly: true);
|
|
||||||
await context.world.appDriver.scrollIntoView(finder);
|
await context.world.appDriver.scrollIntoView(finder);
|
||||||
await context.world.appDriver.tap(finder);
|
await context.world.appDriver.tap(finder);
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
|
@ -63,10 +59,8 @@ StepDefinitionGeneric ExpectWidgetWithText() {
|
||||||
return given2<String, String, FlutterWorld>(
|
return given2<String, String, FlutterWorld>(
|
||||||
RegExp(r'I expect a {string} widget with text {string}$'),
|
RegExp(r'I expect a {string} widget with text {string}$'),
|
||||||
(ofType, text, context) async {
|
(ofType, text, context) async {
|
||||||
final finder = context.world.appDriver.findByDescendant(
|
final finder =
|
||||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||||
context.world.appDriver.findBy(text, FindType.text),
|
|
||||||
firstMatchOnly: true);
|
|
||||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||||
//print(wdg.debugDescribeChildren().first.)
|
//print(wdg.debugDescribeChildren().first.)
|
||||||
await context.world.appDriver.isPresent(finder);
|
await context.world.appDriver.isPresent(finder);
|
||||||
|
@ -79,10 +73,8 @@ StepDefinitionGeneric AbsentWidgetWithText() {
|
||||||
return given2<String, String, FlutterWorld>(
|
return given2<String, String, FlutterWorld>(
|
||||||
RegExp(r'I expect a {string} widget with text {string} to be absent$'),
|
RegExp(r'I expect a {string} widget with text {string} to be absent$'),
|
||||||
(ofType, text, context) async {
|
(ofType, text, context) async {
|
||||||
final finder = context.world.appDriver.findByDescendant(
|
final finder =
|
||||||
context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type),
|
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), context.world.appDriver.findBy(text, FindType.text), firstMatchOnly: true);
|
||||||
context.world.appDriver.findBy(text, FindType.text),
|
|
||||||
firstMatchOnly: true);
|
|
||||||
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
//Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first);
|
||||||
//print(wdg.debugDescribeChildren().first.)
|
//print(wdg.debugDescribeChildren().first.)
|
||||||
await context.world.appDriver.isAbsent(finder);
|
await context.world.appDriver.isAbsent(finder);
|
||||||
|
@ -91,15 +83,11 @@ StepDefinitionGeneric AbsentWidgetWithText() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
StepDefinitionGeneric TapButtonWithText() {
|
StepDefinitionGeneric TapButtonWithText() {
|
||||||
return given1<String, FlutterWorld>(
|
return given1<String, FlutterWorld>(
|
||||||
RegExp(r'I tap the {string} (?:button|element|label|icon|field|text|widget)$'),
|
RegExp(r'I tap the {string} (?:button|element|label|icon|field|text|widget)$'),
|
||||||
(input1, context) async {
|
(input1, context) async {
|
||||||
final finder = context.world.appDriver.findByDescendant(
|
final finder = context.world.appDriver.findByDescendant(context.world.appDriver.findBy(Flwtch, FindType.type), context.world.appDriver.findBy(input1, FindType.key), firstMatchOnly: true);
|
||||||
context.world.appDriver.findBy(Flwtch, FindType.type),
|
|
||||||
context.world.appDriver.findBy(input1, FindType.key),
|
|
||||||
firstMatchOnly: true);
|
|
||||||
await context.world.appDriver.scrollIntoView(finder);
|
await context.world.appDriver.scrollIntoView(finder);
|
||||||
await context.world.appDriver.tap(finder);
|
await context.world.appDriver.tap(finder);
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
|
@ -130,8 +118,7 @@ StepDefinitionGeneric WaitUntilTypeExists() {
|
||||||
|
|
||||||
StepDefinitionGeneric ExpectTextToBePresent() {
|
StepDefinitionGeneric ExpectTextToBePresent() {
|
||||||
return given2<String, int, FlutterWorld>(
|
return given2<String, int, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I expect the string {string} to be present within {int} second(s)$'),
|
||||||
r'I expect the string {string} to be present within {int} second(s)$'),
|
|
||||||
(key, seconds, context) async {
|
(key, seconds, context) async {
|
||||||
await context.world.appDriver.waitUntil(
|
await context.world.appDriver.waitUntil(
|
||||||
() async {
|
() async {
|
||||||
|
@ -144,32 +131,27 @@ StepDefinitionGeneric ExpectTextToBePresent() {
|
||||||
timeout: Duration(seconds: seconds),
|
timeout: Duration(seconds: seconds),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
configuration: StepDefinitionConfiguration()
|
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||||
..timeout = const Duration(days: 1),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
StepDefinitionGeneric ExpectWidgetWithTextWithin() {
|
StepDefinitionGeneric ExpectWidgetWithTextWithin() {
|
||||||
return given3<String, String, int, FlutterWorld>(
|
return given3<String, String, int, FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I expect a {string} widget with text {string} to be present within {int} second(s)$'),
|
||||||
r'I expect a {string} widget with text {string} to be present within {int} second(s)$'),
|
|
||||||
(widgetType, text, seconds, context) async {
|
(widgetType, text, seconds, context) async {
|
||||||
await context.world.appDriver.waitUntil(
|
await () async {
|
||||||
() async {
|
var result = false;
|
||||||
|
while (!result) {
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
|
|
||||||
return context.world.appDriver.isPresent(
|
result = await context.world.appDriver.isPresent(
|
||||||
context.world.appDriver.findByDescendant(
|
context.world.appDriver.findByDescendant(context.world.appDriver.findBy(widgetTypeByName(widgetType), FindType.type), context.world.appDriver.findBy(text, FindType.text)),
|
||||||
context.world.appDriver.findBy(widgetTypeByName(widgetType), FindType.type),
|
|
||||||
context.world.appDriver.findBy(text, FindType.text)
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
.timeout(Duration(seconds: 120));
|
||||||
},
|
},
|
||||||
timeout: Duration(seconds: seconds),
|
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||||
);
|
|
||||||
},
|
|
||||||
configuration: StepDefinitionConfiguration()
|
|
||||||
..timeout = const Duration(days: 1),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,24 +159,23 @@ StepDefinitionGeneric WaitUntilTextExists() {
|
||||||
return then2<String, Existence, FlutterWorld>(
|
return then2<String, Existence, FlutterWorld>(
|
||||||
'I wait until the text {string} is {existence}',
|
'I wait until the text {string} is {existence}',
|
||||||
(text, existence, context) async {
|
(text, existence, context) async {
|
||||||
await context.world.appDriver.waitUntil(
|
await () async {
|
||||||
() async {
|
var result = false;
|
||||||
|
while (!result) {
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
|
|
||||||
return existence == Existence.absent
|
result = await (existence == Existence.absent
|
||||||
? context.world.appDriver.isAbsent(
|
? context.world.appDriver.isAbsent(
|
||||||
context.world.appDriver.findBy(text, FindType.text),
|
context.world.appDriver.findBy(text, FindType.text),
|
||||||
)
|
)
|
||||||
: context.world.appDriver.isPresent(
|
: context.world.appDriver.isPresent(
|
||||||
context.world.appDriver.findBy(text, FindType.text),
|
context.world.appDriver.findBy(text, FindType.text),
|
||||||
);
|
));
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
.timeout(Duration(seconds: 120));
|
||||||
},
|
},
|
||||||
timeout: Duration(seconds: 120),
|
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
configuration: StepDefinitionConfiguration()
|
|
||||||
..timeout = const Duration(days: 1),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,21 +198,18 @@ StepDefinitionGeneric WaitUntilTooltipExists() {
|
||||||
timeout: Duration(seconds: 120),
|
timeout: Duration(seconds: 120),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
configuration: StepDefinitionConfiguration()
|
configuration: StepDefinitionConfiguration()..timeout = const Duration(days: 1),
|
||||||
..timeout = const Duration(days: 1),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin _SwipeHelper
|
mixin _SwipeHelper on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||||
on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
|
||||||
Future<void> swipeOnFinder(
|
Future<void> swipeOnFinder(
|
||||||
dynamic finder,
|
dynamic finder,
|
||||||
SwipeDirection direction,
|
SwipeDirection direction,
|
||||||
int swipeAmount,
|
int swipeAmount,
|
||||||
) async {
|
) async {
|
||||||
if (direction == SwipeDirection.left || direction == SwipeDirection.right) {
|
if (direction == SwipeDirection.left || direction == SwipeDirection.right) {
|
||||||
final offset =
|
final offset = direction == SwipeDirection.right ? swipeAmount : (swipeAmount * -1);
|
||||||
direction == SwipeDirection.right ? swipeAmount : (swipeAmount * -1);
|
|
||||||
await world.appDriver.scroll(
|
await world.appDriver.scroll(
|
||||||
finder,
|
finder,
|
||||||
dx: offset.toDouble(),
|
dx: offset.toDouble(),
|
||||||
|
@ -239,8 +217,7 @@ on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||||
timeout: timeout,
|
timeout: timeout,
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
final offset =
|
final offset = direction == SwipeDirection.up ? swipeAmount : (swipeAmount * -1);
|
||||||
direction == SwipeDirection.up ? swipeAmount : (swipeAmount * -1);
|
|
||||||
|
|
||||||
await world.appDriver.scroll(
|
await world.appDriver.scroll(
|
||||||
finder,
|
finder,
|
||||||
|
@ -251,9 +228,8 @@ on When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
class SwipeOnType
|
|
||||||
extends When4WithWorld<SwipeDirection, int, String, String, FlutterWorld>
|
class SwipeOnType extends When4WithWorld<SwipeDirection, int, String, String, FlutterWorld> with _SwipeHelper {
|
||||||
with _SwipeHelper {
|
|
||||||
@override
|
@override
|
||||||
Future<void> executeStep(
|
Future<void> executeStep(
|
||||||
SwipeDirection direction,
|
SwipeDirection direction,
|
||||||
|
@ -261,16 +237,12 @@ class SwipeOnType
|
||||||
String typeOf,
|
String typeOf,
|
||||||
String text,
|
String text,
|
||||||
) async {
|
) async {
|
||||||
final finder = this.world.appDriver.findByDescendant(
|
final finder = this.world.appDriver.findByDescendant(this.world.appDriver.findBy(widgetTypeByName(typeOf), FindType.type), this.world.appDriver.findBy(text, FindType.text));
|
||||||
this.world.appDriver.findBy(widgetTypeByName(typeOf), FindType.type),
|
|
||||||
this.world.appDriver.findBy(text, FindType.text)
|
|
||||||
);
|
|
||||||
await swipeOnFinder(finder, direction, swipeAmount);
|
await swipeOnFinder(finder, direction, swipeAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
RegExp get pattern => RegExp(
|
RegExp get pattern => RegExp(r'I swipe {swipe_direction} by {int} pixels on the widget of type {string} with text {string}');
|
||||||
r'I swipe {swipe_direction} by {int} pixels on the widget of type {string} with text {string}');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Type widgetTypeByName(String input1) {
|
Type widgetTypeByName(String input1) {
|
||||||
|
|
|
@ -4,14 +4,11 @@ import 'package:flutter_gherkin/flutter_gherkin.dart';
|
||||||
import 'package:gherkin/gherkin.dart';
|
import 'package:gherkin/gherkin.dart';
|
||||||
|
|
||||||
StepDefinitionGeneric TooltipTap() {
|
StepDefinitionGeneric TooltipTap() {
|
||||||
return given1<String, FlutterWorld>(
|
return given1<String, FlutterWorld>(RegExp(r'I tap the button with tooltip {string}'), (input1, context) async {
|
||||||
RegExp(r'I tap the button with tooltip {string}'),
|
|
||||||
(input1, context) async {
|
|
||||||
final finder = context.world.appDriver.findBy(input1, FindType.tooltip);
|
final finder = context.world.appDriver.findBy(input1, FindType.tooltip);
|
||||||
await context.world.appDriver.tap(finder);
|
await context.world.appDriver.tap(finder);
|
||||||
await context.world.appDriver.waitForAppToSettle();
|
await context.world.appDriver.waitForAppToSettle();
|
||||||
}
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
StepDefinitionGeneric TorVersionPresent() {
|
StepDefinitionGeneric TorVersionPresent() {
|
||||||
|
@ -20,9 +17,7 @@ StepDefinitionGeneric TorVersionPresent() {
|
||||||
(context) async {
|
(context) async {
|
||||||
String versionString = "";
|
String versionString = "";
|
||||||
final file = File('fetch-tor.sh');
|
final file = File('fetch-tor.sh');
|
||||||
Stream<String> lines = file.openRead()
|
Stream<String> lines = file.openRead().transform(utf8.decoder).transform(LineSplitter());
|
||||||
.transform(utf8.decoder)
|
|
||||||
.transform(LineSplitter());
|
|
||||||
try {
|
try {
|
||||||
await for (var line in lines) {
|
await for (var line in lines) {
|
||||||
if (line.startsWith("wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-")) {
|
if (line.startsWith("wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/branch/master/tor/tor-")) {
|
||||||
|
@ -39,9 +34,12 @@ StepDefinitionGeneric TorVersionPresent() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
context.world.attach(versionString, "text/plain", "Then I expect the Tor version to be present");
|
context.world.attach(versionString, "text/plain", "Then I expect the Tor version to be present");
|
||||||
context.reporter.message("test!!!", MessageLevel.info);
|
//context.reporter.message("test!!!", MessageLevel.info);
|
||||||
print("looking for version string $versionString");
|
print("looking for version string $versionString");
|
||||||
final finder = context.world.appDriver.findBy(versionString, FindType.text,);
|
final finder = context.world.appDriver.findBy(
|
||||||
|
versionString,
|
||||||
|
FindType.text,
|
||||||
|
);
|
||||||
final isP = await context.world.appDriver.isPresent(finder);
|
final isP = await context.world.appDriver.isPresent(finder);
|
||||||
context.expect(isP, true);
|
context.expect(isP, true);
|
||||||
},
|
},
|
||||||
|
|
|
@ -4,14 +4,16 @@ import 'package:gherkin/gherkin.dart';
|
||||||
|
|
||||||
StepDefinitionGeneric TakeScreenshot() {
|
StepDefinitionGeneric TakeScreenshot() {
|
||||||
return then<FlutterWorld>(
|
return then<FlutterWorld>(
|
||||||
RegExp(
|
RegExp(r'I take a screenshot'),
|
||||||
r'I take a screenshot'),
|
|
||||||
(context) async {
|
(context) async {
|
||||||
try {
|
try {
|
||||||
final bytes = await context.world.appDriver.screenshot();
|
final bytes = await context.world.appDriver.screenshot();
|
||||||
final screenshotData = base64Encode(bytes);
|
final screenshotData = base64Encode(bytes);
|
||||||
|
print("EMBEDDING SCREENSHOT....");
|
||||||
|
print("$screenshotData");
|
||||||
context.world.attach(screenshotData, 'image/png', 'And I take a screenshot');
|
context.world.attach(screenshotData, 'image/png', 'And I take a screenshot');
|
||||||
} catch (e, st) {
|
} catch (e, st) {
|
||||||
|
print("FAILED TO EMBED??? $e $st");
|
||||||
context.world.attach('Failed to take screenshot\n$e\n$st', 'text/plain');
|
context.world.attach('Failed to take screenshot\n$e\n$st', 'text/plain');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -782,10 +782,11 @@ class CwtchFfi implements Cwtch {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String? defaultDownloadPath() {
|
String? defaultDownloadPath() {
|
||||||
|
|
||||||
Map<String, String> envVars = Platform.environment;
|
Map<String, String> envVars = Platform.environment;
|
||||||
String nominalPath = path.join(envVars[Platform.isWindows ? 'UserProfile' : 'HOME']!, "Downloads");
|
String nominalPath = path.join(envVars[Platform.isWindows ? 'UserProfile' : 'HOME']!, "Downloads");
|
||||||
if (Directory(nominalPath).existsSync() == false) {
|
if (Directory(nominalPath).existsSync() == false) {
|
||||||
return null;
|
return Directory.current.path;
|
||||||
}
|
}
|
||||||
return nominalPath;
|
return nominalPath;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ Future<void> main() async {
|
||||||
LicenseRegistry.addLicense(() => licenses());
|
LicenseRegistry.addLicense(() => licenses());
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
print("runApp()");
|
print("runApp()");
|
||||||
runApp(Flwtch());
|
return runApp(Flwtch());
|
||||||
}
|
}
|
||||||
|
|
||||||
class Flwtch extends StatefulWidget {
|
class Flwtch extends StatefulWidget {
|
||||||
|
@ -64,13 +64,20 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
||||||
final GlobalKey<NavigatorState> navKey = GlobalKey<NavigatorState>();
|
final GlobalKey<NavigatorState> navKey = GlobalKey<NavigatorState>();
|
||||||
|
|
||||||
Future<dynamic> shutdownDirect(MethodCall call) async {
|
Future<dynamic> shutdownDirect(MethodCall call) async {
|
||||||
print(call);
|
EnvironmentConfig.debugLog("$call");
|
||||||
await cwtch.Shutdown();
|
await cwtch.Shutdown();
|
||||||
return Future.value({});
|
return Future.value({});
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
initState() {
|
initState() {
|
||||||
|
|
||||||
|
globalSettings = Settings(Locale("en", ''), CwtchDark());
|
||||||
|
globalErrorHandler = ErrorHandler();
|
||||||
|
globalTorStatus = TorStatus();
|
||||||
|
globalAppState = AppState();
|
||||||
|
globalServersList = ServerListState();
|
||||||
|
|
||||||
print("initState: running...");
|
print("initState: running...");
|
||||||
windowManager.addListener(this);
|
windowManager.addListener(this);
|
||||||
super.initState();
|
super.initState();
|
||||||
|
@ -187,16 +194,17 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
||||||
|
|
||||||
Future<void> shutdown() async {
|
Future<void> shutdown() async {
|
||||||
globalAppState.SetModalState(ModalState.shutdown);
|
globalAppState.SetModalState(ModalState.shutdown);
|
||||||
|
EnvironmentConfig.debugLog("shutting down");
|
||||||
await cwtch.Shutdown();
|
await cwtch.Shutdown();
|
||||||
// Wait a few seconds as shutting down things takes a little time..
|
// Wait a few seconds as shutting down things takes a little time..
|
||||||
Future.delayed(Duration(seconds: 1)).then((value) {
|
{
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
SystemNavigator.pop();
|
SystemNavigator.pop();
|
||||||
} else if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) {
|
} else if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) {
|
||||||
print("Exiting...");
|
print("Exiting...");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invoked via notificationClickChannel by MyBroadcastReceiver in MainActivity.kt
|
// Invoked via notificationClickChannel by MyBroadcastReceiver in MainActivity.kt
|
||||||
|
@ -260,9 +268,9 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() async {
|
void dispose() {
|
||||||
globalAppState.SetModalState(ModalState.shutdown);
|
globalAppState.SetModalState(ModalState.shutdown);
|
||||||
await cwtch.Shutdown();
|
cwtch.Shutdown();
|
||||||
windowManager.removeListener(this);
|
windowManager.removeListener(this);
|
||||||
cwtch.dispose();
|
cwtch.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
|
import 'package:cwtch/themes/cwtch.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cwtch/errorHandler.dart';
|
import 'package:cwtch/errorHandler.dart';
|
||||||
import 'package:cwtch/settings.dart';
|
import 'package:cwtch/settings.dart';
|
||||||
|
import 'package:glob/list_local_fs.dart';
|
||||||
|
import 'config.dart';
|
||||||
import 'licenses.dart';
|
import 'licenses.dart';
|
||||||
import 'main.dart';
|
import 'main.dart';
|
||||||
import 'themes/opaque.dart';
|
import 'themes/opaque.dart';
|
||||||
|
@ -10,16 +13,20 @@ import 'themes/opaque.dart';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
import "package:flutter_driver/driver_extension.dart";
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:glob/glob.dart';
|
import 'package:glob/glob.dart';
|
||||||
|
|
||||||
var globalSettings = Settings(Locale("en", ''), CwtchDark());
|
var globalSettings = Settings(Locale("en", ''), CwtchDark());
|
||||||
var globalErrorHandler = ErrorHandler();
|
var globalErrorHandler = ErrorHandler();
|
||||||
|
|
||||||
void main() {
|
Future<void> main() async {
|
||||||
|
enableFlutterDriverExtension();
|
||||||
|
print("Cwtch version: ${EnvironmentConfig.BUILD_VER} built on: ${EnvironmentConfig.BUILD_DATE}");
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
print("runApp()");
|
||||||
LicenseRegistry.addLicense(() => licenses());
|
LicenseRegistry.addLicense(() => licenses());
|
||||||
DiskAssetBundle.loadGlob(['profiles/*.png']).then((assetBundle) {
|
return DiskAssetBundle.loadGlob(['profiles/*.png']).then((assetBundle) {
|
||||||
runApp(DefaultAssetBundle(
|
runApp(DefaultAssetBundle(
|
||||||
bundle: assetBundle,
|
bundle: assetBundle,
|
||||||
child: Flwtch(),
|
child: Flwtch(),
|
||||||
|
|
|
@ -38,7 +38,7 @@ class QuotedMessage extends Message {
|
||||||
this.content,
|
this.content,
|
||||||
);
|
);
|
||||||
var content = message["body"];
|
var content = message["body"];
|
||||||
var formatMessages = Provider.of<Settings>(context).isExperimentEnabled(FormattingExperiment);
|
var formatMessages = Provider.of<Settings>(bcontext).isExperimentEnabled(FormattingExperiment);
|
||||||
return SelectableLinkify(
|
return SelectableLinkify(
|
||||||
text: content + '\u202F',
|
text: content + '\u202F',
|
||||||
options: LinkifyOptions(messageFormatting: formatMessages, parseLinks: false, looseUrl: true, defaultToHttps: true),
|
options: LinkifyOptions(messageFormatting: formatMessages, parseLinks: false, looseUrl: true, defaultToHttps: true),
|
||||||
|
|
|
@ -28,7 +28,7 @@ class TextMessage extends Message {
|
||||||
return SelectableLinkify(
|
return SelectableLinkify(
|
||||||
text: content + '\u202F',
|
text: content + '\u202F',
|
||||||
options: LinkifyOptions(messageFormatting: formatMessages, parseLinks: false, looseUrl: true, defaultToHttps: true),
|
options: LinkifyOptions(messageFormatting: formatMessages, parseLinks: false, looseUrl: true, defaultToHttps: true),
|
||||||
linkifiers: [],
|
linkifiers: [UrlLinkifier()],
|
||||||
onOpen: null,
|
onOpen: null,
|
||||||
textAlign: TextAlign.left,
|
textAlign: TextAlign.left,
|
||||||
style: TextStyle(overflow: TextOverflow.fade),
|
style: TextStyle(overflow: TextOverflow.fade),
|
||||||
|
|
|
@ -154,6 +154,12 @@ class NixNotificationManager implements NotificationsManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
NotificationsManager newDesktopNotificationsManager(Future<void> Function(String profileOnion, int convoId) notificationSelectConvo) {
|
NotificationsManager newDesktopNotificationsManager(Future<void> Function(String profileOnion, int convoId) notificationSelectConvo) {
|
||||||
|
|
||||||
|
// We don't want notifications in Dev Mode
|
||||||
|
if (EnvironmentConfig.TEST_MODE) {
|
||||||
|
return NullNotificationsManager();
|
||||||
|
}
|
||||||
|
|
||||||
if (Platform.isLinux && !Platform.isAndroid) {
|
if (Platform.isLinux && !Platform.isAndroid) {
|
||||||
try {
|
try {
|
||||||
return NixNotificationManager(notificationSelectConvo);
|
return NixNotificationManager(notificationSelectConvo);
|
||||||
|
|
|
@ -402,7 +402,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
|
||||||
if (checkDownloadDirectory(context, settings)) {
|
if (checkDownloadDirectory(context, settings)) {
|
||||||
settings.enableExperiment(FileSharingExperiment);
|
settings.enableExperiment(FileSharingExperiment);
|
||||||
} else {
|
} else {
|
||||||
settings.disableExperiment(FileSharingExperiment);
|
settings.enableExperiment(FileSharingExperiment);
|
||||||
settings.disableExperiment(ImagePreviewsExperiment);
|
settings.disableExperiment(ImagePreviewsExperiment);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -252,9 +252,11 @@ packages:
|
||||||
flutter_gherkin:
|
flutter_gherkin:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
name: flutter_gherkin
|
path: "."
|
||||||
url: "https://pub.dartlang.org"
|
ref: main
|
||||||
source: hosted
|
resolved-ref: "9b817676e4ad623a875accaa26097669a9bd2c7c"
|
||||||
|
url: "https://git.openprivacy.ca/openprivacy/flutter_gherkin"
|
||||||
|
source: git
|
||||||
version: "3.0.0-rc.17"
|
version: "3.0.0-rc.17"
|
||||||
flutter_local_notifications:
|
flutter_local_notifications:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
|
|
|
@ -51,9 +51,11 @@ dependencies:
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
msix: ^3.6.2
|
msix: ^3.6.2
|
||||||
build_runner: any
|
build_runner: any
|
||||||
flutter_gherkin: ^3.0.0-rc.17
|
flutter_gherkin:
|
||||||
|
git:
|
||||||
|
url: https://git.openprivacy.ca/openprivacy/flutter_gherkin
|
||||||
|
ref: main
|
||||||
|
|
||||||
# integration_test: any
|
|
||||||
# Uncomment to update lokalise translations (see README for list of deps to comment out bc incompatibilities)
|
# Uncomment to update lokalise translations (see README for list of deps to comment out bc incompatibilities)
|
||||||
#dev_dependencies:
|
#dev_dependencies:
|
||||||
# flutter_lokalise: any
|
# flutter_lokalise: any
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
flutter --version
|
||||||
|
flutter pub get
|
||||||
|
export DISPLAY=:99
|
||||||
|
Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
|
||||||
|
./run-tests.sh $1
|
23
run-tests.sh
23
run-tests.sh
|
@ -1,20 +1,15 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ ! -e run-tests.env ]; then
|
paths=$(find . -wholename "./integration_test/features/*$1*.feature" | sort | sed -z "s/\\n/','/g;s/,'$//;s/^/'/")
|
||||||
echo "#!/bin/bash" > run-tests.env
|
|
||||||
echo "LDPATH=./linux/" >> run-tests.env
|
|
||||||
echo "HEADLESS=false" >> run-tests.env
|
|
||||||
fi
|
|
||||||
|
|
||||||
source run-tests.env
|
|
||||||
paths=$(find . -wholename "./integration_test/features/*/$1*.feature" | sort | sed -z "s/\\n/','/g;s/,'$//;s/^/'/")
|
|
||||||
sed "s|featurePaths: REPLACED_BY_SCRIPT|featurePaths: <String>[$paths]|" integration_test/gherkin_suite_test.editable.dart > integration_test/gherkin_suite_test.dart
|
sed "s|featurePaths: REPLACED_BY_SCRIPT|featurePaths: <String>[$paths]|" integration_test/gherkin_suite_test.editable.dart > integration_test/gherkin_suite_test.dart
|
||||||
flutter pub run build_runner clean
|
flutter pub run build_runner clean
|
||||||
flutter pub run build_runner build --delete-conflicting-outputs
|
flutter pub run build_runner build --delete-conflicting-outputs
|
||||||
pkill tor
|
|
||||||
LD_LIBRARY_PATH=$LDPATH CWTCH_HOME=./integration_test/env/temp/ flutter drive --headless --dart-define TEST_MODE=true --driver=test_driver/integration_test_driver.dart --target=integration_test/gherkin_suite_test.dart
|
PATH=$PATH:$PWD/linux/Tor
|
||||||
node index2.js
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$PWD/linux/":"$PWD/linux/Tor/"
|
||||||
if [ "$HEADLESS" = "false" ]; then
|
PATH=$PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH LOG_FILE=/home/sarah/PARA/projects/cwtch/cwtch.log CWTCH_HOME=$PWD/integration_test/env/temp/ flutter test -d linux --dart-define TEST_MODE=true integration_test/gherkin_suite_test.dart
|
||||||
xdg-open integration_test/gherkin/reports/cucumber_report.html
|
#node index2.js
|
||||||
fi
|
#if [ "$HEADLESS" = "false" ]; then
|
||||||
|
# xdg-open integration_test/gherkin/reports/cucumber_report.html
|
||||||
|
#fi
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
import 'dart:async';
|
|
||||||
import 'package:flutter_gherkin/flutter_gherkin.dart';
|
|
||||||
import 'package:gherkin/gherkin.dart';
|
|
||||||
import 'package:glob/glob.dart';
|
|
||||||
import 'steps/form_elements.dart';
|
|
||||||
|
|
||||||
Future<void> main() {
|
|
||||||
final config = FlutterTestConfiguration()
|
|
||||||
..features = [Glob(r"test_driver/features/**.feature")]
|
|
||||||
//..features = [Glob(r"test_driver/features/Settings_test.feature")]
|
|
||||||
..reporters = [ProgressReporter()]
|
|
||||||
..stepDefinitions = [CheckSwitchChecked(), CheckSwitchUnchecked(),]
|
|
||||||
..restartAppBetweenScenarios = true
|
|
||||||
..targetAppPath = "test_driver/app.dart";
|
|
||||||
//..exitAfterTestRun = true;
|
|
||||||
return GherkinRunner().execute(config);
|
|
||||||
}
|
|
Loading…
Reference in New Issue