adding analysis tools
authorDave Raggett <dsr@w3.org>
Fri, 29 Apr 2011 13:28:40 +0100
changeset 3 f0a5da9e4150
parent 2 31a229b2b546
child 4 82ee4f6c2058
adding analysis tools
dashbot_analyst/Makefile
dashbot_analyst/analyst.h
dashbot_analyst/cluster.c
dashbot_analyst/extract.c
dashbot_analyst/gml.c
dashbot_analyst/graphviz.c
dashbot_analyst/hashtable.c
dashbot_analyst/hashtable.h
dashbot_analyst/hashtable_private.h
dashbot_analyst/main.c
dashbot_analyst/missing.js
dashbot_analyst/rbtree.c
dashbot_analyst/rbtree.h
dashbot_analyst/sites.html
dashbot_analyst/top-sites.c
dashbot_analyst/top-sites.js
dashbot_analyst/top-sites.txt
dashbot_analyst/top_sites.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/Makefile	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,62 @@
+#
+#   dashbot analysis tools that operate on dashboard.sqlite
+#   from your Firefox profile folder to make sense of the data
+#   collected by the Privacy Dashboard after running on the
+#   list of top sites as extracted from google's webpages.
+#   You need to have installed sqlite3 and its include files
+#
+# Licensed under the Apache License, Version 2.0
+# See http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Copyright (c) 2010-2011 Dave Raggett
+#
+
+CC = gcc
+CFLAGS =  -g -c -Wall
+OBJECTS = main.o cluster.o graphviz.o gml.o top-sites.o rbtree.o hashtable.o
+LIBS = -l sqlite3 -l m
+
+all: analyst extract
+
+# dependencies on make files
+main.o: analyst.h top_sites.h
+top-sites.o: analyst.h top_sites.h
+cluster.o: analyst.h top_sites.h hashtable.h rbtree.h
+graphviz.o: analyst.h top_sites.h hashtable.h
+gml.o: analyst.h top_sites.h hashtable.h
+rbtree.o: rbtree.h
+hashtable.o: hashtable.h hashtable_private.h
+
+# copy dashboard.sqlite from your firefox profile folder
+# to a new folder and run analyst in the new folder to
+# generate the output files for graphviz etc.
+analyst: $(OBJECTS)
+	$(CC) -o analyst $(OBJECTS) $(LIBS)
+
+# tool for extracting list of top sites from raw text
+# obtained from Google's page on top sites as found at
+# http://www.google.com/adplanner/static/top1000/
+# creates top-sites.c and top-sites.js
+extract: extract.c
+	$(CC) -o extract extract.c
+
+# rule for compiling source files to object files
+
+.SUFFIXES:
+.SUFFIXES:	.c .o
+
+.c.o :
+	$(CC) -o [email protected] $(CFLAGS) $<
+
+# make count gives total line count
+count:
+	wc -l *.c *.h
+
+# purge all temporary files
+clean:
+	rm -f *.o *.so *.h.gch extract analyst
+
+.PHONY: all
+.PHONY: count
+.PHONY: clean
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/analyst.h	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,42 @@
+/*
+ *     analyst.h -- Analysis program for dashbot data in SQLite
+ *
+ *      Copyright (c) 2011 Dave Raggett
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#ifndef DASHBOT_ANALYST_H
+#define DASHBOT_ANALYST_H
+
+#ifndef __cplusplus
+
+#ifndef WS_BOOL
+#define WS_BOOL
+typedef enum { false, true } bool;
+#define null (void *)0
+#endif
+
+#endif
+
+extern int debug;
+
+extern void graph(sqlite3 *db);
+extern void gml(sqlite3 *db);
+extern size_t study_clusters(sqlite3 *db);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // DASHBOT_ANALYST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/cluster.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,778 @@
+/*
+ *      cluster.c -- find and rank clusters by size, graph largest
+ *
+ *      Copyright (c) 2011 Dave Raggett
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>   // for strlen
+#include <strings.h>
+#include <sqlite3.h>
+
+#include "hashtable.h"
+#include "rbtree.h"
+#include "analyst.h"
+#include "top_sites.h"
+
+// bit flags for nodes for marking visits etc
+#define DASHBOT_VISITED 1
+#define DASHBOT_GRAPHED 2
+
+static struct hashtable *sites = NULL;
+static struct _dashbot_node *all_nodes = NULL;
+static RbTree *clusters = NULL;
+
+typedef struct _dashbot_node {
+  char *host;
+  int flags;
+  RbTree *in;
+  RbTree *out;
+  struct _dashbot_node *next;
+} DashbotNode;
+
+typedef struct _dashbot_node_list {
+  DashbotNode *node;
+  struct _dashbot_node_list *next;
+} DashbotNodeList;
+
+typedef struct _dashbot_arc {
+  DashbotNode *node;
+  int offsite;
+} DashbotArc;
+
+typedef struct _dashbot_cluster {
+  DashbotNode *root;
+  int size;  // number of nodes in cluster
+  struct _dashbot_cluster *next;  // peers with same size
+} DashbotCluster;
+
+
+// **** list routines for debugging ****
+static void list_link(RbKey key, RbValue value, RbContext context)
+{
+  //DashbotNode *node = (DashbotNode *)key;
+  DashbotArc *arc = (DashbotArc *)value;
+  printf("  -- %s (%d)\n", arc->node->host, arc->offsite);
+}
+
+static void list_node(DashbotNode *node)
+{
+  printf("%s: in %ld, out %ld\n", node->host,
+          rbTreeSize(node->in), rbTreeSize(node->out));
+
+  rbTreeApplyLR(node->in, (RbApplyFn)list_link, (RbContext)null);
+  rbTreeApplyLR(node->out, (RbApplyFn)list_link, (RbContext)null);
+}
+
+static void list_nodes()
+{
+  DashbotNode *node = all_nodes;
+
+  while (node)
+  {
+    list_node(node);
+    node = node->next;
+  }
+}
+
+
+
+static void new_arc(RbNode *node, RbKey key, RbValue value)
+{
+  node->key = key;
+  node->value = (RbValue)value;
+}
+
+static void update_arc(RbNode *node, RbValue value)
+{
+  assert(0);
+  if (node->value)
+    free(node->value);
+
+  node->value = (RbValue)value;
+}
+
+// for freeing data stored in red-black tree node
+static void  erase_arc(RbKey key, RbValue value)
+{
+  if (value)
+    free(value);
+}
+
+static int compare_arcs(RbKey key1, RbKey key2)
+{
+  DashbotNode *node1 = (DashbotNode *)key1;
+  DashbotNode *node2 = (DashbotNode *)key2;
+  return strcasecmp(node1->host, node2->host);
+}
+
+static void add_link(DashbotNode *host, DashbotNode *third_pty, int offsite)
+{
+  DashbotArc *arc;
+
+  arc = (DashbotArc *)malloc(sizeof(DashbotArc));
+  assert(arc);
+  arc->node = third_pty;
+  arc->offsite = offsite;
+
+  rbTreeInsertKey(host->out, (RbKey)third_pty, (RbValue)arc);
+
+  arc = (DashbotArc *)malloc(sizeof(DashbotArc));
+  assert(arc);
+  arc->node = host;
+  arc->offsite = offsite;
+
+  rbTreeInsertKey(third_pty->in, (RbKey)host, (RbValue)arc);
+}
+
+static DashbotNode *create_node(char *host)
+{
+  DashbotNode *node = (DashbotNode *)calloc(1, sizeof(DashbotNode));
+  assert(node);
+
+  assert(host);
+  node->host = strdup(host);
+  assert(node->host);
+  node->in = rbTreeNew(new_arc, update_arc, erase_arc, compare_arcs);
+  node->out = rbTreeNew(new_arc, update_arc, erase_arc, compare_arcs);
+  node->next = all_nodes;
+  all_nodes = node;
+  return node;
+}
+
+static void free_node(DashbotNode *node)
+{
+  if (node)
+  {
+    free(node->host);
+    rbTreeFree(node->in);
+    rbTreeFree(node->out);
+    free(node);
+  }
+}
+
+static int free_all_nodes()
+{
+  DashbotNode *next, *node = all_nodes;
+  int count = 0;
+
+  while (node)
+  {
+    next = node->next;
+    free_node(node);
+    ++count;
+    node = next;
+  }
+
+  return count;
+}
+
+static DashbotNode *get_node(char *host)
+{
+  DashbotNode *node = (DashbotNode *)hashtable_search(sites, host);
+
+  if (node == null)
+  {
+    node = create_node(host);
+    assert(hashtable_insert(sites, node->host, node, 2));
+  }
+
+  return node;
+}
+
+int check_missing_sites(sqlite3 *db, char *name)
+{
+  int i, missing = 0;
+  SiteDesc *desc;
+  DashbotNode *node;
+  char *domain;
+  char host[1024];
+  FILE *fp = fopen(name, "w+");
+
+  if (!fp)
+  {
+    fprintf(stderr, "Can't write to file %s\n", name);
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  fprintf(fp, "\nvar missing_sites = [\n");
+
+  for (i = 0; i < NUM_SITES; ++i)
+  {
+    desc = top_sites + i;
+    domain = desc->domain;
+
+    node = (DashbotNode *)hashtable_search(sites, domain);
+
+    if (node)
+      continue;
+
+    strcpy(host, "www.");
+    strcat(host, domain);
+
+    node = (DashbotNode *)hashtable_search(sites, host);
+
+    if (!node)
+    {
+      ++missing;
+      fprintf(fp, "  \"%s\",\n", host);
+    }
+  }
+
+  fprintf(fp, "];\n\n");
+  return missing;
+}
+
+// insert host into hashable as node
+static int note_sites(void *not_used, int argc, char **argv, char **azColName)
+{
+  char *host = argv[0];
+  get_node(host);
+
+  return 0;
+}
+
+// should extend node structure to collect
+// other columns from the site_info table
+static void examine_sites(sqlite3 *db)
+{
+  char sql[1024];
+  char *zErrMsg = 0;
+
+  sprintf(sql, "SELECT host FROM site_info");
+
+  int rc = sqlite3_exec(db, sql, note_sites, null, &zErrMsg);
+
+  if( rc != SQLITE_OK )
+  {
+    fprintf(stderr, "SQL error: %s\n", zErrMsg);
+    sqlite3_free(zErrMsg);
+  }
+}
+
+// insert host into hashable as node
+static int note_links(void *not_used, int argc, char **argv, char **azColName)
+{
+  char *page_host = argv[0];
+  char *third_party = argv[1];
+  char *offsite = argv[2];
+  int flag = 0;
+
+  if (page_host && third_party)
+  {
+    DashbotNode *host_node = get_node(page_host);
+    DashbotNode *third_pty_node = get_node(third_party);
+
+    sscanf(offsite, "%d", &flag);
+    add_link(host_node, third_pty_node, flag);
+  }
+  else
+    fprintf(stderr, "Warning: missing domains -- host: %s, 3rd: %s, offset: %s\n", page_host, third_party, offsite);
+
+  return 0;
+}
+
+// should extend node structure to collect
+// other columns from the site_info table
+static void examine_third_parties(sqlite3 *db, bool indirect)
+{
+  char *sql;
+  char *zErrMsg = 0;
+
+  if (indirect)
+    sql = "SELECT page_host,third_party,offsite FROM parties";
+  else
+    sql = "SELECT parent,child,offsite FROM relations";
+
+  int rc = sqlite3_exec(db, sql, note_links, null, &zErrMsg);
+
+  if( rc != SQLITE_OK )
+  {
+    fprintf(stderr, "SQL error: %s\n", zErrMsg);
+    sqlite3_free(zErrMsg);
+  }
+}
+
+static void new_cluster(RbNode *node, RbKey key, RbValue value)
+{
+  node->key = (RbValue)value;
+  node->value = (RbValue)value;
+}
+
+static void update_cluster(RbNode *node, RbValue value)
+{
+  DashbotCluster *cluster1 = (DashbotCluster *)node->value;
+  DashbotCluster *cluster2 = (DashbotCluster *)value;
+
+  cluster2->next = cluster1->next;
+  cluster1->next = cluster2;
+}
+
+// for freeing data stored in red-black tree node
+static void  erase_cluster(RbKey key, RbValue value)
+{
+  DashbotCluster *cluster, *next;
+
+  if (value)
+  {
+    cluster = (DashbotCluster *)value;
+
+    while (cluster)
+    {
+      next = cluster->next;
+      free(cluster);
+      cluster = next;
+    }
+  }
+}
+
+static int compare_clusters(RbKey key1, RbKey key2)
+{
+  DashbotCluster *cluster1 = (DashbotCluster *)key1;
+  DashbotCluster *cluster2 = (DashbotCluster *)key2;
+  int count1 = cluster1->size;
+  int count2 = cluster2->size;
+
+  return  count1 == count2 ? 0 : (count1 < count2 ? -1 : 1);
+}
+
+static DashbotCluster *create_cluster(DashbotNode *root)
+{
+  DashbotCluster *cluster = (DashbotCluster *)calloc(1, sizeof(DashbotCluster));
+  assert(cluster);
+
+  cluster->root = root;
+  return cluster;
+}
+
+static bool visited_node(DashbotNode *node)
+{
+  return (node->flags & DASHBOT_VISITED) ? true : false;
+}
+
+static void mark_visited(DashbotNode *node)
+{
+  node->flags |= DASHBOT_VISITED;
+}
+
+// forward reference
+static void trace_cluster(DashbotCluster *cluster, DashbotNode *node);
+
+static void trace_arc(RbKey key, RbValue value, RbContext context)
+{
+  DashbotCluster *cluster = (DashbotCluster *)context;
+  DashbotArc *arc = (DashbotArc *)value;
+  trace_cluster(cluster, arc->node);
+}
+
+static void trace_cluster(DashbotCluster *cluster, DashbotNode *node)
+{
+  if (!visited_node(node))
+  {
+    cluster->size++;
+    mark_visited(node);
+
+    rbTreeApplyLR(node->in, (RbApplyFn)trace_arc, (RbContext)cluster);
+    rbTreeApplyLR(node->out, (RbApplyFn)trace_arc, (RbContext)cluster);
+  }
+}
+
+static void visit_cluster(RbKey key, RbValue value, RbContext context)
+{
+  DashbotCluster *cluster = (DashbotCluster *)value, *c;
+  int count = 0;
+
+  for (c = cluster; c; c = c->next)
+  {
+    ++count;
+  }
+
+  printf("  %d: %d (%d entries)\n", cluster->size, count * cluster->size, count);
+}
+
+static void examine_clusters()
+{
+  DashbotNode *node;
+  DashbotCluster *cluster;
+  long int max = 0, count = 0;
+
+  // initialize global variable as red-black tree or sorted clusters
+  clusters = rbTreeNew(new_cluster, update_cluster, erase_cluster, compare_clusters);
+
+  // use top sites as nice nodes for cluster roots
+  // this isn't necessary, but ...
+
+  // now iterate through all nodes in case we missed some clusters
+  for (node = all_nodes; node; node = node->next)
+  {
+    if (visited_node(node))
+      continue;
+
+    cluster = create_cluster(node);
+    trace_cluster(cluster, node);
+
+    ++count;
+
+    if (max < cluster->size)
+      max = cluster->size;
+
+    printf("found cluster size %d root %s\n", cluster->size, cluster->root->host);
+
+    rbTreeInsertKey(clusters, (RbKey)cluster, (RbValue)cluster);
+  }
+
+  printf("found %ld clusters in %ld sizes, max size is %ld\n", count, rbTreeSize(clusters), max);
+  rbTreeApplyRL(clusters, (RbApplyFn)visit_cluster, (RbContext)null);
+}
+
+// local declarations for graphing a cluster
+typedef struct {
+  char *host_id;
+  FILE *fp;
+} GraphContext;
+
+static void graph_node(FILE *fp, DashbotNode *node);
+
+// write at most max bytes including null terminator
+static bool format_node_id(DashbotNode *node, char *id, size_t max)
+{
+  int c;
+  char *p = id, *q = node->host, *r = p + max - 1;
+
+  if (p >= r)
+    return false;
+
+  *p++ = 's';
+  *p++ = '_';
+
+
+  while (p < r && (c = *q++))
+  {
+    *p++ = (c == '.'  || c == '-') ? '_' : c;
+  }
+
+  if (p < r)
+  {
+    *p = '\0';
+    return true;
+  }
+
+  return false;
+}
+
+static void graph_arc1(RbKey key, RbValue value, RbContext context)
+{
+  GraphContext *gc = (GraphContext *)context;
+  DashbotArc *arc = (DashbotArc *)value;
+  char node_id[1024];
+
+  format_node_id(arc->node, node_id, 1024);
+
+  if (arc->offsite == 1)
+    fprintf(gc->fp, "    %s -> %s [style=dotted];\n", gc->host_id, node_id);
+  else
+    fprintf(gc->fp, "    %s -> %s;\n", gc->host_id, node_id);
+}
+
+static void graph_arc2(RbKey key, RbValue value, RbContext context)
+{
+  DashbotArc *arc = (DashbotArc *)value;
+  graph_node((FILE *)context, arc->node);
+}
+
+static void graph_node(FILE *fp, DashbotNode *node)
+{
+
+  if (!(node->flags & DASHBOT_GRAPHED))
+  {
+    char node_id[1024];
+    node->flags |= DASHBOT_GRAPHED;
+    format_node_id(node, node_id, 1024);
+
+    fprintf(fp, "  %s [shape=\"ellipse\",label=\"%s\",color=black];\n",
+            node_id, node->host);
+
+    GraphContext gc;
+    gc.host_id = node_id;
+    gc.fp = fp;
+
+    // this outputs the graphviz arcs
+    rbTreeApplyLR(node->out, (RbApplyFn)graph_arc1, (RbContext)&gc);
+
+    // this are used to ensure we trace all nodes in cluster
+    rbTreeApplyLR(node->in, (RbApplyFn)graph_arc2, (RbContext)fp);
+    rbTreeApplyLR(node->out, (RbApplyFn)graph_arc2, (RbContext)fp);
+  }
+}
+
+static bool graph_cluster(DashbotCluster *cluster, char *name)
+{
+  FILE *fp = fopen(name, "w+");
+
+  if (!fp)
+  {
+    fprintf(stderr, "Can't write to file %s\n", name);
+    return false;
+  }
+
+  fprintf(fp, "digraph cluster {\n  graph [splines=true,overlap=false]\n");
+
+  graph_node(fp, cluster->root);
+
+  fputs("}\n", fp);
+  fclose(fp);
+  return true;
+}
+
+static void new_link(RbNode *node, RbKey key, RbValue value)
+{
+  node->key = key;
+  node->value = (RbValue)value;
+}
+
+static void update_link(RbNode *node, RbValue value)
+{
+  DashbotNodeList *nl1 = (DashbotNodeList *)node->value;
+  DashbotNodeList *nl2 = (DashbotNodeList *)value;
+
+  nl2->next = nl1->next;
+  nl1->next = nl2;
+}
+
+// for freeing data stored in red-black tree node
+static void  erase_link(RbKey key, RbValue value)
+{
+  DashbotNodeList *nl, *next;
+
+  if (value)
+  {
+    nl = (DashbotNodeList *)value;
+
+    while (nl)
+    {
+      next = nl->next;
+      free(nl);
+      nl = next;
+    }
+  }
+}
+
+static int compare_links(RbKey key1, RbKey key2)
+{
+  long int count1 = (long int )key1;
+  long int count2 = (long int)key2;
+  return count1 == count2 ?  0 : (count1 < count2 ? 1 : -1);
+}
+
+typedef struct {
+  sqlite3 *db;
+  FILE *fp;
+} LinkContext;
+
+static void list_links(RbKey key, RbValue value, RbContext context)
+{
+  long int size = (long int)key;
+  DashbotNodeList *item = (DashbotNodeList *)value;
+  LinkContext *info = (LinkContext *)context;
+  char sql[1024];
+  char *zErrMsg = 0;
+  sqlite3_stmt *statement;
+  int count = 0;
+
+  while (item)
+  {
+    ++count;
+    item = item->next;
+  }
+
+  printf(" %ld:  (%d)\n", size, count);
+
+  fprintf(info->fp,
+          "      <tr>\n"
+          "        <th colspan='18'>%ld sites with %d references</th>\n"
+          "      </tr>\n", size, count);
+
+  item = (DashbotNodeList *)value;
+
+  // should move select statement outside of loop
+  // with sqlite3_bind and sqlite3_reset inside loop
+
+  while (item)
+  {
+    printf("   %s\n", item->node->host);
+
+    snprintf(sql, 1024, "SELECT * FROM site_info WHERE host = \"%s\"", item->node->host);
+
+    if (sqlite3_prepare_v2(info->db, sql, -1, &statement, NULL) == SQLITE_OK)
+    {
+      int cols = sqlite3_column_count(statement);
+      assert(cols >= 19);
+
+      while (sqlite3_step(statement) == SQLITE_ROW)
+      {
+        int i;
+        char *value;
+
+        fprintf(info->fp, "<tr>\n");
+
+        for (i = 0; i <19; ++i)
+        {
+          if (i == 1 || i == 2 || i == 20)
+            continue;
+
+          value = (char*)sqlite3_column_text(statement, i);
+          fprintf(info->fp, "<td>%s</td>\n", value);
+        }
+
+        fprintf(info->fp, "<tr>\n");
+      }
+
+      sqlite3_finalize(statement);
+    }
+    else
+    {
+      fprintf(stderr, "SQL error: %s\n", zErrMsg);
+      sqlite3_free(zErrMsg);
+      break;
+    }
+
+    item = item->next;
+  }
+}
+
+// create a sorted list of nodes by diminishing
+// number of references to the node as a 3rd party
+static RbTree *sort_third_parties(sqlite3 *db)
+{
+  long int size;
+  DashbotNode *node = all_nodes;
+  RbTree *node_list = rbTreeNew(new_link, update_link, erase_link, compare_links);
+
+  while (node)
+  {
+    size = (int)rbTreeSize(node->in);
+    DashbotNodeList *item = (DashbotNodeList *)calloc(1, sizeof(DashbotNodeList));
+    assert(item);
+    item->node = node;
+
+    rbTreeInsertKey(node_list, (RbKey)size, (RbValue)item);
+    node = node->next;
+  }
+
+  printf("found %ld number of nodes grouped by 3rd party references to them\n",
+         rbTreeSize(node_list));
+
+  char *name = "sites.html";
+
+  FILE *fp = fopen(name, "w+");
+
+  if (fp)
+  {
+    LinkContext info;
+    info.db = db;
+    info.fp = fp;
+
+    fprintf(fp,
+            "<html>\n"
+            "  <head>\n"
+            "    <title>Third Party Sites</title>\n"
+            "  </head>\n"
+            "  <body>\n"
+            "    <table border='1'>\n"
+            "      <caption>Third Party Sites</caption>\n"
+            "    <thead>\n"
+            "      <tr>\n"
+            "        <th>Site</th>\n"
+            "        <th>Session Cookies</th>\n"
+            "        <th>Lasting Cookies</th>\n"
+            "        <th>Flash Cookies</th>\n"
+            "        <th>Internal 3rd Parties</th>\n"
+            "        <th>External 3rd Parties</th>\n"
+            "        <th>Internal 3rd Party Session Cookies</th>\n"
+            "        <th>Internal 3rd Party Lasting Cookies</th>\n"
+            "        <th>Internal 3rd Party Flash Cookies</th>\n"
+            "        <th>External rd Party Session Cookies</th>\n"
+            "        <th>External 3rd Party Lasting Cookies</th>\n"
+            "        <th>External 3rd Party Flash Cookies</th>\n"
+            "        <th>DOM Storage</th>\n"
+            "        <th>HTML5 pings</th>\n"
+            "        <th>Invisible Images</th>\n"
+            "        <th>Suspicious URLs</th>\n"
+            "        <th>Geolocation Permission</th>\n"
+            "        <th>P3P policy</th>\n"
+            "      </tr>\n"
+            "    </thead>\n"
+            "    <tbody>\n");
+
+    rbTreeApplyLR(node_list, (RbApplyFn)list_links, (RbContext)&info);
+
+    fprintf(fp,
+            "    </tbody>\n"
+            "  </body>\n"
+            "</html>\n");
+
+    fclose(fp);
+  }
+  else
+    fprintf(stderr, "couldn't open %s for writing\n", name);
+
+  return node_list;
+}
+
+static int compare_strings(void *key1, void *key2)
+{
+  return !strcmp((char *)key1, (char *)key2);
+}
+
+size_t study_clusters(sqlite3 *db)
+{
+  sites = create_hashtable(8192, oat_hash2, compare_strings);
+
+  if (!sites)
+  {
+    fprintf(stderr, "Can't create hash table\n");
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  // first use site_info table to populate node dictionary
+  // to catch websites that don't have any third parties
+  examine_sites(db);
+  check_missing_sites(db, "missing.js");
+
+  // next use parties table to collect all third parties
+  examine_third_parties(db, false);
+
+  // now find and rank clusters
+  examine_clusters();
+
+  // graph largest cluster
+  DashbotCluster *cluster = rbTreeLastValue(clusters);
+  graph_cluster(cluster, "largest.dot");
+
+  RbTree *node_list = sort_third_parties(db);
+
+  rbTreeFree(node_list);
+  rbTreeFree(clusters);
+  hashtable_destroy(sites, 2);
+  int count = free_all_nodes();
+  printf("Found %d sites including 3rd parties\n", count);
+  return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/extract.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,209 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define NUM_FIELDS 7
+
+typedef enum { JAVASCRIPT, C_LANGUAGE} Mode;
+
+Mode mode = JAVASCRIPT;
+int minimal = 0;
+
+// parse number like 4,900,000,000
+static long int read_number(char *number)
+{
+  char *p, *q;
+  long int num = 0;
+
+  p = q = number;
+
+  while (*q)
+  {
+    if (*q == ',')
+      ++q;
+    else
+      *p++ = *q++;
+  }
+
+  *p = '\0';
+
+  sscanf(number, "%ld", &num);
+  return num;
+}
+
+static char *trim_space(char *str)
+{
+  while (*str == ' ')
+    ++str;
+
+  char *p = str + strlen(str);
+
+  while (p > str && *(--p) == ' ')
+  {
+    *p = '\0';
+  }
+
+  return str;
+}
+
+static void output_line(int line_num, char *line, int length, FILE *fout)
+{
+  long int rank;
+  char *domain;
+  char *category;
+  long int visitors;
+  double percent;
+  long int hits;
+  int ads;
+  int i, j;
+
+  char *field[NUM_FIELDS];
+
+  field[0] = line;
+
+  for (i = j = 1; i < length && j < NUM_FIELDS; ++i)
+  {
+     if (line[i] == '\t')
+     {
+       line[i] = '\0';
+       field[j++] = line + i + 1;
+     }
+  }
+
+  fprintf(fout, "%s", line_num > 1 ? ",\n" : "");
+
+  sscanf(field[0], "%ld", &rank);
+  domain = trim_space(field[1]);
+  category = trim_space(field[2]);
+  visitors = read_number(field[3]);
+  sscanf(field[4], "%lg", &percent);
+  hits = read_number(field[5]);
+  ads = strcmp(field[6], "Yes") ? 0 : 1;
+
+  if (mode == JAVASCRIPT)
+  {
+    if (minimal)
+      fprintf(fout, "\"%s\"", domain);
+    else
+      fprintf(fout, "{\"rank\":%ld, \"domain\":\"%s\", \"category\":\"%s\", "
+        "\"visitors\":%ld, \"percent\":%lg, \"hits\":%ld, \"ads\":%s}",
+        rank, domain, category, visitors, percent, hits, (ads?"true":"false"));
+  }
+  else if (mode == C_LANGUAGE)
+  {
+    fprintf(fout, "{%ld, \"%s\", \"%s\", %ld, %lg, %ld, %s}",
+      rank, domain, category, visitors, percent, hits, (ads?"true":"false"));
+  }
+}
+
+static int read_line(int line_num, FILE *fin, FILE *fout)
+{
+  static char line[8192];
+  char *p = line;
+  
+  while (!feof(fin))
+  {
+    int c = getc(fin);
+
+    if (c == '\n')
+      break;
+
+    *p++ = c;
+  }
+
+  *p = '\0';
+
+  if (p > line)
+  {
+    output_line(line_num, line, p - line, fout);
+    return 1;
+  }
+
+  return 0;
+}
+
+int main(int argc, char *argv[])
+{
+  char *prog = argv[0];
+
+  while (argc > 1 && *argv[1] == '-')
+  {
+    if (strcmp(argv[1], "-js") == 0)
+      mode = JAVASCRIPT;
+    else if (strcmp(argv[1], "-c") == 0)
+      mode = C_LANGUAGE;
+    else if (strcmp(argv[1], "--min") == 0)
+      minimal = 1;
+    else
+    {
+      fprintf(stderr, "%s [-js | -c ] [--min] [[srcfile] | [destfile]]\n"
+      " a program to extract top site data to JavaScript or C\n", prog);
+
+      return 1;
+    }
+
+    --argc;
+    ++argv;    
+  }
+
+  char *in = (argc > 1 ? argv[1] : "top-sites.txt");
+  char *out = (argc > 2 ? argv[2] :
+              (mode == C_LANGUAGE ? "top-sites.c" : "top-sites.js"));
+
+
+  FILE *fin = fopen(in, "r");
+
+  if (!fin)
+  {
+    fprintf(stderr, "couldn't open %s for reading\n", in);
+    return 1;
+  }
+
+  FILE *fout = fopen(out, "w+");
+
+  if (!fout)
+  {
+    fprintf(stderr, "couldn't open %s for writing\n", out);
+    return 1;
+  }
+
+
+  fprintf(fout, "// top 1000 sites according to google\n\n");
+
+  if (mode == JAVASCRIPT)
+    fprintf(fout, "top_sites = [\n");
+  else if (mode == C_LANGUAGE)
+  {
+    fprintf(fout, "#ifndef __cplusplus\n\n"
+       "#ifndef WS_BOOL\n"
+       "#define WS_BOOL\n"
+       "typedef enum { false, true } bool;\n"
+       "#define null (void *)0\n"
+       "#endif\n\n"
+       "#endif\n\n");
+
+    fprintf(fout, "typedef struct {\n"
+       "  long int rank;\n"
+       "  char *domain;\n"
+       "  char *category;\n"
+       "  long int visitors;\n"
+       "  double percent;\n"
+       "  long int hits;\n"
+       "  bool ads;\n} SiteDesc;\n\n"
+       "SiteDesc top_sites[1000] = {\n"
+    );
+  }
+
+  int i = 0;
+
+  while (read_line(++i, fin, fout));
+
+  if (mode == JAVASCRIPT)
+    fprintf(fout, "\n];\n");
+  else if (mode == C_LANGUAGE)
+    fprintf(fout, "\n};\n");
+
+  fclose(fout);
+  fclose(fin);
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/gml.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,142 @@
+
+/*
+ *      gml.c -- generate gml file from dashboard data
+ *
+ *      Copyright (c) 2011 Dave Raggett
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>   // for strlen
+#include <strings.h>
+#include <sqlite3.h>
+
+#include "hashtable.h"
+#include "analyst.h"
+#include "top_sites.h"
+
+#define GML_FILE "dashboard.gml"
+
+struct hashtable *gml_nodes = NULL;
+
+static long int get_node(FILE *fp, char *host)
+{
+  static long int n = 0;
+  long int id = (long int)hashtable_search(gml_nodes, host);
+
+  if (id == 0)
+  {
+    id = ++n;
+    host = strdup(host);
+    assert(host);
+    assert(hashtable_insert(gml_nodes, host, (void *)id, 0));
+
+    fprintf(fp, "  node [ id %ld label \"%s\" ]\n",  id, host);
+  }
+
+  return id;
+}
+
+// 1st arg is context passed in 4th arg of sqlite3_exec
+// 2nd arg is number of columns
+// 3rd arg is an array of pointers to column values
+// 4th arg is an array of pointers to column names
+// note: column value may be null so check for null pointer
+static int arcs(void *fp, int argc, char **argv, char **azColName)
+{
+  char *page_host = argv[0];
+  char *third_party = argv[1];
+  char *offsite = argv[2];
+
+  int flag;
+  sscanf(offsite, "%d", &flag);
+
+  long int host_id = get_node((FILE *)fp, page_host);
+  long int third_pty_id = get_node((FILE *)fp, third_party);
+
+  fprintf(fp, "    edge [ source %ld target %ld ]\n", host_id, third_pty_id);
+
+  return 0;
+}
+
+static void third_parties(FILE *fp, sqlite3 *db, char *host)
+{
+  char sql[1024];
+  char *zErrMsg = 0;
+
+  sprintf(sql,
+      "SELECT page_host,third_party,offsite FROM parties WHERE page_host = \"www.%s\"",
+      host);
+
+  int rc = sqlite3_exec(db, sql, arcs, fp, &zErrMsg);
+
+  if( rc != SQLITE_OK )
+  {
+    fprintf(stderr, "SQL error: %s\n", zErrMsg);
+    sqlite3_free(zErrMsg);
+  }
+}
+
+static void graph_gml_nodes(FILE *fp, sqlite3 *db)
+{
+  int i;
+  SiteDesc *desc;
+
+  for (i = 0; i < NUM_SITES; ++i)
+  {
+    desc = top_sites + i;
+    get_node(fp, desc->domain);
+    third_parties(fp, db, desc->domain);
+  }
+}
+
+static int compare_strings(void *key1, void *key2)
+{
+  return !strcmp((char *)key1, (char *)key2);
+}
+
+void gml(sqlite3 *db)
+{
+  gml_nodes = create_hashtable(8192, oat_hash2, compare_strings);
+
+  if (!gml_nodes)
+  {
+    fprintf(stderr, "Can't create hash table\n");
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  char *name = GML_FILE;
+  FILE *fp = fopen(name, "w+");
+
+  if (!fp)
+  {
+    fprintf(stderr, "Can't open output file %s\n", name);
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  fprintf(fp, "graph [\n");
+
+  graph_gml_nodes(fp, db);
+  fprintf(fp, "]\n");
+
+  fclose(fp);
+  fprintf(stderr, "written gml graph to %s\n", name);
+  hashtable_destroy(gml_nodes, 0);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/graphviz.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,245 @@
+/*
+ *      graphviz.c -- generate graphviz dot file from dashboard data
+ *
+ *      Copyright (c) 2011 Dave Raggett
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>   // for strlen
+#include <strings.h>
+#include <sqlite3.h>
+
+#include "hashtable.h"
+#include "analyst.h"
+#include "top_sites.h"
+
+#define GRAPHVIZ_FILE "dashboard.dot"
+
+static struct hashtable *sites = NULL;
+
+static void print_comment_open(FILE *fp)
+{
+  fprintf(fp, "\n/*\n");
+}
+
+static void print_comment_line(FILE *fp, const char *format, ...)
+{
+  va_list args;
+  va_start(args, format);
+
+  fputs(" * ", fp);
+  vfprintf(fp, format, args);
+  putc('\n', fp);
+
+  va_end(args);
+}
+
+static void print_comment_close(FILE *fp)
+{
+  fputs(" */\n\n", fp);
+}
+
+static void print_diagraph_open(FILE *fp, const char *format, ...)
+{
+  va_list args;
+  va_start(args, format);
+
+  fputs("digraph ", fp);
+  vfprintf(fp, format, args);
+  fputs(" {\n", fp);
+
+  va_end(args);
+}
+
+static void print_diagraph_arc(FILE *fp, char *from, char *to, int flag)
+{
+  if (flag)
+    fprintf(fp, "  %s -> %s;\n", from, to);
+  else
+    fprintf(fp, "  %s -> %s [style=dotted];\n", from, to);
+}
+
+static void print_diagraph_close(FILE *fp)
+{
+  fputs("}\n", fp);
+}
+
+static void declare_node(FILE *fp, char *host, bool visible)
+{
+  if (visible)
+    fprintf(fp, "  %s [shape = ellipse]\n", host);
+  else
+    fprintf(fp, "  %s [shape = box]\n", host);
+}
+
+static char *escape(char *domain)
+{
+  int c;
+  char *str = (char *)malloc(strlen(domain)+3);
+  assert(str);
+
+  char *p = str, *q = domain;
+
+  *p++ = 's';
+  *p++ = '_';
+
+  while ((c = *q++))
+  {
+    *p++ = (c == '.'  || c == '-') ? '_' : c;
+  }
+
+  *p = '\0';
+  return str;
+}
+
+static char *get_node(FILE *fp, char *host)
+{
+  char *id = (char *)hashtable_search(sites, host);
+
+  if (id == null)
+  {
+    id = escape(host);
+    host = strdup(host);
+    assert(host);
+    assert(hashtable_insert(sites, host, id, 1));
+
+    fprintf(fp, "  %s [shape=\"ellipse\",label=\"%s\" color=black]\n",
+            id, host);
+  }
+
+  return id;
+}
+
+
+// 1st arg is context passed in 4th arg of sqlite3_exec
+// 2nd arg is number of columns
+// 3rd arg is an array of pointers to column values
+// 4th arg is an array of pointers to column names
+// note: column value may be null so check for null pointer
+static int arcs(void *fp, int argc, char **argv, char **azColName)
+{
+  char *page_host = argv[0];
+  char *third_party = argv[1];
+  char *offsite = argv[2];
+
+  char *host_id = get_node((FILE *)fp, page_host);
+  char *third_pty_id = get_node((FILE *)fp, third_party);
+
+  print_diagraph_arc((FILE *)fp, host_id, third_pty_id, strcmp(offsite, "1"));
+
+  return 0;
+}
+
+
+static void third_parties(FILE *fp, sqlite3 *db, char *host)
+{
+  char sql[1024];
+  char *zErrMsg = null;
+
+  sprintf(sql,
+      "SELECT page_host,third_party,offsite FROM parties WHERE page_host = \"www.%s\"",
+      host);
+
+  int rc = sqlite3_exec(db, sql, arcs, fp, &zErrMsg);
+
+  if( rc != SQLITE_OK )
+  {
+    fprintf(stderr, "SQL error: %s\n", zErrMsg);
+    sqlite3_free(zErrMsg);
+  }
+}
+
+// use direct parent-child relationships
+static void graph_direct(FILE *fp, sqlite3 *db)
+{
+  char *sql = "SELECT parent,child,offsite FROM relations";
+  char *zErrMsg = null;
+
+  int rc = sqlite3_exec(db, sql, arcs, fp, &zErrMsg);
+
+  if( rc != SQLITE_OK )
+  {
+    fprintf(stderr, "SQL error: %s\n", zErrMsg);
+    sqlite3_free(zErrMsg);
+  }
+}
+
+// consider all website links to third parties direct and indirect
+static void graph_sites(FILE *fp, sqlite3 *db, int start, int stop)
+{
+  int i;
+  SiteDesc *desc;
+
+  if (start < 1 || stop > NUM_SITES)
+  {
+    fprintf(stderr, "Out of range (%d  to %d)\n", start, stop);
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  for (i = start - 1; i < stop; ++i)
+  {
+    desc = top_sites + i;
+    get_node(fp, desc->domain);
+    third_parties(fp, db, desc->domain);
+  }
+}
+
+static int compare_strings(void *key1, void *key2)
+{
+  return !strcmp((char *)key1, (char *)key2);
+}
+
+void graph(sqlite3 *db)
+{
+  sites = create_hashtable(8192, oat_hash2, compare_strings);
+
+  if (!sites)
+  {
+    fprintf(stderr, "Can't create hash table\n");
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  char *name = GRAPHVIZ_FILE;
+  FILE *fp = fopen(name, "w+");
+
+  if (!fp)
+  {
+    fprintf(stderr, "Can't open output file %s\n", name);
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  print_comment_open(fp);
+  //print_comment_line(fp, "@command =  neato");
+  //print_comment_line(fp, "");
+  print_comment_line(fp, "graphiz dot file generated from privacy dashboard data");
+  print_comment_close(fp);
+
+  fprintf(fp, "digraph third_parties {\ngraph [splines=true,overlap=true]\n");
+
+  graph_direct(fp, db);
+  //graph_sites(fp, db, 1, 1000);
+  print_diagraph_close(fp);
+
+  fclose(fp);
+  fprintf(stderr, "written graph to %s\n", name);
+  hashtable_destroy(sites, 1);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/hashtable.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,416 @@
+/* Copyright (C) 2004 Christopher Clark <[email protected]> */
+
+#include "hashtable.h"
+#include "hashtable_private.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+/*
+Credit for primes table: Aaron Krowne
+ http://br.endernet.org/~akrowne/
+ http://planetmath.org/encyclopedia/GoodHashTablePrimes.html
+*/
+static const unsigned int primes[] = {
+53, 97, 193, 389,
+769, 1543, 3079, 6151,
+12289, 24593, 49157, 98317,
+196613, 393241, 786433, 1572869,
+3145739, 6291469, 12582917, 25165843,
+50331653, 100663319, 201326611, 402653189,
+805306457, 1610612741
+};
+const unsigned int prime_table_length = sizeof(primes)/sizeof(primes[0]);
+const float max_load_factor = 0.65;
+
+/*****************************************************************************/
+struct hashtable *
+create_hashtable(unsigned int minsize,
+                 unsigned int (*hashf) (void*),
+                 int (*eqf) (void*,void*))
+{
+    struct hashtable *h;
+    unsigned int pindex, size = primes[0];
+    /* Check requested hashtable isn't too large */
+    if (minsize > (1u << 30)) return NULL;
+    /* Enforce size as prime */
+    for (pindex=0; pindex < prime_table_length; pindex++) {
+        if (primes[pindex] > minsize) { size = primes[pindex]; break; }
+    }
+    h = (struct hashtable *)malloc(sizeof(struct hashtable));
+    if (NULL == h) return NULL; /*oom*/
+    h->table = (struct entry **)malloc(sizeof(struct entry*) * size);
+    if (NULL == h->table) { free(h); return NULL; } /*oom*/
+    memset(h->table, 0, size * sizeof(struct entry *));
+    h->tablelength  = size;
+    h->primeindex   = pindex;
+    h->entrycount   = 0;
+    h->hashfn       = hashf;
+    h->eqfn         = eqf;
+    h->loadlimit    = (unsigned int) ceil(size * max_load_factor);
+    return h;
+}
+
+/*****************************************************************************/
+unsigned int
+hash(struct hashtable *h, void *k)
+{
+    /* Aim to protect against poor hash functions by adding logic here
+     * - logic taken from java 1.4 hashtable source */
+    unsigned int i = h->hashfn(k);
+#if 0
+    i += ~(i << 9);
+    i ^=  ((i >> 14) | (i << 18)); /* >>> */
+    i +=  (i << 4);
+    i ^=  ((i >> 10) | (i << 22)); /* >>> */
+#endif
+    return i;
+}
+
+/*****************************************************************************/
+static int
+hashtable_expand(struct hashtable *h)
+{
+    /* Double the size of the table to accomodate more entries */
+    struct entry **newtable;
+    struct entry *e;
+    struct entry **pE;
+    unsigned int newsize, i, index;
+    /* Check we're not hitting max capacity */
+    if (h->primeindex == (prime_table_length - 1)) return 0;
+    newsize = primes[++(h->primeindex)];
+
+    newtable = (struct entry **)malloc(sizeof(struct entry*) * newsize);
+    if (NULL != newtable)
+    {
+        memset(newtable, 0, newsize * sizeof(struct entry *));
+        /* This algorithm is not 'stable'. ie. it reverses the list
+         * when it transfers entries between the tables */
+        for (i = 0; i < h->tablelength; i++) {
+            while (NULL != (e = h->table[i])) {
+                h->table[i] = e->next;
+                index = indexFor(newsize,e->h);
+                e->next = newtable[index];
+                newtable[index] = e;
+            }
+        }
+        free(h->table);
+        h->table = newtable;
+    }
+    /* Plan B: realloc instead */
+    else
+    {
+        newtable = (struct entry **)
+                   realloc(h->table, newsize * sizeof(struct entry *));
+        if (NULL == newtable) { (h->primeindex)--; return 0; }
+        h->table = newtable;
+        memset(newtable[h->tablelength], 0, newsize - h->tablelength);
+        for (i = 0; i < h->tablelength; i++) {
+            for (pE = &(newtable[i]), e = *pE; e != NULL; e = *pE) {
+                index = indexFor(newsize,e->h);
+                if (index == i)
+                {
+                    pE = &(e->next);
+                }
+                else
+                {
+                    *pE = e->next;
+                    e->next = newtable[index];
+                    newtable[index] = e;
+                }
+            }
+        }
+    }
+    h->tablelength = newsize;
+    h->loadlimit   = (unsigned int) ceil(newsize * max_load_factor);
+    return -1;
+}
+
+/*****************************************************************************/
+unsigned int
+hashtable_count(struct hashtable *h)
+{
+    return h->entrycount;
+}
+
+/*****************************************************************************/
+int
+hashtable_insert(struct hashtable *h, void *k, void *v, int mode)
+{
+    /* This method allows duplicate keys - but they shouldn't be used */
+    unsigned int hashvalue, index;
+    struct entry *e;
+
+    /* first check for an existing entry */
+    hashvalue = hash(h,k);
+    index = indexFor(h->tablelength,hashvalue);
+    e = h->table[index];
+
+    while (NULL != e)
+    {
+        /* Check hash value to short circuit heavier comparison */
+        if ((hashvalue == e->h) && (h->eqfn(k, e->k)))
+        {
+            /* free key and value according to mode parameter */
+            if (mode == 0)
+                free(e->k);
+            else if (mode == 1)
+            {
+                free(e->k);
+                free(e->v);
+            }
+
+            e->k = k;
+            e->v = v;
+            return -1;
+        }
+
+        e = e->next;
+    }
+
+    /* no such entry so create new one */
+
+    if (++(h->entrycount) > h->loadlimit)
+    {
+        /* Ignore the return value. If expand fails, we should
+         * still try cramming just this value into the existing table
+         * -- we may not have memory for a larger table, but one more
+         * element may be ok. Next time we insert, we'll try expanding again.*/
+        hashtable_expand(h);
+    }
+    e = (struct entry *)malloc(sizeof(struct entry));
+    if (NULL == e) { --(h->entrycount); return 0; } /*oom*/
+    e->h = hashvalue;
+    index = indexFor(h->tablelength,e->h);
+    e->k = k;
+    e->v = v;
+    e->next = h->table[index];
+    h->table[index] = e;
+    return -1;
+}
+
+/*****************************************************************************/
+void * /* returns value associated with key */
+hashtable_search(struct hashtable *h, void *k)
+{
+    struct entry *e;
+    unsigned int hashvalue, index;
+    hashvalue = hash(h,k);
+    index = indexFor(h->tablelength,hashvalue);
+    e = h->table[index];
+    while (NULL != e)
+    {
+        /* Check hash value to short circuit heavier comparison */
+        if ((hashvalue == e->h) && (h->eqfn(k, e->k))) return e->v;
+        e = e->next;
+    }
+    return NULL;
+}
+
+/*****************************************************************************/
+void * /* returns value associated with key */
+hashtable_remove(struct hashtable *h, void *k)
+{
+    /* TODO: consider compacting the table when the load factor drops enough,
+     *       or provide a 'compact' method. */
+
+    struct entry *e;
+    struct entry **pE;
+    void *v;
+    unsigned int hashvalue, index;
+
+    hashvalue = hash(h,k);
+    index = indexFor(h->tablelength,hash(h,k));
+    pE = &(h->table[index]);
+    e = *pE;
+    while (NULL != e)
+    {
+        /* Check hash value to short circuit heavier comparison */
+        if ((hashvalue == e->h) && (h->eqfn(k, e->k)))
+        {
+            *pE = e->next;
+            h->entrycount--;
+            v = e->v;
+            freekey(e->k);
+            free(e);
+            return v;
+        }
+        pE = &(e->next);
+        e = e->next;
+    }
+    return NULL;
+}
+
+/*****************************************************************************/
+/* destroy */
+void
+hashtable_destroy(struct hashtable *h, int free_mode)
+{
+    unsigned int i;
+    struct entry *e, *f;
+
+    if (!h)  /* nothing to do */
+        return;
+
+    struct entry **table = h->table;
+
+    if (free_mode == 1) /* free keys and values */
+    {
+        for (i = 0; i < h->tablelength; i++)
+        {
+            e = table[i];
+            while (NULL != e)
+            { f = e; e = e->next; freekey(f->k); free(f->v); free(f); }
+        }
+    }
+    else if (free_mode == 2) /* don't free keys or values */
+    {
+         for (i = 0; i < h->tablelength; i++)
+        {
+            e = table[i];
+            while (NULL != e)
+            { f = e; e = e->next; free(f); }
+        }
+    }
+    else /* just free keys */
+    {
+        for (i = 0; i < h->tablelength; i++)
+        {
+            e = table[i];
+            while (NULL != e)
+            { f = e; e = e->next; freekey(f->k); free(f); }
+        }
+    }
+    free(h->table);
+    free(h);
+}
+/*****************************************************************************/
+/* dictionay for a pool of names so that if two names are the same then */
+/* they will have the same pointer value, allowing for fast comparison  */
+struct hashtable *names_table = NULL;
+
+// Jenkins One-at-a-Time hash
+unsigned int oat_hash2 (void *key)
+{
+    unsigned char *p = key;
+    unsigned h = 0;
+    int c;
+
+    while ((c = *p++))
+    {
+        h += c;
+        h += ( h << 10 );
+        h ^= ( h >> 6 );
+    }
+
+    h += ( h << 3 );
+    h ^= ( h >> 11 );
+    h += ( h << 15 );
+
+    return h;
+}
+
+char *hashtable_declare_name(char *k)
+{
+    unsigned int hashvalue, index;
+    struct entry *e;
+
+    if (!names_table)
+    {
+        names_table = create_hashtable(16, oat_hash2, NULL);
+        if (!names_table)
+            return NULL;
+    }
+
+    /* first check for an existing entry */
+    hashvalue = hash(names_table,k);
+    index = indexFor(names_table->tablelength,hashvalue);
+    e = names_table->table[index];
+
+    while (NULL != e)
+    {
+        /* Check hash value to short circuit heavier comparison */
+        if ((hashvalue == e->h) && !strcmp((char*)k, (char*)e->k))
+            return (char *)e->k;
+
+        e = e->next;
+    }
+
+    /* no such entry so create new one */
+
+    if (++(names_table->entrycount) > names_table->loadlimit)
+    {
+        /* Ignore the return value. If expand fails, we should
+         * still try cramming just this value into the existing table
+         * -- we may not have memory for a larger table, but one more
+         * element may be ok. Next time we insert, we'll try expanding again.*/
+        hashtable_expand(names_table);
+    }
+    e = (struct entry *)malloc(sizeof(struct entry));
+    if (NULL == e) { --(names_table->entrycount); return 0; } /*oom*/
+    e->h = hashvalue;
+    index = indexFor(names_table->tablelength,e->h);
+    e->k = strdup(k);
+    e->v = e->k;
+    e->next = names_table->table[index];
+    names_table->table[index] = e;
+    return (char *)e->k;
+}
+
+void hashtable_destroy_names()
+{
+    unsigned int i;
+    struct entry *e, *f;
+
+    if (!names_table)  /* nothing to do */
+        return;
+
+    struct entry **table = names_table->table;
+
+    for (i = 0; i < names_table->tablelength; i++)
+    {
+        e = table[i];
+        while (NULL != e)
+        { f = e; e = e->next; freekey(f->k); free(f); }
+    }
+
+    free(names_table->table);
+    free(names_table);
+    names_table = NULL;
+}
+
+/*****************************************************************************/
+
+/*
+ * Copyright (c) 2002, Christopher Clark
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of the original author; nor the names of any contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/hashtable.h	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,228 @@
+/* Copyright (C) 2002 Christopher Clark <[email protected]uk> */
+/* with extensions to hastable_destroy by Dave Raggett <[email protected]>       */
+/* together with dictionary of names */
+
+#ifndef __HASHTABLE_CWC22_H__
+#define __HASHTABLE_CWC22_H__
+
+struct hashtable;
+
+/* Example of use:
+ *
+ *      struct hashtable  *h;
+ *      struct some_key   *k;
+ *      struct some_value *v;
+ *
+ *      static unsigned int         hash_from_key_fn( void *k );
+ *      static int                  keys_equal_fn ( void *key1, void *key2 );
+ *
+ *      h = create_hashtable(16, hash_from_key_fn, keys_equal_fn);
+ *      k = (struct some_key *)     malloc(sizeof(struct some_key));
+ *      v = (struct some_value *)   malloc(sizeof(struct some_value));
+ *
+ *      (initialise k and v to suitable values)
+ *
+ *      if (! hashtable_insert(h,k,v) )
+ *      {     exit(-1);               }
+ *
+ *      if (NULL == (found = hashtable_search(h,k) ))
+ *      {    printf("not found!");                  }
+ *
+ *      if (NULL == (found = hashtable_remove(h,k) ))
+ *      {    printf("Not found\n");                 }
+ *
+ */
+
+/* Macros may be used to define type-safe(r) hashtable access functions, with
+ * methods specialized to take known key and value types as parameters.
+ *
+ * Example:
+ *
+ * Insert this at the start of your file:
+ *
+ * DEFINE_HASHTABLE_INSERT(insert_some, struct some_key, struct some_value);
+ * DEFINE_HASHTABLE_SEARCH(search_some, struct some_key, struct some_value);
+ * DEFINE_HASHTABLE_REMOVE(remove_some, struct some_key, struct some_value);
+ *
+ * This defines the functions 'insert_some', 'search_some' and 'remove_some'.
+ * These operate just like hashtable_insert etc., with the same parameters,
+ * but their function signatures have 'struct some_key *' rather than
+ * 'void *', and hence can generate compile time errors if your program is
+ * supplying incorrect data as a key (and similarly for value).
+ *
+ * Note that the hash and key equality functions passed to create_hashtable
+ * still take 'void *' parameters instead of 'some key *'. This shouldn't be
+ * a difficult issue as they're only defined and passed once, and the other
+ * functions will ensure that only valid keys are supplied to them.
+ *
+ * The cost for this checking is increased code size and runtime overhead
+ * - if performance is important, it may be worth switching back to the
+ * unsafe methods once your program has been debugged with the safe methods.
+ * This just requires switching to some simple alternative defines - eg:
+ * #define insert_some hashtable_insert
+ *
+ */
+
+/*****************************************************************************
+ * create_hashtable
+
+ * @name                    create_hashtable
+ * @param   minsize         minimum initial size of hashtable
+ * @param   hashfunction    function for hashing keys
+ * @param   key_eq_fn       function for determining key equality
+ * @return                  newly created hashtable or NULL on failure
+ */
+
+struct hashtable *
+create_hashtable(unsigned int minsize,
+                 unsigned int (*hashfunction) (void*),
+                 int (*key_eq_fn) (void*,void*));
+
+/*****************************************************************************
+ * hashtable_insert
+
+ * @name        hashtable_insert
+ * @param   h   the hashtable to insert into
+ * @param   k   the key - hashtable claims ownership and will free on removal
+ * @param   v   the value - does not claim ownership
+ * @param   f   0: free keys, 1: keys and values, 2: neither keys nor values
+ * @return      non-zero for successful insertion
+ *
+ * This function will cause the table to expand if the insertion would take
+ * the ratio of entries to table size over the maximum load factor.
+ *
+ * This function checks for existing insertions and overwrites them.
+ * The previous entries key and value are freed according to param f.
+ */
+
+int
+hashtable_insert(struct hashtable *h, void *k, void *v, int f);
+
+#define DEFINE_HASHTABLE_INSERT(fnname, keytype, valuetype) \
+int fnname (struct hashtable *h, keytype *k, valuetype *v, int f) \
+{ \
+    return hashtable_insert(h,k,v,f); \
+}
+
+
+/*****************************************************************************
+ * hashtable_search
+
+ * @name        hashtable_search
+ * @param   h   the hashtable to search
+ * @param   k   the key to search for  - does not claim ownership
+ * @return      the value associated with the key, or NULL if none found
+ */
+
+void *
+hashtable_search(struct hashtable *h, void *k);
+
+#define DEFINE_HASHTABLE_SEARCH(fnname, keytype, valuetype) \
+valuetype * fnname (struct hashtable *h, keytype *k) \
+{ \
+    return (valuetype *) (hashtable_search(h,k)); \
+}
+
+/*****************************************************************************
+ * hashtable_remove
+
+ * @name        hashtable_remove
+ * @param   h   the hashtable to remove the item from
+ * @param   k   the key to search for  - does not claim ownership
+ * @return      the value associated with the key, or NULL if none found
+ */
+
+void * /* returns value */
+hashtable_remove(struct hashtable *h, void *k);
+
+#define DEFINE_HASHTABLE_REMOVE(fnname, keytype, valuetype) \
+valuetype * fnname (struct hashtable *h, keytype *k) \
+{ \
+    return (valuetype *) (hashtable_remove(h,k)); \
+}
+
+
+/*****************************************************************************
+ * hashtable_count
+
+ * @name        hashtable_count
+ * @param   h   the hashtable
+ * @return      the number of items stored in the hashtable
+ */
+unsigned int
+hashtable_count(struct hashtable *h);
+
+
+/*****************************************************************************
+ * hashtable_destroy
+
+ * @name        hashtable_destroy
+ * @param   h   the hashtable
+ * @param       free_values whether to call 'free' on remaining keys and values
+ *              0: only keys, 1: keys and values, 2: neither keys nor values
+ */
+
+void
+hashtable_destroy(struct hashtable *h, int free_mode);
+
+/*****************************************************************************
+ * hashtable_declare_name
+
+ * @name        hashtable_declare_name
+ * @param   k   a string to be declared as a name
+ *
+ * Returns the name corresponding to k
+ */
+char *hashtable_declare_name(char *k);
+
+/*****************************************************************************
+ * hashtable_destroy_names
+
+ * Destroys the name dictionary
+ */
+
+void hashtable_destroy_names();
+
+/*****************************************************************************
+ * hashtable_destroy_names
+ * @param   key  search key
+ *
+ * hash function for null terminated strings
+ */
+
+unsigned int oat_hash2 (void *key);
+
+#endif /* __HASHTABLE_CWC22_H__ */
+
+/*
+ * Copyright (c) 2002, Christopher Clark
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of the original author; nor the names of any contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/hashtable_private.h	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,85 @@
+/* Copyright (C) 2002, 2004 Christopher Clark <[email protected]> */
+
+#ifndef __HASHTABLE_PRIVATE_CWC22_H__
+#define __HASHTABLE_PRIVATE_CWC22_H__
+
+#include "hashtable.h"
+
+/*****************************************************************************/
+struct entry
+{
+    void *k, *v;
+    unsigned int h;
+    struct entry *next;
+};
+
+struct hashtable {
+    unsigned int tablelength;
+    struct entry **table;
+    unsigned int entrycount;
+    unsigned int loadlimit;
+    unsigned int primeindex;
+    unsigned int (*hashfn) (void *k);
+    int (*eqfn) (void *k1, void *k2);
+};
+
+/*****************************************************************************/
+unsigned int
+hash(struct hashtable *h, void *k);
+
+/*****************************************************************************/
+/* indexFor */
+static inline unsigned int
+indexFor(unsigned int tablelength, unsigned int hashvalue) {
+    return (hashvalue % tablelength);
+};
+
+/* Only works if tablelength == 2^N */
+/*static inline unsigned int
+indexFor(unsigned int tablelength, unsigned int hashvalue)
+{
+    return (hashvalue & (tablelength - 1u));
+}
+*/
+
+/*****************************************************************************/
+#define freekey(X) free(X)
+/*define freekey(X) ; */
+
+
+/*****************************************************************************/
+
+#endif /* __HASHTABLE_PRIVATE_CWC22_H__*/
+
+/*
+ * Copyright (c) 2002, Christopher Clark
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 
+ * * Neither the name of the original author; nor the names of any contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ * 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/main.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,113 @@
+/*
+ *      main.c -- Analysis program for dashbot data in SQLite
+ *
+ *      Copyright (c) 2011 Dave Raggett
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>   // for strlen
+#include <strings.h>
+#include <sqlite3.h>
+
+#include "analyst.h"
+#include "top_sites.h"
+
+#define DATABASE "dashboard.sqlite"
+
+// intro to SQLite API:  http://www.sqlite.org/cintro.html
+
+char *prog_name;
+int debug;
+
+void main_init(int argc, char **argv)
+{
+  prog_name = argv[0];
+  char *p = strrchr(prog_name, '/');
+  if (p)
+    prog_name = ++p;
+}
+// 1st arg is context passed in 4th arg of sqlite3_exec
+// 2nd arg is number of columns
+// 3rd arg is an array of pointers to column values
+// 4th arg is an array of pointers to column names
+// note: column value may be null so check for null pointer
+static int callback(void *NotUsed, int argc, char **argv, char **azColName)
+{
+  int i;
+
+  for(i=0; i<argc; i++)
+  {
+    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
+  }
+
+  printf("\n");
+  return 0;
+}
+
+static void test(sqlite3 *db)
+{
+  char *zErrMsg = 0;
+  char *sql = "SELECT DISTINCT host FROM site_info WHERE lasting_cookies <> 0";
+
+  int rc = sqlite3_exec(db, sql, callback, null, &zErrMsg);
+
+  if( rc != SQLITE_OK )
+  {
+    fprintf(stderr, "SQL error: %s\n", zErrMsg);
+    sqlite3_free(zErrMsg);
+  }
+}
+
+static void test_top_sites(int index)
+{
+  SiteDesc desc = top_sites[index];
+
+  printf("%d: rank %ld - %s - %s - %ld visitors\n",
+         index, desc.rank, desc.domain, desc.category, desc.visitors);
+}
+
+int main(int argc, char **argv)
+{
+  sqlite3 *db;
+  char *database = DATABASE;
+
+  main_init(argc, argv);
+
+  if( argc!=1 )
+  {
+    fprintf(stderr, "Usage: %s\n a program to analyse privacy dashboard data in SQLite\n", prog_name);
+    exit(1);
+  }
+
+  //test_top_sites(38);
+
+  if(sqlite3_open(database, &db))
+  {
+    fprintf(stderr, "Can't open database %s: %s\n", database, sqlite3_errmsg(db));
+    sqlite3_close(db);
+    exit(1);
+  }
+
+  //test(db);
+  graph(db);
+  gml(db);
+  study_clusters(db);
+
+  sqlite3_close(db);
+  return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/missing.js	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,12 @@
+
+var missing_sites = [
+  "www.huanqiu.com",
+  "www.ynet.com",
+  "www.tiexue.net",
+  "www.pchome.net",
+  "www.yezizhu.com",
+  "www.yesky.com",
+  "www.vatgia.com",
+  "www.766.com",
+];
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/rbtree.c	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,461 @@
+/*
+ *      rbtree.c -- Red Black balanced tree library
+ *
+ *      Copyright (c) 2008 Dave Raggett
+ *      inspired by code from Julienne Walker
+ *
+ *      This program is free software; you can redistribute it and/or modify
+ *      it under the terms of the GNU General Public License as published by
+ *      the Free Software Foundation; either version 2 of the License, or
+ *      (at your option) any later version.
+ *
+ *      This program is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *      GNU General Public License for more details.
+ *
+ *      You should have received a copy of the GNU General Public License
+ *      along with this program; if not, write to the Free Software
+ *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ *      MA 02110-1301, USA.
+ */
+
+#include "assert.h"
+#include "rbtree.h"
+
+// Checks the color of a red black node
+static int is_red (RbNode *node)
+{
+  return node != NULL && node->red == 1;
+}
+
+// Performs a single red black rotation in given direction
+// where dir is 0 for left and 1 for right
+// assumes that all nodes are valid for a rotation
+static RbNode *rotate1 (RbNode *node, int dir)
+{
+  RbNode *save = node->link[!dir];
+
+  node->link[!dir] = save->link[dir];
+  save->link[dir] = node;
+
+  node->red = 1;
+  save->red = 0;
+
+  return save;
+}
+
+// Performs a double red black rotation in given direction
+// assumes all nodes are valid for a rotation
+static RbNode *rotate2 (RbNode *node, int dir)
+{
+  node->link[!dir] = rotate1 (node->link[!dir], !dir);
+
+  return rotate1 (node, dir);
+}
+
+// Create and initialize new red black node with a copy of the
+// data. This function does not insert the new node into a tree
+static RbNode *new_node (RbTree *tree, RbKey key, RbValue value)
+{
+  RbNode *rn = (RbNode *)malloc (sizeof *rn);
+
+  assert(rn);
+  rn->red = 1;
+
+  if (tree->newNode)
+    tree->newNode(rn, key, value);
+  else
+  {
+    rn->key = key;
+    rn->value = value;
+  }
+
+  rn->link[0] = rn->link[1] = NULL;
+
+  return rn;
+}
+
+// Search for a copy of the specified
+// node data in a red black tree
+RbValue rbTreeFindKey (RbTree *tree, RbKey key)
+{
+  if (!tree)
+    assert(tree);
+  RbNode *it = tree->root;
+
+  while (it != NULL)
+  {
+    int cmp = tree->compareKeys (it->key, key);
+
+    if (cmp == 0)
+      break;
+
+    // If the tree supports duplicates, they should be
+    // chained to the right subtree for this to work
+    it = it->link[cmp < 0];
+  }
+
+  return it == NULL ? NULL : it->value;
+}
+
+// Insert user-specified key and data into a red
+// black tree and return the new root of the tree
+void rbTreeInsertKey (RbTree *tree, RbKey key, RbValue value)
+{
+  assert(tree);
+
+  if (tree->root == NULL)
+  {
+    // We have an empty tree; attach the
+    // new node directly to the root
+    tree->root = new_node (tree, key, value);
+  }
+  else
+  {
+    RbNode head = {0}; // False tree root
+    RbNode *g, *t;     // Grandparent and parent
+    RbNode *p, *q;     // Iterator and parent
+    int dir = 0, last = 0, novel = 0;
+
+    // Set up our helpers
+    t = &head;
+    g = p = NULL;
+    q = t->link[1] = tree->root;
+
+    // Search down the tree for a place to insert
+    for (; ;)
+    {
+      novel = 0;
+      if (q == NULL)
+      {
+        // Insert a new node at the first null link
+        p->link[dir] = q = new_node (tree, key, value);
+        novel = 1;
+      }
+      else if (is_red (q->link[0]) && is_red (q->link[1]))
+      {
+        // Simple red violation: color flip
+        q->red = 1;
+        q->link[0]->red = 0;
+        q->link[1]->red = 0;
+      }
+
+      if (is_red (q) && is_red (p))
+      {
+        // Hard red violation: rotations necessary
+        int dir2 = t->link[1] == g;
+
+        if (q == p->link[last])
+          t->link[dir2] = rotate1 (g, !last);
+        else
+          t->link[dir2] = rotate2 (g, !last);
+      }
+
+      // check existing node with same key and
+      // update the value if desired then stop
+      int sign = tree->compareKeys (q->key, key);
+
+      if (sign == 0)
+      {
+        if (!novel && tree->updateNode)
+          tree->updateNode(q, value);
+
+         break;
+      }
+
+      last = dir;
+      dir = sign < 0;
+
+      // Move the helpers down
+      if (g != NULL)
+        t = g;
+
+      g = p, p = q;
+      q = q->link[dir];
+    }
+
+    // Update the root (it may be different)
+    tree->root = head.link[1];
+  }
+
+  // Make the root black for simplified logic
+  tree->root->red = 0;
+}
+
+// Remove a node from a red black tree for given
+// key and return the updated root node
+void rbTreeRemoveKey (RbTree *tree, RbKey key)
+{
+  assert(tree);
+
+  if (tree->root != NULL)
+  {
+    RbNode head = {0}; // False tree root
+    RbNode *q, *p, *g; // Helpers
+    RbNode *f = NULL;  // Found item
+    int dir = 1;
+
+    // Set up our helpers
+    q = &head;
+    g = p = NULL;
+    q->link[1] = tree->root;
+
+    // Search and push a red node down
+    // to fix red violations as we go
+
+    while (q->link[dir] != NULL)
+    {
+      int last = dir;
+
+      // Move the helpers down
+      g = p, p = q;
+      q = q->link[dir];
+      dir = tree->compareKeys (q->key, key) < 0;
+
+      // Save the node with matching data and keep
+      // going; we'll do removal tasks at the end
+      if (tree->compareKeys (q->key, key) == 0)
+        f = q;
+
+      // Push the red node down with rotations and color flips
+      if (!is_red (q) && !is_red (q->link[dir]))
+      {
+        if (is_red (q->link[!dir]))
+          p = p->link[last] = rotate1 (q, dir);
+        else if (!is_red (q->link[!dir]))
+        {
+          RbNode *s = p->link[!last];
+
+          if (s != NULL)
+          {
+            if (!is_red (s->link[!last]) && !is_red (s->link[last]))
+            {
+              // Color flip
+              p->red = 0;
+              s->red = 1;
+              q->red = 1;
+            }
+            else
+            {
+              int dir2 = g->link[1] == p;
+
+              if (is_red (s->link[last]))
+                g->link[dir2] = rotate2 (p, last);
+              else if (is_red (s->link[!last]))
+                g->link[dir2] = rotate1 (p, last);
+
+              // Ensure correct coloring
+              q->red = g->link[dir2]->red = 1;
+              g->link[dir2]->link[0]->red = 0;
+              g->link[dir2]->link[1]->red = 0;
+            }
+          }
+        }
+      }
+    }
+
+    // Replace and remove the saved node
+    if (f != NULL)
+    {
+      if (tree->eraseNode)
+        tree->eraseNode (f->key, f->value);
+
+      f->key = q->key;
+      f->value = q->value;
+      p->link[p->link[1] == q] =
+      q->link[q->link[0] == NULL];
+      free (q);
+    }
+
+    // Update the root (it may be different)
+    tree->root = head.link[1];
+
+    // Make the root black for simplified logic
+    if (tree->root != NULL)
+      tree->root->red = 0;
+  }
+}
+
+static RbSize rbSize (RbNode *node)
+{
+  if (node)
+    return rbSize(node->link[0]) + 1 + rbSize(node->link[1]);
+
+  return 0;
+}
+
+// Gets the number of nodes in a red black tree
+RbSize rbTreeSize (RbTree *tree)
+{
+  assert(tree);
+  return rbSize(tree->root);
+}
+
+// true if node exists and has no children
+int rbTreeHasOneEntry (RbTree *tree)
+{
+  assert(tree);
+  return (tree->root && !tree->root->link[0] && !tree->root->link[1]);
+}
+
+// return value of root node
+RbValue rbTreeRootValue(RbTree *tree)
+{
+  assert(tree);
+  RbNode *node = tree->root;
+  return (node ? node->value : NULL);
+}
+
+// return value of first node
+RbValue rbTreeFirstValue(RbTree *tree)
+{
+  assert(tree);
+  RbNode *node = tree->root;
+  RbNode *first;
+
+  if (node)
+  {
+    do
+    {
+      first = node;
+       node = node->link[0];
+    }
+    while (node);
+
+    return first->value;
+  }
+
+  return NULL;
+}
+
+// return value of last node
+RbValue rbTreeLastValue(RbTree *tree)
+{
+  assert(tree);
+  RbNode *node = tree->root;
+  RbNode *last;
+
+  if (node)
+  {
+     do
+     {
+       last = node;
+       node = node->link[1];
+     }
+     while (node);
+
+     return last->value;
+  }
+
+  return NULL;
+}
+
+// traverse tree, left to right, calling use defined func on each node
+static void rbApplyLR(RbNode *node, RbApplyFn func, RbContext context)
+{
+  if (node)
+  {
+    rbApplyLR(node->link[0], func, context);
+    (*func)(node->key, node->value, context);
+    rbApplyLR(node->link[1], func, context);
+  }
+}
+
+void rbTreeApplyLR(RbTree *tree, RbApplyFn func, RbContext context)
+{
+  assert(tree);
+  rbApplyLR(tree->root, func, context);
+}
+
+// traverse tree, right to left, calling use defined func on each node
+static void rbApplyRL(RbNode *node, RbApplyFn func, RbContext context)
+{
+  if (node)
+  {
+    rbApplyRL(node->link[1], func, context);
+    (*func)(node->key, node->value, context);
+    rbApplyRL(node->link[0], func, context);
+  }
+}
+
+void rbTreeApplyRL(RbTree *tree, RbApplyFn func, RbContext context)
+{
+  assert(tree);
+  rbApplyRL(tree->root, func, context);
+}
+
+void rbTreeNewEmbedded(RbTree *tree, RbNewFn newNode, RbUpdateFn updateNode, RbEraseFn eraseNode,  RbCmpKeyFn compareKeys)
+{
+  assert(tree);
+  assert(compareKeys);
+
+  tree->newNode = newNode;
+  tree->updateNode = updateNode;
+  tree->eraseNode = eraseNode;
+  tree->compareKeys = compareKeys;
+  tree->root = NULL;
+}
+
+// compareKeys is required, but the others can be passed as NULL
+RbTree *rbTreeNew(RbNewFn newNode, RbUpdateFn updateNode, RbEraseFn eraseNode,  RbCmpKeyFn compareKeys)
+{
+  RbTree *tree = malloc(sizeof(RbTree));
+  assert(tree);
+
+  tree->newNode = newNode;
+  tree->updateNode = updateNode;
+  tree->eraseNode = eraseNode;
+  tree->compareKeys = compareKeys;
+  tree->root = NULL;
+  return tree;
+}
+
+void rbTreeFreeEmbedded(RbTree *tree)
+{
+  if (tree)
+  {
+    if (tree->root)
+    {
+      RbNode *it = tree->root;
+      RbNode *save;
+
+      // Rotate away the left links so that
+      // we can treat this like the destruction
+      // of a linked list
+      while (it != NULL)
+      {
+        if (it->link[0] == NULL)
+        {
+          // No left links, just kill the node and move on
+          save = it->link[1];
+
+          if (tree->eraseNode)
+            tree->eraseNode (it->key, it->value);
+
+          free (it);
+        }
+        else // Rotate away the left link and check again
+        {
+          save = it->link[0];
+          it->link[0] = save->link[1];
+          save->link[1] = it;
+        }
+
+        it = save;
+      }
+
+      tree->root = NULL;
+    }
+  }
+}
+
+
+void rbTreeFree(RbTree *tree)
+{
+  if (tree)
+  {
+    rbTreeFreeEmbedded(tree);
+    free(tree);
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/rbtree.h	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,99 @@
+/*
+ *      rbtree.h -- Red Black balanced tree library
+ *
+ *      Copyright (c) 2008 Dave Raggett
+ *      based upon code by Julienne Walker
+ *
+ *      This program is free software; you can redistribute it and/or modify
+ *      it under the terms of the GNU General Public License as published by
+ *      the Free Software Foundation; either version 2 of the License, or
+ *      (at your option) any later version.
+ *
+ *      This program is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *      GNU General Public License for more details.
+ *
+ *      You should have received a copy of the GNU General Public License
+ *      along with this program; if not, write to the Free Software
+ *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ *      MA 02110-1301, USA.
+ */
+
+#ifndef RBTREE_H
+#define RBTREE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+
+typedef void *RbKey;   // e.g. memory address of object
+typedef void *RbValue;
+typedef void *RbContext;
+typedef unsigned long RbSize;  // long for compatibility with LP64
+
+typedef struct _rbnode
+{
+    int red;     // Color (1=red, 0=black)
+    RbKey key; // same size as void *
+    RbValue value;  // User-defined content
+    struct _rbnode *link[2]; // Left (0) and right (1) links
+} RbNode;
+
+// create new value in red-black tree node
+typedef void (*RbNewFn) ( RbNode *node, RbKey key, RbValue value );
+
+// for updating existing data in red-black tree node
+typedef void  (*RbUpdateFn) ( RbNode *node, RbValue value );
+
+// for freeing data stored in red-black tree node
+typedef void  (*RbEraseFn) ( RbKey key, RbValue value );
+
+typedef int (*RbCmpKeyFn) (RbKey key1, RbKey key2);
+
+// user supplied function for apply mechanism
+typedef void (*RbApplyFn)(RbKey key, RbValue value, RbContext context);
+
+typedef struct _rbtree
+{
+    RbNewFn newNode;
+    RbUpdateFn updateNode;
+    RbEraseFn eraseNode;
+    RbCmpKeyFn compareKeys;
+    RbNode *root;
+} RbTree;
+
+// red black tree functions
+RbTree *rbTreeNew(RbNewFn newNode, RbUpdateFn updateNode,
+                   RbEraseFn eraseNode,  RbCmpKeyFn compareKeys);
+
+void rbTreeNewEmbedded(RbTree *tree, RbNewFn newNode, RbUpdateFn updateNode,
+                        RbEraseFn eraseNode,  RbCmpKeyFn compareKeys);
+
+void rbTreeFree(RbTree *tree);
+
+void rbTreeFreeEmbedded(RbTree *tree);
+
+
+RbValue rbTreeFindKey ( RbTree *tree, RbKey key );
+void rbTreeInsertKey ( RbTree *tree, RbKey key, RbValue data );
+void rbTreeRemoveKey ( RbTree *tree, RbKey key );
+
+RbSize rbTreeSize ( RbTree *tree ); // number of nodes in tree
+int rbTreeHasOneEntry ( RbTree *tree ); // true of tree has just one node
+
+RbValue rbTreeRootValue(RbTree *tree);
+RbValue rbTreeFirstValue(RbTree *tree);
+RbValue rbTreeLastValue(RbTree *tree);
+
+// calls user defined func on all nodes with given context
+void rbTreeApplyLR(RbTree *tree, RbApplyFn func, RbContext context);
+void rbTreeApplyRL(RbTree *tree, RbApplyFn func, RbContext context);
+
+ #ifdef __cplusplus
+ }
+ #endif
+
#endif // RBTREE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dashbot_analyst/sites.html	Fri Apr 29 13:28:40 2011 +0100
@@ -0,0 +1,21347 @@
+<html>
+  <head>
+    <title>Third Party Sites</title>
+  </head>
+  <body>
+    <table border='1'>
+      <caption>Third Party Sites</caption>
+    <thead>
+      <tr>
+        <th>Site</th>
+        <th>Session Cookies</th>
+        <th>Lasting Cookies</th>
+        <th>Flash Cookies</th>
+        <th>Internal 3rd Parties</th>
+        <th>External 3rd Parties</th>
+        <th>Internal 3rd Party Session Cookies</th>
+        <th>Internal 3rd Party Lasting Cookies</th>
+        <th>Internal 3rd Party Flash Cookies</th>
+        <th>External rd Party Session Cookies</th>
+        <th>External 3rd Party Lasting Cookies</th>
+        <th>External 3rd Party Flash Cookies</th>
+        <th>DOM Storage</th>
+        <th>HTML5 pings</th>
+        <th>Invisible Images</th>
+        <th>Suspicious URLs</th>
+        <th>Geolocation Permission</th>
+        <th>P3P policy</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <th colspan='18'>465 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>152 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>105 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>95 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>89 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>82 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>79 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>78 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>74 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>60 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>54 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>47 sites with 2 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>40 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>39 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>38 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>35 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>31 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>26 sites with 2 references</th>
+      </tr>
+<tr>
+<td>www.google.com</td>
+<td>7</td>
+<td>12</td>
+<td>1</td>
+<td>6</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+      <tr>
+        <th colspan='18'>25 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>24 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>22 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>21 sites with 3 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>20 sites with 2 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>19 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>18 sites with 2 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>17 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>16 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>15 sites with 2 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>14 sites with 4 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>13 sites with 2 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>12 sites with 1 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>11 sites with 4 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>10 sites with 9 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>9 sites with 5 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>8 sites with 11 references</th>
+      </tr>
+<tr>
+<td>www.adobe.com</td>
+<td>3</td>
+<td>4</td>
+<td>1</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+      <tr>
+        <th colspan='18'>7 sites with 17 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>6 sites with 16 references</th>
+      </tr>
+      <tr>
+        <th colspan='18'>5 sites with 34 references</th>
+      </tr>
+<tr>
+<td>twitter.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+      <tr>
+        <th colspan='18'>4 sites with 73 references</th>
+      </tr>
+<tr>
+<td>www.bing.com</td>
+<td>3</td>
+<td>7</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+      <tr>
+        <th colspan='18'>3 sites with 117 references</th>
+      </tr>
+<tr>
+<td>www.pconline.com.cn</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>9</td>
+<td>5</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mercadolibre.com</td>
+<td>2</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+      <tr>
+        <th colspan='18'>2 sites with 408 references</th>
+      </tr>
+<tr>
+<td>www.facebook.com</td>
+<td>7</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.yandex.ru</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>4</td>
+<td>10</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>vkontakte.ru</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+      <tr>
+        <th colspan='18'>1 sites with 3994 references</th>
+      </tr>
+<tr>
+<td>www.youtube.com</td>
+<td>2</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>44</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.msn.com</td>
+<td>1</td>
+<td>14</td>
+<td>0</td>
+<td>6</td>
+<td>8</td>
+<td>9</td>
+<td>3</td>
+<td>0</td>
+<td>16</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.baidu.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.taobao.com</td>
+<td>2</td>
+<td>10</td>
+<td>0</td>
+<td>3</td>
+<td>7</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>39</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>wordpress.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.mozilla.com</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.paypal.com</td>
+<td>3</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.rakuten.co.jp</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>2</td>
+<td>8</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>20</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>login.facebook.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.blogger.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.craigslist.org</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cntv.cn</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.xinhuanet.com</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.infoseek.co.jp</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>3</td>
+<td>12</td>
+<td>0</td>
+<td>12</td>
+<td>0</td>
+<td>9</td>
+<td>23</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cncmax.cn</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.wo.com.cn</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.excite.co.jp</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>4</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.java.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.onet.pl</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.t-online.de</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>11</td>
+<td>13</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>3</td>
+<td>20</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.jcpenney.com</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>2</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>39</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bitauto.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>beijing.bitauto.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>ads.us.e-planning.net</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.chinanews.com.cn</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.en.rian.ru</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.indeed.com</td>
+<td>4</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.indeed.co.uk</td>
+<td>3</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.groupon.com</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>30</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.pcpop.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>uk.blackberry.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.pcauto.com.cn</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wiktionary.org</td>
+<td>3</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>24</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.avira.com</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bloomberg.com</td>
+<td>4</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>28</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cctv.com</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.huangjinquxian.com</td>
+<td>8</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mtv.com</td>
+<td>6</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>auth.me.com</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>acrobat.com</td>
+<td>5</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.manta.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>25</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.47news.jp</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>udn.com</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.news.cn</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>10086.cn</td>
+<td>6</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>42</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>57</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.pcgames.com.cn</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>38</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.marriott.co.uk</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>mb.softbank.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.smarter.co.jp</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.voucherhub.com</td>
+<td>2</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>browse.deviantart.com</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>19</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>oceanservice.noaa.gov</td>
+<td>4</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.detik.com</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ninemsn.com.au</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.chinadaily.com.cn</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.esmas.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+      <tr>
+        <th colspan='18'>0 sites with 1077 references</th>
+      </tr>
+<tr>
+<td>start.ubuntu.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bbc.co.uk</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>4</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>uk.yahoo.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.yahoo.com</td>
+<td>4</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>login.live.com</td>
+<td>19</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.live.com</td>
+<td>20</td>
+<td>17</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>31</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>sn129w.snt129.mail.live.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>4</td>
+<td>10</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wikipedia.org</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>uk.msn.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.microsoft.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>5</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wordpress.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.twitter.com</td>
+<td>1</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.soso.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.youku.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>31</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>uk.ask.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.ask.com</td>
+<td>2</td>
+<td>8</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.yahoo.co.jp</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>4</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.amazon.com</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hao123.com</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tudou.com</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>4</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ebay.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>18</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.apple.com</td>
+<td>8</td>
+<td>6</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.fc2.com</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sogou.com</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.myspace.com</td>
+<td>3</td>
+<td>7</td>
+<td>0</td>
+<td>2</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ku6.com</td>
+<td>1</td>
+<td>14</td>
+<td>0</td>
+<td>4</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cnet.com</td>
+<td>1</td>
+<td>15</td>
+<td>0</td>
+<td>3</td>
+<td>11</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>en.rakuten.co.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>go.com</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.about.com</td>
+<td>18</td>
+<td>15</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.go.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hotmail.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>mail.live.com</td>
+<td>19</td>
+<td>15</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.orkut.com</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.goo.ne.jp</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>6</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.orkut.com.br</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.flickr.com</td>
+<td>0</td>
+<td>6</td>
+<td>1</td>
+<td>5</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mail.ru</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>6</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>14</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tmall.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>4</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.linkedin.com</td>
+<td>3</td>
+<td>12</td>
+<td>0</td>
+<td>3</td>
+<td>6</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.4shared.com</td>
+<td>3</td>
+<td>12</td>
+<td>0</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.imdb.com</td>
+<td>8</td>
+<td>10</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.aol.co.uk</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.aol.com</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>ameblo.jp</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ameblo.jp</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.amazon.co.jp</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.dailymotion.com</td>
+<td>3</td>
+<td>10</td>
+<td>0</td>
+<td>2</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.qq.com</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>9</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sohu.com</td>
+<td>0</td>
+<td>22</td>
+<td>0</td>
+<td>11</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.xunlei.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>6</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>safeweb.norton.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.56.com</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>6</td>
+<td>16</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.360.cn</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sina.com.cn</td>
+<td>1</td>
+<td>10</td>
+<td>0</td>
+<td>3</td>
+<td>7</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ifeng.com</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>19</td>
+<td>5</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.answers.com</td>
+<td>13</td>
+<td>9</td>
+<td>0</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.megaupload.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.4399.com</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>6</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>london.craigslist.co.uk</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.naver.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>photobucket.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.photobucket.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.gougou.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>edition.cnn.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.cnn.com</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.alibaba.com</td>
+<td>4</td>
+<td>5</td>
+<td>0</td>
+<td>4</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.rapidshare.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.skype.com</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.gocsgo.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.walmart.com</td>
+<td>9</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>18</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nifty.com</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.2345.com</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mediafire.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.soku.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.daum.net</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ehow.com</td>
+<td>4</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>18</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tianya.cn</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>5</td>
+<td>4</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hp.com</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.scribd.com</td>
+<td>1</td>
+<td>9</td>
+<td>0</td>
+<td>2</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>32</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hi5.com</td>
+<td>3</td>
+<td>8</td>
+<td>0</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.9223.com</td>
+<td>1</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>bit.ly</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.bit.ly</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.7k7k.com</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>6</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>58</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.weather.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hotfile.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>jp.msn.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.jp.msn.com</td>
+<td>1</td>
+<td>15</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ebay.de</td>
+<td>3</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.partypoker.com</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.softonic.com</td>
+<td>3</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.youdao.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.imageshack.us</td>
+<td>2</td>
+<td>13</td>
+<td>0</td>
+<td>1</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.megavideo.com</td>
+<td>1</td>
+<td>3</td>
+<td>1</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.zqgame.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.odnoklassniki.ru</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.biglobe.ne.jp</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.target.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.filestube.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.uol.com.br</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>12</td>
+<td>7</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>home.mywebsearch.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.mywebsearch.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.espn.go.com</td>
+<td>4</td>
+<td>9</td>
+<td>0</td>
+<td>4</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.alipay.com</td>
+<td>4</td>
+<td>2</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>badoo.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.badoo.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>4</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.avg.com</td>
+<td>6</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.96pk.com</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ebay.co.uk</td>
+<td>3</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.renren.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.zol.com.cn</td>
+<td>3</td>
+<td>6</td>
+<td>0</td>
+<td>4</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.alot.com</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bankofamerica.com</td>
+<td>9</td>
+<td>7</td>
+<td>0</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.paipai.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>3</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>311</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.zynga.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>sourceforge.net</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.sourceforge.net</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nytimes.com</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>5</td>
+<td>13</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>kakaku.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.kakaku.com</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.zedo.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>4</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>19</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bestbuy.com</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.news.163.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mop.com</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>11</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.orkut.co.in</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wikimedia.org</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.chase.com</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>vk.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.metacafe.com</td>
+<td>5</td>
+<td>9</td>
+<td>0</td>
+<td>1</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.kugou.com</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>3</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.qiyi.com</td>
+<td>1</td>
+<td>4</td>
+<td>1</td>
+<td>3</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.dell.com</td>
+<td>6</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>27</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.uuzu.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ledu.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.brothersoft.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.amazon.co.uk</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.amazon.de</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nate.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>narod.yandex.ru</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.narod.ru</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>en.9wee.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.9wee.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.livejournal.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>5</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mapquest.com</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.globo.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>4</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ameba.jp</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>4</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.joy.cn</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>4</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.depositfiles.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>wikimediafoundation.org</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.wikimediafoundation.org</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>thepiratebay.org</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.thepiratebay.org</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.2ch.net</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ocn.ne.jp</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cocolog-nifty.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>7</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.free.fr</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mozilla.org</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.netflix.com</td>
+<td>6</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cyworld.com</td>
+<td>4</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.thefreedictionary.com</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.pptv.com</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>2</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>19</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.yomiuri.co.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>24</td>
+<td>35</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>163</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.people.com.cn</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.addthis.com</td>
+<td>2</td>
+<td>10</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.taringa.net</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.exblog.jp</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>4</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>20</td>
+<td>20</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.3366.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.so-net.ne.jp</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nicovideo.jp</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.terra.com.br</td>
+<td>4</td>
+<td>9</td>
+<td>0</td>
+<td>4</td>
+<td>8</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wushen.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.xici.net</td>
+<td>3</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.reference.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>1</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.zing.vn</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>6</td>
+<td>3</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nih.gov</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>okwave.jp</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.okwave.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>mixi.jp</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.mixi.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.orange.fr</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.babylon.com</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>2</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>17</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.optmd.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>jugem.jp</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.jugem.jp</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.miniclip.com</td>
+<td>2</td>
+<td>12</td>
+<td>0</td>
+<td>2</td>
+<td>8</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>17</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.58.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ikea.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>78</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sakura.ne.jp</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tumblr.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.eastmoney.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>9</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.vimeo.com</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.skycn.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nowdownloadall.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.booking.com</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.vancl.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>111</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.rakuten.ne.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>ezinearticles.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.ezinearticles.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.slideshare.net</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>allabout.co.jp</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.allabout.co.jp</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bearshare.com</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.126.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.rambler.ru</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>6.cn</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.6.cn</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>67</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.macromedia.com</td>
+<td>3</td>
+<td>5</td>
+<td>1</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hudong.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>7</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.commentcamarche.net</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>23</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>22</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.livedoor.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>6</td>
+<td>8</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.fileserve.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.att.com</td>
+<td>6</td>
+<td>8</td>
+<td>0</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.cnxad.com</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.liveperson.net</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.soufun.com</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>9</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.peeplo.co.uk</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.peeplo.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.gmarket.co.kr</td>
+<td>5</td>
+<td>1</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.chosun.com</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>5</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>67</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.dailymail.co.uk</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>4</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>46</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wellsfargo.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.douban.com</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>3</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>47</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sparkstudios.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.windowslivehelp.com</td>
+<td>3</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.onet.eu</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.mainichi.jp</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>2</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>39</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nhk.or.jp</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.comcast.net</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tripadvisor.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.libero.it</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.kaixin001.com</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.alexa.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>en.netlog.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.netlog.com</td>
+<td>3</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.reuters.com</td>
+<td>0</td>
+<td>4</td>
+<td>1</td>
+<td>1</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>58</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.letv.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>8</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>25</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.jiayuan.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>6</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>hubpages.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.hubpages.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>maktoob.yahoo.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.maktoob.com</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mcafee.com</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>tabelog.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.tabelog.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.pomoho.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.web.de</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>2</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.autohome.com.cn</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>4</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.china.com</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>4</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hexun.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>5</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.japanpost.jp</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nextag.com</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tagged.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>multiply.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.multiply.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.marketgid.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wp.pl</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ieaddons.com</td>
+<td>6</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.softpedia.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>13</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>102</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ju51.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>5</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.jiji.com</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sanspo.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>29</td>
+<td>40</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.gmx.net</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>2</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>ebm.cheetahmail.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.overture.com</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.docin.com</td>
+<td>3</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>allegro.pl</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.allegro.pl</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.foxnews.com</td>
+<td>2</td>
+<td>7</td>
+<td>0</td>
+<td>5</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>48</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nikkeibp.co.jp</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.39.net</td>
+<td>2</td>
+<td>2</td>
+<td>0</td>
+<td>5</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.huffingtonpost.com</td>
+<td>2</td>
+<td>7</td>
+<td>0</td>
+<td>1</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>51</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>22</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wan5d.com</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.naqigs.com</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.imesh.com</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.yz.szgla.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ups.com</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.iza.ne.jp</td>
+<td>3</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>allrecipes.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.allrecipes.com</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wikia.com</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>18</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.rediff.com</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>4</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sponichi.co.jp</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.glispa.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.gnavi.co.jp</td>
+<td>2</td>
+<td>4</td>
+<td>1</td>
+<td>4</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.expedia.com</td>
+<td>4</td>
+<td>6</td>
+<td>0</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>23</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sdo.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>4</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.verizonwireless.com</td>
+<td>4</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>12</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>uk.real.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.real.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.51.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.impressholdings.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.impress.co.jp</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>24</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>ja.impressholdings.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>27</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.twitpic.com</td>
+<td>3</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>24</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.samsung.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>torrentz.eu</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.torrentz.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.360buy.com</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>5</td>
+<td>8</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.traviangames.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nikkansports.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>24</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.iminent.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>4</td>
+<td>8</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>19</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ning.com</td>
+<td>2</td>
+<td>8</td>
+<td>0</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.51wan.com</td>
+<td>0</td>
+<td>10</td>
+<td>0</td>
+<td>7</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wretch.cc</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.typepad.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>1</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.bizrate.com</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.auction.co.kr</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>6</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>38</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.wordreference.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.duowan.com</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>7</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.asahi.com</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>4</td>
+<td>12</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>26</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.dangdang.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>12</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>15</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.letitbit.net</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.musica.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>30</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.shoplocal.com</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>3</td>
+<td>31</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>34</td>
+<td>141</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.tenpay.com</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.hulu.com</td>
+<td>1</td>
+<td>5</td>
+<td>1</td>
+<td>1</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>42</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.guardian.co.uk</td>
+<td>2</td>
+<td>5</td>
+<td>0</td>
+<td>2</td>
+<td>7</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>14</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.nba.com</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>3</td>
+<td>6</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>31</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.verycd.com</td>
+<td>2</td>
+<td>9</td>
+<td>0</td>
+<td>5</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>24</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>uk.shopping.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.shopping.com</td>
+<td>4</td>
+<td>2</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>11</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.funshion.com</td>
+<td>1</td>
+<td>8</td>
+<td>0</td>
+<td>6</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.virgilio.it</td>
+<td>4</td>
+<td>8</td>
+<td>0</td>
+<td>5</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.360doc.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.118114.cn</td>
+<td>1</td>
+<td>13</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.17173.com</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>5</td>
+<td>21</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.over-blog.com</td>
+<td>1</td>
+<td>5</td>
+<td>0</td>
+<td>1</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>17</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ziddu.com</td>
+<td>4</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>16</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.macys.com</td>
+<td>12</td>
+<td>2</td>
+<td>0</td>
+<td>2</td>
+<td>3</td>
+<td>3</td>
+<td>1</td>
+<td>0</td>
+<td>3</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.sears.com</td>
+<td>16</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.deviantart.com</td>
+<td>1</td>
+<td>6</td>
+<td>0</td>
+<td>1</td>
+<td>20</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.duba.net</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>7</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.leboncoin.fr</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ganji.com</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>3</td>
+<td>4</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.washingtonpost.com</td>
+<td>2</td>
+<td>10</td>
+<td>0</td>
+<td>5</td>
+<td>10</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>35</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>17</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.robtex.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.mapion.co.jp</td>
+<td>2</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.in.com</td>
+<td>1</td>
+<td>3</td>
+<td>0</td>
+<td>2</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.ucoz.ru</td>
+<td>0</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+<td>5</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.usps.com</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>isohunt.com</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<td>(null)</td>
+<tr>
+<tr>
+<td>www.isohunt.com</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.webry.info</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<tr>
+<tr>
+<td>www.oricon.co.jp</td>
+<td>2</td>
+<td>1</td>
+<td>0</td>
+<td>3</td>
+<td>9</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>34</td>
+<td>0</td>
+<td>