DS4UX PAWS cheatsheet

This notebook is a demo of the various connections that you can make to external datasets within PAWS The notebook uses markdown for text formatting (cheatsheet)

Used for the University of Washington course HCDE598a (Spring 2016): Data Science for User Experience Research

Forking a Notebook

step 1: get the url of another public PAWS notebook (example: http://paws-public.wmflabs.org/paws-public/EpochFail/projects/examples/mwapi.ipynb) step 2: pass in a raw param to download a raw .ipynb file http://paws-public.wmflabs.org/paws-public/EpochFail/projects/examples/mwapi.ipynb?format=raw step 3: log into your PAWS account and use "upload" to upload this copy into your own directory

API connections

You can connect to all sorts of APIs!

MediaWiki API

You can use python-mwapi (docs) to run queries against the MediaWiki API. You can also test your queries in the API sandbox

import mwapi
session = mwapi.Session('https://en.wikipedia.org') #TODO add user agent
print(session.get(action='query', meta='userinfo'))
{'query': {'userinfo': {'anon': '', 'name': 'Jtmorgan', 'id': 0}},
 'batchcomplete': ''}
{'batchcomplete': '', 'query': {'userinfo': {'id': 0, 'anon': '', 'name': '10.68.16.234'}}}
{'batchcomplete': '',
 'query': {'userinfo': {'anon': '', 'id': 0, 'name': 'Jtmorgan'}}}

MediaWiki Pageview API

You can use python-mwviews (docs) to run queries against the MediaWiki Pageview API (blog post)

#you may have to install the library before using it... until Yuvi gets around to installing it by default
!pip install git+https://github.com/mediawiki-utilities/python-mwviews.git
Collecting git+https://github.com/mediawiki-utilities/python-mwviews.git
  Cloning https://github.com/mediawiki-utilities/python-mwviews.git to /tmp/pip-hp9tq2vi-build
  Requirement already satisfied (use --upgrade to upgrade): mwviews==0.0.7 from git+https://github.com/mediawiki-utilities/python-mwviews.git in /srv/paws/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): requests in /srv/paws/lib/python3.4/site-packages (from mwviews==0.0.7)
Requirement already satisfied (use --upgrade to upgrade): futures in /srv/paws/lib/python3.4/site-packages (from mwviews==0.0.7)
You are using pip version 8.0.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
import mwviews
from mwviews.api import PageviewsClient
p = PageviewsClient()

p.article_views('en.wikipedia', ['Selfie', 'Cat', 'Dog'])
p.project_views(['ro.wikipedia', 'de.wikipedia', 'commons.wikimedia'])
p.top_articles('en.wikipedia', limit=10)
[{'article': 'Main_Page', 'rank': 1, 'views': 13908848},
 {'article': 'Special:Search', 'rank': 2, 'views': 1653313},
 {'article': 'Troubadour', 'rank': 3, 'views': 336888},
 {'article': 'XHamster', 'rank': 4, 'views': 218493},
 {'article': 'Equinox', 'rank': 5, 'views': 214564},
 {'article': 'Donald_Trump', 'rank': 6, 'views': 207320},
 {'article': 'UFC_Fight_Night:_Hunt_vs._Mir', 'rank': 7, 'views': 182213},
 {'article': 'Punisher', 'rank': 8, 'views': 177634},
 {'article': 'South_Africa_and_weapons_of_mass_destruction',
  'rank': 9,
  'views': 165891},
 {'article': 'Zach_Braff', 'rank': 10, 'views': 163338}]

Wikidata API

UNTESTED: Query WikiData using query.wikidata.org (user manual) with Yuvi's wdqs module... which has no documentation (yet!)

import wdqs

Any other API

TODO: check with Socrata API

import requests
# make an API call, gather and print some data
import csv
import encoding_fix
import json
from operator import itemgetter
import requests
import time

#load in the JSON file we created with download_building_permit_data.py
with open("data/residential_permits_2010-2016.json") as json_infile:
    bp_api_data = json.load(json_infile)

json_infile.close()
"""
Example query: https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&result_type=street_address
"""
#create an empty dictionary that will hold our per-neighborhood counts
permits_by_neighborhood = {}

#go through each permit record and get the neighborhood for each address.
for x in bp_api_data:
#     print(x)
    #we're only interested in MULTIFAMILY construction right now, not SINGLE FAMILY / DUPLEX
    if x['category'] == "MULTIFAMILY":
        # if a row doesn't contain lat/long, 
        # OR if Google Maps API can't find a neighborhood for a given lat/long, 
        # we're going to skip it
        try:
            #add the city and state to the end of each address before querying the Google Maps API
            gmaps_api_params = {'latlng' : x['latitude'] + "," + x["longitude"]}
            gmaps_api_req = requests.get("http://maps.googleapis.com/maps/api/geocode/json", params=gmaps_api_params)
            # save the content of the request to a Python dict and start parsing it
            gmaps_api_data = gmaps_api_req.json()
            neighborhood = gmaps_api_data['results'][0]['address_components'][2]['long_name']
            if neighborhood in permits_by_neighborhood:
                permits_by_neighborhood[neighborhood] += 1
            else:
                permits_by_neighborhood[neighborhood] = 1
        except:
            pass
            
        #slow down our API requests, to avoid getting blocked by Google    
        time.sleep(0.2)
    else:
        continue

Database connections

You can use pymysql to run queries against the Wikimedia replica databases. See also Manual:Database access and Manual:Database layout on MediaWiki.org.

import os 
"""
Your db login credentials are stored in os.environ. 
DO NOT print or run os.environ, or it will expose your credentials in the Notebook
"""
'\nYour db login credentials are stored in os.environ. \nDO NOT print or run os.environ, or it will expose your credentials in the Notebook\n'
import pymysql
conn = pymysql.connect(
    host=os.environ['MYSQL_HOST'],
    user=os.environ['MYSQL_USERNAME'],
    password=os.environ['MYSQL_PASSWORD'],
    database='enwiki_p',
    charset='utf8'
)
with conn.cursor() as cur:
    cur.execute('use enwiki_p')
    cur.execute("""SELECT * from user where user_name = 'Jtmorgan'""")
    jtmorgan = cur.fetchall()
    cur.execute("""SELECT * from user where user_name = 'HostBot'""")
    hostbot = cur.fetchall()
    print(jtmorgan)
    print(hostbot)
((7878375, b'Jtmorgan', b'', None, None, None, None, None, None, None, None, None, b'20080917143125', None, 5179, None),)
((16596082, b'HostBot', b'', None, None, None, None, None, None, None, None, None, b'20120404202435', None, 175558, None),)
username = jtmorgan[0][1]
#decode byte string to UTF to make it compatible with most other strings you'll be using
print(username.decode("utf8") + ' is great')
Jtmorgan is great

Access special datasets

Explaination goes here

#you can access the CSCW workshop datasets, including the Teahouse dataset
conn2 = pymysql.connect(
    host=os.environ['MYSQL_HOST'],
    user=os.environ['MYSQL_USERNAME'],
    password=os.environ['MYSQL_PASSWORD'],
    database='datasets_p',
    charset='utf8' #doesn't actually do anything right now. still returns byte strings
)
with conn2.cursor() as cur:
    cur.execute('use datasets_p')
    cur.execute('show tables')
    dbs = cur.fetchall()
    print(dbs)
(('enwiki_sessions_20150801',), ('facebook_links_wosn_2009',), ('facebook_wall_posts_wosn_2009',), ('teahouse_questions_20150412',))

Access HostBot db

Note: this is not working yet. Need to store hb db credentials in home directory so they can be accessed from my PAWS env. TODO: ask Yuvi to help set this up.

#you can access hostbot tables this way, too
conn3 = pymysql.connect(
    host=os.environ['MYSQL_HOST'],
    user=os.environ['MYSQL_USERNAME'],
    password=os.environ['MYSQL_PASSWORD'],
    database='p50380g50728__hostbot',
    charset='utf8'
)

with conn3.cursor() as cur:
    cur.execute('use p50380g50728__hostbot')
    cur.execute('show tables')
    tables = cur.fetchall()
    print(tables)#won't work, user access denied
---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-34-f450c67997c0> in <module>()
      9 
     10 with conn3.cursor() as cur:
---> 11     cur.execute('use p50380g50728__hostbot')
     12     cur.execute('show tables')
     13     tables = cur.fetchall()

/srv/paws/lib/python3.4/site-packages/pymysql/cursors.py in execute(self, query, args)
    144         query = self.mogrify(query, args)
    145 
--> 146         result = self._query(query)
    147         self._executed = query
    148         return result

/srv/paws/lib/python3.4/site-packages/pymysql/cursors.py in _query(self, q)
    294         conn = self._get_db()
    295         self._last_executed = q
--> 296         conn.query(q)
    297         self._do_get_result()
    298         return self.rowcount

/srv/paws/lib/python3.4/site-packages/pymysql/connections.py in query(self, sql, unbuffered)
    817                 sql = sql.encode(self.encoding, 'surrogateescape')
    818         self._execute_command(COMMAND.COM_QUERY, sql)
--> 819         self._affected_rows = self._read_query_result(unbuffered=unbuffered)
    820         return self._affected_rows
    821 

/srv/paws/lib/python3.4/site-packages/pymysql/connections.py in _read_query_result(self, unbuffered)
    999         else:
   1000             result = MySQLResult(self)
-> 1001             result.read()
   1002         self._result = result
   1003         if result.server_status is not None:

/srv/paws/lib/python3.4/site-packages/pymysql/connections.py in read(self)
   1283     def read(self):
   1284         try:
-> 1285             first_packet = self.connection._read_packet()
   1286 
   1287             if first_packet.is_ok_packet():

/srv/paws/lib/python3.4/site-packages/pymysql/connections.py in _read_packet(self, packet_type)
    963 
    964         packet = packet_type(buff, self.encoding)
--> 965         packet.check_error()
    966         return packet
    967 

/srv/paws/lib/python3.4/site-packages/pymysql/connections.py in check_error(self)
    392             errno = self.read_uint16()
    393             if DEBUG: print("errno =", errno)
--> 394             err.raise_mysql_exception(self._data)
    395 
    396     def dump(self):

/srv/paws/lib/python3.4/site-packages/pymysql/err.py in raise_mysql_exception(data)
    118 def raise_mysql_exception(data):
    119     errinfo = _get_error_info(data)
--> 120     _check_mysql_exception(errinfo)

/srv/paws/lib/python3.4/site-packages/pymysql/err.py in _check_mysql_exception(errinfo)
    110     errorclass = error_map.get(errno, None)
    111     if errorclass:
--> 112         raise errorclass(errno, errorvalue)
    113 
    114     # couldn't find the right error number

OperationalError: (1044, "Access denied for user 's52771'@'%' to database 'p50380g50728__hostbot'")

Import text data

NAMES_LIST = "namedata_test.txt"

boys = {}
girls = {}

for line in open(NAMES_LIST, 'r').readlines():
    print(line)
    name, gender, count = line.strip().split(",")
    count = int(count)

    if gender == "F":
        girls[name.lower()] = count
    elif gender == "M":
        boys[name.lower()] = count
Isabella,F,22872

Sophia,F,20601

Emma,F,17316

Olivia,F,17004

Ava,F,15407

Emily,F,14256

Abigail,F,14223

Madison,F,13155

Chloe,F,11735

Mia,F,10618

Addison,F,10313

Elizabeth,F,10234

Ella,F,9866

Natalie,F,8760

Samantha,F,8391

Alexis,F,8246

Lily,F,7970

Grace,F,7670

Hailey,F,7002

Alyssa,F,6974

Hannah,F,6967

Lillian,F,6944

Avery,F,6668

Leah,F,6522

Nevaeh,F,6396

Sofia,F,6316

Anna,F,6307

Sarah,F,6303

Ashley,F,6301

Brianna,F,6264

Zoe,F,6259

Victoria,F,6215

Gabriella,F,6162

Brooklyn,F,6109

Kaylee,F,6083

Taylor,F,5886

Layla,F,5880

Allison,F,5857

Evelyn,F,5834

Riley,F,5534

Amelia,F,5448

Khloe,F,5395

Makayla,F,5384

Savannah,F,5358

Aubrey,F,5354

Charlotte,F,5353

Zoey,F,5198

Bella,F,5106

Kayla,F,5044

Alexa,F,5035

Peyton,F,4966

Audrey,F,4948

Claire,F,4913

Arianna,F,4828

Julia,F,4672

Aaliyah,F,4656

Kylie,F,4589

Lauren,F,4464

Sophie,F,4411

Sydney,F,4326

Camila,F,4299

Jasmine,F,4161

Morgan,F,4071

Alexandra,F,4013

Jocelyn,F,3981

Maya,F,3961

Gianna,F,3954

Mackenzie,F,3871

Kimberly,F,3864

Katherine,F,3859

Destiny,F,3715

Brooke,F,3698

Trinity,F,3691

Faith,F,3683

Lucy,F,3631

Madelyn,F,3615

Madeline,F,3599

Bailey,F,3584

Payton,F,3579

Andrea,F,3566

Autumn,F,3503

Melanie,F,3485

Serenity,F,3465

Ariana,F,3464

Stella,F,3437

Maria,F,3413

Molly,F,3358

Caroline,F,3353

Genesis,F,3303

Kaitlyn,F,3290

Eva,F,3271

Jessica,F,3191

Gabrielle,F,3137

Angelina,F,3128

Naomi,F,3120

Valeria,F,3114

Mariah,F,3096

Natalia,F,3042

Rachel,F,3010

Paige,F,3005

Mya,F,2986

Rylee,F,2974

Katelyn,F,2951

Ellie,F,2906

Isabelle,F,2891

Lilly,F,2881

Vanessa,F,2879

London,F,2869

Mary,F,2860

Lydia,F,2829

Kennedy,F,2826

Jordyn,F,2800

Ruby,F,2789

Jade,F,2715

Scarlett,F,2715

Isabel,F,2653

Annabelle,F,2637

Harper,F,2628

Sadie,F,2628

Sara,F,2627

Jennifer,F,2616

Violet,F,2564

Nicole,F,2558

Liliana,F,2513

Michelle,F,2500

Stephanie,F,2484

Reagan,F,2475

Jada,F,2468

Adriana,F,2458

Gracie,F,2420

Megan,F,2401

Jayla,F,2370

Kendall,F,2334

Lyla,F,2285

Rebecca,F,2280

Amy,F,2279

Reese,F,2263

Kylee,F,2247

Izabella,F,2246

Laila,F,2244

Jenna,F,2219

Brooklynn,F,2181

Aliyah,F,2155

Piper,F,2137

Mckenzie,F,2126

Juliana,F,2124

Giselle,F,2087

Gabriela,F,2079

Valerie,F,2063

Daniela,F,2037

Daisy,F,2013

Valentina,F,1998

Makenzie,F,1990

Haley,F,1978

Lila,F,1968

Ashlyn,F,1946

Melissa,F,1946

Vivian,F,1939

Nora,F,1933

Angela,F,1910

Katie,F,1895

Hayden,F,1891

Elena,F,1881

Summer,F,1880

Keira,F,1857

Eleanor,F,1850

Clara,F,1836

Eliana,F,1829

Jillian,F,1815

Alana,F,1813

Jacqueline,F,1805

Alice,F,1778

Adrianna,F,1771

Miranda,F,1770

Alivia,F,1764

Julianna,F,1745

Aniyah,F,1735

Eden,F,1723

Jordan,F,1721

Mikayla,F,1719

Skylar,F,1715

Margaret,F,1697

Briana,F,1685

Ryleigh,F,1675

Josephine,F,1674

Shelby,F,1674

Delilah,F,1662

Amanda,F,1652

Allie,F,1634

Diana,F,1620

Addyson,F,1615

Brielle,F,1613

Catherine,F,1608

Angel,F,1603

Danielle,F,1597

Elise,F,1585

Ana,F,1571

Melody,F,1569

Leslie,F,1563

Penelope,F,1546

Makenna,F,1541

Marissa,F,1526

Aurora,F,1523

Leila,F,1507

Alexandria,F,1506

Alaina,F,1493

Kendra,F,1493

Kate,F,1488

Delaney,F,1484

Sienna,F,1477

Lola,F,1470

Jayden,F,1460

Ariel,F,1449

Sierra,F,1445

Erin,F,1440
print(girls)
{'emma': 17316, 'alexis': 8246, 'savannah': 5358, 'brielle': 1613, 'aliyah': 2155, 'madelyn': 3615, 'olivia': 17004, 'london': 2869, 'allie': 1634, 'samantha': 8391, 'delilah': 1662, 'ava': 15407, 'amy': 2279, 'lucy': 3631, 'molly': 3358, 'jordan': 1721, 'jillian': 1815, 'julianna': 1745, 'audrey': 4948, 'melissa': 1946, 'natalia': 3042, 'sierra': 1445, 'makayla': 5384, 'mckenzie': 2126, 'bailey': 3584, 'jasmine': 4161, 'ariel': 1449, 'elena': 1881, 'ella': 9866, 'angel': 1603, 'gracie': 2420, 'daniela': 2037, 'erin': 1440, 'kylee': 2247, 'lydia': 2829, 'kaitlyn': 3290, 'aniyah': 1735, 'aubrey': 5354, 'ashlyn': 1946, 'giselle': 2087, 'valerie': 2063, 'avery': 6668, 'penelope': 1546, 'alice': 1778, 'jennifer': 2616, 'jade': 2715, 'scarlett': 2715, 'ellie': 2906, 'skylar': 1715, 'allison': 5857, 'harper': 2628, 'khloe': 5395, 'peyton': 4966, 'abigail': 14223, 'faith': 3683, 'ryleigh': 1675, 'izabella': 2246, 'stephanie': 2484, 'zoey': 5198, 'alivia': 1764, 'grace': 7670, 'alana': 1813, 'mariah': 3096, 'reagan': 2475, 'madison': 13155, 'nora': 1933, 'josephine': 1674, 'adrianna': 1771, 'hannah': 6967, 'gabrielle': 3137, 'michelle': 2500, 'laila': 2244, 'bella': 5106, 'mackenzie': 3871, 'sienna': 1477, 'megan': 2401, 'destiny': 3715, 'arianna': 4828, 'rylee': 2974, 'maria': 3413, 'hayden': 1891, 'jordyn': 2800, 'brianna': 6264, 'serenity': 3465, 'kendra': 1493, 'margaret': 1697, 'sofia': 6316, 'andrea': 3566, 'summer': 1880, 'marissa': 1526, 'mary': 2860, 'kendall': 2334, 'kylie': 4589, 'eleanor': 1850, 'jessica': 3191, 'gianna': 3954, 'juliana': 2124, 'madeline': 3599, 'lila': 1968, 'paige': 3005, 'haley': 1978, 'violet': 2564, 'julia': 4672, 'liliana': 2513, 'angela': 1910, 'katie': 1895, 'lauren': 4464, 'payton': 3579, 'adriana': 2458, 'clara': 1836, 'shelby': 1674, 'melody': 1569, 'keira': 1857, 'sydney': 4326, 'alyssa': 6974, 'jayden': 1460, 'camila': 4299, 'lyla': 2285, 'ana': 1571, 'katelyn': 2951, 'miranda': 1770, 'valentina': 1998, 'sophia': 20601, 'catherine': 1608, 'aurora': 1523, 'autumn': 3503, 'alexandra': 4013, 'danielle': 1597, 'sara': 2627, 'kimberly': 3864, 'victoria': 6215, 'alexandria': 1506, 'amanda': 1652, 'alexa': 5035, 'nevaeh': 6396, 'eden': 1723, 'annabelle': 2637, 'jayla': 2370, 'ariana': 3464, 'caroline': 3353, 'claire': 4913, 'aaliyah': 4656, 'isabella': 22872, 'taylor': 5886, 'rachel': 3010, 'hailey': 7002, 'sadie': 2628, 'evelyn': 5834, 'naomi': 3120, 'emily': 14256, 'lily': 7970, 'brooklynn': 2181, 'vivian': 1939, 'leslie': 1563, 'genesis': 3303, 'diana': 1620, 'chloe': 11735, 'reese': 2263, 'riley': 5534, 'brooke': 3698, 'nicole': 2558, 'jada': 2468, 'lola': 1470, 'trinity': 3691, 'briana': 1685, 'sarah': 6303, 'isabelle': 2891, 'jocelyn': 3981, 'gabriella': 6162, 'stella': 3437, 'maya': 3961, 'gabriela': 2079, 'kennedy': 2826, 'alaina': 1493, 'melanie': 3485, 'leah': 6522, 'anna': 6307, 'eva': 3271, 'jacqueline': 1805, 'amelia': 5448, 'elizabeth': 10234, 'delaney': 1484, 'jenna': 2219, 'elise': 1585, 'makenzie': 1990, 'lillian': 6944, 'natalie': 8760, 'kaylee': 6083, 'makenna': 1541, 'zoe': 6259, 'daisy': 2013, 'lilly': 2881, 'vanessa': 2879, 'mya': 2986, 'ashley': 6301, 'isabel': 2653, 'brooklyn': 6109, 'eliana': 1829, 'addyson': 1615, 'angelina': 3128, 'katherine': 3859, 'morgan': 4071, 'mikayla': 1719, 'addison': 10313, 'kayla': 5044, 'piper': 2137, 'mia': 10618, 'kate': 1488, 'leila': 1507, 'layla': 5880, 'ruby': 2789, 'valeria': 3114, 'rebecca': 2280, 'charlotte': 5353, 'sophie': 4411}

Import CSV data

import csv

responses = []
notifications_data = csv.DictReader(open("test_data.csv"), delimiter=',', quotechar='"')

for row in notifications_data:
#     print(type(row)) 
    responses.append(row)
print(responses)
[{'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '7', 'response-id': '1', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '1', 'response-id': '2', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '3', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '2', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '3', 'response-id': '4', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '5', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '6', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '2', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '7', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '6', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '2', 'response-id': '8', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '1', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '8', 'response-id': '9', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '8', 'response-id': '10', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '4', 'response-id': '11', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '12', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '3', 'response-id': '13', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '', 'response-id': '14', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '15', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '16', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '17', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '4', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '8', 'response-id': '18', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '1', 'response-id': '19', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '2', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '5', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '20', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '21', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '22', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '8', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '23', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '1', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '24', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '2', 'rank-message': '1'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '25', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '26', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '3', 'rank-message': '2'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '27', 'seen-revert': '', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '28', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '8', 'response-id': '29', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '3', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '7', 'response-id': '30', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '2', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '7', 'response-id': '31', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '7', 'response-id': '32', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '6', 'response-id': '33', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '', 'response-id': '34', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '7', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '35', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '1', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '36', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '5', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '37', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '5', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '38', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '39', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '3', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '2', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '40', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '41', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '42', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '5', 'response-id': '43', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '44', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '1', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '3', 'response-id': '45', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '', 'response-id': '46', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '1', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '2', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '6', 'response-id': '47', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '5', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '48', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '2', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '2', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '4', 'rank-link': '5', 'response-id': '49', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '', 'rank-link': '5', 'response-id': '50', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '51', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '52', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '6', 'response-id': '53', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '54', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '55', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '56', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '4', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '57', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '1', 'rank-message': '3'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '58', 'seen-revert': '', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '59', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '3', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '6', 'response-id': '60', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '61', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '2', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '2', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '5', 'response-id': '62', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '6', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '1', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '4', 'response-id': '63', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '3', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '64', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '65', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '3', 'seen-rights': '', 'seen-thank': '', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '66', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '2', 'seen-review': '1', 'rank-mention': '', 'rank-link': '4', 'response-id': '67', 'seen-revert': '', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '2', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '68', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '69', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '70', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '71', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '72', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '4', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '', 'response-id': '73', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '2', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '74', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '1', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '8', 'rank-email': '4', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '75', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '76', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '77', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '78', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '4', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '79', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '3', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '80', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '3', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '81', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '82', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '83', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '3', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '84', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '5', 'response-id': '85', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '1', 'rank-link': '', 'response-id': '86', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '5'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '', 'response-id': '87', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '6', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '6', 'response-id': '88', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '5', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '89', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '6', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '1', 'rank-link': '5', 'response-id': '90', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '7', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '91', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '1', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '7', 'response-id': '92', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '7', 'rank-email': '5', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '', 'response-id': '93', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '1', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '94', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '1', 'rank-message': '3'}, {'seen-message': '', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '95', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '3', 'seen-review': '1', 'rank-mention': '4', 'rank-link': '', 'response-id': '96', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '3', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '97', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '7', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '2', 'rank-email': '6', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '98', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '1', 'rank-thank': '5', 'rank-message': '4'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '99', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '6', 'response-id': '100', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '4', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '', 'rank-link': '2', 'response-id': '101', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '5', 'rank-thank': '1', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '5', 'response-id': '102', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '103', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '6', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '6', 'rank-email': '1', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '7', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '5', 'response-id': '104', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '4', 'rank-thank': '8', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '', 'response-id': '105', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '3', 'rank-thank': '4', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '', 'rank-email': '5', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '1', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '106', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '3', 'rank-link': '', 'response-id': '107', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '4', 'rank-thank': '1', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '4', 'response-id': '108', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '', 'response-id': '109', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '6', 'rank-email': '', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '4', 'seen-review': '1', 'rank-mention': '2', 'rank-link': '7', 'response-id': '110', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '3', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '1', 'rank-rights': '8', 'rank-email': '7', 'seen-rights': '1', 'seen-thank': '1', 'rank-review': '1', 'seen-review': '1', 'rank-mention': '5', 'rank-link': '4', 'response-id': '111', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '6', 'rank-thank': '2', 'rank-message': '3'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '6', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '4', 'response-id': '112', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '2', 'rank-thank': '5', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '6', 'response-id': '113', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '4', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '2', 'rank-link': '4', 'response-id': '114', 'seen-revert': '', 'seen-mention': '1', 'seen-link': '1', 'rank-revert': '', 'rank-thank': '3', 'rank-message': '1'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '1', 'rank-mention': '', 'rank-link': '', 'response-id': '115', 'seen-revert': '', 'seen-mention': '', 'seen-link': '', 'rank-revert': '', 'rank-thank': '', 'rank-message': ''}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '', 'seen-review': '', 'rank-mention': '', 'rank-link': '4', 'response-id': '116', 'seen-revert': '1', 'seen-mention': '', 'seen-link': '1', 'rank-revert': '1', 'rank-thank': '3', 'rank-message': '2'}, {'seen-message': '1', 'seen-email': '', 'rank-rights': '', 'rank-email': '', 'seen-rights': '', 'seen-thank': '1', 'rank-review': '5', 'seen-review': '1', 'rank-mention': '3', 'rank-link': '', 'response-id': '117', 'seen-revert': '1', 'seen-mention': '1', 'seen-link': '', 'rank-revert': '2', 'rank-thank': '4', 'rank-message': '1'}]