https://beadchallenge.org/

제출된 URL:
https://beadchallenge.org/
보고서 완료:

링크 · 6개 결과

페이지에서 식별된 외부 링크

링크텍스트
http://openspeedtest.com?ref=Self-Hosted-Intro&run=5OpenSpeedTest™️
https://openspeedtest.com/FAQ.php?ref=NetworkErrorNetwork Error
https://datascience.uchicago.edu/
https://internetequity.uchicago.edu/
https://openspeedtest.com?ref=Self-Hosted&RunSpeedTest by OpenSpeedTest™
https://github.com/openspeedtest/Speed-TestOpen-Source HTML5 Network Speed Test

JavaScript 변수 · 43개 결과

페이지의 창 개체에 로드된 전역 JavaScript 변수는 함수 외부에서 선언된 변수로, 현재 범위 내에서 코드의 어느 부분에서나 액세스할 수 있습니다

이름유형
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
axiosfunction
saveTestDataBEADChallengeundefined
stdQueryDataundefined
openSpeedTestServerListobject
pingSamplesnumber
jitterFinalSamplenumber
setPingSamplesboolean

콘솔 로그 메시지 · 3개 결과

웹 콘솔에 기록된 메시지

유형카테고리로그
logother
URL
https://beadchallenge.org/
텍스트
OpenSpeedTest.com V2.5.4 Loaded!
logother
URL
https://beadchallenge.org/
텍스트
Now Press the Start Button or HIT Enter.
logother
URL
https://beadchallenge.org/
텍스트
The secret to living happy is giving happiness. Have a wonderful day.

HTML

페이지의 원시 HTML 본문

<!DOCTYPE html><html lang="en"><head>
  <title>SpeedTest for the BEAD Challenge process</title>
  <meta name="description" content="Test your network speed now. OpenSpeedTest™ for the BEAD Challenge process">
  <link href="assets/css/app.css" rel="stylesheet" type="text/css">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta property="og:type" content="website">
  <meta property="og:url" content="https://beadchallengeorg/">
  <meta property="og:title" content="OpenSpeedtest for the BEAD Challenge process">
  <meta property="og:description" content="Test your network speed now. OpenSpeedTest™ for the BEAD Challenge process">
  <meta property="og:image" content="assets/images/icons/favicon-32x32.png">
  <link rel="canonical" href="https://beadchallenge.org">
  <link rel="icon" type="image/png" sizes="32x32" href="assets/images/icons/favicon-32x32.png">
  <link rel="manifest" href="assets/images/icons/site.webmanifest">
  <link rel="shortcut icon" href="assets/images/icons/favicon.ico">
  <meta name="msapplication-TileColor" content="#ffc40d">
  <meta name="msapplication-config" content="assets/images/icons/browserconfig.xml">
  <meta name="theme-color" content="#ffffff">
  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  <style>
    .navbar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        background-color: #fff;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        padding: 5px 15px 2px 5px;
        margin-top: 5px;
        margin-left: 10px;
        width: calc(100vw - 40px);
        height: 70px;
    }
    .navbar-logo img {
        height: 40px;
        padding: 0;
    }
    .navbar-title {
        font-weight: 600;
        background-color: #880000;
        background-clip: text;
        text-shadow: 5px 5px 15px #cccccc;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        font-family: 'Roboto';
        text-align: center;
    }
    .navbar-links {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        list-style: none;
        margin: 0;
        padding: 0;
        z-index: 1;
    }
    .navbar-links li {
        margin-left: 2rem;
    }
    .navbar-links a {
        color: #333;
        text-decoration: none;
    }
    .navbar-dropdown {
        position: relative;
    }
    .navbar-dropdown i {
        font-size: 1.5rem;
        cursor: pointer;
    }
    .dropdown-menu {
        position: absolute;
        top: 100%;
        width: 150px;
        right: 0;
        background-color: #fff;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        padding: 0.5rem 0;
        list-style: none;
        margin: 0;
        visibility: hidden;
    }
    .dropdown-menu li {
        margin: 0;
    }
    .dropdown-menu li:hover {
        background-color: #000;
    }
    .dropdown-menu a {
        color: #333;
        text-decoration: none;
        display: block;
        padding: 0.5rem 1rem;
    }
    .dropdown-menu a:hover {
        color: #fff;
    }
    .navbar-dropdown:hover .dropdown-menu {
        visibility: visible;
    }
    .beadchallenge {
        background-color: rgb(243, 243, 243);
        text-align: center;
        font-size:14px;
        font-family: Roboto-Medium, Roboto;
        font-weight: 500;
        display: inline-block;
        width: calc(100vw - 20px);
        margin-left: 10px;
        margin-bottom: 10px;
    }
    .beadchallenge-banner {
        text-shadow: 5px 5px 15px #cccccc;
    }
    @keyframes updown {
      0% {
       transform: translateY(-100%);
      }
      50% {
       transform: translateY(100%);
      }

      100% {
       transform: translateY(-100%);
      }
    }
    .collapsible {
        cursor: pointer;
    }
    .collapsible:after {
        content: '\25BC';
        color: #880000;
        font-weight: bold;
        font-size: 20px;
        /*float: right;*/
        margin-left: 5px;
    }
    .active, .collapsible:hover {
        background-color: #ccc;
    }
    .active:after {
        content: "\25B2"; /* Unicode character for "minus" sign (-) */
    }
    .content {
        padding: 0 18px;
        background-color: white;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.2s ease-out;
    }
    p {
        font-family: Roboto-Medium, Roboto;
    }
    input {
        box-sizing: border-box;
        border: 2px solid #ccc;
        border-radius: 4px;
        background-color: #f8f8f8;
    }
    .popup {
        position: relative;
        display: inline-block;
        cursor: pointer;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        font-family: Roboto-Medium, Roboto;
        font-style: italic;
    }
    .popup .popuptext {
        visibility: hidden;
        width: 160px;
        background-color: #555;
        color: #fff;
        text-align: center;
        border-radius: 6px;
        padding: 8px 0;
        position: absolute;
        z-index: 1;
        bottom: 125%;
        left: 50%;
        margin-left: -80px;
    }
    /* Popup arrow */
    .popup .popuptext::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 50%;
        margin-left: -5px;
        border-width: 5px;
        border-style: solid;
        border-color: #555 transparent transparent transparent;
    }

    /* Toggle this class - hide and show the popup */
    .popup .show {
        visibility: visible;
        -webkit-animation: fadeIn 1s;
        animation: fadeIn 1s;
    }

    /* Add animation (fade in the popup) */
    @-webkit-keyframes fadeIn {
        from {opacity: 0;} 
        to {opacity: 1;}
    }

    @keyframes fadeIn {
        from {opacity: 0;}
        to {opacity:1 ;}
    }
    .getloc {
        font-family: Roboto;
        background-color: #880000;
        border: none;
        color: white;
        text-align: center;
        text-decoration: none;
        display: inline-block;
        border-radius: 12px;
    }
    .centered {
        align-items: center;
        display: flex;
        width: 100%;
        justify-content: center;
        margin-bottom: 10px;
    }
    .title {
	display: none;
    }
    @media (min-width: 600px) {
      .title {
        display: block; 
      }
    }
    #loader {
        border: 12px solid #f3f3f3;
        border-radius: 50%;
        border-top: 12px solid #444444;
        width: 70px;
        height: 70px;
        animation: spin 1s linear infinite;
    }
    .loadercenter {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        margin: auto;
     }
     @keyframes spin {
        100% {
           transform: rotate(360deg);
        }
     }
 </style>
</head>
<body>
<div id="loader" class="loadercenter" style="visibility: hidden;"></div>
<nav class="navbar">
    <div class="navbar-logo">
        <!--img src="./logo.svg" alt="Logo" /-->
    <img style="height: 50px;" src="https://beadchallenge.vercel.app/DSILogo1.png">
    </div>
    <div class="navbar-title"><h3 class="title">Speed Test for Broadband Equity, Access and Deployment (BEAD) Challenge Process</h3></div>
    <div>
    <!--ul class="navbar-links">
        <li class="navbar-dropdown">
        <a href="#"> <FontAwesomeIcon icon={faBars} size = "1x"/></a>
        <ul class="dropdown-menu">
            <li><a href="#">Sign Up</a></li>
            <li><a href="#">Sign In</a></li>
            <li><a href="#">About</a></li>
        </ul>
        </li>
    </ul-->
    <img style="height: 50px;" src="https://beadchallenge.vercel.app/IEILogo1.svg">
    </div>
    </nav>
  <script type="text/javascript">
