diff --git a/docs/0.9.3/ansible.html b/docs/0.9.3/ansible.html
index 46a90e8..fb49d6f 100644
--- a/docs/0.9.3/ansible.html
+++ b/docs/0.9.3/ansible.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/api.html b/docs/0.9.3/api.html
index b39682e..a20cc23 100644
--- a/docs/0.9.3/api.html
+++ b/docs/0.9.3/api.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/builtins.html b/docs/0.9.3/aql/builtins.html
index 07b1636..6724587 100644
--- a/docs/0.9.3/aql/builtins.html
+++ b/docs/0.9.3/aql/builtins.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/externaldata.html b/docs/0.9.3/aql/externaldata.html
index 30ba8bb..725e036 100644
--- a/docs/0.9.3/aql/externaldata.html
+++ b/docs/0.9.3/aql/externaldata.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/filters.html b/docs/0.9.3/aql/filters.html
index 7ec5ae9..601d0a8 100644
--- a/docs/0.9.3/aql/filters.html
+++ b/docs/0.9.3/aql/filters.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/fulltext.html b/docs/0.9.3/aql/fulltext.html
index b4c0325..d95fcf8 100644
--- a/docs/0.9.3/aql/fulltext.html
+++ b/docs/0.9.3/aql/fulltext.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/js-sdk.html b/docs/0.9.3/aql/js-sdk.html
index cc92416..42a8281 100644
--- a/docs/0.9.3/aql/js-sdk.html
+++ b/docs/0.9.3/aql/js-sdk.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/manual.html b/docs/0.9.3/aql/manual.html
index 411aa58..699e6e9 100644
--- a/docs/0.9.3/aql/manual.html
+++ b/docs/0.9.3/aql/manual.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/primer.html b/docs/0.9.3/aql/primer.html
index 80a59e1..8e31ef7 100644
--- a/docs/0.9.3/aql/primer.html
+++ b/docs/0.9.3/aql/primer.html
@@ -19,13 +19,6 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aql/similarity.html b/docs/0.9.3/aql/similarity.html
index 5a69645..294ca36 100644
--- a/docs/0.9.3/aql/similarity.html
+++ b/docs/0.9.3/aql/similarity.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/aws.html b/docs/0.9.3/aws.html
index 5249918..c42ae64 100644
--- a/docs/0.9.3/aws.html
+++ b/docs/0.9.3/aws.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/csv.html b/docs/0.9.3/csv.html
index 1b01806..bae67a7 100644
--- a/docs/0.9.3/csv.html
+++ b/docs/0.9.3/csv.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/datamodel.html b/docs/0.9.3/datamodel.html
index 5972cd7..e2d828c 100644
--- a/docs/0.9.3/datamodel.html
+++ b/docs/0.9.3/datamodel.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/feeds/tutorial.html b/docs/0.9.3/feeds/tutorial.html
index bdd3ed2..151cda2 100644
--- a/docs/0.9.3/feeds/tutorial.html
+++ b/docs/0.9.3/feeds/tutorial.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/index.html b/docs/0.9.3/index.html
index 7056139..1801973 100644
--- a/docs/0.9.3/index.html
+++ b/docs/0.9.3/index.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/install.html b/docs/0.9.3/install.html
index 4503d8b..028b8b7 100644
--- a/docs/0.9.3/install.html
+++ b/docs/0.9.3/install.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/ncservice.html b/docs/0.9.3/ncservice.html
index 8eb3b82..093daab 100644
--- a/docs/0.9.3/ncservice.html
+++ b/docs/0.9.3/ncservice.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/overview.html b/docs/0.9.3/overview.html
index d92d2db..e0bc1a2 100644
--- a/docs/0.9.3/overview.html
+++ b/docs/0.9.3/overview.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/sqlpp/builtins.html b/docs/0.9.3/sqlpp/builtins.html
index 8e5e370..4a0943d 100644
--- a/docs/0.9.3/sqlpp/builtins.html
+++ b/docs/0.9.3/sqlpp/builtins.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/sqlpp/manual.html b/docs/0.9.3/sqlpp/manual.html
index f7cc719..82cecc0 100644
--- a/docs/0.9.3/sqlpp/manual.html
+++ b/docs/0.9.3/sqlpp/manual.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/sqlpp/primer-sqlpp.html b/docs/0.9.3/sqlpp/primer-sqlpp.html
index 6022d54..5918753 100644
--- a/docs/0.9.3/sqlpp/primer-sqlpp.html
+++ b/docs/0.9.3/sqlpp/primer-sqlpp.html
@@ -18,15 +18,10 @@
     <script type="text/javascript" src="../js/apache-maven-fluido-1.3.0.min.js"></script>
 
                           
-        
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
-          
+
+
+
             </head>
         <body class="topBarDisabled">
           
diff --git a/docs/0.9.3/udf.html b/docs/0.9.3/udf.html
index 99e36d7..b7c3a9a 100644
--- a/docs/0.9.3/udf.html
+++ b/docs/0.9.3/udf.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
diff --git a/docs/0.9.3/yarn.html b/docs/0.9.3/yarn.html
index b84a1c3..04f45e0 100644
--- a/docs/0.9.3/yarn.html
+++ b/docs/0.9.3/yarn.html
@@ -19,13 +19,7 @@
 
                           
         
-<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
-        ga('create', 'UA-41536543-1', 'uci.edu');
-        ga('send', 'pageview');</script>
           
             </head>
         <body class="topBarDisabled">
