Created
March 29, 2020 10:17
-
-
Save sargon/445ed23a471db609a165a816f2be6ce8 to your computer and use it in GitHub Desktop.
matrix-synapse: Analyse Purge process
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
import psycopg2 | |
from tabulate import tabulate | |
from functools import reduce | |
connection = psycopg2.connect(host = "...", | |
port = 5432, | |
user = "...", | |
password = "...", | |
dbname = "...") | |
# Select the rooms we are interested in | |
cursor = connection.cursor() | |
cursor.execute("SELECT room_id FROM state_groups WHERE room_id NOT IN (select room_id from rooms) GROUP BY room_id"); | |
rooms = [ r[0] for r in cursor] | |
cursor.close() | |
print(f"Number of rooms we have a look at: { len(rooms) }") | |
# Selected rows by state group query in purge process | |
print("StateGroups") | |
data = [] | |
state_groups = [] | |
for room in rooms: | |
cursor = connection.cursor() | |
cursor.execute(f"SELECT DISTINCT state_group FROM events INNER JOIN event_to_state_groups ON (events.event_id = event_to_state_groups.event_id) WHERE events.room_id = '{ room }'") | |
state_groups.extend([ c[0] for c in cursor ]) | |
cursor.close() | |
print(f"Number of state groups touched by purge process: { len(state_groups) }") | |
# The following is not part of the purge process | |
data = [] | |
no_touch_state_groups = 0 | |
no_touch_state_groups_state = 0 | |
for room in rooms: | |
cursor = connection.cursor() | |
cursor.execute(f"SELECT id FROM state_groups WHERE room_id ='{room}'") | |
sgs = [ c[0] for c in cursor ] | |
cursor.close(); | |
no_touch_state_groups += len(sgs) | |
for sg in sgs: | |
cursor = connection.cursor() | |
cursor.execute(f"SELECT count(*) FROM state_groups_state WHERE state_group = { sg }") | |
no_touch_state_groups_state += reduce(lambda x,y: x + y,[ c[0] for c in cursor ]) | |
cursor.close() | |
print(f"Number of state groups not touched by purge process: { no_touch_state_groups }") | |
print(f"Number of rows in state_state_groups not touched by purge process: { no_touch_state_groups_state }") | |
event_tables = [ | |
"event_auth", | |
"event_edges", | |
"event_push_actions_staging", | |
"event_reference_hashes", | |
"event_relations", | |
"event_to_state_groups", | |
"redactions", | |
"rejections", | |
"state_events", | |
] | |
# Numer of rows in the giant table touched by the above query | |
cnt = 0 | |
for sg in state_groups: | |
cursor = connection.cursor() | |
cursor.execute(f"SELECT count(*) FROM state_groups_state WHERE state_group = { sg }") | |
for c in cursor: | |
cnt += c[0] | |
cursor.close() | |
print(f"Entries in state_groups_state: {cnt}") | |
# Following steps are part of the purge process | |
# Purge step for tables with an event_id index, but none on room_id | |
print("Tables with event_id") | |
cnt = 0 | |
data = [] | |
for room in rooms: | |
row = [room] | |
for table in event_tables: | |
cursor = connection.cursor() | |
cursor.execute(f"SELECT count(*) FROM { table } WHERE event_id IN (SELECT event_id FROM events WHERE room_id = '{ room }')") | |
v = cursor.fetchone()[0] | |
cnt = cnt + v | |
row.append(v) | |
cursor.close() | |
data.append(row) | |
# Purge step for table with an room_id index | |
headers = ["Room"] | |
headers.extend(event_tables) | |
print(tabulate(data,headers=headers)) | |
print(f"Columns: { cnt }") | |
room_tables = [ | |
"current_state_events", | |
"event_backward_extremities", | |
"event_forward_extremities", | |
"event_json", | |
"event_push_actions", | |
"event_search", | |
"events", | |
"group_rooms", | |
"public_room_list_stream", | |
"receipts_graph", | |
"receipts_linearized", | |
"room_aliases", | |
"room_depth", | |
"room_memberships", | |
"room_stats_state", | |
"room_stats_current", | |
"room_stats_historical", | |
"room_stats_earliest_token", | |
"rooms", | |
"stream_ordering_to_exterm", | |
"users_in_public_rooms", | |
"users_who_share_private_rooms", | |
"appservice_room_list", | |
"e2e_room_keys", | |
"event_push_summary", | |
"pusher_throttle", | |
"group_summary_rooms", | |
"local_invites", | |
"room_account_data", | |
"room_tags", | |
"local_current_membership" | |
] | |
cnt = 0 | |
for room in rooms: | |
row = [room] | |
for table in room_tables: | |
cursor = connection.cursor() | |
cursor.execute(f"SELECT count(*) FROM { table } WHERE room_id = '{ room }'") | |
v = cursor.fetchone()[0] | |
cnt = cnt + v | |
row.append(v) | |
cursor.close() | |
data.append(row) | |
print("Tables with room_id") | |
headers = ["Room"] | |
headers.extend(room_tables) | |
print(tabulate(data,headers=headers)) | |
print(f"Columns: { cnt }") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Number of rooms we have a look at: 57 | |
StateGroups | |
Number of state groups touched by purge process: 35 | |
Number of state groups not touched by purge process: 46840 | |
Number of rows in state_state_groups not touched by purge process: 10466145 | |
Entries in state_groups_state: 35 | |
Tables with event_id | |
Room event_auth event_edges event_push_actions_staging event_reference_hashes event_relations event_to_state_groups redactions rejections state_events | |
---------------------------------------- ------------ ------------- ---------------------------- ------------------------ ----------------- ----------------------- ------------ ------------ -------------- | |
!MSJlzbwbCXLGDMCjpG:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!QtykxKocfZaZOUrTwp:matrix.org 0 0 0 0 0 0 0 0 0 | |
!GgqMirLCzUBQrbwlbg:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!DJUwZESwvpIRzokKgj:matrix.eclabs.de 7 3 0 2 0 1 0 0 2 | |
!zPyYTzkOFYGmClXkhM:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!OtYmrEKmeQiMxknLJK:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!cURbafjkfsMDVwdRDQ:matrix.org 0 0 0 0 0 0 0 0 0 | |
!OGSSroLxlTtGJzfkHS:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!VYzsbIgRIvGuTjgfzy:matrix.org 7 2 0 2 0 1 0 0 2 | |
!YoNntdARwyvRwIxUaU:matrix.org 0 0 0 0 0 0 0 0 0 | |
!ccJTTFjQIxEptZziVi:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!wVcgJmqQrLsNbqHaSP:matrix.org 7 2 0 2 0 1 0 0 2 | |
!gyXWdCXGiuXdRoUCti:matrix.org 7 2 0 2 0 1 0 0 2 | |
!KYJvZSRivpulZIPlxy:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!FTxQUQNaHaldBhUuJY:irc.hackint.org 67 17 0 17 0 1 0 0 17 | |
!nBMXSIqnImmpxcTfxg:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!tGxyGpXanvuaBkopSo:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!yLVzTAuaHoRPycDVrl:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!ySplvpxjVZfYjSEAUs:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!jOPnqXMUHEtJollWUL:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!wgvSnOspQPUXBkJIoi:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!ihCELcZBNNCaZyVaME:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!GzFrrYDigesJZrBpWo:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!igIbxPOcmiXeuBMpag:matrix.eclabs.de 18 5 0 5 0 2 0 0 5 | |
!vdiYurXiyDOISdvPFo:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!zHHgxSmdNhGZexTGAL:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!uwIMvWQnSlxksZQHsl:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!vShHPJFfNAFMAYsJJy:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!jEWfHtIBPrruvqCLoE:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!cEWtHuKhKhKIJeJxRt:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!teSKuglkxpXJYiAQsR:matrix.org 7 2 0 2 0 1 0 0 2 | |
!IfowQwQhsqlKJURqDR:matrix.eclabs.de 11 3 0 3 0 1 0 0 3 | |
!sbqNtsANEFxdXwUXLr:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!LGsRfzYItBUAiMiwwD:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!xCgOSOWzqdpoCKNpnP:matrix.org 7 2 0 2 0 1 0 0 2 | |
!omTbzSIcLzsymBQxaO:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!HbvfEAdrvyIXsNDOLI:matrix.org 7 2 0 2 0 1 0 0 2 | |
!lXqZcxFVXKAPayZdGl:matrix.org 7 2 0 2 0 1 0 0 2 | |
!IFcfMigYORXuHeiSnX:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!HelWDrRRssMwqKqqDS:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!skELrWHdnrlpTjivMc:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!XqBunHwQIXUiqCaoxq:matrix.org 8 9 0 5 0 0 0 1 5 | |
!batlctBlslNTdSHoHB:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!uwGLwXtJlAYcxKzChl:matrix.org 7 2 0 2 0 1 0 0 2 | |
!gVgKXXnxkQJJjJLzId:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!DqIkYImLNJNCXaMcHz:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!yybJCYchcyttEkdisC:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!hAOYuRuNhNRIuFLHrN:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!RyMksNyrKELkTxXqvb:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!QCWDezAlLwiDbwlxjH:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!PcRMDpMgUrARpPNGKq:matrix.org 7 2 0 2 0 1 0 0 2 | |
!RdZhrirDFWBOOhRPkU:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2 | |
!LEWOuDsKCOQBBnwAEU:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!OxGxpBQOLSIspDnCJV:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!mDuBoSqvmOmVwpBHnQ:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2 | |
!vdvsJGLzpJtfnuTYyQ:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!drmkAYovWTAEksWYIT:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
Columns: 638 | |
Tables with room_id | |
Room current_state_events event_backward_extremities event_forward_extremities event_json event_push_actions event_search events group_rooms public_room_list_stream receipts_graph receipts_linearized room_aliases room_depth room_memberships room_stats_state room_stats_current room_stats_historical room_stats_earliest_token rooms stream_ordering_to_exterm users_in_public_rooms users_who_share_private_rooms appservice_room_list e2e_room_keys event_push_summary pusher_throttle group_summary_rooms local_invites room_account_data room_tags local_current_membership | |
---------------------------------------- ---------------------- ---------------------------- --------------------------- ------------ -------------------- -------------- -------- ------------- ------------------------- ---------------- --------------------- -------------- ------------ ------------------ ------------------ -------------------- ----------------------- --------------------------- ------- --------------------------- ----------------------- ------------------------------- ---------------------- --------------- -------------------- ----------------- --------------------- --------------- ------------------- ----------- -------------------------- | |
!MSJlzbwbCXLGDMCjpG:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!QtykxKocfZaZOUrTwp:matrix.org 0 0 0 0 0 0 0 0 0 | |
!GgqMirLCzUBQrbwlbg:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!DJUwZESwvpIRzokKgj:matrix.eclabs.de 7 3 0 2 0 1 0 0 2 | |
!zPyYTzkOFYGmClXkhM:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!OtYmrEKmeQiMxknLJK:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!cURbafjkfsMDVwdRDQ:matrix.org 0 0 0 0 0 0 0 0 0 | |
!OGSSroLxlTtGJzfkHS:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!VYzsbIgRIvGuTjgfzy:matrix.org 7 2 0 2 0 1 0 0 2 | |
!YoNntdARwyvRwIxUaU:matrix.org 0 0 0 0 0 0 0 0 0 | |
!ccJTTFjQIxEptZziVi:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!wVcgJmqQrLsNbqHaSP:matrix.org 7 2 0 2 0 1 0 0 2 | |
!gyXWdCXGiuXdRoUCti:matrix.org 7 2 0 2 0 1 0 0 2 | |
!KYJvZSRivpulZIPlxy:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!FTxQUQNaHaldBhUuJY:irc.hackint.org 67 17 0 17 0 1 0 0 17 | |
!nBMXSIqnImmpxcTfxg:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!tGxyGpXanvuaBkopSo:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!yLVzTAuaHoRPycDVrl:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!ySplvpxjVZfYjSEAUs:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!jOPnqXMUHEtJollWUL:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!wgvSnOspQPUXBkJIoi:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!ihCELcZBNNCaZyVaME:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!GzFrrYDigesJZrBpWo:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!igIbxPOcmiXeuBMpag:matrix.eclabs.de 18 5 0 5 0 2 0 0 5 | |
!vdiYurXiyDOISdvPFo:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!zHHgxSmdNhGZexTGAL:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!uwIMvWQnSlxksZQHsl:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!vShHPJFfNAFMAYsJJy:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!jEWfHtIBPrruvqCLoE:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!cEWtHuKhKhKIJeJxRt:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!teSKuglkxpXJYiAQsR:matrix.org 7 2 0 2 0 1 0 0 2 | |
!IfowQwQhsqlKJURqDR:matrix.eclabs.de 11 3 0 3 0 1 0 0 3 | |
!sbqNtsANEFxdXwUXLr:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!LGsRfzYItBUAiMiwwD:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!xCgOSOWzqdpoCKNpnP:matrix.org 7 2 0 2 0 1 0 0 2 | |
!omTbzSIcLzsymBQxaO:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!HbvfEAdrvyIXsNDOLI:matrix.org 7 2 0 2 0 1 0 0 2 | |
!lXqZcxFVXKAPayZdGl:matrix.org 7 2 0 2 0 1 0 0 2 | |
!IFcfMigYORXuHeiSnX:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!HelWDrRRssMwqKqqDS:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!skELrWHdnrlpTjivMc:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!XqBunHwQIXUiqCaoxq:matrix.org 8 9 0 5 0 0 0 1 5 | |
!batlctBlslNTdSHoHB:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!uwGLwXtJlAYcxKzChl:matrix.org 7 2 0 2 0 1 0 0 2 | |
!gVgKXXnxkQJJjJLzId:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!DqIkYImLNJNCXaMcHz:matrix.eclabs.de 7 2 0 2 0 1 0 0 2 | |
!yybJCYchcyttEkdisC:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!hAOYuRuNhNRIuFLHrN:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!RyMksNyrKELkTxXqvb:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!QCWDezAlLwiDbwlxjH:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!PcRMDpMgUrARpPNGKq:matrix.org 7 2 0 2 0 1 0 0 2 | |
!RdZhrirDFWBOOhRPkU:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2 | |
!LEWOuDsKCOQBBnwAEU:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!OxGxpBQOLSIspDnCJV:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!mDuBoSqvmOmVwpBHnQ:matrix.nordlab-ev.de 7 2 0 2 0 1 0 0 2 | |
!vdvsJGLzpJtfnuTYyQ:toppoint.de 0 0 0 0 0 0 0 0 0 | |
!drmkAYovWTAEksWYIT:irc.hackint.org 7 2 0 2 0 1 0 0 2 | |
!MSJlzbwbCXLGDMCjpG:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!QtykxKocfZaZOUrTwp:matrix.org 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!GgqMirLCzUBQrbwlbg:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!DJUwZESwvpIRzokKgj:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!zPyYTzkOFYGmClXkhM:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!OtYmrEKmeQiMxknLJK:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!cURbafjkfsMDVwdRDQ:matrix.org 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!OGSSroLxlTtGJzfkHS:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!VYzsbIgRIvGuTjgfzy:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!YoNntdARwyvRwIxUaU:matrix.org 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!ccJTTFjQIxEptZziVi:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!wVcgJmqQrLsNbqHaSP:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!gyXWdCXGiuXdRoUCti:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!KYJvZSRivpulZIPlxy:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!FTxQUQNaHaldBhUuJY:irc.hackint.org 0 1 0 17 0 0 17 0 0 0 0 0 1 17 1 1 1 1 0 1 0 0 0 0 0 0 0 16 0 0 1 | |
!nBMXSIqnImmpxcTfxg:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!tGxyGpXanvuaBkopSo:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!yLVzTAuaHoRPycDVrl:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!ySplvpxjVZfYjSEAUs:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!jOPnqXMUHEtJollWUL:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!wgvSnOspQPUXBkJIoi:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!ihCELcZBNNCaZyVaME:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!GzFrrYDigesJZrBpWo:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!igIbxPOcmiXeuBMpag:matrix.eclabs.de 0 2 0 5 0 0 5 0 0 0 0 0 1 5 1 1 1 1 0 2 0 0 0 0 0 0 0 3 0 1 1 | |
!vdiYurXiyDOISdvPFo:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!zHHgxSmdNhGZexTGAL:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!uwIMvWQnSlxksZQHsl:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!vShHPJFfNAFMAYsJJy:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!jEWfHtIBPrruvqCLoE:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!cEWtHuKhKhKIJeJxRt:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!teSKuglkxpXJYiAQsR:matrix.org 0 1 0 2 0 0 2 0 0 1 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!IfowQwQhsqlKJURqDR:matrix.eclabs.de 0 1 0 3 0 0 3 0 0 0 0 0 1 3 1 1 1 1 0 1 0 0 0 0 0 0 0 2 0 0 1 | |
!sbqNtsANEFxdXwUXLr:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!LGsRfzYItBUAiMiwwD:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!xCgOSOWzqdpoCKNpnP:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!omTbzSIcLzsymBQxaO:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!HbvfEAdrvyIXsNDOLI:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!lXqZcxFVXKAPayZdGl:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!IFcfMigYORXuHeiSnX:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!HelWDrRRssMwqKqqDS:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!skELrWHdnrlpTjivMc:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!XqBunHwQIXUiqCaoxq:matrix.org 0 0 0 6 0 0 6 0 0 433 94 0 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 0 | |
!batlctBlslNTdSHoHB:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!uwGLwXtJlAYcxKzChl:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!gVgKXXnxkQJJjJLzId:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!DqIkYImLNJNCXaMcHz:matrix.eclabs.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!yybJCYchcyttEkdisC:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!hAOYuRuNhNRIuFLHrN:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!RyMksNyrKELkTxXqvb:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!QCWDezAlLwiDbwlxjH:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!PcRMDpMgUrARpPNGKq:matrix.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!RdZhrirDFWBOOhRPkU:matrix.nordlab-ev.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 0 1 | |
!LEWOuDsKCOQBBnwAEU:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!OxGxpBQOLSIspDnCJV:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!mDuBoSqvmOmVwpBHnQ:matrix.nordlab-ev.de 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
!vdvsJGLzpJtfnuTYyQ:toppoint.de 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
!drmkAYovWTAEksWYIT:irc.hackint.org 0 1 0 2 0 0 2 0 0 0 0 0 1 2 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 | |
Columns: 1142 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment