From 61fa812351040ba7c1b12db793c6752062304136 Mon Sep 17 00:00:00 2001
From: Niclas Finne <nfi@sics.se>
Date: Tue, 12 Apr 2011 08:15:29 +0200
Subject: [PATCH] Added missing separators in Javascript. Fixed sensors web
 page to use the right Javascript function to reload sensor data.

---
 examples/sky-ip/httpd-fs/sensors.shtml |   6 +-
 examples/sky-ip/httpd-fsdata.c         | 434 ++++++++++++-------------
 examples/sky-ip/sensors-script.js      |  18 +-
 3 files changed, 226 insertions(+), 232 deletions(-)

diff --git a/examples/sky-ip/httpd-fs/sensors.shtml b/examples/sky-ip/httpd-fs/sensors.shtml
index fb04e3d12..aaab099cd 100644
--- a/examples/sky-ip/httpd-fs/sensors.shtml
+++ b/examples/sky-ip/httpd-fs/sensors.shtml
@@ -1,11 +1,11 @@
 %!: /header.html
 <script type="text/javascript">
-var start;i=new Image(50,60)i.src="spin.gif"function load(){var img=document.getElementById("spin");img.innerHTML='&nbsp;';loadData()}function loadData(){var r;try{r=new XMLHttpRequest()}catch(e){try{r=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{r=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){alert("Your browser does not support AJAX!");return false}}}r.onreadystatechange=function(){if(r.readyState==1){var img=document.getElementById("spin");img.innerHTML='<img src="spin.gif">'}if(r.readyState==4){var img=document.getElementById("spin");img.innerHTML='took '+((new Date()).getTime()-start.getTime())/1000+' seconds';eval(r.responseText)}}start=new Date();r.open("GET","/sensordata.shtml",true);r.send(null)}function e(el){d=document;if(d.getElementById){return d.getElementById(el)}else if(d.all){return d.all[el]}}function s(el,n,max,text){e(el).innerHTML='<table width=504 border=0 cellpadding=1 cellspacing=0>'+'<tr><td width=200>'+text+'</td>'+'<td width='+(300*n/max)+' bgcolor="gray">&nbsp;</td>'+'<td width='+(300-300*n/max)+' bgcolor="lightgray">&nbsp;</td>'+'</table>'}function dc(n,d){return n.toFixed(d)}function t(m){n=dc(-39.6+0.01*m,1);s('temp',n,40,'Temperature '+n+' &deg;C')}function h(m){n=dc(-4+0.0405*m-2.8e-6*(m*m),2);s('hum',n,100,'Humidity '+n+'%')}function l1(m){n=dc(.7629394375*m,0);s('l1',n,200,'Light 1 '+n)}function l2(m){n=dc(.4693603*m,0);s('l2',n,200,'Light 2 '+n)}function rs(m){n=m+45;s('rs',n,100,'RSSI '+n)}function p(c,l,t,r){tm=c+l;cp=c*1.8/tm;lp=l*0.0545/tm;lt=t*17.7/tm;lr=r*20/tm;n=cp+lp+lt+lr;s('p',n,30,'Power consumption '+dc(n,2)+' mW');s('pc',cp,30,'CPU power '+dc(cp,2)+' mW');s('pl',lp,30,'LPM power '+dc(lp,2)+' mW');s('pr',lr,30,'Radio RX power '+dc(lr,2)+' mW');s('pt',lt,30,'Radio TX power '+dc(lt,2)+' mW')}function i(n){e('i').innerHTML=n}
+var start,d=document;i=new Image(50,60);i.src="spin.gif";function load(){var img=d.getElementById("spin");img.innerHTML='&nbsp;';loadData()}function loadData(){var r;try{r=new XMLHttpRequest()}catch(e){try{r=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{r=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){alert("Your browser does not support AJAX!");return false}}}r.onreadystatechange=function(){if(r.readyState==1){var img=d.getElementById("spin");img.innerHTML='<img src="spin.gif">'}if(r.readyState==4){var img=d.getElementById("spin");img.innerHTML='took '+((new Date()).getTime()-start.getTime())/1000+' seconds';eval(r.responseText)}};start=new Date();r.open("GET","/sensordata.shtml",true);r.send(null)}function e(el){if(d.getElementById){return d.getElementById(el)}if(d.all){return d.all[el]}}function s(el,n,max,text){e(el).innerHTML='<table width=504 border=0 cellpadding=1 cellspacing=0><tr><td width=200>'+text+'</td><td width='+(300*n/max)+' bgcolor="gray">&nbsp;</td><td width='+(300-300*n/max)+' bgcolor="lightgray">&nbsp;</td></table>'}function dc(n,d){return n.toFixed(d)}function t(m){n=dc(-39.6+0.01*m,1);s('temp',n,40,'Temperature '+n+' &deg;C')}function h(m){n=dc(-4+0.0405*m-2.8e-6*(m*m),2);s('hum',n,100,'Humidity '+n+'%')}function l1(m){n=dc(.7629394375*m,0);s('l1',n,200,'Light 1 '+n)}function l2(m){n=dc(.4693603*m,0);s('l2',n,200,'Light 2 '+n)}function rs(m){n=m+45;s('rs',n,100,'RSSI '+n)}function p(c,l,t,r){tm=c+l;cp=c*1.8/tm;lp=l*0.0545/tm;lt=t*17.7/tm;lr=r*20/tm;n=cp+lp+lt+lr;s('p',n,30,'Power consumption '+dc(n,2)+' mW');s('pc',cp,30,'CPU power '+dc(cp,2)+' mW');s('pl',lp,30,'LPM power '+dc(lp,2)+' mW');s('pr',lr,30,'Radio RX power '+dc(lr,2)+' mW');s('pt',lt,30,'Radio TX power '+dc(lt,2)+' mW')}function i(n){e('i').innerHTML=n}
 </script>
 <h1>Node
 %! nodeid
 </h1>
