diff --git a/content/docs/0.8.7-incubating/api.html b/content/docs/0.8.7-incubating/api.html
index 72fd689..ef38cca 100644
--- a/content/docs/0.8.7-incubating/api.html
+++ b/content/docs/0.8.7-incubating/api.html
@@ -19,14 +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/content/docs/0.8.7-incubating/aql/allens.html b/content/docs/0.8.7-incubating/aql/allens.html
index ec566c2..9c55f3d 100644
--- a/content/docs/0.8.7-incubating/aql/allens.html
+++ b/content/docs/0.8.7-incubating/aql/allens.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/content/docs/0.8.7-incubating/aql/datamodel.html b/content/docs/0.8.7-incubating/aql/datamodel.html
index 7f756e6..00dd2db 100644
--- a/content/docs/0.8.7-incubating/aql/datamodel.html
+++ b/content/docs/0.8.7-incubating/aql/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/content/docs/0.8.7-incubating/aql/externaldata.html b/content/docs/0.8.7-incubating/aql/externaldata.html
index b0ca194..ff9d07a 100644
--- a/content/docs/0.8.7-incubating/aql/externaldata.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/aql/filters.html b/content/docs/0.8.7-incubating/aql/filters.html
index 1347e30..2851c0d 100644
--- a/content/docs/0.8.7-incubating/aql/filters.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/aql/functions.html b/content/docs/0.8.7-incubating/aql/functions.html
index 28d5fbe..5530768 100644
--- a/content/docs/0.8.7-incubating/aql/functions.html
+++ b/content/docs/0.8.7-incubating/aql/functions.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/content/docs/0.8.7-incubating/aql/js-sdk.html b/content/docs/0.8.7-incubating/aql/js-sdk.html
index 3f1129c..a8261b2 100644
--- a/content/docs/0.8.7-incubating/aql/js-sdk.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/aql/manual.html b/content/docs/0.8.7-incubating/aql/manual.html
index e091d43..fb83792 100644
--- a/content/docs/0.8.7-incubating/aql/manual.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/aql/primer-sql-like.html b/content/docs/0.8.7-incubating/aql/primer-sql-like.html
index 98e82ec..2cb246f 100644
--- a/content/docs/0.8.7-incubating/aql/primer-sql-like.html
+++ b/content/docs/0.8.7-incubating/aql/primer-sql-like.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/content/docs/0.8.7-incubating/aql/primer.html b/content/docs/0.8.7-incubating/aql/primer.html
index 053f0f3..8e3e524 100644
--- a/content/docs/0.8.7-incubating/aql/primer.html
+++ b/content/docs/0.8.7-incubating/aql/primer.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/content/docs/0.8.7-incubating/aql/similarity.html b/content/docs/0.8.7-incubating/aql/similarity.html
index ce239aa..e36d22f 100644
--- a/content/docs/0.8.7-incubating/aql/similarity.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/csv.html b/content/docs/0.8.7-incubating/csv.html
index dafc345..f1d85e5 100644
--- a/content/docs/0.8.7-incubating/csv.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/feeds/tutorial.html b/content/docs/0.8.7-incubating/feeds/tutorial.html
index 115d7dd..bea59a6 100644
--- a/content/docs/0.8.7-incubating/feeds/tutorial.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/index.html b/content/docs/0.8.7-incubating/index.html
index 4f4f80b..f2be3b0 100644
--- a/content/docs/0.8.7-incubating/index.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/install.html b/content/docs/0.8.7-incubating/install.html
index e6a164c..b7e342c 100644
--- a/content/docs/0.8.7-incubating/install.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/overview.html b/content/docs/0.8.7-incubating/overview.html
index 50a79e2..f328c2f 100644
--- a/content/docs/0.8.7-incubating/overview.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/udf.html b/content/docs/0.8.7-incubating/udf.html
index fa9d934..549a052 100644
--- a/content/docs/0.8.7-incubating/udf.html
+++ b/content/docs/0.8.7-incubating/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/content/docs/0.8.7-incubating/yarn.html b/content/docs/0.8.7-incubating/yarn.html
index 318ce90..3e70e82 100644
--- a/content/docs/0.8.7-incubating/yarn.html
+++ b/content/docs/0.8.7-incubating/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">
diff --git a/content/docs/0.8.8-incubating/api.html b/content/docs/0.8.8-incubating/api.html
index 06cf6f1..5c41305 100644
--- a/content/docs/0.8.8-incubating/api.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/aql/allens.html b/content/docs/0.8.8-incubating/aql/allens.html
index 0c7d66f..b946ef0 100644
--- a/content/docs/0.8.8-incubating/aql/allens.html
+++ b/content/docs/0.8.8-incubating/aql/allens.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/content/docs/0.8.8-incubating/aql/datamodel.html b/content/docs/0.8.8-incubating/aql/datamodel.html
index 9c7189b..85dc319 100644
--- a/content/docs/0.8.8-incubating/aql/datamodel.html
+++ b/content/docs/0.8.8-incubating/aql/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/content/docs/0.8.8-incubating/aql/externaldata.html b/content/docs/0.8.8-incubating/aql/externaldata.html
index 37adfbf..0a49382 100644
--- a/content/docs/0.8.8-incubating/aql/externaldata.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/aql/filters.html b/content/docs/0.8.8-incubating/aql/filters.html
index 4c54445..280f26c 100644
--- a/content/docs/0.8.8-incubating/aql/filters.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/aql/functions.html b/content/docs/0.8.8-incubating/aql/functions.html
index 1620ff4..a3168f7 100644
--- a/content/docs/0.8.8-incubating/aql/functions.html
+++ b/content/docs/0.8.8-incubating/aql/functions.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/content/docs/0.8.8-incubating/aql/manual.html b/content/docs/0.8.8-incubating/aql/manual.html
index 42c7973..54516df 100644
--- a/content/docs/0.8.8-incubating/aql/manual.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/aql/primer-sql-like.html b/content/docs/0.8.8-incubating/aql/primer-sql-like.html
index 59e63d3..b0bce8b 100644
--- a/content/docs/0.8.8-incubating/aql/primer-sql-like.html
+++ b/content/docs/0.8.8-incubating/aql/primer-sql-like.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/content/docs/0.8.8-incubating/aql/primer.html b/content/docs/0.8.8-incubating/aql/primer.html
index b8507ac..fd2e8bb 100644
--- a/content/docs/0.8.8-incubating/aql/primer.html
+++ b/content/docs/0.8.8-incubating/aql/primer.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/content/docs/0.8.8-incubating/aql/similarity.html b/content/docs/0.8.8-incubating/aql/similarity.html
index 749d8ac..bacd122 100644
--- a/content/docs/0.8.8-incubating/aql/similarity.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/csv.html b/content/docs/0.8.8-incubating/csv.html
index 0286fd8..035cabd 100644
--- a/content/docs/0.8.8-incubating/csv.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/feeds/tutorial.html b/content/docs/0.8.8-incubating/feeds/tutorial.html
index 6c1e8f3..fbb3381 100644
--- a/content/docs/0.8.8-incubating/feeds/tutorial.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/index.html b/content/docs/0.8.8-incubating/index.html
index 472311a..f5ac705 100644
--- a/content/docs/0.8.8-incubating/index.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/install.html b/content/docs/0.8.8-incubating/install.html
index d318e11..54013e3 100644
--- a/content/docs/0.8.8-incubating/install.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/overview.html b/content/docs/0.8.8-incubating/overview.html
index 09184c7..e3fc18f 100644
--- a/content/docs/0.8.8-incubating/overview.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/udf.html b/content/docs/0.8.8-incubating/udf.html
index 8e78579..a939cd5 100644
--- a/content/docs/0.8.8-incubating/udf.html
+++ b/content/docs/0.8.8-incubating/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/content/docs/0.8.8-incubating/yarn.html b/content/docs/0.8.8-incubating/yarn.html
index 411ab87..6ae44c7 100644
--- a/content/docs/0.8.8-incubating/yarn.html
+++ b/content/docs/0.8.8-incubating/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">
diff --git a/content/docs/0.9.0/api.html b/content/docs/0.9.0/api.html
index e031454..c0ecdbf 100644
--- a/content/docs/0.9.0/api.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/aql/builtins.html b/content/docs/0.9.0/aql/builtins.html
index 1eb5137..3bb6637 100644
--- a/content/docs/0.9.0/aql/builtins.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/aql/externaldata.html b/content/docs/0.9.0/aql/externaldata.html
index 57b2a78..4de2e53 100644
--- a/content/docs/0.9.0/aql/externaldata.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/aql/filters.html b/content/docs/0.9.0/aql/filters.html
index 4d3b0bb..325e0c4 100644
--- a/content/docs/0.9.0/aql/filters.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/aql/fulltext.html b/content/docs/0.9.0/aql/fulltext.html
index 30c299e..7f0c4e6 100644
--- a/content/docs/0.9.0/aql/fulltext.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/aql/manual.html b/content/docs/0.9.0/aql/manual.html
index d0b4293..32eccdd 100644
--- a/content/docs/0.9.0/aql/manual.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/aql/primer.html b/content/docs/0.9.0/aql/primer.html
index 22e13c7..0415c22 100644
--- a/content/docs/0.9.0/aql/primer.html
+++ b/content/docs/0.9.0/aql/primer.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/content/docs/0.9.0/aql/similarity.html b/content/docs/0.9.0/aql/similarity.html
index e55d8c8..6e15d35 100644
--- a/content/docs/0.9.0/aql/similarity.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/csv.html b/content/docs/0.9.0/csv.html
index 35a7184..e2817f0 100644
--- a/content/docs/0.9.0/csv.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/datamodel.html b/content/docs/0.9.0/datamodel.html
index cf3b2bf..3e00d9d 100644
--- a/content/docs/0.9.0/datamodel.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/feeds/tutorial.html b/content/docs/0.9.0/feeds/tutorial.html
index 2d47f54..0044362 100644
--- a/content/docs/0.9.0/feeds/tutorial.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/index.html b/content/docs/0.9.0/index.html
index 72bff12..07eaf35 100644
--- a/content/docs/0.9.0/index.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/install.html b/content/docs/0.9.0/install.html
index 1d085a3..7a18991 100644
--- a/content/docs/0.9.0/install.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/ncservice.html b/content/docs/0.9.0/ncservice.html
index a076b65..2779df2 100644
--- a/content/docs/0.9.0/ncservice.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/overview.html b/content/docs/0.9.0/overview.html
index ac39a99..c749b9e 100644
--- a/content/docs/0.9.0/overview.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/sqlpp/builtins.html b/content/docs/0.9.0/sqlpp/builtins.html
index 8e368ac..1ce46d9 100644
--- a/content/docs/0.9.0/sqlpp/builtins.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/sqlpp/manual.html b/content/docs/0.9.0/sqlpp/manual.html
index 845214f..1978ea1 100644
--- a/content/docs/0.9.0/sqlpp/manual.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/sqlpp/primer-sqlpp.html b/content/docs/0.9.0/sqlpp/primer-sqlpp.html
index 1eccf62..248cfa8 100644
--- a/content/docs/0.9.0/sqlpp/primer-sqlpp.html
+++ b/content/docs/0.9.0/sqlpp/primer-sqlpp.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/content/docs/0.9.0/udf.html b/content/docs/0.9.0/udf.html
index 67b8ce6..bf7522c 100644
--- a/content/docs/0.9.0/udf.html
+++ b/content/docs/0.9.0/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/content/docs/0.9.0/yarn.html b/content/docs/0.9.0/yarn.html
index 1ff88c3..f129cf3 100644
--- a/content/docs/0.9.0/yarn.html
+++ b/content/docs/0.9.0/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">
diff --git a/content/docs/0.9.1/ansible.html b/content/docs/0.9.1/ansible.html
index 437076a..5cc3b5a 100644
--- a/content/docs/0.9.1/ansible.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/api.html b/content/docs/0.9.1/api.html
index a09ae06..9e70b82 100644
--- a/content/docs/0.9.1/api.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/builtins.html b/content/docs/0.9.1/aql/builtins.html
index 50aa666..30618da 100644
--- a/content/docs/0.9.1/aql/builtins.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/externaldata.html b/content/docs/0.9.1/aql/externaldata.html
index 54c92b5..450ae6b 100644
--- a/content/docs/0.9.1/aql/externaldata.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/filters.html b/content/docs/0.9.1/aql/filters.html
index 42c97ed..9f32ff4 100644
--- a/content/docs/0.9.1/aql/filters.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/fulltext.html b/content/docs/0.9.1/aql/fulltext.html
index 16ce5d0..6042a97 100644
--- a/content/docs/0.9.1/aql/fulltext.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/js-sdk.html b/content/docs/0.9.1/aql/js-sdk.html
index 9a0dc8c..cc214db 100644
--- a/content/docs/0.9.1/aql/js-sdk.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/manual.html b/content/docs/0.9.1/aql/manual.html
index 4b7f477..9d0f600 100644
--- a/content/docs/0.9.1/aql/manual.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aql/primer.html b/content/docs/0.9.1/aql/primer.html
index 8f9dbc8..f99be5d 100644
--- a/content/docs/0.9.1/aql/primer.html
+++ b/content/docs/0.9.1/aql/primer.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/content/docs/0.9.1/aql/similarity.html b/content/docs/0.9.1/aql/similarity.html
index f70aed3..e8e77ef 100644
--- a/content/docs/0.9.1/aql/similarity.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/aws.html b/content/docs/0.9.1/aws.html
index f8dd120..b53b971 100644
--- a/content/docs/0.9.1/aws.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/csv.html b/content/docs/0.9.1/csv.html
index c10e1af..ccbae67 100644
--- a/content/docs/0.9.1/csv.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/datamodel.html b/content/docs/0.9.1/datamodel.html
index 5687d78..d9f906d 100644
--- a/content/docs/0.9.1/datamodel.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/feeds/tutorial.html b/content/docs/0.9.1/feeds/tutorial.html
index 1a2b1c0..08c098d 100644
--- a/content/docs/0.9.1/feeds/tutorial.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/index.html b/content/docs/0.9.1/index.html
index 9c635b1..8b6e301 100644
--- a/content/docs/0.9.1/index.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/install.html b/content/docs/0.9.1/install.html
index 13ca7b9..a9f2906 100644
--- a/content/docs/0.9.1/install.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/ncservice.html b/content/docs/0.9.1/ncservice.html
index 7e8c388..e2465e6 100644
--- a/content/docs/0.9.1/ncservice.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/overview.html b/content/docs/0.9.1/overview.html
index 79af9ba..a122fcd 100644
--- a/content/docs/0.9.1/overview.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/sqlpp/builtins.html b/content/docs/0.9.1/sqlpp/builtins.html
index 8d9e75d..655f514 100644
--- a/content/docs/0.9.1/sqlpp/builtins.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/sqlpp/manual.html b/content/docs/0.9.1/sqlpp/manual.html
index 582af4a..844ed36 100644
--- a/content/docs/0.9.1/sqlpp/manual.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/sqlpp/primer-sqlpp.html b/content/docs/0.9.1/sqlpp/primer-sqlpp.html
index b109dba..edac4d4 100644
--- a/content/docs/0.9.1/sqlpp/primer-sqlpp.html
+++ b/content/docs/0.9.1/sqlpp/primer-sqlpp.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/content/docs/0.9.1/udf.html b/content/docs/0.9.1/udf.html
index 398e8b8..d914bd2 100644
--- a/content/docs/0.9.1/udf.html
+++ b/content/docs/0.9.1/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/content/docs/0.9.1/yarn.html b/content/docs/0.9.1/yarn.html
index 7027bf4..461599f 100644
--- a/content/docs/0.9.1/yarn.html
+++ b/content/docs/0.9.1/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">
diff --git a/content/docs/0.9.2/ansible.html b/content/docs/0.9.2/ansible.html
index 3691363..23b4306 100644
--- a/content/docs/0.9.2/ansible.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/api.html b/content/docs/0.9.2/api.html
index 1c87fe8..c2a4499 100644
--- a/content/docs/0.9.2/api.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/builtins.html b/content/docs/0.9.2/aql/builtins.html
index 443298c..98e9d8b 100644
--- a/content/docs/0.9.2/aql/builtins.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/externaldata.html b/content/docs/0.9.2/aql/externaldata.html
index fec80ae..c2af38d 100644
--- a/content/docs/0.9.2/aql/externaldata.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/filters.html b/content/docs/0.9.2/aql/filters.html
index 560d786..9fc9533 100644
--- a/content/docs/0.9.2/aql/filters.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/fulltext.html b/content/docs/0.9.2/aql/fulltext.html
index 5be0cfe..f13b9e8 100644
--- a/content/docs/0.9.2/aql/fulltext.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/js-sdk.html b/content/docs/0.9.2/aql/js-sdk.html
index 93d1269..631e5e1 100644
--- a/content/docs/0.9.2/aql/js-sdk.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/manual.html b/content/docs/0.9.2/aql/manual.html
index 11f23bf..a403095 100644
--- a/content/docs/0.9.2/aql/manual.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aql/primer.html b/content/docs/0.9.2/aql/primer.html
index 894b68b..2eea683 100644
--- a/content/docs/0.9.2/aql/primer.html
+++ b/content/docs/0.9.2/aql/primer.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/content/docs/0.9.2/aql/similarity.html b/content/docs/0.9.2/aql/similarity.html
index 3f45116..e6acada 100644
--- a/content/docs/0.9.2/aql/similarity.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/aws.html b/content/docs/0.9.2/aws.html
index 7f31136..514dfb0 100644
--- a/content/docs/0.9.2/aws.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/csv.html b/content/docs/0.9.2/csv.html
index 534bfd1..bab9de0 100644
--- a/content/docs/0.9.2/csv.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/datamodel.html b/content/docs/0.9.2/datamodel.html
index d064195..4218ead 100644
--- a/content/docs/0.9.2/datamodel.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/feeds/tutorial.html b/content/docs/0.9.2/feeds/tutorial.html
index b39917d..98b4a44 100644
--- a/content/docs/0.9.2/feeds/tutorial.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/index.html b/content/docs/0.9.2/index.html
index 96f7523..434af2e 100644
--- a/content/docs/0.9.2/index.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/install.html b/content/docs/0.9.2/install.html
index dc750ad..804f2a9 100644
--- a/content/docs/0.9.2/install.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/ncservice.html b/content/docs/0.9.2/ncservice.html
index 1c16a18..46abc07 100644
--- a/content/docs/0.9.2/ncservice.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/overview.html b/content/docs/0.9.2/overview.html
index ccf58dd..8cbe0ff 100644
--- a/content/docs/0.9.2/overview.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/sqlpp/builtins.html b/content/docs/0.9.2/sqlpp/builtins.html
index 243f489..a373ca3 100644
--- a/content/docs/0.9.2/sqlpp/builtins.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/sqlpp/manual.html b/content/docs/0.9.2/sqlpp/manual.html
index a2499d9..5e698ac 100644
--- a/content/docs/0.9.2/sqlpp/manual.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/sqlpp/primer-sqlpp.html b/content/docs/0.9.2/sqlpp/primer-sqlpp.html
index e297244..967f0bb 100644
--- a/content/docs/0.9.2/sqlpp/primer-sqlpp.html
+++ b/content/docs/0.9.2/sqlpp/primer-sqlpp.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/content/docs/0.9.2/udf.html b/content/docs/0.9.2/udf.html
index d5d937b..db3e6fc 100644
--- a/content/docs/0.9.2/udf.html
+++ b/content/docs/0.9.2/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/content/docs/0.9.2/yarn.html b/content/docs/0.9.2/yarn.html
index 2431c05..399d98f 100644
--- a/content/docs/0.9.2/yarn.html
+++ b/content/docs/0.9.2/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">
diff --git a/content/docs/0.9.3/ansible.html b/content/docs/0.9.3/ansible.html
index 46a90e8..fb49d6f 100644
--- a/content/docs/0.9.3/ansible.html
+++ b/content/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/content/docs/0.9.3/api.html b/content/docs/0.9.3/api.html
index b39682e..a20cc23 100644
--- a/content/docs/0.9.3/api.html
+++ b/content/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/content/docs/0.9.3/aql/builtins.html b/content/docs/0.9.3/aql/builtins.html
index 07b1636..6724587 100644
--- a/content/docs/0.9.3/aql/builtins.html
+++ b/content/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/content/docs/0.9.3/aql/externaldata.html b/content/docs/0.9.3/aql/externaldata.html
index 30ba8bb..725e036 100644
--- a/content/docs/0.9.3/aql/externaldata.html
+++ b/content/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/content/docs/0.9.3/aql/filters.html b/content/docs/0.9.3/aql/filters.html
index 7ec5ae9..601d0a8 100644
--- a/content/docs/0.9.3/aql/filters.html
+++ b/content/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/content/docs/0.9.3/aql/fulltext.html b/content/docs/0.9.3/aql/fulltext.html
index b4c0325..d95fcf8 100644
--- a/content/docs/0.9.3/aql/fulltext.html
+++ b/content/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/content/docs/0.9.3/aql/js-sdk.html b/content/docs/0.9.3/aql/js-sdk.html
index cc92416..42a8281 100644
--- a/content/docs/0.9.3/aql/js-sdk.html
+++ b/content/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/content/docs/0.9.3/aql/manual.html b/content/docs/0.9.3/aql/manual.html
index 411aa58..699e6e9 100644
--- a/content/docs/0.9.3/aql/manual.html
+++ b/content/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/content/docs/0.9.3/aql/primer.html b/content/docs/0.9.3/aql/primer.html
index 80a59e1..b71f56d 100644
--- a/content/docs/0.9.3/aql/primer.html
+++ b/content/docs/0.9.3/aql/primer.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/content/docs/0.9.3/aql/similarity.html b/content/docs/0.9.3/aql/similarity.html
index 5a69645..294ca36 100644
--- a/content/docs/0.9.3/aql/similarity.html
+++ b/content/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/content/docs/0.9.3/aws.html b/content/docs/0.9.3/aws.html
index 5249918..c42ae64 100644
--- a/content/docs/0.9.3/aws.html
+++ b/content/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/content/docs/0.9.3/csv.html b/content/docs/0.9.3/csv.html
index 1b01806..bae67a7 100644
--- a/content/docs/0.9.3/csv.html
+++ b/content/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/content/docs/0.9.3/datamodel.html b/content/docs/0.9.3/datamodel.html
index 5972cd7..e2d828c 100644
--- a/content/docs/0.9.3/datamodel.html
+++ b/content/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/content/docs/0.9.3/feeds/tutorial.html b/content/docs/0.9.3/feeds/tutorial.html
index bdd3ed2..151cda2 100644
--- a/content/docs/0.9.3/feeds/tutorial.html
+++ b/content/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/content/docs/0.9.3/index.html b/content/docs/0.9.3/index.html
index 7056139..1801973 100644
--- a/content/docs/0.9.3/index.html
+++ b/content/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/content/docs/0.9.3/install.html b/content/docs/0.9.3/install.html
index 4503d8b..028b8b7 100644
--- a/content/docs/0.9.3/install.html
+++ b/content/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/content/docs/0.9.3/ncservice.html b/content/docs/0.9.3/ncservice.html
index 8eb3b82..093daab 100644
--- a/content/docs/0.9.3/ncservice.html
+++ b/content/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/content/docs/0.9.3/overview.html b/content/docs/0.9.3/overview.html
index d92d2db..e0bc1a2 100644
--- a/content/docs/0.9.3/overview.html
+++ b/content/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/content/docs/0.9.3/sqlpp/builtins.html b/content/docs/0.9.3/sqlpp/builtins.html
index 8e5e370..4a0943d 100644
--- a/content/docs/0.9.3/sqlpp/builtins.html
+++ b/content/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/content/docs/0.9.3/sqlpp/manual.html b/content/docs/0.9.3/sqlpp/manual.html
index f7cc719..82cecc0 100644
--- a/content/docs/0.9.3/sqlpp/manual.html
+++ b/content/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/content/docs/0.9.3/sqlpp/primer-sqlpp.html b/content/docs/0.9.3/sqlpp/primer-sqlpp.html
index 6022d54..2d93691 100644
--- a/content/docs/0.9.3/sqlpp/primer-sqlpp.html
+++ b/content/docs/0.9.3/sqlpp/primer-sqlpp.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/content/docs/0.9.3/udf.html b/content/docs/0.9.3/udf.html
index 99e36d7..b7c3a9a 100644
--- a/content/docs/0.9.3/udf.html
+++ b/content/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/content/docs/0.9.3/yarn.html b/content/docs/0.9.3/yarn.html
index b84a1c3..04f45e0 100644
--- a/content/docs/0.9.3/yarn.html
+++ b/content/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">
diff --git a/docs/0.8.7-incubating/api.html b/docs/0.8.7-incubating/api.html
index 72fd689..a8e6d8f 100644
--- a/docs/0.8.7-incubating/api.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/aql/allens.html b/docs/0.8.7-incubating/aql/allens.html
index ec566c2..9c55f3d 100644
--- a/docs/0.8.7-incubating/aql/allens.html
+++ b/docs/0.8.7-incubating/aql/allens.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.8.7-incubating/aql/datamodel.html b/docs/0.8.7-incubating/aql/datamodel.html
index 7f756e6..00dd2db 100644
--- a/docs/0.8.7-incubating/aql/datamodel.html
+++ b/docs/0.8.7-incubating/aql/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.8.7-incubating/aql/externaldata.html b/docs/0.8.7-incubating/aql/externaldata.html
index b0ca194..ff9d07a 100644
--- a/docs/0.8.7-incubating/aql/externaldata.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/aql/filters.html b/docs/0.8.7-incubating/aql/filters.html
index 1347e30..2851c0d 100644
--- a/docs/0.8.7-incubating/aql/filters.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/aql/functions.html b/docs/0.8.7-incubating/aql/functions.html
index 28d5fbe..5530768 100644
--- a/docs/0.8.7-incubating/aql/functions.html
+++ b/docs/0.8.7-incubating/aql/functions.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.8.7-incubating/aql/js-sdk.html b/docs/0.8.7-incubating/aql/js-sdk.html
index 3f1129c..a8261b2 100644
--- a/docs/0.8.7-incubating/aql/js-sdk.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/aql/manual.html b/docs/0.8.7-incubating/aql/manual.html
index e091d43..fb83792 100644
--- a/docs/0.8.7-incubating/aql/manual.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/aql/primer-sql-like.html b/docs/0.8.7-incubating/aql/primer-sql-like.html
index 98e82ec..2cb246f 100644
--- a/docs/0.8.7-incubating/aql/primer-sql-like.html
+++ b/docs/0.8.7-incubating/aql/primer-sql-like.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.8.7-incubating/aql/primer.html b/docs/0.8.7-incubating/aql/primer.html
index 053f0f3..8e3e524 100644
--- a/docs/0.8.7-incubating/aql/primer.html
+++ b/docs/0.8.7-incubating/aql/primer.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.8.7-incubating/aql/similarity.html b/docs/0.8.7-incubating/aql/similarity.html
index ce239aa..e36d22f 100644
--- a/docs/0.8.7-incubating/aql/similarity.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/csv.html b/docs/0.8.7-incubating/csv.html
index dafc345..f1d85e5 100644
--- a/docs/0.8.7-incubating/csv.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/feeds/tutorial.html b/docs/0.8.7-incubating/feeds/tutorial.html
index 115d7dd..bea59a6 100644
--- a/docs/0.8.7-incubating/feeds/tutorial.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/index.html b/docs/0.8.7-incubating/index.html
index 4f4f80b..f2be3b0 100644
--- a/docs/0.8.7-incubating/index.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/install.html b/docs/0.8.7-incubating/install.html
index e6a164c..b7e342c 100644
--- a/docs/0.8.7-incubating/install.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/overview.html b/docs/0.8.7-incubating/overview.html
index 50a79e2..f328c2f 100644
--- a/docs/0.8.7-incubating/overview.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/udf.html b/docs/0.8.7-incubating/udf.html
index fa9d934..549a052 100644
--- a/docs/0.8.7-incubating/udf.html
+++ b/docs/0.8.7-incubating/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.8.7-incubating/yarn.html b/docs/0.8.7-incubating/yarn.html
index 318ce90..3e70e82 100644
--- a/docs/0.8.7-incubating/yarn.html
+++ b/docs/0.8.7-incubating/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">
diff --git a/docs/0.8.8-incubating/api.html b/docs/0.8.8-incubating/api.html
index 06cf6f1..5c41305 100644
--- a/docs/0.8.8-incubating/api.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/aql/allens.html b/docs/0.8.8-incubating/aql/allens.html
index 0c7d66f..b946ef0 100644
--- a/docs/0.8.8-incubating/aql/allens.html
+++ b/docs/0.8.8-incubating/aql/allens.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.8.8-incubating/aql/datamodel.html b/docs/0.8.8-incubating/aql/datamodel.html
index 9c7189b..85dc319 100644
--- a/docs/0.8.8-incubating/aql/datamodel.html
+++ b/docs/0.8.8-incubating/aql/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.8.8-incubating/aql/externaldata.html b/docs/0.8.8-incubating/aql/externaldata.html
index 37adfbf..0a49382 100644
--- a/docs/0.8.8-incubating/aql/externaldata.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/aql/filters.html b/docs/0.8.8-incubating/aql/filters.html
index 4c54445..280f26c 100644
--- a/docs/0.8.8-incubating/aql/filters.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/aql/functions.html b/docs/0.8.8-incubating/aql/functions.html
index 1620ff4..a3168f7 100644
--- a/docs/0.8.8-incubating/aql/functions.html
+++ b/docs/0.8.8-incubating/aql/functions.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.8.8-incubating/aql/manual.html b/docs/0.8.8-incubating/aql/manual.html
index 42c7973..54516df 100644
--- a/docs/0.8.8-incubating/aql/manual.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/aql/primer-sql-like.html b/docs/0.8.8-incubating/aql/primer-sql-like.html
index 59e63d3..b0bce8b 100644
--- a/docs/0.8.8-incubating/aql/primer-sql-like.html
+++ b/docs/0.8.8-incubating/aql/primer-sql-like.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.8.8-incubating/aql/primer.html b/docs/0.8.8-incubating/aql/primer.html
index b8507ac..fd2e8bb 100644
--- a/docs/0.8.8-incubating/aql/primer.html
+++ b/docs/0.8.8-incubating/aql/primer.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.8.8-incubating/aql/similarity.html b/docs/0.8.8-incubating/aql/similarity.html
index 749d8ac..bacd122 100644
--- a/docs/0.8.8-incubating/aql/similarity.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/csv.html b/docs/0.8.8-incubating/csv.html
index 0286fd8..035cabd 100644
--- a/docs/0.8.8-incubating/csv.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/feeds/tutorial.html b/docs/0.8.8-incubating/feeds/tutorial.html
index 6c1e8f3..fbb3381 100644
--- a/docs/0.8.8-incubating/feeds/tutorial.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/index.html b/docs/0.8.8-incubating/index.html
index 472311a..f5ac705 100644
--- a/docs/0.8.8-incubating/index.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/install.html b/docs/0.8.8-incubating/install.html
index d318e11..54013e3 100644
--- a/docs/0.8.8-incubating/install.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/overview.html b/docs/0.8.8-incubating/overview.html
index 09184c7..e3fc18f 100644
--- a/docs/0.8.8-incubating/overview.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/udf.html b/docs/0.8.8-incubating/udf.html
index 8e78579..a939cd5 100644
--- a/docs/0.8.8-incubating/udf.html
+++ b/docs/0.8.8-incubating/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.8.8-incubating/yarn.html b/docs/0.8.8-incubating/yarn.html
index 411ab87..6ae44c7 100644
--- a/docs/0.8.8-incubating/yarn.html
+++ b/docs/0.8.8-incubating/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">
diff --git a/docs/0.9.0/api.html b/docs/0.9.0/api.html
index e031454..c0ecdbf 100644
--- a/docs/0.9.0/api.html
+++ b/docs/0.9.0/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.0/aql/builtins.html b/docs/0.9.0/aql/builtins.html
index 1eb5137..3bb6637 100644
--- a/docs/0.9.0/aql/builtins.html
+++ b/docs/0.9.0/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.0/aql/externaldata.html b/docs/0.9.0/aql/externaldata.html
index 57b2a78..4de2e53 100644
--- a/docs/0.9.0/aql/externaldata.html
+++ b/docs/0.9.0/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.0/aql/filters.html b/docs/0.9.0/aql/filters.html
index 4d3b0bb..325e0c4 100644
--- a/docs/0.9.0/aql/filters.html
+++ b/docs/0.9.0/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.0/aql/fulltext.html b/docs/0.9.0/aql/fulltext.html
index 30c299e..7f0c4e6 100644
--- a/docs/0.9.0/aql/fulltext.html
+++ b/docs/0.9.0/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.0/aql/manual.html b/docs/0.9.0/aql/manual.html
index d0b4293..32eccdd 100644
--- a/docs/0.9.0/aql/manual.html
+++ b/docs/0.9.0/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.0/aql/primer.html b/docs/0.9.0/aql/primer.html
index 22e13c7..0415c22 100644
--- a/docs/0.9.0/aql/primer.html
+++ b/docs/0.9.0/aql/primer.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.0/aql/similarity.html b/docs/0.9.0/aql/similarity.html
index e55d8c8..6e15d35 100644
--- a/docs/0.9.0/aql/similarity.html
+++ b/docs/0.9.0/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.0/csv.html b/docs/0.9.0/csv.html
index 35a7184..e2817f0 100644
--- a/docs/0.9.0/csv.html
+++ b/docs/0.9.0/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.0/datamodel.html b/docs/0.9.0/datamodel.html
index cf3b2bf..3e00d9d 100644
--- a/docs/0.9.0/datamodel.html
+++ b/docs/0.9.0/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.0/feeds/tutorial.html b/docs/0.9.0/feeds/tutorial.html
index 2d47f54..0044362 100644
--- a/docs/0.9.0/feeds/tutorial.html
+++ b/docs/0.9.0/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.0/index.html b/docs/0.9.0/index.html
index 72bff12..07eaf35 100644
--- a/docs/0.9.0/index.html
+++ b/docs/0.9.0/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.0/install.html b/docs/0.9.0/install.html
index 1d085a3..7a18991 100644
--- a/docs/0.9.0/install.html
+++ b/docs/0.9.0/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.0/ncservice.html b/docs/0.9.0/ncservice.html
index a076b65..2779df2 100644
--- a/docs/0.9.0/ncservice.html
+++ b/docs/0.9.0/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.0/overview.html b/docs/0.9.0/overview.html
index ac39a99..c749b9e 100644
--- a/docs/0.9.0/overview.html
+++ b/docs/0.9.0/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.0/sqlpp/builtins.html b/docs/0.9.0/sqlpp/builtins.html
index 8e368ac..1ce46d9 100644
--- a/docs/0.9.0/sqlpp/builtins.html
+++ b/docs/0.9.0/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.0/sqlpp/manual.html b/docs/0.9.0/sqlpp/manual.html
index 845214f..1978ea1 100644
--- a/docs/0.9.0/sqlpp/manual.html
+++ b/docs/0.9.0/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.0/sqlpp/primer-sqlpp.html b/docs/0.9.0/sqlpp/primer-sqlpp.html
index 1eccf62..248cfa8 100644
--- a/docs/0.9.0/sqlpp/primer-sqlpp.html
+++ b/docs/0.9.0/sqlpp/primer-sqlpp.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.0/udf.html b/docs/0.9.0/udf.html
index 67b8ce6..bf7522c 100644
--- a/docs/0.9.0/udf.html
+++ b/docs/0.9.0/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.0/yarn.html b/docs/0.9.0/yarn.html
index 1ff88c3..f129cf3 100644
--- a/docs/0.9.0/yarn.html
+++ b/docs/0.9.0/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">
diff --git a/docs/0.9.1/ansible.html b/docs/0.9.1/ansible.html
index 437076a..5cc3b5a 100644
--- a/docs/0.9.1/ansible.html
+++ b/docs/0.9.1/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.1/api.html b/docs/0.9.1/api.html
index a09ae06..9e70b82 100644
--- a/docs/0.9.1/api.html
+++ b/docs/0.9.1/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.1/aql/builtins.html b/docs/0.9.1/aql/builtins.html
index 50aa666..30618da 100644
--- a/docs/0.9.1/aql/builtins.html
+++ b/docs/0.9.1/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.1/aql/externaldata.html b/docs/0.9.1/aql/externaldata.html
index 54c92b5..450ae6b 100644
--- a/docs/0.9.1/aql/externaldata.html
+++ b/docs/0.9.1/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.1/aql/filters.html b/docs/0.9.1/aql/filters.html
index 42c97ed..9f32ff4 100644
--- a/docs/0.9.1/aql/filters.html
+++ b/docs/0.9.1/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.1/aql/fulltext.html b/docs/0.9.1/aql/fulltext.html
index 16ce5d0..6042a97 100644
--- a/docs/0.9.1/aql/fulltext.html
+++ b/docs/0.9.1/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.1/aql/js-sdk.html b/docs/0.9.1/aql/js-sdk.html
index 9a0dc8c..cc214db 100644
--- a/docs/0.9.1/aql/js-sdk.html
+++ b/docs/0.9.1/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.1/aql/manual.html b/docs/0.9.1/aql/manual.html
index 4b7f477..9d0f600 100644
--- a/docs/0.9.1/aql/manual.html
+++ b/docs/0.9.1/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.1/aql/primer.html b/docs/0.9.1/aql/primer.html
index 8f9dbc8..f99be5d 100644
--- a/docs/0.9.1/aql/primer.html
+++ b/docs/0.9.1/aql/primer.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.1/aql/similarity.html b/docs/0.9.1/aql/similarity.html
index f70aed3..e8e77ef 100644
--- a/docs/0.9.1/aql/similarity.html
+++ b/docs/0.9.1/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.1/aws.html b/docs/0.9.1/aws.html
index f8dd120..b53b971 100644
--- a/docs/0.9.1/aws.html
+++ b/docs/0.9.1/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.1/csv.html b/docs/0.9.1/csv.html
index c10e1af..ccbae67 100644
--- a/docs/0.9.1/csv.html
+++ b/docs/0.9.1/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.1/datamodel.html b/docs/0.9.1/datamodel.html
index 5687d78..d9f906d 100644
--- a/docs/0.9.1/datamodel.html
+++ b/docs/0.9.1/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.1/feeds/tutorial.html b/docs/0.9.1/feeds/tutorial.html
index 1a2b1c0..08c098d 100644
--- a/docs/0.9.1/feeds/tutorial.html
+++ b/docs/0.9.1/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.1/index.html b/docs/0.9.1/index.html
index 9c635b1..8b6e301 100644
--- a/docs/0.9.1/index.html
+++ b/docs/0.9.1/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.1/install.html b/docs/0.9.1/install.html
index 13ca7b9..a9f2906 100644
--- a/docs/0.9.1/install.html
+++ b/docs/0.9.1/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.1/ncservice.html b/docs/0.9.1/ncservice.html
index 7e8c388..e2465e6 100644
--- a/docs/0.9.1/ncservice.html
+++ b/docs/0.9.1/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.1/overview.html b/docs/0.9.1/overview.html
index 79af9ba..a122fcd 100644
--- a/docs/0.9.1/overview.html
+++ b/docs/0.9.1/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.1/sqlpp/builtins.html b/docs/0.9.1/sqlpp/builtins.html
index 8d9e75d..655f514 100644
--- a/docs/0.9.1/sqlpp/builtins.html
+++ b/docs/0.9.1/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.1/sqlpp/manual.html b/docs/0.9.1/sqlpp/manual.html
index 582af4a..844ed36 100644
--- a/docs/0.9.1/sqlpp/manual.html
+++ b/docs/0.9.1/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.1/sqlpp/primer-sqlpp.html b/docs/0.9.1/sqlpp/primer-sqlpp.html
index b109dba..edac4d4 100644
--- a/docs/0.9.1/sqlpp/primer-sqlpp.html
+++ b/docs/0.9.1/sqlpp/primer-sqlpp.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.1/udf.html b/docs/0.9.1/udf.html
index 398e8b8..d914bd2 100644
--- a/docs/0.9.1/udf.html
+++ b/docs/0.9.1/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.1/yarn.html b/docs/0.9.1/yarn.html
index 7027bf4..461599f 100644
--- a/docs/0.9.1/yarn.html
+++ b/docs/0.9.1/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">
diff --git a/docs/0.9.2/ansible.html b/docs/0.9.2/ansible.html
index 3691363..23b4306 100644
--- a/docs/0.9.2/ansible.html
+++ b/docs/0.9.2/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.2/api.html b/docs/0.9.2/api.html
index 1c87fe8..c2a4499 100644
--- a/docs/0.9.2/api.html
+++ b/docs/0.9.2/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.2/aql/builtins.html b/docs/0.9.2/aql/builtins.html
index 443298c..98e9d8b 100644
--- a/docs/0.9.2/aql/builtins.html
+++ b/docs/0.9.2/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.2/aql/externaldata.html b/docs/0.9.2/aql/externaldata.html
index fec80ae..c2af38d 100644
--- a/docs/0.9.2/aql/externaldata.html
+++ b/docs/0.9.2/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.2/aql/filters.html b/docs/0.9.2/aql/filters.html
index 560d786..9fc9533 100644
--- a/docs/0.9.2/aql/filters.html
+++ b/docs/0.9.2/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.2/aql/fulltext.html b/docs/0.9.2/aql/fulltext.html
index 5be0cfe..f13b9e8 100644
--- a/docs/0.9.2/aql/fulltext.html
+++ b/docs/0.9.2/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.2/aql/js-sdk.html b/docs/0.9.2/aql/js-sdk.html
index 93d1269..631e5e1 100644
--- a/docs/0.9.2/aql/js-sdk.html
+++ b/docs/0.9.2/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.2/aql/manual.html b/docs/0.9.2/aql/manual.html
index 11f23bf..a403095 100644
--- a/docs/0.9.2/aql/manual.html
+++ b/docs/0.9.2/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.2/aql/primer.html b/docs/0.9.2/aql/primer.html
index 894b68b..2eea683 100644
--- a/docs/0.9.2/aql/primer.html
+++ b/docs/0.9.2/aql/primer.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.2/aql/similarity.html b/docs/0.9.2/aql/similarity.html
index 3f45116..e6acada 100644
--- a/docs/0.9.2/aql/similarity.html
+++ b/docs/0.9.2/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.2/aws.html b/docs/0.9.2/aws.html
index 7f31136..514dfb0 100644
--- a/docs/0.9.2/aws.html
+++ b/docs/0.9.2/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.2/csv.html b/docs/0.9.2/csv.html
index 534bfd1..bab9de0 100644
--- a/docs/0.9.2/csv.html
+++ b/docs/0.9.2/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.2/datamodel.html b/docs/0.9.2/datamodel.html
index d064195..4218ead 100644
--- a/docs/0.9.2/datamodel.html
+++ b/docs/0.9.2/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.2/feeds/tutorial.html b/docs/0.9.2/feeds/tutorial.html
index b39917d..98b4a44 100644
--- a/docs/0.9.2/feeds/tutorial.html
+++ b/docs/0.9.2/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.2/index.html b/docs/0.9.2/index.html
index 96f7523..434af2e 100644
--- a/docs/0.9.2/index.html
+++ b/docs/0.9.2/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.2/install.html b/docs/0.9.2/install.html
index dc750ad..804f2a9 100644
--- a/docs/0.9.2/install.html
+++ b/docs/0.9.2/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.2/ncservice.html b/docs/0.9.2/ncservice.html
index 1c16a18..46abc07 100644
--- a/docs/0.9.2/ncservice.html
+++ b/docs/0.9.2/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.2/overview.html b/docs/0.9.2/overview.html
index ccf58dd..8cbe0ff 100644
--- a/docs/0.9.2/overview.html
+++ b/docs/0.9.2/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.2/sqlpp/builtins.html b/docs/0.9.2/sqlpp/builtins.html
index 243f489..a373ca3 100644
--- a/docs/0.9.2/sqlpp/builtins.html
+++ b/docs/0.9.2/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.2/sqlpp/manual.html b/docs/0.9.2/sqlpp/manual.html
index a2499d9..5e698ac 100644
--- a/docs/0.9.2/sqlpp/manual.html
+++ b/docs/0.9.2/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.2/sqlpp/primer-sqlpp.html b/docs/0.9.2/sqlpp/primer-sqlpp.html
index e297244..967f0bb 100644
--- a/docs/0.9.2/sqlpp/primer-sqlpp.html
+++ b/docs/0.9.2/sqlpp/primer-sqlpp.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.2/udf.html b/docs/0.9.2/udf.html
index d5d937b..db3e6fc 100644
--- a/docs/0.9.2/udf.html
+++ b/docs/0.9.2/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.2/yarn.html b/docs/0.9.2/yarn.html
index 2431c05..399d98f 100644
--- a/docs/0.9.2/yarn.html
+++ b/docs/0.9.2/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">
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">