/*
     Official Website : https://OpenSpeedTest.COM | Email: [email protected]
     Developed by : Vishnu | https://Vishnu.Pro | Email : [email protected] 
            
     HTML5 Network Performance Estimation Tool -> [JS,XHR,SVG,HTML,CSS]
     Started in 2011 and Moved to OpenSpeedTest.COM, Dedicated Project/Domain Name in 2013.
     SpeedTest Script -> 2013 -> Beta | 2015 -> V1 | 2019 ->V2 | 2020 V2.1 | 2021 V2.12 | 2022 V2.5 & 2.5.3
     Self-Hosted OpenSpeedTest-Server (iFrame/Nginx) -> 2014. (Managed SelfHosted SpeedTesT Widget)
     OpenSpeedTest-Server (On-premises) (Fully SelfHosted Apps)
     [OpenSpeedTest-Server Docker Image] -> V1 2019 | V2 2020 | V2.1 2021 | V2.2 & 2.2.2 2022
     [Node.js/Electron JS  OpenSpeedTest-Server Desktop Apps] -> 2020 V1 | 2021 V2 & V2.1 | 2.1.1 to 2.1.8 2022
     [Ionic Android and iOS OpenSpeedTest-Server Mobile Apps] V1.2 to 1.5 2022 

     Download Now -> https://go.openspeedtest.com/Server

     Like this Project? Please Donate NOW & Keep us Alive -> https://go.openspeedtest.com/Donate

     Speed Test by OpenSpeedTest™️ is Free and Open-Source Software (FOSS) with MIT License.
     Read full license terms @ http://go.openspeedtest.com/License

     If you have any Questions, ideas or Comments Please Send it via -> https://go.openspeedtest.com/SendMessage
*/

    var saveTestDataBEADChallenge;
    var stdQueryData;

     // Add or Remove Server --> Automatically choose the one with the least latency
    var openSpeedTestServerList = [
        {"ServerName":"Home", "Download":"downloading", "Upload":"upload", "ServerIcon":"DefaultIcon"}
      ];
          
    // Send pings 'pingSamples' times to each Server URL.
        var pingSamples = 10;

    // 50% samples(Least)/length 1=100% 0.1 = 10%
        var jitterFinalSample = 0.5; 

    // Set a pingSample dynamically by passing "Ping" or "p" as a URL Parameter.
        var setPingSamples = true;

    // If Server has not responded within 5 Seconds for any requests we send ('pingSamples' times)
    // We will show Network Error. You can change the limit here.
    // In milliseconds, if you need to set 6 seconds. Change the value to 6000.
        var pingTimeOut = 5000; 

    // Set a PingTimeout dynamically by passing "Out" or "O" as a URL Parameter    
        var setPingTimeout = true;

    // GET or HEAD  // Other Methods may work. but why?
        var pingMethod = "GET";

    //Choose Download or Upload from the Server list. If you Prefer Download, change pingMethod to HEAD.
        var pingFile = "Upload";

    // The amount of garbage data sent to the server in Mb, 30 = 30Mb
        var ulDataSize = 30;

    // Don't touch it
        var ulDelay = 300;
        var dlDelay = 300;

    // Overhead Compensation factor, This is a browser-dependent test, Many Unknowns. Currently, 4%. That is within the margin of error.
        var upAdjust = 1.04;
        var dlAdjust = 1.04;

   // You can pass "Clean" or "C" as a URL Parameter and reset the Overhead Compensation factor to Zero or set any value between 0 and 4. 1 = 1% to 4 = 4% 
   // "clean" will not accept values above 4, so Compensation is limited to a maximum of 4%.
        var enableClean = true;

    // Minimum 12 Seconds is Expected. 
        var dlDuration = 12;
        var ulDuration = 12;

    // 6 is the common limit found on most browsers.
    // Choose  Number for parallel HTTP connections to Server | Default is 6 
        var dlThreads = 6;
        var ulThreads = 6;

    // Allow user to Change default limit of 6 parallel HTTP connections to Server  | Accept values above 1 and max 32
    // pass "XHR" or "X" as a URL Parameter
        var setHTTPReq = true;

    // Save Data to a Database
        var saveData = true;
        var saveDataURL = "https://83rfidkjpe.execute-api.us-east-2.amazonaws.com/save?data=";
        var OpenSpeedTestdb = saveDataURL;

    // Allow user to change the default 12 seconds test duration
    // Pass "Stress" or "S" as a URL Parameter.
        var stressTest = true;

    // Allow user to select and run one test at a time, download, upload, or ping
    // Pass "Test" or "T" as a URL Parameter.
        var selectTest = true;

    // Allow user to select a different server to run a test  
    // Pass "Host" or "H" ad a  URL Parameter.
    // Accept only valid HTTP URLs like "http://192.168.1.10:3000" or "https://yourHost.com"
        var selectServer = true;

    // Start a test Automatically without pressing the start button
    // You can Delay the test for 'n' seconds by passing any number as a value for Run Keyword. e.g.: "Run=10" or "R=10" to delay the test by 10 Seconds.
    // Pass "Run" or "R" as a URL Parameter to start a test instantly.
        var enableRun = true;

    // "Run" will not work if you are already using 'selectTest' "Test" or "T" Keyword.

 
function ostOnload() {
      console.log("OpenSpeedTest.com V2.5.4 Loaded!")
      console.log("Now Press the Start Button or HIT Enter.")
      console.log("The secret to living happy is giving happiness. Have a wonderful day.")
      
    }
  
  var openChannel = "dev";

  function onchange_attest_zipcode(value) {
        var attest_zipcode = document.getElementById("attest_zipcode");
       //var isValidZip = /(^\d{5}$)|(^\d{5}\-\d{4}$)/.test(attest_zipcode.value);
        var isValidZip = /(^\d{5}$)/.test(attest_zipcode.value);
        if (isValidZip) {
            console.log("valid zipcode")
            attest_zipcode.style.color = "";
            return true;
        } else {
            console.log("invalid zipcode")
            attest_zipcode.style.color = "red";
        }
        return false;
    }
    function onchange_attest_email(value) {
        var attest_email = document.getElementById("attest_email");
        var isValidEmail= attest_email.value.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
        if (isValidEmail) {
            console.log("valid email")
            attest_email.style.color = "";
            return true;
        } else {
            console.log("invalid email")
            attest_email.style.color = "red";
        }
        return false;
    }

    function getSTULocation() {
	var streetaddr = ""
	var attest_addr = document.getElementById('attest_address');
	attest_addr.value = "Searching...";
        navigator.geolocation.getCurrentPosition((loc)=> {
            console.log("INFO:"+loc.coords.latitude+" "+loc.coords.longitude);
			  axios({method: 'GET',
					    url: `https://83rfidkjpe.execute-api.us-east-2.amazonaws.com/getmyloc2?lat=${loc.coords.latitude}&lng=${loc.coords.longitude}`,
				 //headers: {'Referrer': 'https://beadchallenge.org'}
				})
                 .then((responseText) => {
		 console.log(JSON.stringify(responseText));
                 return responseText['data']['address'];
             })
             .then(jsonData => {
	         streetaddr = jsonData
                 console.log("INFO:"+JSON.stringify(streetaddr));
	         attest_addr.value = streetaddr;
             })
             .catch(error => {
                 console.log(error);
		 attest_addr.value = error;
             })
             }, (err)=>{
                 console.log("ERROR:"+err);
		 attest_addr.value = error;
             });
    }

  </script>

<!--
Speed Test by OpenSpeedTest™️ is Free and Open-Source Software with MIT License.

You can play with the CSS, HTML & SVG files to change the colors or add your support desk info to this page.
Also, you can add your company logo anywhere on this page. It's FOSS. You can do whatever you see fit.