-<a onclick="loadSensordata();" href="#">Reload</a>
+<a onclick="loadData();" href="#">Reload</a>
 <span id="spin"> </span>
 <h2>Environment</h2>
 <div id="temp"></div>
@@ -22,5 +22,3 @@ var start;i=new Image(50,60)i.src="spin.gif"function load(){var img=document.get
 <br><br>
 <div id="i">0</div>
 %!: /footer.html
-
-
diff --git a/examples/sky-ip/httpd-fsdata.c b/examples/sky-ip/httpd-fsdata.c
index 7801efb8e..fbeaea5c8 100644
--- a/examples/sky-ip/httpd-fsdata.c
+++ b/examples/sky-ip/httpd-fsdata.c
@@ -1,4 +1,4 @@
-/*********Generated by contiki/tools/makefsdata on 2010-02-03*********/
+/*********Generated by contiki/tools/makefsdata on 2011-04-11*********/
 
 
 const char data_sensordata_shtml[30]  = {
@@ -7,7 +7,7 @@ const char data_sensordata_shtml[30]  = {
    0x25, 0x21, 0x20, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73,
    0x0a, 0x00};
 
-const char data_sensors_shtml[2264]  = {
+const char data_sensors_shtml[2221]  = {
   /* /sensors.shtml */
    0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x00,
    0x25, 0x21, 0x3a, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
@@ -15,226 +15,222 @@ const char data_sensors_shtml[2264]  = {
    0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
    0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61,
    0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x3e, 0x0a, 0x76,
-   0x61, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0x69,
-   0x3d, 0x6e, 0x65, 0x77, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65,
-   0x28, 0x35, 0x30, 0x2c, 0x36, 0x30, 0x29, 0x69, 0x2e, 0x73,
-   0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x2e, 0x67,
-   0x69, 0x66, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
-   0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x29, 0x7b, 0x76,
-   0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d, 0x64, 0x6f, 0x63,
-   0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45,
-   0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64,
-   0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x29, 0x3b, 0x69,
-   0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
-   0x4d, 0x4c, 0x3d, 0x27, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b,
-   0x27, 0x3b, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61,
-   0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
-   0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61,
-   0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3b, 0x74,
-   0x72, 0x79, 0x7b, 0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x58,
-   0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75,
-   0x65, 0x73, 0x74, 0x28, 0x29, 0x7d, 0x63, 0x61, 0x74, 0x63,
-   0x68, 0x28, 0x65, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x72,
-   0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69, 0x76,
-   0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x22,
-   0x4d, 0x73, 0x78, 0x6d, 0x6c, 0x32, 0x2e, 0x58, 0x4d, 0x4c,
-   0x48, 0x54, 0x54, 0x50, 0x22, 0x29, 0x7d, 0x63, 0x61, 0x74,
-   0x63, 0x68, 0x28, 0x65, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b,
-   0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69,
-   0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28,
-   0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
-   0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, 0x54, 0x50, 0x22, 0x29,
-   0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x7b,
-   0x61, 0x6c, 0x65, 0x72, 0x74, 0x28, 0x22, 0x59, 0x6f, 0x75,
-   0x72, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x20,
-   0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73,
-   0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x41, 0x4a, 0x41,
-   0x58, 0x21, 0x22, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72,
-   0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x7d, 0x7d,
-   0x72, 0x2e, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x73,
-   0x74, 0x61, 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
-   0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
-   0x29, 0x7b, 0x69, 0x66, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x61,
-   0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3d, 0x3d, 0x31,
+   0x61, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2c, 0x64,
+   0x3d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x3b,
+   0x69, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x49, 0x6d, 0x61, 0x67,
+   0x65, 0x28, 0x35, 0x30, 0x2c, 0x36, 0x30, 0x29, 0x3b, 0x69,
+   0x2e, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e,
+   0x2e, 0x67, 0x69, 0x66, 0x22, 0x3b, 0x66, 0x75, 0x6e, 0x63,
+   0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x28,
    0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d,
-   0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67,
-   0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42,
-   0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22,
-   0x29, 0x3b, 0x69, 0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65,
-   0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27, 0x3c, 0x69, 0x6d,
-   0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69,
-   0x6e, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x3e, 0x27, 0x7d, 0x69,
-   0x66, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53,
-   0x74, 0x61, 0x74, 0x65, 0x3d, 0x3d, 0x34, 0x29, 0x7b, 0x76,
-   0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d, 0x64, 0x6f, 0x63,
-   0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45,
-   0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64,
-   0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x29, 0x3b, 0x69,
-   0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
-   0x4d, 0x4c, 0x3d, 0x27, 0x74, 0x6f, 0x6f, 0x6b, 0x20, 0x27,
-   0x2b, 0x28, 0x28, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74,
-   0x65, 0x28, 0x29, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69,
-   0x6d, 0x65, 0x28, 0x29, 0x2d, 0x73, 0x74, 0x61, 0x72, 0x74,
-   0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29,
-   0x29, 0x2f, 0x31, 0x30, 0x30, 0x30, 0x2b, 0x27, 0x20, 0x73,
-   0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x27, 0x3b, 0x65, 0x76,
-   0x61, 0x6c, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f,
-   0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x29, 0x7d, 0x7d,
-   0x73, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x6e, 0x65, 0x77, 0x20,
-   0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0x72, 0x2e, 0x6f,
-   0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, 0x45, 0x54, 0x22, 0x2c,
-   0x22, 0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x64, 0x61,
-   0x74, 0x61, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x2c,
-   0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x72, 0x2e, 0x73, 0x65,
-   0x6e, 0x64, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x66,
-   0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28,
-   0x65, 0x6c, 0x29, 0x7b, 0x64, 0x3d, 0x64, 0x6f, 0x63, 0x75,
-   0x6d, 0x65, 0x6e, 0x74, 0x3b, 0x69, 0x66, 0x28, 0x64, 0x2e,
-   0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
-   0x42, 0x79, 0x49, 0x64, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75,
-   0x72, 0x6e, 0x20, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c,
-   0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28,
-   0x65, 0x6c, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69,
-   0x66, 0x28, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x29, 0x7b, 0x72,
-   0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x2e, 0x61, 0x6c,
-   0x6c, 0x5b, 0x65, 0x6c, 0x5d, 0x7d, 0x7d, 0x66, 0x75, 0x6e,
-   0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x65, 0x6c,
-   0x2c, 0x6e, 0x2c, 0x6d, 0x61, 0x78, 0x2c, 0x74, 0x65, 0x78,
-   0x74, 0x29, 0x7b, 0x65, 0x28, 0x65, 0x6c, 0x29, 0x2e, 0x69,
+   0x64, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65,
+   0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x70,
+   0x69, 0x6e, 0x22, 0x29, 0x3b, 0x69, 0x6d, 0x67, 0x2e, 0x69,
    0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27,
-   0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64,
-   0x74, 0x68, 0x3d, 0x35, 0x30, 0x34, 0x20, 0x62, 0x6f, 0x72,
-   0x64, 0x65, 0x72, 0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c, 0x6c,
-   0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x31, 0x20,
-   0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e,
-   0x67, 0x3d, 0x30, 0x3e, 0x27, 0x2b, 0x27, 0x3c, 0x74, 0x72,
-   0x3e, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68,
-   0x3d, 0x32, 0x30, 0x30, 0x3e, 0x27, 0x2b, 0x74, 0x65, 0x78,
-   0x74, 0x2b, 0x27, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x27, 0x2b,
-   0x27, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68,
-   0x3d, 0x27, 0x2b, 0x28, 0x33, 0x30, 0x30, 0x2a, 0x6e, 0x2f,
-   0x6d, 0x61, 0x78, 0x29, 0x2b, 0x27, 0x20, 0x62, 0x67, 0x63,
-   0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x67, 0x72, 0x61, 0x79,
-   0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f,
-   0x74, 0x64, 0x3e, 0x27, 0x2b, 0x27, 0x3c, 0x74, 0x64, 0x20,
-   0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x27, 0x2b, 0x28, 0x33,
-   0x30, 0x30, 0x2d, 0x33, 0x30, 0x30, 0x2a, 0x6e, 0x2f, 0x6d,
-   0x61, 0x78, 0x29, 0x2b, 0x27, 0x20, 0x62, 0x67, 0x63, 0x6f,
-   0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x6c, 0x69, 0x67, 0x68, 0x74,
-   0x67, 0x72, 0x61, 0x79, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73,
-   0x70, 0x3b, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x27, 0x2b, 0x27,
-   0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x27, 0x7d,
-   0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64,
-   0x63, 0x28, 0x6e, 0x2c, 0x64, 0x29, 0x7b, 0x72, 0x65, 0x74,
-   0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x6f, 0x46, 0x69,
-   0x78, 0x65, 0x64, 0x28, 0x64, 0x29, 0x7d, 0x66, 0x75, 0x6e,
-   0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6d, 0x29,
-   0x7b, 0x6e, 0x3d, 0x64, 0x63, 0x28, 0x2d, 0x33, 0x39, 0x2e,
-   0x36, 0x2b, 0x30, 0x2e, 0x30, 0x31, 0x2a, 0x6d, 0x2c, 0x31,
-   0x29, 0x3b, 0x73, 0x28, 0x27, 0x74, 0x65, 0x6d, 0x70, 0x27,
-   0x2c, 0x6e, 0x2c, 0x34, 0x30, 0x2c, 0x27, 0x54, 0x65, 0x6d,
-   0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x27,
-   0x2b, 0x6e, 0x2b, 0x27, 0x20, 0x26, 0x64, 0x65, 0x67, 0x3b,
-   0x43, 0x27, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
-   0x6f, 0x6e, 0x20, 0x68, 0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d,
-   0x64, 0x63, 0x28, 0x2d, 0x34, 0x2b, 0x30, 0x2e, 0x30, 0x34,
-   0x30, 0x35, 0x2a, 0x6d, 0x2d, 0x32, 0x2e, 0x38, 0x65, 0x2d,
-   0x36, 0x2a, 0x28, 0x6d, 0x2a, 0x6d, 0x29, 0x2c, 0x32, 0x29,
-   0x3b, 0x73, 0x28, 0x27, 0x68, 0x75, 0x6d, 0x27, 0x2c, 0x6e,
-   0x2c, 0x31, 0x30, 0x30, 0x2c, 0x27, 0x48, 0x75, 0x6d, 0x69,
-   0x64, 0x69, 0x74, 0x79, 0x20, 0x27, 0x2b, 0x6e, 0x2b, 0x27,
-   0x25, 0x27, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
-   0x6f, 0x6e, 0x20, 0x6c, 0x31, 0x28, 0x6d, 0x29, 0x7b, 0x6e,
-   0x3d, 0x64, 0x63, 0x28, 0x2e, 0x37, 0x36, 0x32, 0x39, 0x33,
-   0x39, 0x34, 0x33, 0x37, 0x35, 0x2a, 0x6d, 0x2c, 0x30, 0x29,
-   0x3b, 0x73, 0x28, 0x27, 0x6c, 0x31, 0x27, 0x2c, 0x6e, 0x2c,
-   0x32, 0x30, 0x30, 0x2c, 0x27, 0x4c, 0x69, 0x67, 0x68, 0x74,
-   0x20, 0x31, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x7d, 0x66, 0x75,
-   0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x32, 0x28,
-   0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x64, 0x63, 0x28, 0x2e, 0x34,
-   0x36, 0x39, 0x33, 0x36, 0x30, 0x33, 0x2a, 0x6d, 0x2c, 0x30,
-   0x29, 0x3b, 0x73, 0x28, 0x27, 0x6c, 0x32, 0x27, 0x2c, 0x6e,
-   0x2c, 0x32, 0x30, 0x30, 0x2c, 0x27, 0x4c, 0x69, 0x67, 0x68,
-   0x74, 0x20, 0x32, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x7d, 0x66,
-   0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x73,
-   0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x6d, 0x2b, 0x34, 0x35,
-   0x3b, 0x73, 0x28, 0x27, 0x72, 0x73, 0x27, 0x2c, 0x6e, 0x2c,
-   0x31, 0x30, 0x30, 0x2c, 0x27, 0x52, 0x53, 0x53, 0x49, 0x20,
-   0x27, 0x2b, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74,
-   0x69, 0x6f, 0x6e, 0x20, 0x70, 0x28, 0x63, 0x2c, 0x6c, 0x2c,
-   0x74, 0x2c, 0x72, 0x29, 0x7b, 0x74, 0x6d, 0x3d, 0x63, 0x2b,
-   0x6c, 0x3b, 0x63, 0x70, 0x3d, 0x63, 0x2a, 0x31, 0x2e, 0x38,
-   0x2f, 0x74, 0x6d, 0x3b, 0x6c, 0x70, 0x3d, 0x6c, 0x2a, 0x30,
-   0x2e, 0x30, 0x35, 0x34, 0x35, 0x2f, 0x74, 0x6d, 0x3b, 0x6c,
-   0x74, 0x3d, 0x74, 0x2a, 0x31, 0x37, 0x2e, 0x37, 0x2f, 0x74,
-   0x6d, 0x3b, 0x6c, 0x72, 0x3d, 0x72, 0x2a, 0x32, 0x30, 0x2f,
-   0x74, 0x6d, 0x3b, 0x6e, 0x3d, 0x63, 0x70, 0x2b, 0x6c, 0x70,
-   0x2b, 0x6c, 0x74, 0x2b, 0x6c, 0x72, 0x3b, 0x73, 0x28, 0x27,
-   0x70, 0x27, 0x2c, 0x6e, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x50,
-   0x6f, 0x77, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75,
-   0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x27, 0x2b, 0x64,
-   0x63, 0x28, 0x6e, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d,
-   0x57, 0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70, 0x63, 0x27,
-   0x2c, 0x63, 0x70, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x43, 0x50,
-   0x55, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x27, 0x2b,
-   0x64, 0x63, 0x28, 0x63, 0x70, 0x2c, 0x32, 0x29, 0x2b, 0x27,
-   0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70,
-   0x6c, 0x27, 0x2c, 0x6c, 0x70, 0x2c, 0x33, 0x30, 0x2c, 0x27,
-   0x4c, 0x50, 0x4d, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20,
-   0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c, 0x70, 0x2c, 0x32, 0x29,
-   0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73, 0x28,
-   0x27, 0x70, 0x72, 0x27, 0x2c, 0x6c, 0x72, 0x2c, 0x33, 0x30,
-   0x2c, 0x27, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x52, 0x58,
-   0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x27, 0x2b, 0x64,
-   0x63, 0x28, 0x6c, 0x72, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20,
-   0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70, 0x74,
-   0x27, 0x2c, 0x6c, 0x74, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x52,
-   0x61, 0x64, 0x69, 0x6f, 0x20, 0x54, 0x58, 0x20, 0x70, 0x6f,
-   0x77, 0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c,
-   0x74, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27,
+   0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x27, 0x3b, 0x6c, 0x6f,
+   0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x28, 0x29, 0x7d, 0x66,
+   0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f,
+   0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x28, 0x29, 0x7b, 0x76,
+   0x61, 0x72, 0x20, 0x72, 0x3b, 0x74, 0x72, 0x79, 0x7b, 0x72,
+   0x3d, 0x6e, 0x65, 0x77, 0x20, 0x58, 0x4d, 0x4c, 0x48, 0x74,
+   0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x28,
+   0x29, 0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29,
+   0x7b, 0x74, 0x72, 0x79, 0x7b, 0x72, 0x3d, 0x6e, 0x65, 0x77,
+   0x20, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, 0x4f, 0x62,
+   0x6a, 0x65, 0x63, 0x74, 0x28, 0x22, 0x4d, 0x73, 0x78, 0x6d,
+   0x6c, 0x32, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, 0x54, 0x50,
+   0x22, 0x29, 0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65,
+   0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x72, 0x3d, 0x6e, 0x65,
+   0x77, 0x20, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, 0x4f,
+   0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x22, 0x4d, 0x69, 0x63,
+   0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x58, 0x4d, 0x4c,
+   0x48, 0x54, 0x54, 0x50, 0x22, 0x29, 0x7d, 0x63, 0x61, 0x74,
+   0x63, 0x68, 0x28, 0x65, 0x29, 0x7b, 0x61, 0x6c, 0x65, 0x72,
+   0x74, 0x28, 0x22, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x62, 0x72,
+   0x6f, 0x77, 0x73, 0x65, 0x72, 0x20, 0x64, 0x6f, 0x65, 0x73,
+   0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f,
+   0x72, 0x74, 0x20, 0x41, 0x4a, 0x41, 0x58, 0x21, 0x22, 0x29,
+   0x3b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61,
+   0x6c, 0x73, 0x65, 0x7d, 0x7d, 0x7d, 0x72, 0x2e, 0x6f, 0x6e,
+   0x72, 0x65, 0x61, 0x64, 0x79, 0x73, 0x74, 0x61, 0x74, 0x65,
+   0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3d, 0x66, 0x75, 0x6e,
+   0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x7b, 0x69, 0x66,
+   0x28, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74,
+   0x61, 0x74, 0x65, 0x3d, 0x3d, 0x31, 0x29, 0x7b, 0x76, 0x61,
+   0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d, 0x64, 0x2e, 0x67, 0x65,
+   0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79,
+   0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x29,
+   0x3b, 0x69, 0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72,
+   0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27, 0x3c, 0x69, 0x6d, 0x67,
+   0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e,
+   0x2e, 0x67, 0x69, 0x66, 0x22, 0x3e, 0x27, 0x7d, 0x69, 0x66,
+   0x28, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74,
+   0x61, 0x74, 0x65, 0x3d, 0x3d, 0x34, 0x29, 0x7b, 0x76, 0x61,
+   0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d, 0x64, 0x2e, 0x67, 0x65,
+   0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79,
+   0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x29,
+   0x3b, 0x69, 0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72,
+   0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27, 0x74, 0x6f, 0x6f, 0x6b,
+   0x20, 0x27, 0x2b, 0x28, 0x28, 0x6e, 0x65, 0x77, 0x20, 0x44,
+   0x61, 0x74, 0x65, 0x28, 0x29, 0x29, 0x2e, 0x67, 0x65, 0x74,
+   0x54, 0x69, 0x6d, 0x65, 0x28, 0x29, 0x2d, 0x73, 0x74, 0x61,
+   0x72, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65,
+   0x28, 0x29, 0x29, 0x2f, 0x31, 0x30, 0x30, 0x30, 0x2b, 0x27,
+   0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x27, 0x3b,
+   0x65, 0x76, 0x61, 0x6c, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x73,
+   0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x29,
+   0x7d, 0x7d, 0x3b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x6e,
+   0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b,
+   0x72, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, 0x45,
+   0x54, 0x22, 0x2c, 0x22, 0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f,
+   0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x68, 0x74, 0x6d,
+   0x6c, 0x22, 0x2c, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x72,
+   0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6e, 0x75, 0x6c, 0x6c,
    0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
-   0x20, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x65, 0x28, 0x27, 0x69,
-   0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
-   0x4d, 0x4c, 0x3d, 0x6e, 0x7d, 0x0a, 0x3c, 0x2f, 0x73, 0x63,
-   0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x68, 0x31, 0x3e,
-   0x4e, 0x6f, 0x64, 0x65, 0x0a, 0x25, 0x21, 0x20, 0x6e, 0x6f,
-   0x64, 0x65, 0x69, 0x64, 0x0a, 0x3c, 0x2f, 0x68, 0x31, 0x3e,
-   0x0a, 0x3c, 0x61, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63,
-   0x6b, 0x3d, 0x22, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6e,
-   0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b,
-   0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x22,
-   0x3e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3c, 0x2f, 0x61,
-   0x3e, 0x0a, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64,
-   0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x3e, 0x20, 0x3c,
-   0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x0a, 0x3c, 0x68, 0x32,
-   0x3e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
-   0x6e, 0x74, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x3c, 0x64,
-   0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65, 0x6d,
-   0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
-   0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68,
-   0x75, 0x6d, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
-   0x0a, 0x3c, 0x68, 0x32, 0x3e, 0x4c, 0x69, 0x67, 0x68, 0x74,
-   0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76,
-   0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x31, 0x22, 0x3e, 0x3c,
-   0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76,
-   0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x32, 0x22, 0x3e, 0x3c,
-   0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x68, 0x32, 0x3e,
-   0x50, 0x6f, 0x77, 0x65, 0x72, 0x3c, 0x2f, 0x68, 0x32, 0x3e,
-   0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
-   0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
+   0x20, 0x65, 0x28, 0x65, 0x6c, 0x29, 0x7b, 0x69, 0x66, 0x28,
+   0x64, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65,
+   0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x29, 0x7b, 0x72, 0x65,
+   0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x2e, 0x67, 0x65, 0x74,
+   0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49,
+   0x64, 0x28, 0x65, 0x6c, 0x29, 0x7d, 0x69, 0x66, 0x28, 0x64,
+   0x2e, 0x61, 0x6c, 0x6c, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75,
+   0x72, 0x6e, 0x20, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x5b, 0x65,
+   0x6c, 0x5d, 0x7d, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+   0x6f, 0x6e, 0x20, 0x73, 0x28, 0x65, 0x6c, 0x2c, 0x6e, 0x2c,
+   0x6d, 0x61, 0x78, 0x2c, 0x74, 0x65, 0x78, 0x74, 0x29, 0x7b,
+   0x65, 0x28, 0x65, 0x6c, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65,
+   0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27, 0x3c, 0x74, 0x61,
+   0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d,
+   0x35, 0x30, 0x34, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72,
+   0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64,
+   0x64, 0x69, 0x6e, 0x67, 0x3d, 0x31, 0x20, 0x63, 0x65, 0x6c,
+   0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x30,
+   0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x77,
+   0x69, 0x64, 0x74, 0x68, 0x3d, 0x32, 0x30, 0x30, 0x3e, 0x27,
+   0x2b, 0x74, 0x65, 0x78, 0x74, 0x2b, 0x27, 0x3c, 0x2f, 0x74,
+   0x64, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74,
+   0x68, 0x3d, 0x27, 0x2b, 0x28, 0x33, 0x30, 0x30, 0x2a, 0x6e,
+   0x2f, 0x6d, 0x61, 0x78, 0x29, 0x2b, 0x27, 0x20, 0x62, 0x67,
+   0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x67, 0x72, 0x61,
+   0x79, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c,
+   0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69,
+   0x64, 0x74, 0x68, 0x3d, 0x27, 0x2b, 0x28, 0x33, 0x30, 0x30,
+   0x2d, 0x33, 0x30, 0x30, 0x2a, 0x6e, 0x2f, 0x6d, 0x61, 0x78,
+   0x29, 0x2b, 0x27, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f,
+   0x72, 0x3d, 0x22, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x67, 0x72,
+   0x61, 0x79, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b,
+   0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62,
+   0x6c, 0x65, 0x3e, 0x27, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74,
+   0x69, 0x6f, 0x6e, 0x20, 0x64, 0x63, 0x28, 0x6e, 0x2c, 0x64,
+   0x29, 0x7b, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e,
+   0x2e, 0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, 0x28, 0x64,
+   0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+   0x20, 0x74, 0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x64, 0x63,
+   0x28, 0x2d, 0x33, 0x39, 0x2e, 0x36, 0x2b, 0x30, 0x2e, 0x30,
+   0x31, 0x2a, 0x6d, 0x2c, 0x31, 0x29, 0x3b, 0x73, 0x28, 0x27,
+   0x74, 0x65, 0x6d, 0x70, 0x27, 0x2c, 0x6e, 0x2c, 0x34, 0x30,
+   0x2c, 0x27, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74,
+   0x75, 0x72, 0x65, 0x20, 0x27, 0x2b, 0x6e, 0x2b, 0x27, 0x20,
+   0x26, 0x64, 0x65, 0x67, 0x3b, 0x43, 0x27, 0x29, 0x7d, 0x66,
+   0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x68, 0x28,
+   0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x64, 0x63, 0x28, 0x2d, 0x34,
+   0x2b, 0x30, 0x2e, 0x30, 0x34, 0x30, 0x35, 0x2a, 0x6d, 0x2d,
+   0x32, 0x2e, 0x38, 0x65, 0x2d, 0x36, 0x2a, 0x28, 0x6d, 0x2a,
+   0x6d, 0x29, 0x2c, 0x32, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x68,
+   0x75, 0x6d, 0x27, 0x2c, 0x6e, 0x2c, 0x31, 0x30, 0x30, 0x2c,
+   0x27, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x20,
+   0x27, 0x2b, 0x6e, 0x2b, 0x27, 0x25, 0x27, 0x29, 0x7d, 0x66,
+   0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x31,
+   0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x64, 0x63, 0x28, 0x2e,
+   0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x33, 0x37, 0x35,
+   0x2a, 0x6d, 0x2c, 0x30, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x6c,
+   0x31, 0x27, 0x2c, 0x6e, 0x2c, 0x32, 0x30, 0x30, 0x2c, 0x27,
+   0x4c, 0x69, 0x67, 0x68, 0x74, 0x20, 0x31, 0x20, 0x27, 0x2b,
+   0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+   0x6e, 0x20, 0x6c, 0x32, 0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d,
+   0x64, 0x63, 0x28, 0x2e, 0x34, 0x36, 0x39, 0x33, 0x36, 0x30,
+   0x33, 0x2a, 0x6d, 0x2c, 0x30, 0x29, 0x3b, 0x73, 0x28, 0x27,
+   0x6c, 0x32, 0x27, 0x2c, 0x6e, 0x2c, 0x32, 0x30, 0x30, 0x2c,
+   0x27, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x20, 0x32, 0x20, 0x27,
+   0x2b, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
+   0x6f, 0x6e, 0x20, 0x72, 0x73, 0x28, 0x6d, 0x29, 0x7b, 0x6e,
+   0x3d, 0x6d, 0x2b, 0x34, 0x35, 0x3b, 0x73, 0x28, 0x27, 0x72,
+   0x73, 0x27, 0x2c, 0x6e, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x27,
+   0x52, 0x53, 0x53, 0x49, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x7d,
+   0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70,
+   0x28, 0x63, 0x2c, 0x6c, 0x2c, 0x74, 0x2c, 0x72, 0x29, 0x7b,
+   0x74, 0x6d, 0x3d, 0x63, 0x2b, 0x6c, 0x3b, 0x63, 0x70, 0x3d,
+   0x63, 0x2a, 0x31, 0x2e, 0x38, 0x2f, 0x74, 0x6d, 0x3b, 0x6c,
+   0x70, 0x3d, 0x6c, 0x2a, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x35,
+   0x2f, 0x74, 0x6d, 0x3b, 0x6c, 0x74, 0x3d, 0x74, 0x2a, 0x31,
+   0x37, 0x2e, 0x37, 0x2f, 0x74, 0x6d, 0x3b, 0x6c, 0x72, 0x3d,
+   0x72, 0x2a, 0x32, 0x30, 0x2f, 0x74, 0x6d, 0x3b, 0x6e, 0x3d,
+   0x63, 0x70, 0x2b, 0x6c, 0x70, 0x2b, 0x6c, 0x74, 0x2b, 0x6c,
+   0x72, 0x3b, 0x73, 0x28, 0x27, 0x70, 0x27, 0x2c, 0x6e, 0x2c,
+   0x33, 0x30, 0x2c, 0x27, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x20,
+   0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f,
+   0x6e, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6e, 0x2c, 0x32,
+   0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73,
+   0x28, 0x27, 0x70, 0x63, 0x27, 0x2c, 0x63, 0x70, 0x2c, 0x33,
+   0x30, 0x2c, 0x27, 0x43, 0x50, 0x55, 0x20, 0x70, 0x6f, 0x77,
+   0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x63, 0x70,
+   0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29,
+   0x3b, 0x73, 0x28, 0x27, 0x70, 0x6c, 0x27, 0x2c, 0x6c, 0x70,
+   0x2c, 0x33, 0x30, 0x2c, 0x27, 0x4c, 0x50, 0x4d, 0x20, 0x70,
+   0x6f, 0x77, 0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28,
+   0x6c, 0x70, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57,
+   0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70, 0x72, 0x27, 0x2c,
+   0x6c, 0x72, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x52, 0x61, 0x64,
+   0x69, 0x6f, 0x20, 0x52, 0x58, 0x20, 0x70, 0x6f, 0x77, 0x65,
+   0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c, 0x72, 0x2c,
+   0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b,
+   0x73, 0x28, 0x27, 0x70, 0x74, 0x27, 0x2c, 0x6c, 0x74, 0x2c,
+   0x33, 0x30, 0x2c, 0x27, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x20,
+   0x54, 0x58, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x27,
+   0x2b, 0x64, 0x63, 0x28, 0x6c, 0x74, 0x2c, 0x32, 0x29, 0x2b,
+   0x27, 0x20, 0x6d, 0x57, 0x27, 0x29, 0x7d, 0x66, 0x75, 0x6e,
+   0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x29,
+   0x7b, 0x65, 0x28, 0x27, 0x69, 0x27, 0x29, 0x2e, 0x69, 0x6e,
+   0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x6e, 0x7d,
+   0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e,
+   0x0a, 0x3c, 0x68, 0x31, 0x3e, 0x4e, 0x6f, 0x64, 0x65, 0x0a,
+   0x25, 0x21, 0x20, 0x6e, 0x6f, 0x64, 0x65, 0x69, 0x64, 0x0a,
+   0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x0a, 0x3c, 0x61, 0x20, 0x6f,
+   0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x6c, 0x6f,
+   0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b, 0x22,
+   0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x22, 0x3e,
+   0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3c, 0x2f, 0x61, 0x3e,
+   0x0a, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64, 0x3d,
+   0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x3e, 0x20, 0x3c, 0x2f,
+   0x73, 0x70, 0x61, 0x6e, 0x3e, 0x0a, 0x3c, 0x68, 0x32, 0x3e,
+   0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
+   0x74, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x3c, 0x64, 0x69,
+   0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65, 0x6d, 0x70,
+   0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c,
+   0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68, 0x75,
+   0x6d, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
+   0x3c, 0x68, 0x32, 0x3e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x3c,
+   0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20,
+   0x69, 0x64, 0x3d, 0x22, 0x6c, 0x31, 0x22, 0x3e, 0x3c, 0x2f,
+   0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20,
+   0x69, 0x64, 0x3d, 0x22, 0x6c, 0x32, 0x22, 0x3e, 0x3c, 0x2f,
+   0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x68, 0x32, 0x3e, 0x50,
+   0x6f, 0x77, 0x65, 0x72, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a,
    0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
-   0x63, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
-   0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
-   0x6c, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
-   0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
-   0x72, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
-   0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
-   0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
-   0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c,
-   0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x22,
-   0x3e, 0x30, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x25,
-   0x21, 0x3a, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72,
-   0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x0a, 0x0a, 0x00};
+   0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c,
+   0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x63,
+   0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c,
+   0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x6c,
+   0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c,
+   0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x72,
+   0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c,
+   0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70, 0x74,
+   0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c,
+   0x62, 0x72, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c, 0x64,
+   0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x22, 0x3e,
+   0x30, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x25, 0x21,
+   0x3a, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e,
+   0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x00};
 
 const char data_footer_html[39]  = {
   /* /footer.html */
@@ -455,4 +451,4 @@ const struct httpd_fsdata_file      file_index_html[] ={{    file_header_html, d
 
 #define HTTPD_FS_ROOT  file_index_html
 #define HTTPD_FS_NUMFILES  8
-#define HTTPD_FS_SIZE 4050
+#define HTTPD_FS_SIZE 4007
diff --git a/examples/sky-ip/sensors-script.js b/examples/sky-ip/sensors-script.js
index d7f423a3f..59761fdf3 100644
--- a/examples/sky-ip/sensors-script.js
+++ b/examples/sky-ip/sensors-script.js
@@ -1,11 +1,11 @@
 /* This is the uncompressed version of the script in httpd-fs/sensordata.shtml */
-var start;
+var start, d = document;
 
-i = new Image(50,60)
-i.src = "spin.gif"
+i = new Image(50,60);
+i.src = "spin.gif";
 
 function load() {
-  var img = document.getElementById("spin");
+  var img = d.getElementById("spin");
   img.innerHTML = '&nbsp;';
   loadData();
 }
@@ -25,27 +25,27 @@ function loadData() {
   }
   r.onreadystatechange = function() {
     if(r.readyState == 1) {
-      var img = document.getElementById("spin");
+      var img = d.getElementById("spin");
       img.innerHTML = '<img src="spin.gif">';
     }
     if(r.readyState == 4) {
-      var img = document.getElementById("spin");
+      var img = d.getElementById("spin");
       img.innerHTML = 'took '  +
                       ((new Date()).getTime() -  start.getTime()) / 1000 +
                       ' seconds';
       eval(r.responseText);
      }
-   }
+  };
   start = new Date();
   r.open("GET", "/sensordata.shtml", true);
   r.send(null);
 }
 
 function e(el) {
-  d = document;
   if(d.getElementById) {
     return d.getElementById(el);
-  } else if (d.all) {
+  }
+  if (d.all) {
     return d.all[el];
   }
 }