Cleaned up current Health Table #5

Open
aurora wants to merge 23 commits from alice into dev
5 changed files with 209 additions and 5 deletions

14
index.html Normal file
View File

@ -0,0 +1,14 @@
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-CA"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){var _g={kEI:'HohLZ8uqK72C0PEPuKONyQg',kEXPI:'0,3700312,637,435,538661,2872,2891,562,72488,16105,315189,21452,8155,23351,22435,9779,62658,61944,31884,7734,18674,8860,2414,9400,1632,29279,27083,11206182,2842057,17,1,2,31,3,9,4,1,15,7,13,46,4,2,2,2,2,14,1,1,1,1,1,1,1,1,2,1,3,1,1,1,1,1,1,1,12,1,6,1,3,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,6,1,3,2,5,1,2,1,1,2,3,2,2,1,1,1,1,2,5,1,2,1,1,1,1,1,1,20,28,8,14,4,32,8,28,6,17,19,3,3,3,3,3,3,3,25,1,11,76,11,1,1,1,1,1,1,1,1,27978377,16673,25199209,8163,4636,16436,84045,19294,3328,15165,8182,5940,15398,28091,21674,6750,22594,1284,9140,739,2,2,3856,328,4459,1766,23407,6,4577,5633,687,7851,22,10485,10733,763,1137,210,5401,6386,1915,8218,7414,8139,6385,3287,12568,797,16870,10667,4144,836,4544,1468,358,2038,2835,2281,3,2,2542,351,8282,41,11882,1757,1,7470,324,312,1,34,1495,1211,302,1454,444,1,3161,2,3,4,2973,3689,1463,5108,218,479,1148,660,3993,1579,309,1212,49,39,17,3,133,895,3,7,3468,4123,1249,401,2584,1597,130,1379,82,302,1873,183,343,2,207,3,3258,1,2477,540,68,1623,105,662,461,304,1078,111,537,91,1126,698,763,419,164,190,1190,1416,939,706,415,158,214,2,46,967,761,1548,5,659,1721,368,3039,1209,106,3,3,173,23,2,928,45,1,6,85,2,374,1377,553,47,133,1306,243,104,30,95,882,1011,681,460,457,2,152,475,254,3,16,1,5,4,4,4,378,1,5,4,4,4,57,158,109,206,94,593,35,928,367,69,265,465,14,8,1304,86,562,73,77,470,295,1223,77,1,24,186,168,161,337,17,266,32,3,277,38,47,122,3,23,3,208,29,58,556,235,10,1,88,59,534,10,1,344,906,546,60,222,216,92,823,307,1,1837,21007756,397113,18,2780,704,875,5431,372,910,452,593,8,1135',kBL:'7V6d',kOPI:89978449};(function(){var a;((a=window.google)==null?0:a.stvsc)?google.kEI=_g.kEI:window.google=_g;}).call(this);})();(function(){google.sn='webhp';google.kHL='en-CA';})();(function(){
var g=this||self;function k(){return window.google&&window.google.kOPI||null};var l,m=[];function n(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||l}function p(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b}function q(a){/^http:/i.test(a)&&window.location.protocol==="https:"&&(google.ml&&google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a}
function r(a,b,d,c,h){var e="";b.search("&ei=")===-1&&(e="&ei="+n(c),b.search("&lei=")===-1&&(c=p(c))&&(e+="&lei="+c));var f=b.search("&cshid=")===-1&&a!=="slh";c="&zx="+Date.now().toString();g._cshid&&f&&(c+="&cshid="+g._cshid);(d=d())&&(c+="&opi="+d);return"/"+(h||"gen_204")+"?atyp=i&ct="+String(a)+"&cad="+(b+e+c)};l=google.kEI;google.getEI=n;google.getLEI=p;google.ml=function(){return null};google.log=function(a,b,d,c,h,e){e=e===void 0?k:e;d||(d=r(a,b,e,c,h));if(d=q(d)){a=new Image;var f=m.length;m[f]=a;a.onerror=a.onload=a.onabort=function(){delete m[f]};a.src=d}};google.logUrl=function(a,b){b=b===void 0?k:b;return r("",a,b)};}).call(this);(function(){google.y={};google.sy=[];var d;(d=google).x||(d.x=function(a,b){if(a)var c=a.id;else{do c=Math.random();while(google.y[c])}google.y[c]=[a,b];return!1});var e;(e=google).sx||(e.sx=function(a){google.sy.push(a)});google.lm=[];var f;(f=google).plm||(f.plm=function(a){google.lm.push.apply(google.lm,a)});google.lq=[];var g;(g=google).load||(g.load=function(a,b,c){google.lq.push([[a],b,c])});var h;(h=google).loadAll||(h.loadAll=function(a,b){google.lq.push([a,b])});google.bx=!1;var k;(k=google).lx||(k.lx=function(){});var l=[],m;(m=google).fce||(m.fce=function(a,b,c,n){l.push([a,b,c,n])});google.qce=l;}).call(this);google.f={};(function(){
document.documentElement.addEventListener("submit",function(b){var a;if(a=b.target){var c=a.getAttribute("data-submitfalse");a=c==="1"||c==="q"&&!a.elements.q.value?!0:!1}else a=!1;a&&(b.preventDefault(),b.stopPropagation())},!0);document.documentElement.addEventListener("click",function(b){var a;a:{for(a=b.target;a&&a!==document.documentElement;a=a.parentElement)if(a.tagName==="A"){a=a.getAttribute("data-nohref")==="1";break a}a=!1}a&&b.preventDefault()},!0);}).call(this);</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}
</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#1967d2}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}body{background:#fff;color:#000}a{color:#681da8;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#1967d2}a:visited{color:#681da8}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#f8f9fa;border:solid 1px;border-color:#dadce0 #70757a #70757a #dadce0;height:30px}.lsbb{display:block}#WqQANb a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;color:#000;border:none;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#dadce0}.lst:focus{outline:none}</style><script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){window.google.erd={jsr:1,bv:2124,de:true,dpf:'otGbKZ_1MhufVUtyXNpIkGtdaq5XFepJKgLJ43nLlKk'};
var g=this||self;var k,l=(k=g.mei)!=null?k:1,n,p=(n=g.sdo)!=null?n:!0,q=0,r,t=google.erd,v=t.jsr;google.ml=function(a,b,d,m,e){e=e===void 0?2:e;b&&(r=a&&a.message);d===void 0&&(d={});d.cad="ple_"+google.ple+".aple_"+google.aple;if(google.dl)return google.dl(a,e,d,!0),null;b=d;if(v<0){window.console&&console.error(a,b);if(v===-2)throw a;b=!1}else b=!a||!a.message||a.message==="Error loading script"||q>=l&&!m?!1:!0;if(!b)return null;q++;d=d||{};b=encodeURIComponent;var c="/gen_204?atyp=i&ei="+b(google.kEI);google.kEXPI&&(c+="&jexpid="+b(google.kEXPI));c+="&srcpg="+b(google.sn)+"&jsr="+b(t.jsr)+
"&bver="+b(t.bv);t.dpf&&(c+="&dpf="+b(t.dpf));var f=a.lineNumber;f!==void 0&&(c+="&line="+f);var h=a.fileName;h&&(h.indexOf("-extension:/")>0&&(e=3),c+="&script="+b(h),f&&h===window.location.href&&(f=document.documentElement.outerHTML.split("\n")[f],c+="&cad="+b(f?f.substring(0,300):"No script found.")));google.ple&&google.ple===1&&(e=2);c+="&jsel="+e;for(var u in d)c+="&",c+=b(u),c+="=",c+=b(d[u]);c=c+"&emsg="+b(a.name+": "+a.message);c=c+"&jsst="+b(a.stack||"N/A");c.length>=12288&&(c=c.substr(0,12288));a=c;m||google.log(0,"",a);return a};window.onerror=function(a,b,d,m,e){r!==a&&(a=e instanceof Error?e:Error(a),d===void 0||"lineNumber"in a||(a.lineNumber=d),b===void 0||"fileName"in a||(a.fileName=b),google.ml(a,!1,void 0,!1,a.name==="SyntaxError"||a.message.substring(0,11)==="SyntaxError"||a.message.indexOf("Script error")!==-1?3:0));r=null;p&&q>=l&&(window.onerror=null)};})();</script></head><body bgcolor="#fff"><script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){var src='/images/nav_logo229.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}
if (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}
}
})();</script><div id="mngb"><div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="https://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="http://maps.google.ca/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="https://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="https://news.google.com/?tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="https://www.google.ca/intl/en/about/products?tab=wh"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.ca/history/optout?hl=en" class=gb4>Web History</a> | <a href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/&ec=GAZAAQ" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div></div><center><br clear="all" id="lgpd"><div id="XjhHGf"><img alt="Google" height="92" src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" style="padding:28px 0 14px" width="272" id="hplogo"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en-CA" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><input name="biw" type="hidden"><input name="bih" type="hidden"><div class="ds" style="height:32px;margin:4px 0"><input class="lst" style="margin:0;padding:5px 8px 0 6px;vertical-align:top;color:#000" autocomplete="off" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" id="tsuid_HohLZ8uqK72C0PEPuKONyQg_1" value="I'm Feeling Lucky" name="btnI" type="submit"><script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){var id='tsuid_HohLZ8uqK72C0PEPuKONyQg_1';document.getElementById(id).onclick = function(){if (this.form.q.value){this.checked = 1;if (this.form.iflsig)this.form.iflsig.disabled = false;}
else top.location='/doodles/';};})();</script><input value="AL9hbdgAAAAAZ0uWLnYpb7Z8FnwJJkJB4M6wSrWYlse_" name="iflsig" type="hidden"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en-CA&amp;authuser=0">Advanced search</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"><script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){var a,b="1";if(document&&document.getElementById)if(typeof XMLHttpRequest!="undefined")b="2";else if(typeof ActiveXObject!="undefined"){var c,d,e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(c=0;d=e[c++];)try{new ActiveXObject(d),b="2"}catch(h){}}a=b;if(a=="2"&&location.search.indexOf("&gbv=2")==-1){var f=google.gbvu,g=document.getElementById("gbv");g&&(g.value=a);f&&window.setTimeout(function(){location.href=f},0)};}).call(this);</script></form><div style="font-size:83%;min-height:3.5em"><br><div id="gws-output-pages-elements-homepage_additional_languages__als"><style>#gws-output-pages-elements-homepage_additional_languages__als{font-size:small;margin-bottom:24px}#SIvCob{color:#474747;display:inline-block;line-height:28px;}#SIvCob a{padding:0 3px;}.H6sW5{display:inline-block;margin:0 2px;white-space:nowrap}.z4hgWe{display:inline-block;margin:0 2px}</style><div id="SIvCob">Google offered in: <a href="http://www.google.com/setprefs?sig=0_ehD46C5AW1_Iuv-tTVKUoin4nW4%3D&amp;hl=fr&amp;source=homepage&amp;sa=X&amp;ved=0ahUKEwjLsZquhIWKAxU9ATQIHbhRI4kQ2ZgBCAY">Français</a> </div></div></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="WqQANb"><a href="/intl/en/ads/">Advertising</a><a href="/services/">Business Solutions</a><a href="/intl/en/about.html">About Google</a><a href="http://www.google.com/setprefdomain?prefdom=CA&amp;prev=http://www.google.ca/&amp;sig=K_BiACUjpW8VyIgeLkSIY-8UtEuUI%3D">Google.ca</a></div></div><p style="font-size:8pt;color:#70757a">&copy; 2024 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){window.google.cdo={height:757,width:1440};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b){var c=window.document,d=c.compatMode=="CSS1Compat"?c.documentElement:c.body;a=d.clientWidth;b=d.clientHeight}if(a&&b&&(a!=google.cdo.width||b!=google.cdo.height)){var e=google,f=e.log,g="/client_204?&atyp=i&biw="+a+"&bih="+b+"&ei="+google.kEI,h="",k=window.google&&window.google.kOPI||null;k&&(h+="&opi="+k);f.call(e,"","",g+h)};}).call(this);})();</script> <script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){google.xjs={basecomb:'/xjs/_/js/k\x3dxjs.hp.en.1O39NlLrT_w.es5.O/ck\x3dxjs.hp.i_QW66W2dnc.L.X.O/am\x3dBAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAAAAAAAAAAAMAACMBgAAgAAAAQIAAAAAAAAAAAAAACIAAAUAYQIAACC-IwAQAIsAAPAC/d\x3d1/ed\x3d1/dg\x3d0/ujg\x3d1/rs\x3dACT90oFka5NvmjT72zi1TDSOMFZkXN7qUg',basecss:'/xjs/_/ss/k\x3dxjs.hp.i_QW66W2dnc.L.X.O/am\x3dBAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACMAAAAgAAAAQIAAAAAAAAAAAAAACIAAAUAYQI/rs\x3dACT90oGw42FLx1nOBpxxIe5LW4gxh4vlJg',basejs:'/xjs/_/js/k\x3dxjs.hp.en.1O39NlLrT_w.es5.O/am\x3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAMAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC-IwAQAIsAAPAC/dg\x3d0/rs\x3dACT90oHTW_vkV2ytetplKXyGTLTZ5UYRgQ',excm:[]};})();</script> <script nonce="37P_w4IQb2lrokyZ55A8rg">(function(){var u='/xjs/_/js/k\x3dxjs.hp.en.1O39NlLrT_w.es5.O/am\x3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAMAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC-IwAQAIsAAPAC/d\x3d1/ed\x3d1/dg\x3d3/rs\x3dACT90oHTW_vkV2ytetplKXyGTLTZ5UYRgQ/m\x3dsb_he,d';var st=1;var amd=1000;var mmd=0;var pod=true;
var e=this||self;function f(){var a,b,d;if(b=a=(b=window.google)==null?void 0:(d=b.ia)==null?void 0:d.r.B2Jtyd)b=a.m,b=b===1||b===5;return b&&a.cbfd!=null&&a.cbvi!=null?a:void 0};function g(){var a=[u];if(!google.dp){for(var b=0;b<a.length;b++){var d=a[b],c=document.createElement("link");c.as="script";c.href=d;c.rel="preload";document.body.appendChild(c)}google.dp=!0}};google.ps===void 0&&(google.ps=[]);function h(){var a=u,b=function(){};google.lx=google.stvsc?b:function(){k(a);google.lx=b};google.bx||google.lx()}function l(a,b){b&&(a.src=b);var d=a.onload;a.onload=function(c){d&&d(c);google.ps=google.ps.filter(function(C){return a!==C})};google.ps.push(a);document.body.appendChild(a)}google.as=l;function k(a){google.timers&&google.timers.load&&google.tick&&google.tick("load","xjsls");var b=document.createElement("script");b.onerror=function(){google.ple=1};b.onload=function(){google.ple=0};google.xjsus=void 0;l(b,a);google.aple=-1;google.dp=!0};function m(a){var b=a.getAttribute("jscontroller");return(b==="UBXHI"||b==="R3fhkb"||b==="TSZEqd")&&a.hasAttribute("data-src")}function n(){for(var a=document.getElementsByTagName("img"),b=0,d=a.length;b<d;b++){var c=a[b];if(c.hasAttribute("data-lzy_")&&Number(c.getAttribute("data-atf"))&1&&!m(c))return!0}return!1}for(var p=document.getElementsByTagName("img"),q=0,r=p.length;q<r;++q){var t=p[q];Number(t.getAttribute("data-atf"))&1&&m(t)&&(t.src=t.getAttribute("data-src"))};var w,x,y,z,A,B;function D(){google.xjsu=u;e._F_jsUrl=u;A=function(){h()};w=!1;x=(st===1||st===3)&&!!google.caft&&!n();y=f();z=(st===2||st===3)&&!!y&&!n();B=pod}function E(){w||x||z||(A(),w=!0)}setTimeout(function(){google&&google.tick&&google.timers&&google.timers.load&&google.tick("load","xjspls");D();if(x||z){if(x){var a=function(){x=!1;E()};google.caft(a);window.setTimeout(a,amd)}z&&(a=function(){z=!1;E()},y.cbvi.push(a),window.setTimeout(a,mmd));B&&(w||g())}else A()},0);})();window._ = window._ || {};window._DumpException = _._DumpException = function(e){throw e;};window._s = window._s || {};_s._DumpException = _._DumpException;window._qs = window._qs || {};_qs._DumpException = _._DumpException;(function(){var t=[4,65536,0,0,0,0,0,0,66560,0,134218752,587333635,268440582,134479882,10485760,0,0,335544456,2494480,797442048,135266339,556,47];window._F_toggles = window._xjs_toggles = t;})();window._F_installCss = window._F_installCss || function(css){};(function(){google.jl={bfl:0,dw:false,ine:false,ubm:false,uwp:true,vs:false};})();(function(){var pmc='{\x22d\x22:{},\x22sb_he\x22:{\x22agen\x22:false,\x22cgen\x22:false,\x22client\x22:\x22heirloom-hp\x22,\x22dh\x22:true,\x22ds\x22:\x22\x22,\x22fl\x22:true,\x22host\x22:\x22google.com\x22,\x22jsonp\x22:true,\x22msgs\x22:{\x22cibl\x22:\x22Clear Search\x22,\x22dym\x22:\x22Did you mean:\x22,\x22lcky\x22:\x22I\\u0026#39;m Feeling Lucky\x22,\x22lml\x22:\x22Learn more\x22,\x22psrc\x22:\x22This search was removed from your \\u003Ca href\x3d\\\x22/history\\\x22\\u003EWeb History\\u003C/a\\u003E\x22,\x22psrl\x22:\x22Remove\x22,\x22sbit\x22:\x22Search by image\x22,\x22srch\x22:\x22Google Search\x22},\x22ovr\x22:{},\x22pq\x22:\x22\x22,\x22rfs\x22:[],\x22stok\x22:\x22CqnzRNrWHaNpY96wh2XRixotjuo\x22}}';google.pmc=JSON.parse(pmc);})();(function(){var b=function(a){var c=0;return function(){return c<a.length?{done:!1,value:a[c++]}:{done:!0}}};
var e=this||self;var g,h;a:{for(var k=["CLOSURE_FLAGS"],l=e,n=0;n<k.length;n++)if(l=l[k[n]],l==null){h=null;break a}h=l}var p=h&&h[610401301];g=p!=null?p:!1;var q,r=e.navigator;q=r?r.userAgentData||null:null;function t(a){return g?q?q.brands.some(function(c){return(c=c.brand)&&c.indexOf(a)!=-1}):!1:!1}function u(a){var c;a:{if(c=e.navigator)if(c=c.userAgent)break a;c=""}return c.indexOf(a)!=-1};function v(){return g?!!q&&q.brands.length>0:!1}function w(){return u("Safari")&&!(x()||(v()?0:u("Coast"))||(v()?0:u("Opera"))||(v()?0:u("Edge"))||(v()?t("Microsoft Edge"):u("Edg/"))||(v()?t("Opera"):u("OPR"))||u("Firefox")||u("FxiOS")||u("Silk")||u("Android"))}function x(){return v()?t("Chromium"):(u("Chrome")||u("CriOS"))&&!(v()?0:u("Edge"))||u("Silk")}function y(){return u("Android")&&!(x()||u("Firefox")||u("FxiOS")||(v()?0:u("Opera"))||u("Silk"))};var z=v()?!1:u("Trident")||u("MSIE");y();x();w();var A=!z&&!w(),D=function(a){if(/-[a-z]/.test("ved"))return null;if(A&&a.dataset){if(y()&&!("ved"in a.dataset))return null;a=a.dataset.ved;return a===void 0?null:a}return a.getAttribute("data-"+"ved".replace(/([A-Z])/g,"-$1").toLowerCase())};var E=[],F=null;function G(a){a=a.target;var c=performance.now(),f=[],H=f.concat,d=E;if(!(d instanceof Array)){var m=typeof Symbol!="undefined"&&Symbol.iterator&&d[Symbol.iterator];if(m)d=m.call(d);else if(typeof d.length=="number")d={next:b(d)};else throw Error("b`"+String(d));for(var B=[];!(m=d.next()).done;)B.push(m.value);d=B}E=H.call(f,d,[c]);if(a&&a instanceof HTMLElement)if(a===F){if(c=E.length>=4)c=(E[E.length-1]-E[E.length-4])/1E3<5;if(c){c=google.getEI(a);a.hasAttribute("data-ved")?f=a?D(a)||"":"":f=(f=
a.closest("[data-ved]"))?D(f)||"":"";f=f||"";if(a.hasAttribute("jsname"))a=a.getAttribute("jsname");else{var C;a=(C=a.closest("[jsname]"))==null?void 0:C.getAttribute("jsname")}google.log("rcm","&ei="+c+"&tgtved="+f+"&jsname="+(a||""))}}else F=a,E=[c]}window.document.addEventListener("DOMContentLoaded",function(){document.body.addEventListener("click",G)});}).call(this);</script></body></html>