If you like to make any other modification to this application or need a custom deployment for your organization, 
please get in touch with [email protected].
-->
  <div id="loading_app" class="spinner" style="opacity: -0.008; display: none;">
    <div class="bounce1"></div>
    <div class="bounce2"></div>
    <div class="bounce3"></div>
  </div>

  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="OpenSpeedtest" class="openSpeedtestApp" style="display: block; opacity: 0.686;">
	<symbol id="logo" viewBox="0 0 262.79 50.38">
		<a target="_blank" href="http://openspeedtest.com?ref=Self-Hosted-Intro&amp;run=5">
			<g>
				<path d="M39.77,15.17A27,27,0,0,0,34,6.71c-2.49-2.13-4.33-2.13-6.68,0a15.2,15.2,0,0,0-2.55,3.06c-5.4,8.59-9.17,17.68-9.31,28a22.39,22.39,0,0,0,.5,5.33C16.83,46.7,19,48,22.66,47.2a32.27,32.27,0,0,0,7-2.56c-1.78,2.63-6.47,5.4-9.38,5.68a7.44,7.44,0,0,1-7.46-3.62,17.59,17.59,0,0,1-2.62-9.16A41.31,41.31,0,0,1,13.42,19C15.55,14.1,18,9.41,21.66,5.51a18.35,18.35,0,0,1,3.91-3.2C29.33.18,33,.82,35.72,4.09a19.33,19.33,0,0,1,4,9.94Z" style="fill: #4d4d4d"></path>
				<path d="M12.93,49.4C9.16,51,5.47,49.76,3.2,46.2A20.53,20.53,0,0,1,.21,37C-.92,25.11,2.56,14.6,9.45,5.08A12.69,12.69,0,0,1,15.06.53a7.51,7.51,0,0,1,7.31,1,5.17,5.17,0,0,1,.71.71A14.47,14.47,0,0,0,20.53,4.3c-2.21-1.28-3.84.14-4.76.92a14.34,14.34,0,0,0-3,3.91C8,18.08,4.9,27.52,5.47,37.89a17.58,17.58,0,0,0,1,5.4c.71,1.85,1.71,3.48,4.48,3.77C11.15,47.06,12,48.69,12.93,49.4Z" style="fill: #880000"></path>
				<path d="M109.31,16.8a16.31,16.31,0,0,1,6,.92A6.55,6.55,0,0,1,119.61,24c0,.78-.15,1.28-1,1.28s-1.42.14-1.7-.92c-.86-3.77-2.13-4.69-6-4.76a12.92,12.92,0,0,0-5,.57,3,3,0,0,0-2.34,3.19A3,3,0,0,0,106,26.39c2.48.71,4.9,1.21,7.39,1.77a22,22,0,0,1,2.77.93,5.47,5.47,0,0,1,3.9,5.25,5.44,5.44,0,0,1-3.34,5.76,14,14,0,0,1-12.35.14c-3-1.28-4.12-3.84-4.27-7,0-.93.36-1.35,1.28-1.35s1.35.28,1.42,1.21c.43,3.76,1.64,4.9,5.4,5.54a11.78,11.78,0,0,0,6.61-.57,3.45,3.45,0,0,0,2.48-3.48c0-1.64-.78-2.63-2.63-3.13-2.34-.71-4.83-1.21-7.17-1.77a22.21,22.21,0,0,1-3-1,5.61,5.61,0,0,1-3.48-6,5.55,5.55,0,0,1,4.26-5.19A11.35,11.35,0,0,1,109.31,16.8Z" style="fill: #4d4d4d"></path>
				<path d="M237.65,41.52c-3.84,0-6-1.35-6.89-4.05a5.87,5.87,0,0,1-.43-2.2c0-.86.36-1.42,1.28-1.42S233,33.92,233,35c0,3.55,4.41,5.26,7.53,3.34a2,2,0,0,0,1.21-1.92,2,2,0,0,0-1.35-1.84c-1.49-.79-3.2-.79-4.9-1.14-3.2-.71-4.76-2.56-4.48-5.61a5.37,5.37,0,0,1,4.69-4.48,10.83,10.83,0,0,1,4.76.29,5.24,5.24,0,0,1,3.84,5.54c-.08.78-.43,1.13-1.14,1.13s-1.63-.07-1.63-.92c.07-3.34-3.56-4.4-6.33-3a2.31,2.31,0,0,0-1.49,2.34c.07,1.14.93,1.49,1.78,1.71,1.85.49,3.83.78,5.68,1.35a4.49,4.49,0,0,1,3.34,4.54,4.62,4.62,0,0,1-3.13,4.55A6,6,0,0,1,237.65,41.52Z" style="fill: #880000"></path>
				<path d="M35,22.27,33.74,24c-2.35-.78-5.83.43-8,3.48A7.15,7.15,0,0,1,35,22.27Z" style="fill: #880000"></path>
				<path d="M39.56,32.35a7.75,7.75,0,0,0-1.35-5.54l.85-1.7C40.7,26.89,40.91,29.73,39.56,32.35Z" style="fill: #880000"></path>
				<path d="M262.79,17.65h0V16.8c0-.36,0-.71-.35-.78s-.57.28-.78.5c-.43.71-.93,1.42-1.42,2.27-.57-.85-1-1.64-1.5-2.27-.14-.29-.35-.71-.78-.5s-.42.42-.42.78V22a.53.53,0,0,0,.49.5h0a.53.53,0,0,0,.5-.5v-4l1.35,2.13c.14.14.43.28.57,0l1.35-1.85v3.84a.53.53,0,0,0,.5.49h0a.53.53,0,0,0,.49-.49V17.72h0Z" style="fill: #4d4d4d"></path>
				<path d="M256.54,16h-3.41a.53.53,0,0,0-.49.49h0a.53.53,0,0,0,.49.5h1.21v5a.54.54,0,0,0,.5.5h0a.54.54,0,0,0,.5-.5v-5h1.2a.53.53,0,0,0,.5-.5h0A.59.59,0,0,0,256.54,16Z" style="fill: #4d4d4d"></path>
				<path d="M252.64,24.4h-1.85V20.14a1,1,0,0,0-.92-.93h-.57a1,1,0,0,0-.93.93V24.4h-1.84a.94.94,0,0,0-.92.92v.57a.93.93,0,0,0,.92.92h1.84v13.5a.94.94,0,0,0,.93.92h.57a.94.94,0,0,0,.92-.92V26.81h1.85a.94.94,0,0,0,.92-.92v-.57A.94.94,0,0,0,252.64,24.4Z" style="fill: #880000"></path>
				<path d="M212.72,18a1,1,0,0,0-.92-.93H194.25a1,1,0,0,0-.92.93v.71a.94.94,0,0,0,.92.92h7.53V40.38a.94.94,0,0,0,.93.92h.71a.94.94,0,0,0,.92-.92V19.5h7.53a.94.94,0,0,0,.92-.92V18Z" style="fill: #880000"></path>
				<path d="M190.06,39.31v0Z" style="fill: #7c7c7c"></path>
				<path d="M190.06,18v7c-4.4-3.84-11.43-2.77-13.49,3.34a11.48,11.48,0,0,0,.07,8,7.72,7.72,0,0,0,7.53,5.26,8.84,8.84,0,0,0,6-2.27h0v1a.94.94,0,0,0,.93.92h.78a.93.93,0,0,0,.92-.92V18a.94.94,0,0,0-.92-.93h-.78A.92.92,0,0,0,190.06,18Zm-6.82,20.81a4.79,4.79,0,0,1-1.13-.29c-3.06-1.2-4.41-5.39-3.06-9.23a5.49,5.49,0,0,1,7.11-3.55c2.48.71,3.9,3.12,3.9,6.53C190.06,36.62,187.22,39.31,183.24,38.82Z" style="fill: #4d4d4d"></path>
				<path d="M48.58,47.2h0a1.31,1.31,0,0,0,1.35-1.35V39.17c4.4,3.84,11.43,2.77,13.49-3.34a11.48,11.48,0,0,0-.07-8,7.7,7.7,0,0,0-7.52-5.26,8.83,8.83,0,0,0-6,2.28h0v-.57a1.31,1.31,0,0,0-1.35-1.35h0a1.31,1.31,0,0,0-1.35,1.35V45.78A1.42,1.42,0,0,0,48.58,47.2Zm8.17-21.74a6,6,0,0,1,1.13.29c3.06,1.21,4.41,5.4,3.06,9.23a5.47,5.47,0,0,1-7.1,3.55c-2.49-.71-3.91-3.12-3.91-6.53C49.93,27.67,52.7,24.83,56.75,25.46Z" style="fill: #880000"></path>
				<path d="M228.06,33.56c1.21.07,1.64-.5,1.64-1.63.07-3.55-1.64-6.61-4.55-7.89-3.41-1.42-6.68-1.27-9.66,1.28-3.34,2.77-3.91,9-1.42,12.86,2.13,3.19,7,4.33,11.08,2.48a6.57,6.57,0,0,0,3.62-4c.29-.57.36-1.28-.35-1.5a1.51,1.51,0,0,0-1.78.15c-.28.28-.35.71-.57,1-1.13,2.06-3.83,3.05-6.74,2.56a4.77,4.77,0,0,1-3.91-4,10.21,10.21,0,0,1-.14-1.35ZM215.21,31a5.92,5.92,0,0,1,.92-2.55h0a5.81,5.81,0,0,1,5.26-2.56A5.46,5.46,0,0,1,226.85,31Z" style="fill: #880000"></path>
				<path d="M173.37,33.56c1.21.07,1.64-.5,1.64-1.63.07-3.55-1.64-6.61-4.55-7.89-3.41-1.42-6.68-1.27-9.66,1.28-3.34,2.77-3.91,9-1.42,12.86,2.13,3.19,7,4.33,11.08,2.48a6.57,6.57,0,0,0,3.62-4c.29-.57.36-1.28-.35-1.5a1.51,1.51,0,0,0-1.78.15c-.28.28-.35.71-.57,1-1.13,2.06-3.83,3.05-6.74,2.56a4.77,4.77,0,0,1-3.91-4,10.21,10.21,0,0,1-.14-1.35ZM160.52,31a5.92,5.92,0,0,1,.92-2.55h0a5.81,5.81,0,0,1,5.26-2.56A5.46,5.46,0,0,1,172.16,31Z" style="fill: #4d4d4d"></path>
				<path d="M155.4,33.56c1.21.07,1.64-.5,1.64-1.63.07-3.55-1.64-6.61-4.55-7.89-3.41-1.42-6.68-1.27-9.66,1.28-3.34,2.77-3.91,9-1.42,12.86,2.13,3.19,7,4.33,11.08,2.48a6.57,6.57,0,0,0,3.62-4c.29-.57.36-1.28-.35-1.5a1.51,1.51,0,0,0-1.78.15c-.28.28-.35.71-.57,1-1.13,2.06-3.83,3.05-6.74,2.56a4.77,4.77,0,0,1-3.91-4,10.21,10.21,0,0,1-.14-1.35ZM142.55,31a5.92,5.92,0,0,1,.92-2.55h0a5.81,5.81,0,0,1,5.26-2.56A5.49,5.49,0,0,1,154.2,31Z" style="fill: #4d4d4d"></path>
				<path d="M80.4,33.56c1.21.07,1.63-.5,1.63-1.63.07-3.55-1.63-6.61-4.54-7.89-3.41-1.42-6.68-1.27-9.66,1.28-3.34,2.77-3.91,9-1.42,12.86,2.13,3.19,7,4.33,11.08,2.48a6.6,6.6,0,0,0,3.62-4c.28-.57.36-1.28-.36-1.5a1.49,1.49,0,0,0-1.77.15c-.28.28-.36.71-.57,1-1.14,2.06-3.83,3.05-6.75,2.56a4.75,4.75,0,0,1-3.9-4,10.21,10.21,0,0,1-.14-1.35ZM67.54,31a5.88,5.88,0,0,1,.93-2.55h0a5.8,5.8,0,0,1,5.25-2.56A5.46,5.46,0,0,1,79.19,31Z" style="fill: #880000"></path>
				<path d="M97.87,29.51A5.77,5.77,0,0,0,94,23.83a7.7,7.7,0,0,0-7,.5,8.08,8.08,0,0,0-1,.85V25a1.35,1.35,0,1,0-2.7,0V39.81a1.35,1.35,0,0,0,2.7,0V30.65c.07-3,2.2-4.83,5.26-4.76,2.7.07,4,1.63,4,4.76v8.88c0,.92.15,1.49,1.28,1.49s1.35-.71,1.35-1.49C97.87,36.26,97.94,32.92,97.87,29.51Z" style="fill: #880000"></path>
				<path d="M86,32.07v0Z" style="fill: #880000"></path>
				<path d="M45.38,31.22c-1,8.66-8.16,10.86-14.13,10.15C23.65,40.52,20.38,34.7,21,27.74c.57-7.6,6.32-11.3,13.92-10.59a10.89,10.89,0,0,1,1.5.15c.78.14,1.91.42,1.91.42l-1.2,1.71-.43.71-1.21-.07A9.87,9.87,0,0,0,31.39,20c-5.11.78-7.81,3.76-7.88,9-.07,3.76,1,7,4.69,8.8s7.6,1.78,11.08-.78,4.54-9.09,2.13-13.14l-1.14-1.77,1.14-2.21C45.17,22.91,46,26.89,45.38,31.22Z" style="fill: #880000"></path>
				<path d="M41.34,16.23h0c-3.13,4.41-6.25,8.74-9.52,13.14l-.14.29c-.07.07-.07.14-.15.28-.92,1.28-.85,2.2.29,2.91s2.34.36,3-1c2.28-5,4.55-10.09,6.89-15.2l.93-2.06ZM33.67,31.57a1,1,0,0,1-.72.36.83.83,0,0,1-.85-.85,1,1,0,0,1,.85-.86.81.81,0,0,1,.72.36A1.22,1.22,0,0,1,33.67,31.57Z" style="fill: #880000"></path>
				<path d="M136.08,34.91a5.46,5.46,0,0,1-7.1,3.55c-2.48-.71-3.91-3.12-3.91-6.53,0-4.41,2.77-7.1,6.89-6.61a4.75,4.75,0,0,1,1.14.29C136,26.89,137.43,31.15,136.08,34.91Zm2.42-7A7.72,7.72,0,0,0,131,22.62a8.85,8.85,0,0,0-6,2.28V23.55a.94.94,0,0,0-.92-.93h-.78a.94.94,0,0,0-.92.93V45.92a.93.93,0,0,0,.92.92h.78a.93.93,0,0,0,.92-.92V39.17c4.41,3.84,11.44,2.77,13.5-3.34A11.79,11.79,0,0,0,138.5,27.88Z" style="fill: #4d4d4d"></path>
			</g>
			<rect fill="transparent" x="0" y="0" width="265" height="60"></rect>
			<title>OpenSpeedTest™️</title>
		</a>
	</symbol>
	<symbol id="mainGaugebg" viewBox="0 0 295.93 270.18">
		<path fill="none" d="M64.32,256.41a137,137,0,1,1,192.09-24.8l-.07.09a134.45,134.45,0,0,1-24.71,24.71"></path>
	</symbol>
	<symbol id="mainGaugeBlue" viewBox="0 0 295.93 270.18">
		<path fill="none" d="M64.32,256.41a137,137,0,1,1,192.09-24.8l-.07.09a134.45,134.45,0,0,1-24.71,24.71"></path>
	</symbol>
	<symbol id="mainGaugeWhite" viewBox="0 0 295.93 270.18">
		<path fill="none" d="M64.32,256.41a137,137,0,1,1,192.09-24.8l-.07.09a134.45,134.45,0,0,1-24.71,24.71"></path>
	</symbol>
	<symbol id="oDoMeter" viewBox="0 0 295.93 270.18">
		<text transform="translate(76.34 264.28) scale(0.9 1)">0</text>
		<text transform="translate(23.81 164.6) scale(0.9 1)">.5</text>
		<text transform="translate(50.01 80.11) scale(0.9 1)">1</text>
		<text transform="translate(140.58 36.04) scale(0.9 1)">10</text>
		<text transform="translate(220.43 79.11) scale(0.9 1)">100</text>
		<text transform="translate(246.71 164.6) scale(0.9 1)">500</text>
		<text id="oDoTopSpeed" class="oDoTop-Speed" transform="translate(220.71 265.99) scale(0.9 1)">1000+</text>
		<text id="oDoLiveSpeed" class="oDoLive-Speed" transform="translate(150 150) scale(1 1)">...</text>
		<text id="oDoLiveStatus" class="oDoLive-Status" transform="translate(151 170) scale(1 1)"></text>
	</symbol>
	<symbol id="progressBar" viewBox="0 0 293.53 18.38">
		<defs>
			<symbol id="personLeft" class="uiBg" viewBox="0 0 33.46 30.9">
				<path d="M32.7,4.8a7.81,7.81,0,0,1-4.1,2.8,61.42,61.42,0,0,0-5.7,2.3s-.1.3-.4,1.3-.9.6-.9.6v1.8a6.15,6.15,0,0,1,1.2,1.8,14.72,14.72,0,0,0,.8,1.7h.5c.5,0,.7,1.9.8,3.2s-1.1.8-1.1.8v3.2c0,1.9-.5,2.8-2.3,4.8s-4.7,1.8-4.7,1.8-3.1.1-4.7-1.8-2.3-3-2.3-4.8V21.1s-1.2.5-1.1-.8.3-3.2.8-3.2H10s.3-.6.8-1.7A9.62,9.62,0,0,1,12,13.6V11.8s-.8.4-.9-.6a2.26,2.26,0,0,0-.4-1.3A61.42,61.42,0,0,0,5,7.6,7.41,7.41,0,0,1,.9,4.8C.2,3.6,0,0,0,0H33.4A11.7,11.7,0,0,1,32.7,4.8Z"></path>
			</symbol>
			<symbol id="progressElement" class="uiBg" viewBox="0 0 409.31 10.48">
				<line id="progressbg" class="progressbg" x1="5" y1="5" x2="405" y2="5"></line>
			</symbol>
			<symbol id="doc" class="uiBg" viewBox="0 0 36.8 31.6">
				<path d="M0,31.6V21.9H36.8v9.7Zm15.1-6H5.2V28h9.9Zm16.5.3a.9.9,0,1,0,.9.9A.9.9,0,0,0,31.6,25.9Z"></path>
				<path d="M0,20.6V11.1H36.8v9.5Zm15.1-6H5.2v2.2h9.9Zm16.5.2a.9.9,0,1,0,.9.9A.9.9,0,0,0,31.6,14.8Z"></path>
				<path d="M0,9.5V0H36.8V9.5ZM15.1,3.6H5.2V5.9h9.9Zm16.5.2a.9.9,0,1,0,.9.9A.9.9,0,0,0,31.6,3.8Z"></path>
			</symbol>
		</defs>
		<g id="Progress">
			<g>
				<use width="33.46" height="30.9" transform="matrix(0.57, 0, 0, -0.57, 0, 17.49)" xlink:href="#personLeft"></use>
				<use width="409.31" height="10.48" transform="matrix(0.57, 0, 0, -0.57, 28.35, 13.39)" xlink:href="#progressElement"></use>
				<use width="36.8" height="31.6" transform="matrix(0.58, 0, 0, -0.58, 272.2, 18.38)" xlink:href="#doc"></use>
			</g>
		</g>
	</symbol>
	<symbol id="upSymbol" viewBox="0 0 32.21 41.62">
		<g>
			<path d="M2.71,26H9.55V38.55a2.93,2.93,0,0,0,2.78,3.07h7.13a2.94,2.94,0,0,0,2.78-3.07V26h6.84L15.89,8.8Z"></path>
			<rect width="32.21" height="3.41"></rect>
		</g>
	</symbol>
	<symbol id="downSymbol" viewBox="0 0 32.21 41.62">
		<g>
			<path d="M29.51,15.62H22.66V3.08A2.94,2.94,0,0,0,19.88,0H12.76A2.94,2.94,0,0,0,10,3.08V15.62H3.14l13.18,17.2Z"></path>
			<rect y="38.21" width="32.21" height="3.41"></rect>
		</g>
	</symbol>
	<symbol id="resultCard" viewBox="0 0 278.13 85.49">
		<g>
			<rect width="278.13" height="85.49"></rect>
		</g>
	</symbol>
	<symbol id="resultCardMob" viewBox="0 0 88.1 65.79">
		<g>
			<rect width="88.1" height="65.79"></rect>
		</g>
	</symbol>
	<symbol id="downloadRc1" viewBox="0 0 66.93 13.85">
		<g>
			<text transform="translate(0 10.52)" class="rtext">DOWNLOAD</text>
		</g>
	</symbol>
	<symbol id="uploadRc2" viewBox="0 0 46.73 13.85">
		<g>
			<text transform="translate(0 10.52)" class="rtext">UPLOAD</text>
		</g>
	</symbol>
	<symbol id="pingSymbol" viewBox="0 0 14.28 14.28">
		<g>
			<path d="M13.92.64a.55.55,0,0,0-.65.13L12.06,2A7.21,7.21,0,0,0,9.79.52a7,7,0,0,0-5.42,0,7,7,0,0,0-3.8,3.8,7,7,0,0,0,0,5.54,7.23,7.23,0,0,0,1.52,2.28,7.25,7.25,0,0,0,2.28,1.53,6.89,6.89,0,0,0,2.77.56,7.12,7.12,0,0,0,5.5-2.57.31.31,0,0,0,.07-.21.23.23,0,0,0-.09-.19L11.35,10a.36.36,0,0,0-.24-.09.27.27,0,0,0-.21.11,4.61,4.61,0,0,1-1.67,1.37,4.68,4.68,0,0,1-2.09.48,4.75,4.75,0,0,1-3.36-1.39A4.84,4.84,0,0,1,2.76,9a4.68,4.68,0,0,1-.38-1.85A4.63,4.63,0,0,1,2.76,5.3,4.74,4.74,0,0,1,5.3,2.76a4.72,4.72,0,0,1,5.09.9L9.1,4.94A.54.54,0,0,0,9,5.58.56.56,0,0,0,9.52,6h4.17a.61.61,0,0,0,.42-.17.57.57,0,0,0,.17-.42V1.19a.56.56,0,0,0-.36-.55Z" style="fill: #880000"></path>
		</g>
	</symbol>
	<symbol id="pingRc3" viewBox="0 0 28.43 13.85">
		<g>
			<text transform="translate(0 10.52)" class="rtext">LATENCY</text>
		</g>
	</symbol>
	<symbol id="jitterRc3" viewBox="0 0 39.95 13.85">
		<text class="rtext" transform="translate(0 9.64)">JITTER</text>
	</symbol>
	<symbol id="downResultC1" viewBox="0 0 53.35 39.8">
		<text id="downResult" transform="translate(0 20.07)" class="rtextnum">---</text>
		<text x="0" y="35" class="rtextmbms">Mbps</text>
	</symbol>
	<symbol id="upResultC2" viewBox="0 0 53.35 39.8">
		<text id="upRestxt" transform="translate(0 20.07)" class="rtextnum">---</text>
		<text x="0" y="36.09" class="rtextmbms">Mbps</text>
	</symbol>
	<symbol id="pingResultC3" viewBox="0 0 40.01 39.79">
		<text transform="translate(0 20.07)" id="pingResult" class="rtextnum">--</text>
		<text x="0" y="35" class="rtextmbms">ms</text>
	</symbol>
	<symbol id="jitterResultC3" viewBox="0 0 21.99 39.79">
		<text id="jitterDesk" transform="translate(2.33 20.07)" class="rtextnum">--</text>
		<text x="2" y="35" xml:space="preserve" class="rtextmbms">ms</text>
	</symbol>
	<symbol style="fill: url(#gradient)" id="graphc1" viewBox="0 0 200 100">
		<polygon points="0,50 0.00,16.91 3.51,43.13 7.03,8.17 10.54,23.80 14.05,49.71 17.57,47.57 21.08,5.73 24.59,18.61 28.11,10.03 31.62,29.77 35.14,42.97 38.65,42.85 42.16,44.34 45.68,8.71 49.19,2.56 52.70,16.48 56.22,1.10 59.73,47.04 63.24,34.75 66.76,48.00 70.27,23.19 73.78,11.62 77.30,15.34 80.81,49.09 84.32,42.92 87.84,42.99 91.35,38.99 94.86,5.15 98.38,47.27 101.89,49.66 105.41,16.49 108.92,29.03 112.43,19.89 115.95,47.80 119.46,48.13 122.97,30.92 126.49,17.38 130.00,9.27 130,50" class="line"></polygon>
	</symbol>
	<symbol style="fill: url(#gradient)" id="graphc2" viewBox="0 0 200 100">
		<polygon points="0,50 0.00,16.91 3.51,43.13 7.03,8.17 10.54,23.80 14.05,49.71 17.57,47.57 21.08,5.73 24.59,18.61 28.11,10.03 31.62,29.77 35.14,42.97 38.65,42.85 42.16,44.34 45.68,8.71 49.19,2.56 52.70,16.48 56.22,1.10 59.73,47.04 63.24,34.75 66.76,48.00 70.27,23.19 73.78,11.62 77.30,15.34 80.81,49.09 84.32,42.92 87.84,42.99 91.35,38.99 94.86,5.15 98.38,47.27 101.89,49.66 105.41,16.49 108.92,29.03 112.43,19.89 115.95,47.80 119.46,48.13 122.97,30.92 126.49,17.38 130.00,9.27 130,50" class="line2"></polygon>
	</symbol>
	<symbol id="jitterMob" viewBox="0 0 58.1 35.77">
		<text id="pingMobres" transform="translate(11.07 18.05)" class="rtextnum">--</text>
		<text x="-8" y="33.46" class="rtextmbms">Jitter</text>
		<text id="JitterResultMon" x="17" y="33.46" class="jitter-Mob">--</text>
		<text id="JitterResultms" x="36" y="33.46" class="rtextmbms">ms</text>
	</symbol>
	<symbol id="settings" viewBox="0 0 100 125">
		<rect fill="transparent" x="0" y="25" width="100" height="50"></rect>
		<path d="M36.43,29.64,9.29,50,36.43,70.36v6.78L2.5,56.79V43.21L36.43,22.86Z"></path>
		<path d="M63.57,70.36,90.71,50,63.57,29.64V22.86L97.5,43.21V56.79L63.57,77.14Z"></path>
		<circle cx="29.64" cy="50" r="6.79"></circle>
		<circle cx="50" cy="50" r="6.79"></circle>
		<circle cx="70.36" cy="50" r="6.79"></circle>
	</symbol>
	<symbol id="playButton" style="fill: #eaeaea" viewBox="0 0 191.255 191.255">
		<rect width="180" height="90" rx="10" ry="10" class="startButton"></rect>
		<text class="buttonTxt" x="90" y="60">Start</text>
	</symbol>
	<symbol id="introProgress" viewBox="0 0 409.31 10.48">
		<line x1="5" y1="5" x2="405" y2="5"></line>
	</symbol>
	<symbol id="ConnectError" viewBox="0 0 489.6 489.6">
		<a target="_blank" href="https://openspeedtest.com/FAQ.php?ref=NetworkError">
			<g>
				<g>
					<path d="M179.6,235.6c-33.7,10.3-65.5,28.5-92.2,55.1l46.6,46.6c13.9-13.9,30.1-24.8,47.6-32.5L179.6,235.6z"></path>
					<path d="M175.8,109C111.3,122,49.9,153.4,0,203.3l46.6,46.6c37.5-37.5,83.1-61.9,131.2-73.7L175.8,109z"></path>
					<path d="M313.8,109l-2,67.3c48.1,11.8,93.7,36.2,131.2,73.7l46.6-46.6C439.8,153.4,378.3,122,313.8,109z"></path>
					<path d="M307.9,304.8c17.5,7.7,33.7,18.6,47.7,32.6l46.6-46.6c-26.6-26.6-58.5-44.9-92.2-55.2L307.9,304.8z"></path>
				</g>
				<circle cx="244.8" cy="403.2" r="40"></circle>
				<g>
					<path d="M260.6,330.4h-31.7c-8.3,0-15.1-6.6-15.3-14.9L206,62.2c-0.3-8.6,6.7-15.8,15.3-15.8h47c8.6,0,15.6,7.1,15.3,15.8                  l-7.7,253.3C275.7,323.8,268.9,330.4,260.6,330.4z"></path>
				</g>
			</g>
			<title>Network Error</title>
		</a>
	</symbol>
	<symbol class="Your-IP" viewBox="0 0 300 299.12">
		<text id="YourIP" transform="translate(140 228) scale(.8 .8)">SpeedTest by OpenSpeedTest™️</text>
	</symbol>
	<symbol id="light" viewBox="0 0 512 512">
		<g>
			<path d="M256,108.936c-81.091,0-147.064,65.973-147.064,147.064S174.909,403.064,256,403.064S403.064,337.091,403.064,256         S337.091,108.936,256,108.936z M256,370.383c-63.071,0-114.383-51.312-114.383-114.383c0-63.071,51.312-114.383,114.383-114.383         c63.071,0,114.383,51.312,114.383,114.383C370.383,319.071,319.071,370.383,256,370.383z"></path>
			<path d="M256,83.708c9.024,0,16.34-7.316,16.34-16.34V16.34C272.34,7.316,265.024,0,256,0c-9.024,0-16.34,7.316-16.34,16.34         v51.027C239.66,76.391,246.976,83.708,256,83.708z"></path>
			<path d="M256,428.292c-9.024,0-16.34,7.316-16.34,16.34v51.027c0,9.024,7.316,16.34,16.34,16.34c9.024,0,16.34-7.316,16.34-16.34         v-51.027C272.34,435.609,265.024,428.292,256,428.292z"></path>
			<path d="M111.062,134.171c6.38,6.381,16.727,6.381,23.109,0c6.381-6.38,6.381-16.727,0-23.109L98.089,74.981         c-6.38-6.381-16.727-6.381-23.109,0c-6.381,6.38-6.381,16.727,0,23.109L111.062,134.171z"></path>
			<path d="M400.938,377.829c-6.38-6.381-16.727-6.38-23.109,0c-6.381,6.38-6.381,16.727,0,23.109l36.081,36.082         c6.38,6.382,16.727,6.382,23.109,0c6.382-6.38,6.382-16.727,0-23.109L400.938,377.829z"></path>
			<path d="M83.708,256c0-9.024-7.316-16.34-16.34-16.34H16.34C7.316,239.66,0,246.976,0,256c0,9.024,7.316,16.34,16.34,16.34         h51.027C76.391,272.34,83.708,265.024,83.708,256z"></path>
			<path d="M495.66,239.66h-51.027c-9.024,0-16.34,7.316-16.34,16.34c0,9.024,7.316,16.34,16.34,16.34h51.027         c9.024,0,16.34-7.316,16.34-16.34C512,246.976,504.684,239.66,495.66,239.66z"></path>
			<path d="M111.062,377.829l-36.081,36.082c-6.381,6.382-6.381,16.727,0,23.109c6.38,6.382,16.727,6.383,23.109,0l36.081-36.082         c6.381-6.381,6.381-16.727,0-23.109C127.79,371.447,117.443,371.447,111.062,377.829z"></path>
			<path d="M400.938,134.171l36.081-36.082c6.382-6.381,6.382-16.727,0-23.109c-6.38-6.381-16.727-6.381-23.109,0l-36.081,36.082         c-6.381,6.381-6.381,16.727,0,23.109C384.21,140.552,394.557,140.553,400.938,134.171z"></path>
		</g>
		<rect fill="none" width="512" cursor="pointer" pointer-events="visible" height="512"></rect>
		</symbol>
		<symbol id="dark" viewBox="0 0 1024 1024">
			<path d="M524.8 938.666667h-4.266667a439.893333 439.893333 0 0 1-313.173333-134.4 446.293333 446.293333 0 0 1-11.093333-597.333334 432.213333 432.213333 0 0 1 170.666666-116.906666 42.666667 42.666667 0 0 1 45.226667 9.386666 42.666667 42.666667 0 0 1 10.24 42.666667 358.4 358.4 0 0 0 82.773333 375.893333 361.386667 361.386667 0 0 0 376.746667 82.773334 42.666667 42.666667 0 0 1 54.186667 55.04A433.493333 433.493333 0 0 1 836.266667 810.666667a438.613333 438.613333 0 0 1-311.466667 128z"></path>
		</symbol>
		<a id="resultsData">
			<svg class="Desktop" viewBox="0 0 586 346">
				<title id="title1">HTML5 Network Performance Estimation Tool. by OpenSpeedTest™</title>
				<g id="UI-Desk">
					<use id="mainGaugebg-Desk" class="main-Gaugebg" xlink:href="#mainGaugebg" x="10.28" y="36.11" width="273.94" height="245.39"></use>
					<use id="mainGaugeBlue-Desk" class="main-GaugeBlue" xlink:href="#mainGaugeBlue" x="10.28" y="36.11" width="273.94" height="245.39"></use>
					<use id="mainGaugeWhite-Desk" class="main-GaugeWhite" xlink:href="#mainGaugeWhite" x="10.28" y="36.11" width="273.94" height="245.39"></use>
					<use xlink:href="#resultCard" class="Cards" x="307.4" y="31" width="278.1" height="85.5">
						<title id="title1">The download speed is how fast you can pull data from the server to you in the form of images, videos, text and more. Activities such as listening to music on Spotify, downloading large files or streaming videos on Netflix all require you to download data. / La velocidad de descarga es la rapidez con la que puedes extraer datos del servidor en forma de imágenes, vídeos, texto y más. Actividades como escuchar música en Spotify, descargar archivos grandes o transmitir videos en Netflix requieren que descargues datos.</title>
					</use>
					<use xlink:href="#resultCard" class="Cards" x="307.4" y="129.3" width="278.1" height="85.5">
						<title id="title1">The upload speed is how fast you send data from you to others in the form of images, videos, text and more. Activities such as uploading to YouTube or Sending email, playing live games like PubG, Voice and Video calling a friend require fast upload speeds for you to send data to someone else’s server. / La velocidad de carga es la rapidez con la que envías tus datos a otras personas en forma de imágenes, vídeos, texto y más. Actividades como subir archivos a YouTube o enviar correos electrónicos, jugar juegos en vivo como PubG, llamar por voz y video a un amigo requieren velocidades de carga rápidas para enviar datos al servidor de otra persona.</title>
					</use>
					<use xlink:href="#resultCard" class="Cards" x="307.4" y="228.5" width="278.1" height="85.5">
						<title id="title1">Ping "Round-trip time" is more or less well defined as the network delay from point A to B and back. This is the sum of all encoding, queueing, processing, decoding, and propagation delays in both directions. Essentially, it's the delay when A may be expecting an answer from B for a request that requires very little processing. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in Milliseconds (ms). Jitter is simply the difference in Ping "Round-trip time" . In other words, jitter is measuring time difference in packet inter-arrival time. Jitter helps diagnose internet connection stability. The higher the jitter value, the worse the stability of the connection. / Ping "Tiempo de ida y vuelta" está más o menos bien definido como el retraso de la red desde el punto A al B y viceversa. Esta es la suma de todos los retrasos de codificación, puesta en cola, procesamiento, decodificación y propagación en ambas direcciones. Básicamente, es la demora en la que A puede estar esperando una respuesta de B para una solicitud que requiere muy poco procesamiento. Un ping rápido significa una conexión con mayor capacidad de respuesta, especialmente en aplicaciones donde el tiempo lo es todo (como los videojuegos). El ping se mide en milisegundos (ms). Jitter es simplemente la diferencia en el "tiempo de ida y vuelta" de Ping. En otras palabras, el jitter mide la diferencia de tiempo en el tiempo entre llegadas de paquetes. Jitter ayuda a diagnosticar la estabilidad de la conexión a Internet. Cuanto mayor sea el valor de jitter, peor será la estabilidad de la conexión.</title>
					</use>
					<use id="downSymbolDesk" xlink:href="#downSymbol" class="Desktop" x="133" y="99" width="32.21" height="41.62"></use>
					<use id="upSymbolDesk" xlink:href="#upSymbol" class="Desktop" x="133" y="99" width="32.21" height="41.62"></use>
					<use id="ConnectErrorDesk" xlink:href="#ConnectError" class="ConnectError" x="135" y="107.8" width="32.21" height="41.62"></use>
					<use class="oDo-Meter" xlink:href="#oDoMeter" x="10.28" y="36.11" width="273.94" height="245.39"></use>
					<use xlink:href="#progressBar" x="1" y="295" width="293.53" height="18.38"></use>
					<use id="progressStatus-Desk" class="intro-Progress" xlink:href="#introProgress" x="29" y="295" width="234" height="21"></use>
					<use xlink:href="#downloadRc1" x="335.05" y="50.28" width="67" height="16">
						<title id="title1">Download speed is measured in megabits per second (Mbps). / La velocidad de descarga se mide en megabits por segundo (Mbps)</title>
					</use>
					<use xlink:href="#uploadRc2" x="345.33" y="145.2" width="47" height="16">
						<title id="title1">Upload speed is measured in megabits per second (Mbps)./ La velocidad de carga se mide en megabits por segundo (Mbps).</title>
					</use>
					<use xlink:href="#pingSymbol" x="331.4" y="243.8" width="14.3" height="14.4"></use>
					<use xlink:href="#pingSymbol" x="481.3" y="244.6" width="14.33" height="14.4"></use>
					<use xlink:href="#pingRc3" x="321.01" y="244.68" width="88" height="16">
						<title id="title1">Latency is measured in Milliseconds (ms). / La latencia se mide en milisegundos (ms).</title>
					</use>
					<use xlink:href="#jitterRc3" x="495.61" y="246.3" width="39.95" height="13.85">
						<title id="title1">Jitter is measured in Milliseconds (ms). / La fluctuación se mide en milisegundos (ms).</title>
					</use>
					<use xlink:href="#upSymbol" class="Symbol" x="329" y="146.5" width="11.8" height="13.9"></use>
					<use xlink:href="#downSymbol" class="Symbol" x="318.7" y="51.9" width="11.8" height="13.8"></use>
					<use xlink:href="#graphc2" x="427.84" y="134" width="200" height="135">
						<title id="title1">Shows you real-time network traffic graph for Upload! / ¡Muestra un gráfico de tráfico de red en tiempo real para Upload!</title>
					</use>
					<use xlink:href="#graphc1" x="427.84" y="35" width="200" height="135">
						<title id="title1">Shows you real-time network traffic graph for Download! / ¡Muestra un gráfico de tráfico de red en tiempo real para descargar!</title>
					</use>
					<use xlink:href="#downResultC1" x="298" y="67.21" width="200" height="45.1">
						<title id="title1">Your download speed. / Tu velocidad de descarga.</title>
					</use>
					<use xlink:href="#upResultC2" x="298" y="162.13" width="200" height="45.1">
						<title id="title1">Your upload speed. / Tu velocidad de carga.</title>
					</use>
					<use xlink:href="#pingResultC3" x="303.73" y="261.55" width="200" height="45.1">
						<title id="title1">Your latency. / ¡Tu latencia!</title>
					</use>
					<use xlink:href="#jitterResultC3" x="420.04" y="262.17" width="200" height="45.1">
						<title id="title1">Your jitter. / !Tu Jitter!</title>
					</use>
				</g>
				<g id="intro-Desk">
					<use id="logo-Desk" xlink:href="#logo" x="35" y="140" width="222.8" height="50.22"></use>
					<use id="deskStart" class="deskStart" xlink:href="#mainGaugebg" x="10.28" y="36.11" width="273.94" height="245.39"></use>
					<use xlink:href="#resultCard" class="Cards" x="307.4" y="31" width="278.1" height="85.5"></use>
					<use xlink:href="#resultCard" class="Cards" x="307.4" y="228.5" width="278.1" height="85.5"></use>
					<use xlink:href="#resultCard" class="Cards" x="307.4" y="129.3" width="278.1" height="85.5"></use>
					<use xlink:href="#downloadRc1" x="335.05" y="50.28" width="67" height="16">
						<title id="title1">Download speed is measured in megabits per second (Mbps). / La velocidad de descarga se mide en megabits por segundo (Mbps)</title>
					</use>
					<use xlink:href="#uploadRc2" x="345.33" y="145.2" width="47" height="16">
						<title id="title1">Upload speed is measured in megabits per second (Mbps). / La velocidad de carga se mide en megabits por segundo (Mbps).</title>
					</use>
					<use xlink:href="#pingSymbol" x="331.4" y="243.8" width="14.3" height="14.4"></use>
					<use xlink:href="#pingSymbol" x="481.3" y="244.6" width="14.33" height="14.4"></use>
					<use xlink:href="#pingRc3" x="321.01" y="244.68" width="88" height="16">
						<title id="title1">Latency is measured in Milliseconds (ms). / La latencia se mide en milisegundos (ms).</title>
					</use>
					<use xlink:href="#jitterRc3" x="495.61" y="246.3" width="39.95" height="13.85">
						<title id="title1">Jitter is measured in Milliseconds (ms). / La fluctuación se mide en milisegundos (ms).</title>
					</use>
					<use xlink:href="#upSymbol" class="Symbol" x="329" y="146.5" width="11.8" height="13.9"></use>
					<use xlink:href="#downSymbol" class="Symbol" x="318.7" y="51.9" width="11.8" height="13.8"></use>
					<use xlink:href="#graphc2" x="427.84" y="134" width="200" height="135">
						<title id="title1">Shows you real-time network traffic graph for Upload. / Muestra un gráfico de tráfico de red en tiempo real para la carga.</title>
					</use>
					<use xlink:href="#graphc1" x="427.84" y="35" width="200" height="135">
						<title id="title1">Shows you real-time network traffic graph for Download. /Muestra un gráfico de tráfico de red en tiempo real para descargar.</title>
					</use>
					<use xlink:href="#downResultC1" x="298" y="67.21" width="200" height="45.1">
						<title id="title1">Your download speed. / Tu velocidad de descarga.</title>
					</use>
					<use xlink:href="#upResultC2" x="298" y="162.13" width="200" height="45.1">
						<title id="title1">Your upload speed. / Tu velocidad de carga.</title>
					</use>
					<use xlink:href="#pingResultC3" x="303.73" y="261.55" width="200" height="45.1">
						<title id="title1">Your latency. / Tu latencia.</title>
					</use>
					<use xlink:href="#jitterResultC3" x="420.04" y="262.17" width="200" height="45.1">
						<title id="title1">Your jitter. / Tu fluctuación. </title>
					</use>
					<!--use id="nightmode"  class="darkmode" onclick="toggleSkin()" xlink:href="#dark" x="10" y="25" width="30" height="30"></use>
					<use id="daymode"  class="darkmode" onclick="toggleSkin()" xlink:href="#light" x="10" y="25" width="30" height="30"></use-->
					<use id="startButtonDesk" class="startButton" xlink:href="#playButton" x="125" y="300.6" width="50.2" height="50.2">
						<title id="title1">Click here to Run a Speed Test! Or Press "Enter" / ¡Haga clic aquí para realizar una prueba de velocidad! O presione "Entrar"</title>
					</use>
					<use id="settingsDesk" class="Startsettings" xlink:href="#settings" x="100" y="260" width="100" height="40">
						<title id="title1">Options</title>
					</use>
					<use class="Desktop" id="ipDesk" xlink:href="#YourIP" x="7" y="70"></use>
				</g>
			</svg>
			<svg class="Mobile" viewBox="0 0 295.9 363.3">
				<title id="title1">HTML5 Network Performance Estimation Tool. by OpenSpeedTest™</title>
				<g id="UI-Mob">
					<use id="mainGaugebg-Mob" class="main-Gaugebg" xlink:href="#mainGaugebg" x="11.18" y="12" width="273.94" height="245.39"></use>
					<use id="mainGaugeBlue-Mob" class="main-GaugeBlue" xlink:href="#mainGaugeBlue" x="11.18" y="12" width="273.94" height="245.39"></use>
					<use id="mainGaugeWhite-Mob" class="main-GaugeWhite" xlink:href="#mainGaugeWhite" x="11.18" y="12" width="273.94" height="245.39"></use>
					<use xlink:href="#resultCardMob" class="Cards" x="1" y="297.52" width="88.1" height="65.8">
						<title id="title1">The download speed is how fast you can pull data from the server to you in the form of images, videos, text and more. Activities such as listening to music on Spotify, downloading large files or streaming videos on Netflix all require you to download data.</title>
					</use>
					<use xlink:href="#resultCardMob" class="Cards" x="104.1" y="297.52" width="88.1" height="65.8">
						<title id="title1">The upload speed is how fast you send data from you to others in the form of images, videos, text and more. Activities such as uploading to YouTube or Sending email, playing live games like PubG, Voice and Video calling a friend require fast upload speeds for you to send data to someone else’s server.</title>
					</use>
					<use xlink:href="#resultCardMob" class="Cards" x="207.1" y="297.52" width="88.1" height="65.8">
						<title id="title1">Latency or "Ping Round-trip time" is more or less well defined as the network delay from point A to B and back. This is the sum of all encoding, queueing, processing, decoding, and propagation delays in both directions. Essentially, it's the delay when A may be expecting an answer from B for a request that requires very little processing. A fast ping means a more responsive connection, especially in applications where timing is everything (like video games). Ping is measured in Milliseconds (ms). Jitter is simply the difference in Ping "Round-trip time" . In other words, jitter is measuring time difference in packet inter-arrival time. Jitter helps diagnose internet connection stability. The higher the jitter value, the worse the stability of the connection.</title>
					</use>
					<use id="upSymbolMob" xlink:href="#upSymbol" class="Mobile" x="134" y="73" width="32.21" height="41.62"></use>
					<use id="downSymbolMob" xlink:href="#downSymbol" class="Mobile" x="134" y="73" width="32.21" height="41.62"></use>
					<use id="ConnectErrorMob" xlink:href="#ConnectError" class="ConnectError" x="135.9" y="74.02" width="32.21" height="41.62"></use>
					<use class="oDo-Meter" xlink:href="#oDoMeter" x="11.18" y="12" width="273.94" height="245.39"></use>
					<use xlink:href="#progressBar" x="1.9" y="272.08" width="293.53" height="18.38"></use>
					<use id="progressStatus-Mob" class="intro-Progress" xlink:href="#introProgress" x="29" y="272" width="234.5" height="21.5"></use>
					<use xlink:href="#downloadRc1" x="22.36" y="301.63" width="60" height="15">
						<title id="title1">Download speed is measured in megabits per second (Mbps).</title>
					</use>
					<use xlink:href="#uploadRc2" x="237.51" y="301.64" width="42" height="15">
						<title id="title1">Upload speed is measured in megabits per second (Mbps).</title>
					</use>
					<use xlink:href="#pingRc3" x="103.88" y="301.72" width="86" height="15">
						<title id="title1">Latency is measured in Milliseconds (ms).</title>
					</use>
					<use xlink:href="#upSymbol" class="Symbol" x="221.8" y="303.42" width="12.3" height="10.6"></use>
					<use xlink:href="#downSymbol" class="Symbol" x="7.7" y="303.42" width="10.6" height="12.4"></use>
					<use xlink:href="#pingSymbol" x="114.8" y="303.32" width="12.5" height="12.4"></use>
					<use id="graphMob1" xlink:href="#graphc1" x="83.1" y="160.45" width="200" height="135">
						<title id="title1">Shows you real-time network traffic graph for Download!</title>
					</use>
					<use id="graphMob2" xlink:href="#graphc2" x="83.1" y="160.45" width="200" height="135">
						<title id="title1">Upload speed is measured in megabits per second (Mbps).</title>
					</use>
					<use xlink:href="#jitterMob" x="71.14" y="317.65" width="200" height="45.1">
						<title id="title1">Your ping! and Jitter</title>
					</use>
					<use xlink:href="#upResultC2" x="182" y="317.67" width="200" height="45.1">
						<title id="title1">Your upload speed!</title>
					</use>
					<use xlink:href="#downResultC1" x="-25" y="317.64" width="200" height="45.1">
						<title id="title1">Your download speed!</title>
					</use>
				</g>
				<g id="intro-Mob">
					<!--use id="nightmode-Mob"  class="darkmode" onclick="toggleSkin()" xlink:href="#dark" x="10" y="25" width="30" height="30"></use>
					<use id="daymode-Mob"  class="darkmode" onclick="toggleSkin()" xlink:href="#light" x="10" y="25" width="30" height="30"></use-->
					<use id="logo-Desk" xlink:href="#logo" x="38" y="110" width="218.8" height="50.22"></use>
					<use id="deskStartMob" class="deskStart" xlink:href="#mainGaugebg" x="11.18" y="12" width="273.94" height="245.39"></use>
					<use id="startButtonMob" class="startButton" xlink:href="#playButton" x="125" y="280" width="50.2" height="50.2">
						<title id="title1">Click here to run a speed!</title>
					</use>
					<use id="settingsMob" class="Startsettings" xlink:href="#settings" x="100" y="240" width="100" height="40">
						<title id="title1">Options</title>
					</use>
					<use class="Mobile" id="ipMob" xlink:href="#YourIP" x="11" y="49"></use>
				</g>
			</svg>
		</a>
		<linearGradient id="gradient" x1="0%" y1="0%" x2="0%" y2="100%">
			<stop offset="0%" stop-color="#885555"></stop>
			<stop offset="100%" stop-color="#880000"></stop>
		</linearGradient>
		<radialGradient id="RadialGradient1">
			<stop offset="0%" stop-color="#885555"></stop>
			<stop offset="100%" stop-color="#880000"></stop>
		</radialGradient>
	</svg>
  <div class="beadchallenge collapsible">
    <h2 title="¿Internet malo o poco confiable? Realice una prueba de velocidad para medir la calidad del servicio de Internet de su hogar. Completar una prueba de velocidad en tres días separados ayudará a garantizar que su vecindario reciba una parte justa de los fondos para mejoras de banda ancha." class="beadchallenge-banner">
        <img style="height: 18px;" src="https://beadchallenge.vercel.app/dot_red.png">
        Unreliable or poor internet? Take a speed test to measure the quality of your household’s
        internet service. Completing a speed test on three separate days will help ensure your
	neighborhood gets its fair share of funding for broadband improvements.
    </h2>
    <h2><i>(Click <u style="color: red">here</u> for instructions and to submit your information)</i></h2>
  </div>
  <div class="content">
    <p title="Realice una prueba de velocidad para medir la calidad del servicio de Internet de su hogar. Al completar una prueba de velocidad con esta herramienta, estás participando en el Proceso de Desafío del Programa de Equidad, Acceso e Implementación de Banda Ancha (“BEAD”). Incluya su dirección o código postal y su dirección de correo electrónico cuando envíe sus resultados." style="margin-left: 20px; margin-right:20px; text-align:justify;text-justify: inter-word;">
        Take a speed test to measure the quality of your household’s internet service.
        By completing a speed test using this tool, you’re participating in 
        the Broadband Equity, Access and Deployment (“BEAD”) Program Challenge Process.
        Please include your address or zip code, and your email address when you submit your results.
        <br><br>
        <b>What is a speed test?</b> A speed test measures the speed and quality of your internet at a point in time.
        <br><br>
        <b>Why should I take a speed test?</b> Taking a speed test will help ensure that the 
        Illinois Broadband Map accurately shows where there is and is not quality internet available to residents.
        <br><br>
        <b>What is this tool?</b>  By completing a speed test using this tool and sharing your location information,
        the Internet Equity Initiative will submit internet quality information on your behalf.
        <br><br>
        <b>What happens after I submit my speed test?</b> Completing and submitting a speed test with your address
        is step 1! You’ll need to complete two more speed tests on two separate days to complete the process.
	To help you out, we will send you email reminders to complete your second and third speed tests.
	<br><br><u>
	<b>What is the subscribed speed and how to find it?</b>
        People undertaking a BEAD challenge must indicate the speed tier of their Internet subscription.
        This is a specific range of download and upload speeds offered by an Internet Service Provider (ISP) under a particular plan.
        ISPs typically offer various plans, each with different maximum speeds for downloading and uploading data.
        To find your internet speed tier, check your latest bill, your ISP's app, or your service agreement.
	</u><b><br><br>
	The University of Chicago’s Internet Equity Initiative will be analyzing this 
	internet performance data on behalf of our partners.
	By submitting my information I agree to allow University of Chicago Internet Equity Initiative to
	analyze these data and share with the state broadband office and the ISP I am challenging.
	<br>We are committed to your privacy and the data from this website will never be sold.
	</b>
	<br><br>
	<b>Speed Test Best Practices:</b>
	<br> * Take your speed test close to a router.
	<br> * Plug into a router using an ethernet cord, if you have one.
	<br> * You can take your speed test during peak usage time (in the evening), but avoid times with others in your households are streaming videos or gaming.
	<br><br>
        Questions? Reach out to IEI Team at <b>[email protected]</b>. 
        <br><br>
        Thanks for your help improving internet access in Illinois!
        <br>&nbsp; &nbsp; &nbsp; - Internet Equity Initiative Team
    </p>
    <div class="centered">
	<select name="orgtype" id="orgtype" style="margin-left:15px; margin-right:15px; width: 460px">
              <optgroup label="Type">
                 <option value="individual">Individual</option>
                 <option value="organization">Organization</option>
              </optgroup>
        </select>
    </div>
    <div class="centered" id="orgdiv" style="display: none">
        <input type="text" id="attest_orgname" cols="35" rows="1" placeholder="Organization Name" style="margin-left:15px; margin-right: 15px; width: 460px" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
    </div>
   <div class="centered" id="flndiv">
        <input type="text" id="attest_firstname" cols="35" rows="1" placeholder="First Name" style="margin-left:15px; margin-right: 10px; width: 225px" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
        <input type="text" id="attest_lastname" cols="35" rows="1" placeholder="Last Name" style="margin-right: 15px; width: 225px" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
    </div>
    <div class="centered">
        <input type="email" id="attest_email" cols="30" rows="1" placeholder="Email" style="margin-left:15px; margin-right: 10px; width: 250px" onchange="onchange_attest_email(this.value)" oninput="onchange_attest_email(this.value)">
        
        <input type="text" id="attest_zipcode" cols="20" rows="1" placeholder="ZIP Code" style="margin-right: 15px; width: 200px" onchange="onchange_attest_zipcode(this.value)" oninput="onchange_attest_zipcode(this.value)">
        
    </div>
    <div class="centered">
        <input type="text" id="attest_streetnumber" cols="20" rows="1" placeholder="Street Number" style="margin-left:15px; margin-right: 10px; width: 100px" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
        <input type="text" id="attest_streetname" cols="50" rows="1" placeholder="Street Name" style="margin-right: 15px; width: 350px" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
    </div>

    <!--div class="centered">
        <button class="getloc" title="Obtener Mi Ubicación" onclick="getSTULocation()" style="margin-right: 10px; width: 450px">Get My Location &#x25BC;</button>
    </div-->
    <!--div class="centered">
        <textarea id="attest_address" cols="40" rows="3" placeholder="Street Address (please check your address to ensure your house and street number are correct)." style="width: 450px"></textarea>
    </div-->
    <div class="centered">
	<input type="text" id="attest_unitnumber" cols="10" rows="1" placeholder="Unit #" style="width: 100px; margin-left:12px; margin-right: 10px;" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
	<input type="text" id="attest_city" cols="10" rows="1" placeholder="City" style="width: 100px; margin-right: 10px;" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
	<input type="text" id="attest_state" cols="10" rows="1" placeholder="State" style="width: 100px; margin-right: 15px;" oninput="this.value = this.value.replace(/[,]/g, &quot; &quot;)">
        
    </div>
    <!--div class="centered">
	<div style="width: 460px; text-align:justify;text-justify: inter-word; background-color: lightgray">
		<p style="margin-left: 10px; margin-right:10px"><em><b>Please Note:</b> The "Get My Location" buttom works best with the Chrome browser, and it may not be 100% accurate, make sure you have the Location Services enabled. You can also copy the address from <a href="https://il-bead-speed-test-map.netlify.app/" target="_blank">here</a>, and paste it at the "Street Address" field (or enter it manually). Make sure you include the unit number (important).</p></em>
	</div>
    </div-->
    <div class="centered" style="margin-top:30px; text-align:center;">
        <p title="Velocidad medida (Mbps):">
            </p><div class="popup" onclick="translate_to_spanish()">
		    <b>Measured Speed (Mbps):</b><br>
		    (The measured speed is automatically filled)
            <span class="popuptext" id="attestPopup">Velocidad medida(Mbps):</span>
            </div>
        <p></p>
    </div>
    <div class="centered" style="margin-bottom:30px">
        <input type="number" id="measured_down" cols="15" rows="1" placeholder="Download Speed" style="margin-right: 10px; margin-left: 5px;" readonly="">
        <input type="number" id="measured_up" cols="15" rows="1" placeholder="Upload Speed" readonly="">
    </div>
    <div class="centered" style="text-align:center;">
        <p title="Doy fe de que me he suscrito a un plan de Internet con:">
            </p><div class="popup" onclick="translate_to_spanish()">
		    <b>I attest that I have <u>subscribed</u> to an Internet plan of (Mbps):</b><br>
		    (Please see the instructions to understand how to find these numbers)
            <span class="popuptext" id="attestPopup">Doy fe de que me he suscrito a un plan de Internet con (Mbps):</span>
            </div>
	<p></p>
    </div>
    <div class="centered" style="margin-bottom: 30px">
        <input type="number" id="attest_down" cols="15" rows="1" placeholder="Download Speed" style="margin-right: 10px; margin-left: 5px;">
        <input type="number" id="attest_up" cols="15" rows="1" placeholder="Upload Speed">
    </div>
    <div class="centered" style="margin-bottom: 60px">
        <button id="attest_submit" class="getloc" title="Enviar" onclick="updateSaveTestDataBEADChallenge();" style="margin-right: 10px; width: 100px">Submit</button>
    </div>
  </div>
  <div class="Credits">
    <a href="https://datascience.uchicago.edu/"><img style="height: 45px;" src="https://beadchallenge.vercel.app/DSILogo1.png"></a>
    <a href="https://internetequity.uchicago.edu/"><img style="height: 45px;" src="https://beadchallenge.vercel.app/IEILogo1.svg"></a>
  </div>
  <div class="Credits">
    <a href="https://openspeedtest.com?ref=Self-Hosted&amp;Run">SpeedTest by OpenSpeedTest™</a> is a Free and <a href="https://github.com/openspeedtest/Speed-Test">Open-Source HTML5 Network Speed Test</a> Software.
    <p style="font-size: 12px;">© Copyright 2013-2024 OpenSpeedTest™ All Rights Reserved.</p>