14
index.html.1 Normal file
View File

@ -0,0 +1,14 @@
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-CA"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script nonce="MN2QZB51V7PY360Bs1K01w">(function(){var _g={kEI:'UopLZ_7VOKbL0PEPkZTI-AU',kEXPI:'0,3700312,637,435,503816,34845,2872,2891,43028,30022,16105,315189,21452,8155,23351,22435,9779,8213,30465,6922,17058,92024,1804,7734,8334,31014,1635,13493,15783,21778,5305,5214105,5992076,2842059,18,32,3,6,7,1,16,5,16,44,4,4,19,1,1,1,2,1,1,1,1,1,2,2,1,2,2,12,1,1,1,4,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,1,1,1,2,2,1,1,2,1,3,2,3,2,2,2,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,34,22,44,20,45,19,3,5,1,3,3,3,3,3,22,1,11,1,77,9,1,1,1,1,1,1,1,1,23934668,4043709,16672,25199210,8163,4636,16436,2728,81317,22623,15164,8181,5941,22905,20584,21675,6749,22594,1285,7041,2098,4599,328,4459,1766,1116,9302,12989,6,4577,5634,686,3516,4336,24,21979,1136,205,13708,8217,2517,4897,3753,4386,4455,5220,8202,1,4362,797,378,11521,4971,10667,10903,447,414,1624,7663,351,2930,1512,4,3836,41,11882,1280,477,1,4875,77,2518,325,311,1,34,1349,146,1211,301,1454,442,1,2254,7581,7268,844,304,658,3995,1579,1518,52,192,895,3,7,2279,1189,171,3952,816,433,401,2570,62,2,1546,130,1374,89,301,300,263,1310,183,346,2,204,3,3258,1,1473,151,853,488,54,1689,767,461,1382,110,329,207,3263,195,1186,2353,707,415,66,92,247,982,761,1308,334,514,83,977,226,350,1,140,371,3036,116,1092,286,1466,802,573,524,31,182,592,222,490,245,102,30,234,852,4,4,1,893,1141,38,2,414,2,149,482,257,34,5,4,4,4,2,339,1,5,4,4,4,234,110,205,687,35,81,846,226,6,2,4,130,68,153,593,965,346,8,75,467,2,3,2,249,154,308,264,95,2,477,11,668,76,1,26,186,329,354,266,47,3,262,37,170,3,234,23,64,532,24,216,19,140,552,10,1,157,185,909,314,231,1413,21009898,397116,18,2004,1478,868,1779,1426,21,2059,155,1282,431,613,6,884',kBL:'7V6d',kOPI:89978449};(function(){var a;((a=window.google)==null?0:a.stvsc)?google.kEI=_g.kEI:window.google=_g;}).call(this);})();(function(){google.sn='webhp';google.kHL='en-CA';})();(function(){
var g=this||self;function k(){return window.google&&window.google.kOPI||null};var l,m=[];function n(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||l}function p(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute("leid")));)a=a.parentNode;return b}function q(a){/^http:/i.test(a)&&window.location.protocol==="https:"&&(google.ml&&google.ml(Error("a"),!1,{src:a,glmm:1}),a="");return a}
function r(a,b,d,c,h){var e="";b.search("&ei=")===-1&&(e="&ei="+n(c),b.search("&lei=")===-1&&(c=p(c))&&(e+="&lei="+c));var f=b.search("&cshid=")===-1&&a!=="slh";c="&zx="+Date.now().toString();g._cshid&&f&&(c+="&cshid="+g._cshid);(d=d())&&(c+="&opi="+d);return"/"+(h||"gen_204")+"?atyp=i&ct="+String(a)+"&cad="+(b+e+c)};l=google.kEI;google.getEI=n;google.getLEI=p;google.ml=function(){return null};google.log=function(a,b,d,c,h,e){e=e===void 0?k:e;d||(d=r(a,b,e,c,h));if(d=q(d)){a=new Image;var f=m.length;m[f]=a;a.onerror=a.onload=a.onabort=function(){delete m[f]};a.src=d}};google.logUrl=function(a,b){b=b===void 0?k:b;return r("",a,b)};}).call(this);(function(){google.y={};google.sy=[];var d;(d=google).x||(d.x=function(a,b){if(a)var c=a.id;else{do c=Math.random();while(google.y[c])}google.y[c]=[a,b];return!1});var e;(e=google).sx||(e.sx=function(a){google.sy.push(a)});google.lm=[];var f;(f=google).plm||(f.plm=function(a){google.lm.push.apply(google.lm,a)});google.lq=[];var g;(g=google).load||(g.load=function(a,b,c){google.lq.push([[a],b,c])});var h;(h=google).loadAll||(h.loadAll=function(a,b){google.lq.push([a,b])});google.bx=!1;var k;(k=google).lx||(k.lx=function(){});var l=[],m;(m=google).fce||(m.fce=function(a,b,c,n){l.push([a,b,c,n])});google.qce=l;}).call(this);google.f={};(function(){
document.documentElement.addEventListener("submit",function(b){var a;if(a=b.target){var c=a.getAttribute("data-submitfalse");a=c==="1"||c==="q"&&!a.elements.q.value?!0:!1}else a=!1;a&&(b.preventDefault(),b.stopPropagation())},!0);document.documentElement.addEventListener("click",function(b){var a;a:{for(a=b.target;a&&a!==document.documentElement;a=a.parentElement)if(a.tagName==="A"){a=a.getAttribute("data-nohref")==="1";break a}a=!1}a&&b.preventDefault()},!0);}).call(this);</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}.gbi .gb4{color:#dd8e27 !important}.gbf .gb4{color:#900 !important}
</style><style>body,td,a,p,.h{font-family:arial,sans-serif}body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}.h{color:#1967d2}em{font-weight:bold;font-style:normal}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{display:inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}body{background:#fff;color:#000}a{color:#681da8;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#1967d2}a:visited{color:#681da8}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px}.lsbb{background:#f8f9fa;border:solid 1px;border-color:#dadce0 #70757a #70757a #dadce0;height:30px}.lsbb{display:block}#WqQANb a{display:inline-block;margin:0 12px}.lsb{background:url(/images/nav_logo229.png) 0 -261px repeat-x;color:#000;border:none;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#dadce0}.lst:focus{outline:none}</style><script nonce="MN2QZB51V7PY360Bs1K01w">(function(){window.google.erd={jsr:1,bv:2124,de:true,dpf:'q3FinDdcnrUSx5_P0tTdg6Q_HaUIhVG28GzTt7dNDPQ'};
var g=this||self;var k,l=(k=g.mei)!=null?k:1,n,p=(n=g.sdo)!=null?n:!0,q=0,r,t=google.erd,v=t.jsr;google.ml=function(a,b,d,m,e){e=e===void 0?2:e;b&&(r=a&&a.message);d===void 0&&(d={});d.cad="ple_"+google.ple+".aple_"+google.aple;if(google.dl)return google.dl(a,e,d,!0),null;b=d;if(v<0){window.console&&console.error(a,b);if(v===-2)throw a;b=!1}else b=!a||!a.message||a.message==="Error loading script"||q>=l&&!m?!1:!0;if(!b)return null;q++;d=d||{};b=encodeURIComponent;var c="/gen_204?atyp=i&ei="+b(google.kEI);google.kEXPI&&(c+="&jexpid="+b(google.kEXPI));c+="&srcpg="+b(google.sn)+"&jsr="+b(t.jsr)+
"&bver="+b(t.bv);t.dpf&&(c+="&dpf="+b(t.dpf));var f=a.lineNumber;f!==void 0&&(c+="&line="+f);var h=a.fileName;h&&(h.indexOf("-extension:/")>0&&(e=3),c+="&script="+b(h),f&&h===window.location.href&&(f=document.documentElement.outerHTML.split("\n")[f],c+="&cad="+b(f?f.substring(0,300):"No script found.")));google.ple&&google.ple===1&&(e=2);c+="&jsel="+e;for(var u in d)c+="&",c+=b(u),c+="=",c+=b(d[u]);c=c+"&emsg="+b(a.name+": "+a.message);c=c+"&jsst="+b(a.stack||"N/A");c.length>=12288&&(c=c.substr(0,12288));a=c;m||google.log(0,"",a);return a};window.onerror=function(a,b,d,m,e){r!==a&&(a=e instanceof Error?e:Error(a),d===void 0||"lineNumber"in a||(a.lineNumber=d),b===void 0||"fileName"in a||(a.fileName=b),google.ml(a,!1,void 0,!1,a.name==="SyntaxError"||a.message.substring(0,11)==="SyntaxError"||a.message.indexOf("Script error")!==-1?3:0));r=null;p&&q>=l&&(window.onerror=null)};})();</script></head><body bgcolor="#fff"><script nonce="MN2QZB51V7PY360Bs1K01w">(function(){var src='/images/nav_logo229.png';var iesg=false;document.body.onload = function(){window.n && window.n();if (document.images){new Image().src=src;}
if (!iesg){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}
}
})();</script><div id="mngb"><div id=gbar><nobr><b class=gb1>Search</b> <a class=gb1 href="https://www.google.com/imghp?hl=en&tab=wi">Images</a> <a class=gb1 href="http://maps.google.ca/maps?hl=en&tab=wl">Maps</a> <a class=gb1 href="https://play.google.com/?hl=en&tab=w8">Play</a> <a class=gb1 href="https://www.youtube.com/?tab=w1">YouTube</a> <a class=gb1 href="https://news.google.com/?tab=wn">News</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 href="https://drive.google.com/?tab=wo">Drive</a> <a class=gb1 style="text-decoration:none" href="https://www.google.ca/intl/en/about/products?tab=wh"><u>More</u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe></span><a href="http://www.google.ca/history/optout?hl=en" class=gb4>Web History</a> | <a href="/preferences?hl=en" class=gb4>Settings</a> | <a target=_top id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/&ec=GAZAAQ" class=gb4>Sign in</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div></div><center><br clear="all" id="lgpd"><div id="XjhHGf"><img alt="Google" height="92" src="/images/branding/googlelogo/1x/googlelogo_white_background_color_272x92dp.png" style="padding:28px 0 14px" width="272" id="hplogo"><br><br></div><form action="/search" name="f"><table cellpadding="0" cellspacing="0"><tr valign="top"><td width="25%">&nbsp;</td><td align="center" nowrap=""><input name="ie" value="ISO-8859-1" type="hidden"><input value="en-CA" name="hl" type="hidden"><input name="source" type="hidden" value="hp"><input name="biw" type="hidden"><input name="bih" type="hidden"><div class="ds" style="height:32px;margin:4px 0"><input class="lst" style="margin:0;padding:5px 8px 0 6px;vertical-align:top;color:#000" autocomplete="off" value="" title="Google Search" maxlength="2048" name="q" size="57"></div><br style="line-height:0"><span class="ds"><span class="lsbb"><input class="lsb" value="Google Search" name="btnG" type="submit"></span></span><span class="ds"><span class="lsbb"><input class="lsb" id="tsuid_UopLZ_7VOKbL0PEPkZTI-AU_1" value="I'm Feeling Lucky" name="btnI" type="submit"><script nonce="MN2QZB51V7PY360Bs1K01w">(function(){var id='tsuid_UopLZ_7VOKbL0PEPkZTI-AU_1';document.getElementById(id).onclick = function(){if (this.form.q.value){this.checked = 1;if (this.form.iflsig)this.form.iflsig.disabled = false;}
else top.location='/doodles/';};})();</script><input value="AL9hbdgAAAAAZ0uYYnv4B8o2RkalxX5OjJ02MoxjiuPx" name="iflsig" type="hidden"></span></span></td><td class="fl sblc" align="left" nowrap="" width="25%"><a href="/advanced_search?hl=en-CA&amp;authuser=0">Advanced search</a></td></tr></table><input id="gbv" name="gbv" type="hidden" value="1"><script nonce="MN2QZB51V7PY360Bs1K01w">(function(){var a,b="1";if(document&&document.getElementById)if(typeof XMLHttpRequest!="undefined")b="2";else if(typeof ActiveXObject!="undefined"){var c,d,e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(c=0;d=e[c++];)try{new ActiveXObject(d),b="2"}catch(h){}}a=b;if(a=="2"&&location.search.indexOf("&gbv=2")==-1){var f=google.gbvu,g=document.getElementById("gbv");g&&(g.value=a);f&&window.setTimeout(function(){location.href=f},0)};}).call(this);</script></form><div style="font-size:83%;min-height:3.5em"><br><div id="gws-output-pages-elements-homepage_additional_languages__als"><style>#gws-output-pages-elements-homepage_additional_languages__als{font-size:small;margin-bottom:24px}#SIvCob{color:#474747;display:inline-block;line-height:28px;}#SIvCob a{padding:0 3px;}.H6sW5{display:inline-block;margin:0 2px;white-space:nowrap}.z4hgWe{display:inline-block;margin:0 2px}</style><div id="SIvCob">Google offered in: <a href="http://www.google.com/setprefs?sig=0_57mxySJy36zyLauZVtuILw_ofRQ%3D&amp;hl=fr&amp;source=homepage&amp;sa=X&amp;ved=0ahUKEwj-xp-7hoWKAxWmJTQIHREKEl8Q2ZgBCAY">Français</a> </div></div></div><span id="footer"><div style="font-size:10pt"><div style="margin:19px auto;text-align:center" id="WqQANb"><a href="/intl/en/ads/">Advertising</a><a href="/services/">Business Solutions</a><a href="/intl/en/about.html">About Google</a><a href="http://www.google.com/setprefdomain?prefdom=CA&amp;prev=http://www.google.ca/&amp;sig=K_kXl75o9ycixtT-xZvChphBM0hR0%3D">Google.ca</a></div></div><p style="font-size:8pt;color:#70757a">&copy; 2024 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p></span></center><script nonce="MN2QZB51V7PY360Bs1K01w">(function(){window.google.cdo={height:757,width:1440};(function(){var a=window.innerWidth,b=window.innerHeight;if(!a||!b){var c=window.document,d=c.compatMode=="CSS1Compat"?c.documentElement:c.body;a=d.clientWidth;b=d.clientHeight}if(a&&b&&(a!=google.cdo.width||b!=google.cdo.height)){var e=google,f=e.log,g="/client_204?&atyp=i&biw="+a+"&bih="+b+"&ei="+google.kEI,h="",k=window.google&&window.google.kOPI||null;k&&(h+="&opi="+k);f.call(e,"","",g+h)};}).call(this);})();</script> <script nonce="MN2QZB51V7PY360Bs1K01w">(function(){google.xjs={basecomb:'/xjs/_/js/k\x3dxjs.hp.en.1O39NlLrT_w.es5.O/ck\x3dxjs.hp.i_QW66W2dnc.L.X.O/am\x3dBAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAAAAAAAAAAAMAACMBgAAgAAAAQIAAAAAAAAAAAAAACIAAAUAYQIAACC-IwAQAIsAAPAC/d\x3d1/ed\x3d1/dg\x3d0/ujg\x3d1/rs\x3dACT90oFka5NvmjT72zi1TDSOMFZkXN7qUg',basecss:'/xjs/_/ss/k\x3dxjs.hp.i_QW66W2dnc.L.X.O/am\x3dBAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACMAAAAgAAAAQIAAAAAAAAAAAAAACIAAAUAYQI/rs\x3dACT90oGw42FLx1nOBpxxIe5LW4gxh4vlJg',basejs:'/xjs/_/js/k\x3dxjs.hp.en.1O39NlLrT_w.es5.O/am\x3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAMAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC-IwAQAIsAAPAC/dg\x3d0/rs\x3dACT90oHTW_vkV2ytetplKXyGTLTZ5UYRgQ',excm:[]};})();</script> <script nonce="MN2QZB51V7PY360Bs1K01w">(function(){var u='/xjs/_/js/k\x3dxjs.hp.en.1O39NlLrT_w.es5.O/am\x3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAMAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC-IwAQAIsAAPAC/d\x3d1/ed\x3d1/dg\x3d3/rs\x3dACT90oHTW_vkV2ytetplKXyGTLTZ5UYRgQ/m\x3dsb_he,d';var st=1;var amd=1000;var mmd=0;var pod=true;
var e=this||self;function f(){var a,b,d;if(b=a=(b=window.google)==null?void 0:(d=b.ia)==null?void 0:d.r.B2Jtyd)b=a.m,b=b===1||b===5;return b&&a.cbfd!=null&&a.cbvi!=null?a:void 0};function g(){var a=[u];if(!google.dp){for(var b=0;b<a.length;b++){var d=a[b],c=document.createElement("link");c.as="script";c.href=d;c.rel="preload";document.body.appendChild(c)}google.dp=!0}};google.ps===void 0&&(google.ps=[]);function h(){var a=u,b=function(){};google.lx=google.stvsc?b:function(){k(a);google.lx=b};google.bx||google.lx()}function l(a,b){b&&(a.src=b);var d=a.onload;a.onload=function(c){d&&d(c);google.ps=google.ps.filter(function(C){return a!==C})};google.ps.push(a);document.body.appendChild(a)}google.as=l;function k(a){google.timers&&google.timers.load&&google.tick&&google.tick("load","xjsls");var b=document.createElement("script");b.onerror=function(){google.ple=1};b.onload=function(){google.ple=0};google.xjsus=void 0;l(b,a);google.aple=-1;google.dp=!0};function m(a){var b=a.getAttribute("jscontroller");return(b==="UBXHI"||b==="R3fhkb"||b==="TSZEqd")&&a.hasAttribute("data-src")}function n(){for(var a=document.getElementsByTagName("img"),b=0,d=a.length;b<d;b++){var c=a[b];if(c.hasAttribute("data-lzy_")&&Number(c.getAttribute("data-atf"))&1&&!m(c))return!0}return!1}for(var p=document.getElementsByTagName("img"),q=0,r=p.length;q<r;++q){var t=p[q];Number(t.getAttribute("data-atf"))&1&&m(t)&&(t.src=t.getAttribute("data-src"))};var w,x,y,z,A,B;function D(){google.xjsu=u;e._F_jsUrl=u;A=function(){h()};w=!1;x=(st===1||st===3)&&!!google.caft&&!n();y=f();z=(st===2||st===3)&&!!y&&!n();B=pod}function E(){w||x||z||(A(),w=!0)}setTimeout(function(){google&&google.tick&&google.timers&&google.timers.load&&google.tick("load","xjspls");D();if(x||z){if(x){var a=function(){x=!1;E()};google.caft(a);window.setTimeout(a,amd)}z&&(a=function(){z=!1;E()},y.cbvi.push(a),window.setTimeout(a,mmd));B&&(w||g())}else A()},0);})();window._ = window._ || {};window._DumpException = _._DumpException = function(e){throw e;};window._s = window._s || {};_s._DumpException = _._DumpException;window._qs = window._qs || {};_qs._DumpException = _._DumpException;(function(){var t=[4,65536,0,0,0,0,0,0,66560,0,134218752,587595779,268440582,134479882,10485760,0,0,335544456,2494480,797442048,135266339,556,47];window._F_toggles = window._xjs_toggles = t;})();window._F_installCss = window._F_installCss || function(css){};(function(){google.jl={bfl:0,dw:false,ine:false,ubm:false,uwp:true,vs:false};})();(function(){var pmc='{\x22d\x22:{},\x22sb_he\x22:{\x22agen\x22:false,\x22cgen\x22:false,\x22client\x22:\x22heirloom-hp\x22,\x22dh\x22:true,\x22ds\x22:\x22\x22,\x22fl\x22:true,\x22host\x22:\x22google.com\x22,\x22jsonp\x22:true,\x22msgs\x22:{\x22cibl\x22:\x22Clear Search\x22,\x22dym\x22:\x22Did you mean:\x22,\x22lcky\x22:\x22I\\u0026#39;m Feeling Lucky\x22,\x22lml\x22:\x22Learn more\x22,\x22psrc\x22:\x22This search was removed from your \\u003Ca href\x3d\\\x22/history\\\x22\\u003EWeb History\\u003C/a\\u003E\x22,\x22psrl\x22:\x22Remove\x22,\x22sbit\x22:\x22Search by image\x22,\x22srch\x22:\x22Google Search\x22},\x22ovr\x22:{},\x22pq\x22:\x22\x22,\x22rfs\x22:[],\x22stok\x22:\x22X0e4blEaxLfd7n7nOKgA0COMHtQ\x22}}';google.pmc=JSON.parse(pmc);})();(function(){var b=function(a){var c=0;return function(){return c<a.length?{done:!1,value:a[c++]}:{done:!0}}};
var e=this||self;var g,h;a:{for(var k=["CLOSURE_FLAGS"],l=e,n=0;n<k.length;n++)if(l=l[k[n]],l==null){h=null;break a}h=l}var p=h&&h[610401301];g=p!=null?p:!1;var q,r=e.navigator;q=r?r.userAgentData||null:null;function t(a){return g?q?q.brands.some(function(c){return(c=c.brand)&&c.indexOf(a)!=-1}):!1:!1}function u(a){var c;a:{if(c=e.navigator)if(c=c.userAgent)break a;c=""}return c.indexOf(a)!=-1};function v(){return g?!!q&&q.brands.length>0:!1}function w(){return u("Safari")&&!(x()||(v()?0:u("Coast"))||(v()?0:u("Opera"))||(v()?0:u("Edge"))||(v()?t("Microsoft Edge"):u("Edg/"))||(v()?t("Opera"):u("OPR"))||u("Firefox")||u("FxiOS")||u("Silk")||u("Android"))}function x(){return v()?t("Chromium"):(u("Chrome")||u("CriOS"))&&!(v()?0:u("Edge"))||u("Silk")}function y(){return u("Android")&&!(x()||u("Firefox")||u("FxiOS")||(v()?0:u("Opera"))||u("Silk"))};var z=v()?!1:u("Trident")||u("MSIE");y();x();w();var A=!z&&!w(),D=function(a){if(/-[a-z]/.test("ved"))return null;if(A&&a.dataset){if(y()&&!("ved"in a.dataset))return null;a=a.dataset.ved;return a===void 0?null:a}return a.getAttribute("data-"+"ved".replace(/([A-Z])/g,"-$1").toLowerCase())};var E=[],F=null;function G(a){a=a.target;var c=performance.now(),f=[],H=f.concat,d=E;if(!(d instanceof Array)){var m=typeof Symbol!="undefined"&&Symbol.iterator&&d[Symbol.iterator];if(m)d=m.call(d);else if(typeof d.length=="number")d={next:b(d)};else throw Error("b`"+String(d));for(var B=[];!(m=d.next()).done;)B.push(m.value);d=B}E=H.call(f,d,[c]);if(a&&a instanceof HTMLElement)if(a===F){if(c=E.length>=4)c=(E[E.length-1]-E[E.length-4])/1E3<5;if(c){c=google.getEI(a);a.hasAttribute("data-ved")?f=a?D(a)||"":"":f=(f=
a.closest("[data-ved]"))?D(f)||"":"";f=f||"";if(a.hasAttribute("jsname"))a=a.getAttribute("jsname");else{var C;a=(C=a.closest("[jsname]"))==null?void 0:C.getAttribute("jsname")}google.log("rcm","&ei="+c+"&tgtved="+f+"&jsname="+(a||""))}}else F=a,E=[c]}window.document.addEventListener("DOMContentLoaded",function(){document.body.addEventListener("click",G)});}).call(this);</script></body></html>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="40" width="40" viewBox="0 0 122.88 59.81" style="enable-background:new 0 0 122.88 59.81" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;}</style><g><path class="st0" d="M20.72,8.03V4.92L3.79,6.54C0.53,6.9-0.14,5.78,0.02,4.59C0.43,1.64,2,2.33,4.25,2.45l16.46,0.83V1.16 c0-0.64,0.52-1.16,1.16-1.16h0.98c0.64,0,1.16,0.52,1.16,1.16v2.11L40.52,1.8c2.25-0.12,3.82-0.81,4.23,2.15 c0.16,1.18-0.51,2.31-3.77,1.94L24.03,4.92v3.11h1.23c0.88,0,1.6,0.72,1.6,1.6v5.77h69.15V9.68c0-0.9,0.74-1.65,1.65-1.65h1.17 V4.92L81.9,6.54c-3.27,0.37-3.93-0.76-3.77-1.94c0.41-2.96,1.98-2.26,4.23-2.15l16.46,0.83V1.16c0-0.64,0.52-1.16,1.16-1.16h0.98 c0.64,0,1.16,0.52,1.16,1.16v2.11l16.49-1.47c2.25-0.12,3.82-0.81,4.23,2.15c0.16,1.18-0.51,2.31-3.77,1.94l-16.95-0.97v3.11h1.23 c0.88,0,1.6,0.72,1.6,1.6v5.77h13.85c1.67,0,3.04,1.37,3.04,3.04l0,0c0,1.67-1.37,3.04-3.04,3.04H93.85 c-2.32,3.29-8.94,4.56-18.66,4.38c3.32,3.1,6.52,6.6,9.54,10.77c4.01,5.39,7.38,11.07,9.26,17.38c0.65,7.28-6.69,6.05-9.07,4.63 c-3.49-0.44-3.48-6.04-3.76-11.22c-0.25-4.57-0.74-8.99-4.24-12.35c-1.73-1.66-4.14-3.08-7.39-4.2c-0.77,0.74-1.7,1.41-2.77,2.02 c-5,2.83-9.66,3.61-13.55-2.49c-2.27,0.67-4.22,1.69-5.87,3.03c-6.69,5.4-6.44,12.92-6.78,21.15c-0.82,5.72-13.35,8.46-12.33-0.91 c0.2-1.86,1.05-3.54,2.23-5.13c4.62-8.98,9.98-16.78,16.59-22.55c-8.48,0.18-15.05-1.06-18.7-4.5H3.13c-1.67,0-3.04-1.37-3.04-3.04 l0,0c0-1.67,1.37-3.04,3.04-3.04H17.9V9.68c0-0.9,0.74-1.65,1.65-1.65H20.72L20.72,8.03z M58.44,23.91h5.06 c0.75,0,1.36,0.61,1.36,1.36l0,0c0,0.75-0.61,1.36-1.36,1.36h-5.06c-0.74,0-1.36-0.61-1.36-1.36l0,0 C57.09,24.52,57.7,23.91,58.44,23.91L58.44,23.91z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -14,7 +14,61 @@
<div class="row">
<div class="col-12">
<h2 class="fw-bold">Health Status</h2>
<p>At a glance view of the status of the drone.</p>
<div class="card-header">
<img src="assets/icons/drone-icon.svg" width="50px" height="50px" class="me-2"/><span>At a glance view of the status of the drone.</span>
</div>
<div class="card-body">
<table class="table table-dark">
<thead>
<tr>
<th scope="col">Drone</th>
<td id="droneName"></th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">IP Address</th>
<td id="ipAddress"></td>
</tr>
<tr>
<th scope="row">Docker Container</th>
<td id="dockerContainer"></td>
</tr>
<tr>
<th scope="row">Connection Upstream</th>
<td id="connectionUpstream"></td>
</tr>
<tr>
<th scope="row">Network SSID</th>
<td id="networkSSID"></td>
</tr>
<tr>
<th scope="row">Camera Devices</th>
<td id="cameraDevices"></td>
</tr>
<tr>
<th scope="row">Connected Devices</th>
<td id="connectedDevices"></td>
</tr>
<tr>
<th scope="row">Zerotier IP</th>
<td id="zerotierIP">N/A</td>
</tr>
<tr>
<th scope="row">Hotspot Connections</th>
<td id="hotspotConnections">N/A</td>
</tr>
<tr>
<th scope="row">GCS</th>
<td id="gcs">N/A</td>
</tr>
<tr>
<th scope="row">FCU Firmware</th>
<td id="fcuFirmware">N/A</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>

View File

@ -1,9 +1,130 @@
// Initialize Drone Table Elements
const droneName = document.getElementById("droneName");
const ipAddress = document.getElementById("ipAddress");
const dockerContainer = document.getElementById("dockerContainer");
const connectionUpstream = document.getElementById("connectionUpstream");
const networkSSID = document.getElementById("networkSSID");
const cameraDevices = document.getElementById("cameraDevices");
const connectedDevices = document.getElementById("connectedDevices");
// Elements
// Load initial settings
// Load page
document.onload = initPage();
// Function to initialize the page
function initPage() {
}
// Populate health table with:
// Drone Name
// Drone IP address
// Drone Docker Containers that are running
// Connection Upstream Status
// Network SSID
// Camera Devices List
// Connected Devices List
// Below are the list of Commands used to acquire the information to populate the health table
// Name corresponds to host computer's name
const droneNameCommand = "hostname"
// Host Computer's IP
const ipAddressCommand = "hostname -I"
// List of all Docker Container IDs
const dockerContainerCommand = "docker container ls"
// Ping Google to check upstream connection
const connectionUpstreamCommand = "ping google.com -c 1"
// SSID of the network the Drone is connected to
const networkSSIDCommand = "iwgetid -r"
// Camera devices are those listed by /dev/video*
const cameraDevicesCommand = "ls /dev/video*"
// Connected Devices are those listed under /dev/bus/usb
const connectedDevicesCommand = "lsusb"
// Extract the Drone Name from console output and insert it into the table
cockpit.spawn(["bash", "-c", droneNameCommand])
.then((data) => {
droneName.innerHTML = data.split(" ")[0];
})
.catch((error) => console.log(error));
// Extract the IP Address from console output and insert it into the table
cockpit.spawn(["bash", "-c", ipAddressCommand])
.then((data) => {
ipAddress.innerHTML = data.split(" ")[0];
})
.catch((error) => console.log(error));
// Extract the Docker Container IDs from console output and insert it into the table
cockpit.spawn(["bash", "-c", dockerContainerCommand])
.then((data) => {
const datalist = data.split("\n");
// If no Docker Containers up
if (datalist[1].split(" ")[0] == ""){
dockerContainer.className = "p-3 mb-2 bg-danger text-white";
dockerContainer.innerHTML += "Error: No Docker Containers to Display";
} else {
// List each container on a new line
for (let i = 0; i < datalist.length - 2; i++) {
dockerContainer.innerHTML += datalist[i + 1].split(" ")[0];
dockerContainer.innerHTML += "<br>";
}
dockerContainer.innerHTML += datalist[datalist.length - 1].split(" ")[0];
}
})
.catch((error) => console.log(error));
// Extract the Connection Upstream Status from console output and insert it into the table
cockpit.spawn(["bash", "-c", connectionUpstreamCommand])
.then((data) => {
const datalist = data.split(" ");
// If error no upstream returned
if (datalist[0] == "ping:") {connectionUpstream.innerHTML = "Connection LIMITED - No upstream";}
// If ping succeeded
else if (datalist[0] == "PING") {connectionUpstream.innerHTML = "Connection OK";}
// If some other output returned
else {connectionUpstream.innerHTML = "Connection DOWN";}
})
.catch((error) => console.log(error));
// Extract the Network SSID from console output and insert it into the table
cockpit.spawn(["bash", "-c", networkSSIDCommand])
.then((data) => {
if (data.length == 0) {
networkSSID.innerHTML = "None";
} else {
networkSSID.innerHTML = data
}
})
.catch((error) => console.log(error));
// Extract the Camera Devices from console output and insert it into the table
cockpit.spawn(["bash", "-c", cameraDevicesCommand])
.then((data) => {
// If no devices detected
if (data.length == 0) {cameraDevices.innerHTML = "No Camera Devices Detected";}
// Otherwise print the list of Camera Devices
else {
const datalist = data.replaceAll("\n", "<br>");
cameraDevices.innerHTML += datalist;
}
})
.catch((error) => console.log(error));
// Extract the Connected Devices List from console output and insert it into the table
cockpit.spawn(["bash", "-c", connectedDevicesCommand])
.then((data) => {
const datalist = data.split("\n");
// If no devices listed
if (data.length == 0) {connectedDevices.innerHTML = "No devices detected";}
// Otherwise, list each device by name and path
for (let i = 0; i < datalist.length - 1; i++) {
const name = datalist[i].split(" ");
for (let j = 6; j < name.length; j++) {
connectedDevices.innerHTML += name[j] + " ";
}
connectedDevices.innerHTML += "<br>";
connectedDevices.innerHTML += "/dev/bus/usb/" + name[1] + "/" + name[3].replace(":", "");
if (i != datalist.length - 2) {
connectedDevices.innerHTML += "<br><br>";
}
}
})
.catch((error) => console.log(error));
}