</div>
<div class="Credits">
    <p style="font-size: 12px;">Version 1.0.0-rev43</p>
</div>
  
  <script src="assets/js/app-2.5.4.js"></script>

  <script>
    var coll = document.getElementsByClassName("collapsible");
    var i;
    
    for (i = 0; i < coll.length; i++) {
      coll[i].addEventListener("click", function() {
        this.classList.toggle("active");
        var content = this.nextElementSibling;   
        if (content.style.maxHeight){
          content.style.maxHeight = null;
        } else {
          content.style.maxHeight = content.scrollHeight + "px";
        }
        window.scrollTo(800, 1400);
      });
    }
    </script>
    <script>
        // When the user clicks on div, open the popup
        function translate_to_spanish() {
            var popup = document.getElementById("attestPopup");
            popup.classList.toggle("show");
        }
        function updateSaveTestDataBEADChallenge() {
            saveTestDataBEADChallenge = getSaveTestDataBEADChallenge(stdQueryData);

            if (saveTestDataBEADChallenge.indexOf("undefined") > -1) {
                alert("ERROR: Please, press 'Start' to initiate a Speed Test first. \n"+
                      "ERROR: Por favor, presione 'Iniciar' para iniciar primero una prueba de velocidad.");
                return false;

            }
            if (!onchange_attest_zipcode(document.getElementById("attest_zipcode").value)) {
                alert("ERROR: Please, enter a valid Zip Code. \n"+
                      "ERROR. Por favor, ingrese un código postal válido.");
                return false;
            }
            if (document.getElementById("attest_down").value < 1) {
                alert("ERROR: Please, enter a valid Download speed attestation.\n"+
                      "ERROR: Por favor, Introduzca una declaración de velocidad de descarga válida.");
                return false;
            }
            if (document.getElementById("attest_up").value < 1) {
                alert("ERROR: Please, enter a valid Upload speed attestation.\n"+
                      "ERROR: Por favor, Ingrese una declaración de velocidad de carga válida.");
                return false;
            }
            if (!document.getElementById("attest_firstname").value) {
		const selectElement = document.getElementById('orgtype');
		if (selectElement.value === "individual") {
                    alert("ERROR: Please, enter your first name.\n"+
                          "ERROR: Por favor, Ingrese su primero nombre");
                    return false;
		}
            }
            if (!document.getElementById("attest_lastname").value) {
		const selectElement = document.getElementById('orgtype');
		if (selectElement.value === "individual") {
  		     alert("ERROR: Please, enter your last name.\n"+
                           "ERROR: Por favor, Ingrese su nombre de la familia");
                     return false;
		}
            }
	    if  (!document.getElementById("attest_orgname").value) {
		const selectElement = document.getElementById('orgtype');
                if (selectElement.value != "individual") {
                     alert("ERROR: Please, enter your last name.\n"+
                           "ERROR: Por favor, Ingrese su nombre de la familia");
                     return false;
                }
	    }
            document.getElementById("loader").style.visibility = "visible"; 
            axios.post(OpenSpeedTestdb, saveTestDataBEADChallenge,
                {headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }}).then(()=>{
		document.getElementById("loader").style.visibility = "hidden"; 
                alert("Congratulations: your data has been successfully submitted!\n"+
                      "Please, check and confirm the data on the email you're about to receive today.\n"+
                      "\n"+
                      "¡Felicitaciones: sus datos han sido enviados exitosamente!\n"+
                      "Por favor, revisa y confirma los datos del email que estás a punto de recibir hoy.\n"
                      );
		var attest_button = document.getElementById("attest_submit")
		attest_button.disabled = true;
		attest_button.style.backgroundColor = "gray";

            })
            .catch((error)=>{
		document.getElementById("loader").style.visibility = "hidden"; 
                alert("ERROR: failed to send data ("+error+")");
            })           
        }
        </script>
        <script>
           document.onreadystatechange = function () {
              if (document.readyState !== "complete") {
                 document.getElementById("loader").style.visibility = "hidden"; 
              }
           }          
        </script>
	<script>
	   const selectElement = document.getElementById('orgtype');
           const orgDivElement = document.getElementById('orgdiv');

           selectElement.addEventListener('change', function() {
               if (selectElement.value === 'individual') {
                  orgDivElement.style.display = 'none';
               } else {
                  orgDivElement.style.display = 'flex';
               }
           });
	</script>


</body></html>