CINXE.COM
Air Ionization in Air Breathing Plasma Thruster
<!DOCTYPE html> <html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- OneTrust Cookies Consent Notice start for contest.techbriefs.com --> <script src="https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="64457799-0d46-4cbd-b1bc-b931e8f8df9a" tb-donotmove></script> <script type="text/javascript" tb-donotmove> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for contest.techbriefs.com --> <link rel="preconnect" href="https://cdnjs.cloudflare.com/"> <link rel="preconnect" href="https://fonts.gstatic.com/"> <link rel="preconnect" href="https://fonts.googleapis.com/"> <link rel="preconnect" href="https://res.cloudinary.com/"> <link rel="preconnect" href="https://kit.fontawesome.com/"> <link rel="preconnect" href="https://kit-pro.fontawesome.com/"> <link rel="preconnect" href="https://www.googletagmanager.com/"> <link rel="preconnect" href="https://www.googletagservices.com/"> <link rel="preconnect" href="https://cdn.shareaholic.net"> <link rel="preconnect" href="https://olytics.omeda.com"> <link rel="preconnect" href="https://securepubads.g.doubleclick.net/"> <link rel="preconnect" href="https://px.ads.linkedin.com"> <link rel="preconnect" href="https://snap.licdn.com"> <link rel="preconnect" href="https://cdn-ukwest.onetrust.com"> <link rel="preload" as="style" href="/templates/ctf_2019/css/template.min.css?t=1733892067" integrity="sha512-gs01nFrNFaCFzLvqaR69tzsAe94mHtFisnTpwYypB64/eczgDxp+YPPHxhWvI+zFHrYH8Rbo6mUhd9m93B83uw==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/cloudinary-core/2.13.1/cloudinary-core-shrinkwrap.min.js" integrity="sha512-stp48jOOmT4TXnB4bMJ0rlcR7XagE92cqr7pEb+oFQox6qNSyKiN31GajDsg5VVn+HgM5mhOZinSRXowsRmgPg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://kit.fontawesome.com/796c614b26.js" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" integrity="sha512-JRlcvSZAXT8+5SQQAvklXGJuxXTouyq8oIMaYERZQasB8SBDHZaUbeASsJWpk0UUrf89DP3/aefPPrlMR1h1yQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js" integrity="sha512-q583ppKrCRc7N5O0n2nzUiJ+suUv7Et1JGels4bXOaMFQcamPk9HjdUknZuuFjBNs7tsMuadge5k9RzdmO+1GQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/plugins/print/ls.print.min.js" integrity="sha512-tY3D/iSWSdQE2NSLW/mRWQd/bvHAGjyCLRwSd23sqNbbgVnUaah2t+ZpX7hdBOskZ7PqYvwe4E+qxNARGojJGQ==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/js/bootstrap.bundle.min.js" integrity="sha512-i9cEfJwUwViEPFKdC1enz4ZRGBj8YQo6QByFTF92YXHi7waCqyexvRD75S5NVTsSiTv7rKWqG9Y5eFxmRsOn0A==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/11.15.10/sweetalert2.all.min.js" integrity="sha512-KWZQo2EiUMmEMrjJUUZoWP8k/mL57L5PPjQF23Vv77jGidQK8WPsX/RoQ7uI0cnjDDCU8ZXa1NG24HkLOqI9sg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/css/bootstrap-select.min.css" integrity="sha512-g2SduJKxa4Lbn3GW+Q7rNz+pKP9AWMR++Ta8fgwsZRCUsawjPvF/BxSMkGS61VsR9yinGoEgrHPGPn2mrj8+4w==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/js/bootstrap-select.min.js" integrity="sha512-yrOmjPdp8qH8hgLfWpSFhC/+R9Cj9USL8uJxYIveJZGAiedxyIxwNw4RsLDlcjNlIRR4kkHaDHSmNHAkxFTmgg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <meta charset="utf-8"> <meta name="author" content="Anmol Taploo"> <meta name="robots" content="index, follow"> <meta name="keywords" content="Tech Briefs, Design Engineering, Technology Transfer, electronics, semiconductors, ICs, sensors, test & measurement, data acquisition, photonics, materials, computer software, mechanics, mechanical components, machinery, automation, manufacturing, fabrication, prototyping, mathematics, information sciences, life sciences, motion control, imaging"> <meta name="description" content="The Create the Future Design Contest was launched in 2002 by the publishers of NASA Tech Briefs magazine to help stimulate and reward engineering innovation. Th"> <title>Air Ionization in Air Breathing Plasma Thruster</title> <link href="https://contest.techbriefs.com/2023/entries/aerospace-and-defense/12494" rel="canonical"> <style> /*! inlined from /media/plg_system_webauthn/css/button.min.css by ntb_minifier */ @charset "UTF-8"; button[class*="plg_system_webauthn_login_button"] { max-height: 3rem; padding: .25rem; } button[class*="plg_system_webauthn_login_button"] span[class*="icon"] { text-align: center; vertical-align: sub; width: 1em; font-size: 1.25em; display: inline-block; } button[class*="plg_system_webauthn_login_button"] img[class*="icon"] { text-align: center; vertical-align: middle; height: 2.5rem; padding: 0 .25em 2px; font-size: 1.5em; display: inline-block; } button[class*="plg_system_webauthn_login_button"] span[class*="icon"]:not(:last-child) { margin-inline-end: .5em; } /* end /media/plg_system_webauthn/css/button.min.css */ </style> <style> /*! inlined from /plugins/content/jw_allvideos/jw_allvideos/tmpl/Responsive/css/template.min.css by ntb_minifier */ /** * @version 6.1.0 * @package AllVideos (plugin) * @author JoomlaWorks - https://www.joomlaworks.net * @copyright Copyright (c) 2006 - 2020 JoomlaWorks Ltd. All rights reserved. * @license GNU/GPL license: https://www.gnu.org/copyleft/gpl.html */ .avPlayerWrapper div,.avPlayerWrapper iframe,.avPlayerWrapper video,.avPlayerWrapper audio{outline:0}.avDownloadLink a,.avDownloadLink a:link{display:block;background:#eee;padding:10px;text-align:center;font-weight:700;font-size:12px;color:#999;text-decoration:none}.avDownloadLink a:hover{background:#ddd;color:#666;text-decoration:none}.avPlayerBlockDisabled{width:auto;height:auto;padding:20px}a.avDeprecated,a.avDeprecated:link{display:block;background:#eee;padding:20px;text-align:center;font-weight:700;font-size:16px;color:#999;text-decoration:none}a.avDeprecated:hover{background:#ddd;color:#666;text-decoration:none}.avPlayerWrapper{display:block;padding:0;margin:0 auto;clear:both}.avPlayerWrapper .avPlayerContainer{display:block;padding:0;margin:0 auto}.avPlayerWrapper .avPlayerContainer .avPlayerBlock{width:100%!important;position:relative!important;padding:58% 0 0 0!important;overflow:hidden}.avPlayerWrapper .avPlayerContainer .avPlayerBlock iframe,.avPlayerWrapper .avPlayerContainer .avPlayerBlock video,.avPlayerWrapper .avPlayerContainer .avPlayerBlock audio{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important}.avPlayerWrapper .avPlayerContainer .avPlayerBlock video{background:#000}.avPlayerWrapper .avPlayerContainer .avPlayerBlock audio{background-color:#000;background-repeat:no-repeat;background-position:50% 50%;background-size:cover;padding:10px;box-sizing:border-box}.avPlayerWrapper.avNoPoster .avPlayerContainer .avPlayerBlock{padding:0!important}.avPlayerWrapper.avNoPoster .avPlayerContainer .avPlayerBlock audio{position:relative!important;height:60px!important}.avPlayerWrapper.avSoundCloudSet .avPlayerContainer .avPlayerBlock,.avPlayerWrapper.avSoundCloudSong .avPlayerContainer .avPlayerBlock{padding:0!important}.avPlayerWrapper.avSoundCloudSet .avPlayerContainer .avPlayerBlock iframe{position:relative!important;height:336px!important}.avPlayerWrapper.avSoundCloudSong .avPlayerContainer .avPlayerBlock iframe{position:relative!important;height:168px!important}.avPlayerWrapper.avMixcloud .avPlayerContainer .avPlayerBlock{padding:0!important}.avPlayerWrapper.avMixcloud .avPlayerContainer .avPlayerBlock iframe{position:relative!important;height:inherit!important} /* end /plugins/content/jw_allvideos/jw_allvideos/tmpl/Responsive/css/template.min.css */ </style> <link href="/plugins/content/jw_disqus/jw_disqus/tmpl/css/template.min.css?v=3.7.0" rel="stylesheet" /> <style>/** * Critical CSS created by criticalcss.com * file: /css/critical/article-entry.css' * createdAt : 2024-12-11T04:46:12.000Z * resultStatus : GOOD * originalSize : 561607 * size : 0 * validationStatus : GOOD */ @charset "UTF-8";#startOfPage{visibility:hidden}@font-face{font-family:Cabin;font-style:normal;font-weight:400;font-stretch:normal;font-display:swap;src:url(https://fonts.gstatic.com/s/cabin/v27/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkV2EH7ilwg.ttf) format('truetype')}@font-face{font-family:Cabin;font-style:normal;font-weight:700;font-stretch:normal;font-display:swap;src:url(https://fonts.gstatic.com/s/cabin/v27/u-4X0qWljRw-PfU81xCKCpdpbgZJl6XFpfEd7eA9BIxxkbqDH7ilwg.ttf) format('truetype')}@font-face{font-family:'Exo 2';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/exo2/v24/7cH1v4okm5zmbvwkAx_sfcEuiD8jvvKsN9C6.ttf) format('truetype')}@font-face{font-family:'Exo 2';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/exo2/v24/7cH1v4okm5zmbvwkAx_sfcEuiD8jYPWsN9C6.ttf) format('truetype')}:root{--bs-blue:#144c89;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#b9519f;--bs-red:#ec1f27;--bs-orange:#f79420;--bs-yellow:#f3ec19;--bs-green:#69bd45;--bs-teal:#6ecddd;--bs-cyan:#00abe9;--bs-white:#ffffff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-inverse:#000000;--bs-navbar:#adb5bd;--bs-navitem:#ffffff;--bs-primary-light:#144c89;--bs-error:#ec1f27;--bs-primary:#144c89;--bs-secondary:#00abe9;--bs-success:#69bd45;--bs-info:#00abe9;--bs-warning:#f3ec19;--bs-danger:#ec1f27;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-inverse-rgb:0,0,0;--bs-navbar-rgb:173,181,189;--bs-navitem-rgb:255,255,255;--bs-primary-light-rgb:20,76,137;--bs-error-rgb:236,31,39;--bs-primary-rgb:20,76,137;--bs-secondary-rgb:0,171,233;--bs-success-rgb:105,189,69;--bs-info-rgb:0,171,233;--bs-warning-rgb:243,236,25;--bs-danger-rgb:236,31,39;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:"Cabin",sans-serif;--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:Cabin,sans-serif;--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#ffffff;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.25rem;--bs-border-radius-sm:0.2rem;--bs-border-radius-lg:0.3rem;--bs-border-radius-xl:1rem;--bs-border-radius-2xl:2rem;--bs-border-radius-pill:50rem;--bs-link-color:#144c89;--bs-link-hover-color:rgb(10.2547770701, 38.9681528662, 70.2452229299);--bs-code-color:#b9519f;--bs-highlight-bg:rgb(252.6, 251.2, 209)}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid #495057;opacity:.25}h2,h3,h4,h5{margin-top:0;margin-bottom:.5rem;font-family:"Exo 2",sans-serif;font-weight:600;line-height:1.2}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}p{margin-top:0}ol,ul{padding-left:2rem;margin-top:0}ol,p,ul{margin-bottom:1rem}a{color:var(--bs-link-color);text-decoration:none}a:not([href]):not([class]){color:inherit;text-decoration:none}img,svg{vertical-align:middle}button{border-radius:0;text-transform:none}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}[type=button],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{padding:0;border-style:none}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}iframe{border:0}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}img{max-width:100%;height:auto}.container,.container-fluid,.container-xl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-xl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-.5*var(--bs-gutter-x));margin-left:calc(-.5*var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-4{flex:0 0 auto;width:33.33333333%}.col-6{flex:0 0 auto;width:50%}.col-8{flex:0 0 auto;width:66.66666667%}.col-10{flex:0 0 auto;width:83.33333333%}.offset-2{margin-left:16.66666667%}@media (min-width:576px){.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}}@media (min-width:768px){.col-md-1,.col-md-2{flex:0 0 auto;width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-7{flex:0 0 auto;width:58.33333333%}}@media (min-width:992px){.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}}@media (min-width:1200px){.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-4{flex:0 0 auto;width:33.33333333%}}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group .btn{position:relative;z-index:2}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.btn{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:#212529;--bs-btn-bg:transparent;--bs-btn-border-width:1px;--bs-btn-border-color:transparent;--bs-btn-border-radius:0.25rem;--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);text-align:center;vertical-align:middle;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-image:var(--bs-gradient)}.btn-primary{--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-color:#ffffff;--bs-btn-bg:#144c89;--bs-btn-border-color:#144c89;--bs-btn-hover-color:#ffffff;--bs-btn-hover-bg:rgb(17, 64.6, 116.45);--bs-btn-hover-border-color:rgb(16, 60.8, 109.6);--bs-btn-focus-shadow-rgb:55,103,155;--bs-btn-active-color:#ffffff;--bs-btn-active-bg:rgb(16, 60.8, 109.6);--bs-btn-active-border-color:rgb(15, 57, 102.75);--bs-btn-disabled-color:#ffffff;--bs-btn-disabled-bg:#144c89;--bs-btn-disabled-border-color:#144c89}.btn-secondary{--bs-btn-color:#000000;--bs-btn-bg:#00abe9;--bs-btn-border-color:#00abe9;--bs-btn-hover-color:#000000;--bs-btn-hover-bg:rgb(38.25, 183.6, 236.3);--bs-btn-hover-border-color:rgb(25.5, 179.4, 235.2);--bs-btn-focus-shadow-rgb:0,145,198;--bs-btn-active-color:#000000;--bs-btn-active-bg:rgb(51, 187.8, 237.4);--bs-btn-active-border-color:rgb(25.5, 179.4, 235.2);--bs-btn-disabled-color:#000000;--bs-btn-disabled-bg:#00abe9;--bs-btn-disabled-border-color:#00abe9;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125)}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.nav{--bs-nav-link-padding-x:0.7rem;--bs-nav-link-padding-y:0.7rem;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:#6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color)}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(0, 0, 0, 0.55);--bs-navbar-hover-color:rgba(0, 0, 0, 0.7);--bs-navbar-disabled-color:rgba(0, 0, 0, 0.3);--bs-navbar-active-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-padding-y:0.25rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(0, 0, 0, 0.9);--bs-navbar-brand-hover-color:rgba(0, 0, 0, 0.9);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(0, 0, 0, 0.1);--bs-navbar-toggler-border-radius:0.25rem;--bs-navbar-toggler-focus-width:0.25rem;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);background-image:var(--bs-gradient)}.navbar>.container-xl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.7rem;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius)}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}.navbar-dark{--bs-navbar-color:rgba(255, 255, 255, 0.85);--bs-navbar-hover-color:rgba(255, 255, 255, 0.5);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#ffffff;--bs-navbar-brand-color:#ffffff;--bs-navbar-brand-hover-color:#ffffff;--bs-navbar-toggler-border-color:transparent;--bs-navbar-toggler-icon-bg:none}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-border-width:1px;--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:0.25rem;--bs-card-inner-border-radius:calc(0.25rem - 1px);--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(0, 0, 0, 0.03);--bs-card-bg:#ffffff;--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.breadcrumb{display:flex;list-style:none;--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0.5rem;--bs-breadcrumb-margin-bottom:0;--bs-breadcrumb-font-size:0.875rem;--bs-breadcrumb-bg:transparent;--bs-breadcrumb-divider-color:#adb5bd;--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:#adb5bd;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "|")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#ffffff;--bs-badge-border-radius:0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius);background-image:var(--bs-gradient)}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:1px solid var(--bs-alert-border-color);--bs-alert-border-radius:0.25rem;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-inverse{--bs-alert-color:black;--bs-alert-bg:#cccccc;--bs-alert-border-color:rgb(178.5, 178.5, 178.5)}.alert-inverse .alert-link{color:#000}.alert-inverse,.alert-navbar,.alert-navitem{background-image:var(--bs-gradient)}.alert-navbar{--bs-alert-color:rgb(103.8, 108.6, 113.4);--bs-alert-bg:rgb(238.6, 240.2, 241.8);--bs-alert-border-color:rgb(230.4, 232.8, 235.2)}.alert-navbar .alert-link{color:#53575b}.alert-navitem{--bs-alert-color:#666666;--bs-alert-bg:white;--bs-alert-border-color:white}.alert-navitem .alert-link{color:#525252}.alert-cdnjs,.alert-cleanup,.alert-primary,.alert-primary-light{--bs-alert-color:rgb(12, 45.6, 82.2);--bs-alert-bg:rgb(208, 219.2, 231.4);--bs-alert-border-color:rgb(184.5, 201.3, 219.6);background-image:var(--bs-gradient)}.alert-cdnjs .alert-link,.alert-cleanup .alert-link,.alert-primary .alert-link,.alert-primary-light .alert-link{color:#0a2442}.alert-admin,.alert-cloudinary,.alert-criticalcss,.alert-secondary{--bs-alert-color:rgb(0, 102.6, 139.8);--bs-alert-bg:rgb(204, 238.2, 250.6);--bs-alert-border-color:rgb(178.5, 229.8, 248.4);background-image:var(--bs-gradient)}.alert-admin .alert-link,.alert-cloudinary .alert-link,.alert-criticalcss .alert-link,.alert-secondary .alert-link{color:#005270}.alert-success{--bs-alert-color:rgb(63, 113.4, 41.4);--bs-alert-bg:rgb(225, 241.8, 217.8);--bs-alert-border-color:rgb(210, 235.2, 199.2);background-image:var(--bs-gradient)}.alert-success .alert-link{color:#325b21}.alert-cache,.alert-info{--bs-alert-color:rgb(0, 102.6, 139.8);--bs-alert-bg:rgb(204, 238.2, 250.6);--bs-alert-border-color:rgb(178.5, 229.8, 248.4);background-image:var(--bs-gradient)}.alert-cache .alert-link,.alert-info .alert-link{color:#005270}.alert-notice,.alert-warning{--bs-alert-color:rgb(97.2, 94.4, 10);--bs-alert-bg:rgb(252.6, 251.2, 209);--bs-alert-border-color:rgb(251.4, 249.3, 186);background-image:var(--bs-gradient)}.alert-notice .alert-link,.alert-warning .alert-link{color:#4e4c08}.alert-danger,.alert-error{--bs-alert-color:rgb(141.6, 18.6, 23.4);--bs-alert-bg:rgb(251.2, 210.2, 211.8);--bs-alert-border-color:rgb(249.3, 187.8, 190.2)}.alert-danger .alert-link,.alert-error .alert-link{color:#710f13}.alert-danger,.alert-dark,.alert-error,.alert-light{background-image:var(--bs-gradient)}.alert-light{--bs-alert-color:rgb(99.2, 99.6, 100);--bs-alert-bg:rgb(253.6, 253.8, 254);--bs-alert-border-color:rgb(252.9, 253.2, 253.5)}.alert-light .alert-link{color:#4f5050}.alert-dark{--bs-alert-color:rgb(19.8, 22.2, 24.6);--bs-alert-bg:rgb(210.6, 211.4, 212.2);--bs-alert-border-color:rgb(188.4, 189.6, 190.8)}.alert-dark .alert-link{color:#101214}.list-group{--bs-list-group-color:#212529;--bs-list-group-bg:#ffffff;--bs-list-group-border-color:rgba(0, 0, 0, 0.125);--bs-list-group-border-width:1px;--bs-list-group-border-radius:0.25rem;--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:#495057;--bs-list-group-action-hover-color:#495057;--bs-list-group-action-hover-bg:#f8f9fa;--bs-list-group-action-active-color:#212529;--bs-list-group-action-active-bg:#e9ecef;--bs-list-group-disabled-color:#6c757d;--bs-list-group-disabled-bg:#ffffff;--bs-list-group-active-color:#ffffff;--bs-list-group-active-bg:#144c89;--bs-list-group-active-border-color:#144c89;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item+.list-group-item{border-top-width:0}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-bg:#ffffff;--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:1px;--bs-modal-border-radius:0.3rem;--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius:calc(0.3rem - 1px);--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:1px;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin)}.modal.fade .modal-dialog{transform:translate(0,-50px)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-xl{--bs-modal-width:800px}}.carousel,.carousel-inner{position:relative}.carousel-inner{width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden}.carousel-item.active{display:block}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5}.carousel-indicators .active{opacity:1}.align-top{vertical-align:top!important}.float-end{float:right!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-flex{display:flex!important}.d-none{display:none!important}.position-relative{position:relative!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-100{height:100%!important}.flex-fill{flex:1 1 auto!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-nowrap{flex-wrap:nowrap!important}.justify-content-center{justify-content:center!important}.justify-content-around{justify-content:space-around!important}.align-items-end{align-items:flex-end!important}.m-0{margin:0!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.mt-1{margin-top:.25rem!important}.mt-5{margin-top:3rem!important}.me-2{margin-right:.5rem!important}.me-4{margin-right:1.5rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-3{margin-bottom:1rem!important}.ms-3{margin-left:1rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-3{padding:1rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.pt-0{padding-top:0!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.text-center{text-align:center!important}.text-uppercase{text-transform:uppercase!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.bg-navbar{--bs-bg-opacity:1;background-color:rgba(var(--bs-navbar-rgb),var(--bs-bg-opacity))!important}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-error-rgb),var(--bs-bg-opacity))!important;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.nav-link{font-family:"Exo 2",sans-serif;font-weight:600;font-size:16px;text-transform:uppercase}.menu-top-nav .nav-bottom .nav-item .nav-link{font-size:11px;border-left:1px solid #fff;height:100%;letter-spacing:.1em}@media (max-width:1000px){.menu-top-nav .nav-bottom .nav-item .nav-link{letter-spacing:.05em;padding-left:.45rem;padding-right:.45rem}}@media (max-width:925px){.menu-top-nav .nav-bottom .nav-item .nav-link{letter-spacing:.025em;padding-left:.4rem;padding-right:.4rem}}@media (max-width:875px){.menu-top-nav .nav-bottom .nav-item .nav-link{letter-spacing:.01em;padding-left:.35rem;padding-right:.35rem}}@media (max-width:850px){.menu-top-nav .nav-bottom .nav-item .nav-link{padding-left:.25rem;padding-right:.25rem}}.menu-top-nav .nav-bottom li:last-child{border-right:1px solid #fff}.navbar{font-family:Cabin,sans-serif;font-weight:700}.navbar-side{position:fixed;top:0;left:0;border-right:2px solid #495057;overflow-y:scroll;z-index:1000;transform:translateX(-100%);width:100%}@media (min-width:576px){.navbar-side{width:50%}}@media (min-width:768px){.d-md-block{display:block!important}.d-md-flex{display:flex!important}.navbar-side{width:35%}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}.navbar-side{width:28%}}.navbar-side .nav-link{font-size:16px;padding-top:.5rem;padding-bottom:.5rem}.navbar-toggler{padding:.75rem!important}.navbar-toggler-left{position:absolute}.module.card h4{color:#fff;text-transform:uppercase;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;font-weight:400;letter-spacing:.25rem;font-size:1.1rem}.module.card .card-body,.module.card .card-header{padding-top:.25rem;padding-bottom:.25rem}.module.card .card-header{background:#00abe9}.module.card .card-header h4{font-size:1.25rem}.module.card .list-group-item{font-size:1.25rem;font-family:"Exo 2",sans-serif}.module.card .card-body{background:#adb5bd;font-family:Cabin,sans-serif}.entry.card .card-body{color:#6c757d;height:unset}.entry.card .card-header h2{font-size:1.75rem}.entry.card .card-body img{margin-bottom:.5rem;clear:right;float:right;width:28%}.entry.card .entry-header{font-family:Cabin,sans-serif}.entry.card .card-body p{margin-bottom:1rem;font-size:1.1rem;line-height:1.65}.entry.card .card-body:after{content:none}.entry.card #entry-carousel .carousel-item img{margin:0;padding:0;height:400px;-o-object-fit:contain;object-fit:contain}.entry.card #entry-carousel .carousel-indicators{position:static;margin-right:auto;margin-left:auto}.alert-message{font-size:smaller}.blur-up{filter:blur(5px)}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:.6;z-index:990}nav.header-nav .logolarge{vertical-align:middle;height:150px;max-height:150px}@media (max-width:1199.98px){nav.header-nav .logolarge{max-height:140px}}@media (max-width:991.98px){nav.header-nav .logolarge{max-height:130px}}@media (max-width:767.98px){.navbar{border-bottom:5px solid #adb5bd}nav.header-nav .logolarge{max-height:120px}}@media (max-width:575.98px){nav.header-nav .logolarge{max-height:100px;max-width:100%;padding-left:5px;padding-right:5px}}nav.header-nav .principal-sponsors{max-width:400px;max-height:165px;border-radius:.5rem;background-image:linear-gradient(rgba(20,76,137,.15),rgba(255,255,255,0) 50%,rgba(20,76,137,.15))}@media (max-width:1199.98px){nav.header-nav .principal-sponsors{max-height:155px;max-width:375px}}@media (max-width:991.98px){nav.header-nav .principal-sponsors{max-height:145px;max-width:325px}}nav.header-nav .principal-sponsors-header h3{line-height:.5;font-weight:200;font-size:1.1rem;letter-spacing:.35rem}@media (max-width:1199.98px){nav.header-nav .principal-sponsors-header h3{font-size:1rem;letter-spacing:.35rem}}@media (max-width:991.98px){nav.header-nav .principal-sponsors-header h3{font-size:.9rem;letter-spacing:.3rem}div#login-menu ul{flex-direction:column!important}}@media (max-width:767.98px){nav.header-nav .principal-sponsors{max-height:135px;max-width:280px}nav.header-nav .principal-sponsors-header h3{font-size:.8rem;letter-spacing:.25rem}}@media (max-width:575.98px){nav.header-nav .principal-sponsors{max-height:100px;max-width:40%;padding-left:5px;padding-right:5px}nav.header-nav .principal-sponsors-header h3{font-size:.5rem;letter-spacing:.1rem}}#entry-carousel .carousel-indicators a{width:unset;height:unset}.overlay,.printmessage{display:none}.cls-1{fill:#6fccdd}.cls-2{fill:#fff}.cls-3{fill:#06b0d8}.cls-4{fill:#f79420}.cls-5{fill:#fbb03a}.cls-6{fill:#faed23}.cls-7{fill:#f7ec13}.cls-8{fill:#6abd45}.cls-9{fill:#b9529f}.cls-10{fill:#c1272d}.cls-11{fill:#ec2027}.cls-12{fill:#d2d3d4}:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.cb_template .alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.cb_template .alert-heading{color:inherit}.cb_template .alert-link{font-weight:700}.cb_template .alert-dismissible{padding-right:4rem}.cb_template .alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.cb_template .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.cb_template .alert-primary hr{border-top-color:#9fcdff}.cb_template .alert-primary .alert-link{color:#002752}.cb_template .alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.cb_template .alert-secondary hr{border-top-color:#c8cbcf}.cb_template .alert-secondary .alert-link{color:#202326}.cb_template .alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.cb_template .alert-success hr{border-top-color:#b1dfbb}.cb_template .alert-success .alert-link{color:#0b2e13}.cb_template .alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.cb_template .alert-info hr{border-top-color:#abdde5}.cb_template .alert-info .alert-link{color:#062c33}.cb_template .alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.cb_template .alert-warning hr{border-top-color:#ffe8a1}.cb_template .alert-warning .alert-link{color:#533f03}.cb_template .alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.cb_template .alert-danger hr{border-top-color:#f1b0b7}.cb_template .alert-danger .alert-link{color:#491217}.cb_template .alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.cb_template .alert-light hr{border-top-color:#ececf6}.cb_template .alert-light .alert-link{color:#686868}.cb_template .alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.cb_template .alert-dark hr{border-top-color:#b9bbbe}.cb_template .alert-dark .alert-link{color:#040505}</style> <script type="application/json" class="joomla-script-options new">{"joomla.jtext":{"PLG_SYSTEM_WEBAUTHN_ERR_CANNOT_FIND_USERNAME":"Cannot find the username field in the login module. Sorry, Passwordless authentication will not work on this site unless you use a different login module.","PLG_SYSTEM_WEBAUTHN_ERR_EMPTY_USERNAME":"You need to enter your username (but NOT your password) before selecting the Web Authentication login button.","PLG_SYSTEM_WEBAUTHN_ERR_INVALID_USERNAME":"The specified username does not correspond to a user account that has enabled passwordless login on this site."},"system.paths":{"root":"","rootFull":"https:\/\/contest.techbriefs.com\/","base":"","baseFull":"https:\/\/contest.techbriefs.com\/"},"csrf.token":"753d1fb905e3280818bf7c3c1ae5f3ce","system.keepalive":{"interval":3600000,"uri":"\/component\/ajax\/?format=json"}}</script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/toast.min.js by ntb_minifier */ import { e as enableDismissTrigger, d as define$Plugin, B as BaseComponent, E as EventHandler, r as reflow } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap toast.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'toast'; const DATA_KEY = 'bs.toast'; const EVENT_KEY = `.${DATA_KEY}`; const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; const EVENT_HIDE = `hide${EVENT_KEY}`; const EVENT_HIDDEN = `hidden${EVENT_KEY}`; const EVENT_SHOW = `show${EVENT_KEY}`; const EVENT_SHOWN = `shown${EVENT_KEY}`; const CLASS_NAME_FADE = 'fade'; const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility const CLASS_NAME_SHOW = 'show'; const CLASS_NAME_SHOWING = 'showing'; const DefaultType = { animation: 'boolean', autohide: 'boolean', delay: 'number' }; const Default = { animation: true, autohide: true, delay: 5000 }; /** * Class definition */ class Toast extends BaseComponent { constructor(element, config) { super(element, config); this._timeout = null; this._hasMouseInteraction = false; this._hasKeyboardInteraction = false; this._setListeners(); } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public show() { const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (showEvent.defaultPrevented) { return; } this._clearTimeout(); if (this._config.animation) { this._element.classList.add(CLASS_NAME_FADE); } const complete = () => { this._element.classList.remove(CLASS_NAME_SHOWING); EventHandler.trigger(this._element, EVENT_SHOWN); this._maybeScheduleHide(); }; this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated reflow(this._element); this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); this._queueCallback(complete, this._element, this._config.animation); } hide() { if (!this.isShown()) { return; } const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } const complete = () => { this._element.classList.add(CLASS_NAME_HIDE); // @deprecated this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._element.classList.add(CLASS_NAME_SHOWING); this._queueCallback(complete, this._element, this._config.animation); } dispose() { this._clearTimeout(); if (this.isShown()) { this._element.classList.remove(CLASS_NAME_SHOW); } super.dispose(); } isShown() { return this._element.classList.contains(CLASS_NAME_SHOW); } // Private _maybeScheduleHide() { if (!this._config.autohide) { return; } if (this._hasMouseInteraction || this._hasKeyboardInteraction) { return; } this._timeout = setTimeout(() => { this.hide(); }, this._config.delay); } _onInteraction(event, isInteracting) { switch (event.type) { case 'mouseover': case 'mouseout': { this._hasMouseInteraction = isInteracting; break; } case 'focusin': case 'focusout': { this._hasKeyboardInteraction = isInteracting; break; } } if (isInteracting) { this._clearTimeout(); return; } const nextElement = event.relatedTarget; if (this._element === nextElement || this._element.contains(nextElement)) { return; } this._maybeScheduleHide(); } _setListeners() { EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true)); EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false)); EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true)); EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false)); } _clearTimeout() { clearTimeout(this._timeout); this._timeout = null; } // Static static $Interface(config) { return this.each(function () { const data = Toast.getOrCreateInstance(this, config); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`); } data[config](this); } }); } } /** * Data API implementation */ enableDismissTrigger(Toast); /** * $ */ define$Plugin(Toast); window.bootstrap = window.bootstrap || {}; window.bootstrap.Toast = Toast; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const toasts = Joomla.getOptions('bootstrap.toast'); // Initialise the elements if (typeof toasts === 'object' && toasts !== null) { Object.keys(toasts).forEach(toast => { const opt = toasts[toast]; const options = { animation: opt.animation ? opt.animation : true, autohide: opt.autohide ? opt.autohide : true, delay: opt.delay ? opt.delay : 5000 }; const elements = Array.from(document.querySelectorAll(toast)); if (elements.length) { elements.map(el => new window.bootstrap.Toast(el, options)); } }); } } export { Toast as T }; /* end /media/vendor/bootstrap/js/toast.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/scrollspy.min.js by ntb_minifier */ import { E as EventHandler, S as SelectorEngine, d as define$Plugin, B as BaseComponent, c as getElement, f as isDisabled, i as isVisible } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'scrollspy'; const DATA_KEY = 'bs.scrollspy'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const EVENT_ACTIVATE = `activate${EVENT_KEY}`; const EVENT_CLICK = `click${EVENT_KEY}`; const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`; const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; const CLASS_NAME_ACTIVE = 'active'; const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; const SELECTOR_TARGET_LINKS = '[href]'; const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; const SELECTOR_NAV_LINKS = '.nav-link'; const SELECTOR_NAV_ITEMS = '.nav-item'; const SELECTOR_LIST_ITEMS = '.list-group-item'; const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; const SELECTOR_DROPDOWN = '.dropdown'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const Default = { offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons rootMargin: '0px 0px -25%', smoothScroll: false, target: null, threshold: [0.1, 0.5, 1] }; const DefaultType = { offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons rootMargin: 'string', smoothScroll: 'boolean', target: 'element', threshold: 'array' }; /** * Class definition */ class ScrollSpy extends BaseComponent { constructor(element, config) { super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper this._targetLinks = new Map(); this._observableSections = new Map(); this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; this._activeTarget = null; this._observer = null; this._previousScrollData = { visibleEntryTop: 0, parentScrollTop: 0 }; this.refresh(); // initialize } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public refresh() { this._initializeTargetsAndObservables(); this._maybeEnableSmoothScroll(); if (this._observer) { this._observer.disconnect(); } else { this._observer = this._getNewObserver(); } for (const section of this._observableSections.values()) { this._observer.observe(section); } } dispose() { this._observer.disconnect(); super.dispose(); } // Private _configAfterMerge(config) { // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; if (typeof config.threshold === 'string') { config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); } return config; } _maybeEnableSmoothScroll() { if (!this._config.smoothScroll) { return; } // unregister any previous listeners EventHandler.off(this._config.target, EVENT_CLICK); EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { const observableSection = this._observableSections.get(event.target.hash); if (observableSection) { event.preventDefault(); const root = this._rootElement || window; const height = observableSection.offsetTop - this._element.offsetTop; if (root.scrollTo) { root.scrollTo({ top: height, behavior: 'smooth' }); return; } // Chrome 60 doesn't support `scrollTo` root.scrollTop = height; } }); } _getNewObserver() { const options = { root: this._rootElement, threshold: this._config.threshold, rootMargin: this._config.rootMargin }; return new IntersectionObserver(entries => this._observerCallback(entries), options); } // The logic of selection _observerCallback(entries) { const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); const activate = entry => { this._previousScrollData.visibleEntryTop = entry.target.offsetTop; this._process(targetElement(entry)); }; const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; this._previousScrollData.parentScrollTop = parentScrollTop; for (const entry of entries) { if (!entry.isIntersecting) { this._activeTarget = null; this._clearActiveClass(targetElement(entry)); continue; } const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop if (userScrollsDown && entryIsLowerThanPrevious) { activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration if (!parentScrollTop) { return; } continue; } // if we are scrolling up, pick the smallest offsetTop if (!userScrollsDown && !entryIsLowerThanPrevious) { activate(entry); } } } _initializeTargetsAndObservables() { this._targetLinks = new Map(); this._observableSections = new Map(); const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); for (const anchor of targetLinks) { // ensure that the anchor has an id and is not disabled if (!anchor.hash || isDisabled(anchor)) { continue; } const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); // ensure that the observableSection exists & is visible if (isVisible(observableSection)) { this._targetLinks.set(decodeURI(anchor.hash), anchor); this._observableSections.set(anchor.hash, observableSection); } } } _process(target) { if (this._activeTarget === target) { return; } this._clearActiveClass(this._config.target); this._activeTarget = target; target.classList.add(CLASS_NAME_ACTIVE); this._activateParents(target); EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target }); } _activateParents(target) { // Activate dropdown parents if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE); return; } for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { // Set triggered links parents as active // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { item.classList.add(CLASS_NAME_ACTIVE); } } } _clearActiveClass(parent) { parent.classList.remove(CLASS_NAME_ACTIVE); const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent); for (const node of activeNodes) { node.classList.remove(CLASS_NAME_ACTIVE); } } // Static static $Interface(config) { return this.each(function () { const data = ScrollSpy.getOrCreateInstance(this, config); if (typeof config !== 'string') { return; } if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { throw new TypeError(`No method named "${config}"`); } data[config](); }); } } /** * Data API implementation */ EventHandler.on(window, EVENT_LOAD_DATA_API, () => { for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { ScrollSpy.getOrCreateInstance(spy); } }); /** * $ */ define$Plugin(ScrollSpy); window.bootstrap = window.bootstrap || {}; window.bootstrap.Scrollspy = ScrollSpy; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const scrollspys = Joomla.getOptions('bootstrap.scrollspy'); // Initialise the elements if (typeof scrollspys === 'object' && scrollspys !== null) { Object.keys(scrollspys).forEach(scrollspy => { const opt = scrollspys[scrollspy]; const options = { offset: opt.offset ? opt.offset : 10, method: opt.method ? opt.method : 'auto' }; if (opt.target) { options.target = opt.target; } const elements = Array.from(document.querySelectorAll(scrollspy)); if (elements.length) { elements.map(el => new window.bootstrap.Scrollspy(el, options)); } }); } } export { ScrollSpy as S }; /* end /media/vendor/bootstrap/js/scrollspy.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/offcanvas.min.js by ntb_minifier */ import { E as EventHandler, S as SelectorEngine, f as isDisabled, i as isVisible, e as enableDismissTrigger, d as define$Plugin, B as BaseComponent, k as ScrollBarHelper, l as Backdrop, F as FocusTrap } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap offcanvas.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'offcanvas'; const DATA_KEY = 'bs.offcanvas'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`; const ESCAPE_KEY = 'Escape'; const CLASS_NAME_SHOW = 'show'; const CLASS_NAME_SHOWING = 'showing'; const CLASS_NAME_HIDING = 'hiding'; const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; const OPEN_SELECTOR = '.offcanvas.show'; const EVENT_SHOW = `show${EVENT_KEY}`; const EVENT_SHOWN = `shown${EVENT_KEY}`; const EVENT_HIDE = `hide${EVENT_KEY}`; const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`; const EVENT_HIDDEN = `hidden${EVENT_KEY}`; const EVENT_RESIZE = `resize${EVENT_KEY}`; const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`; const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]'; const Default = { backdrop: true, keyboard: true, scroll: false }; const DefaultType = { backdrop: '(boolean|string)', keyboard: 'boolean', scroll: 'boolean' }; /** * Class definition */ class Offcanvas extends BaseComponent { constructor(element, config) { super(element, config); this._isShown = false; this._backdrop = this._initializeBackDrop(); this._focustrap = this._initializeFocusTrap(); this._addEventListeners(); } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); } show(relatedTarget) { if (this._isShown) { return; } const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget }); if (showEvent.defaultPrevented) { return; } this._isShown = true; this._backdrop.show(); if (!this._config.scroll) { new ScrollBarHelper().hide(); } this._element.setAttribute('aria-modal', true); this._element.setAttribute('role', 'dialog'); this._element.classList.add(CLASS_NAME_SHOWING); const completeCallBack = () => { if (!this._config.scroll || this._config.backdrop) { this._focustrap.activate(); } this._element.classList.add(CLASS_NAME_SHOW); this._element.classList.remove(CLASS_NAME_SHOWING); EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget }); }; this._queueCallback(completeCallBack, this._element, true); } hide() { if (!this._isShown) { return; } const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (hideEvent.defaultPrevented) { return; } this._focustrap.deactivate(); this._element.blur(); this._isShown = false; this._element.classList.add(CLASS_NAME_HIDING); this._backdrop.hide(); const completeCallback = () => { this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING); this._element.removeAttribute('aria-modal'); this._element.removeAttribute('role'); if (!this._config.scroll) { new ScrollBarHelper().reset(); } EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._queueCallback(completeCallback, this._element, true); } dispose() { this._backdrop.dispose(); this._focustrap.deactivate(); super.dispose(); } // Private _initializeBackDrop() { const clickCallback = () => { if (this._config.backdrop === 'static') { EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); return; } this.hide(); }; // 'static' option will be translated to true, and booleans will keep their value const isVisible = Boolean(this._config.backdrop); return new Backdrop({ className: CLASS_NAME_BACKDROP, isVisible, isAnimated: true, rootElement: this._element.parentNode, clickCallback: isVisible ? clickCallback : null }); } _initializeFocusTrap() { return new FocusTrap({ trapElement: this._element }); } _addEventListeners() { EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { if (event.key !== ESCAPE_KEY) { return; } if (this._config.keyboard) { this.hide(); return; } EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); }); } // Static static $Interface(config) { return this.each(function () { const data = Offcanvas.getOrCreateInstance(this, config); if (typeof config !== 'string') { return; } if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { throw new TypeError(`No method named "${config}"`); } data[config](this); }); } } /** * Data API implementation */ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { const target = SelectorEngine.getElementFromSelector(this); if (['A', 'AREA'].includes(this.tagName)) { event.preventDefault(); } if (isDisabled(this)) { return; } EventHandler.one(target, EVENT_HIDDEN, () => { // focus on trigger when it is closed if (isVisible(this)) { this.focus(); } }); // avoid conflict when clicking a toggler of an offcanvas, while another is open const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); if (alreadyOpen && alreadyOpen !== target) { Offcanvas.getInstance(alreadyOpen).hide(); } const data = Offcanvas.getOrCreateInstance(target); data.toggle(this); }); EventHandler.on(window, EVENT_LOAD_DATA_API, () => { for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { Offcanvas.getOrCreateInstance(selector).show(); } }); EventHandler.on(window, EVENT_RESIZE, () => { for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { if (getComputedStyle(element).position !== 'fixed') { Offcanvas.getOrCreateInstance(element).hide(); } } }); enableDismissTrigger(Offcanvas); /** * $ */ define$Plugin(Offcanvas); window.bootstrap = window.bootstrap || {}; window.bootstrap.Offcanvas = Offcanvas; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const offcanvases = Joomla.getOptions('bootstrap.offcanvas'); // Initialise the elements if (typeof offcanvases === 'object' && offcanvases !== null) { Object.keys(offcanvases).forEach(offcanvas => { const opt = offcanvases[offcanvas]; const options = { backdrop: opt.backdrop ? opt.backdrop : true, keyboard: opt.keyboard ? opt.keyboard : true, scroll: opt.scroll ? opt.scroll : true }; const elements = Array.from(document.querySelectorAll(offcanvas)); if (elements.length) { elements.map(el => new window.bootstrap.Offcanvas(el, options)); } }); } } export { Offcanvas as O }; /* end /media/vendor/bootstrap/js/offcanvas.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/collapse.min.js by ntb_minifier */ import { E as EventHandler, S as SelectorEngine, d as define$Plugin, B as BaseComponent, r as reflow, c as getElement } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'collapse'; const DATA_KEY = 'bs.collapse'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const EVENT_SHOW = `show${EVENT_KEY}`; const EVENT_SHOWN = `shown${EVENT_KEY}`; const EVENT_HIDE = `hide${EVENT_KEY}`; const EVENT_HIDDEN = `hidden${EVENT_KEY}`; const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; const CLASS_NAME_SHOW = 'show'; const CLASS_NAME_COLLAPSE = 'collapse'; const CLASS_NAME_COLLAPSING = 'collapsing'; const CLASS_NAME_COLLAPSED = 'collapsed'; const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; const WIDTH = 'width'; const HEIGHT = 'height'; const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'; const Default = { parent: null, toggle: true }; const DefaultType = { parent: '(null|element)', toggle: 'boolean' }; /** * Class definition */ class Collapse extends BaseComponent { constructor(element, config) { super(element, config); this._isTransitioning = false; this._triggerArray = []; const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE); for (const elem of toggleList) { const selector = SelectorEngine.getSelectorFromElement(elem); const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); if (selector !== null && filterElement.length) { this._triggerArray.push(elem); } } this._initializeChildren(); if (!this._config.parent) { this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); } if (this._config.toggle) { this.toggle(); } } // Getters static get Default() { return Default; } static get DefaultType() { return DefaultType; } static get NAME() { return NAME; } // Public toggle() { if (this._isShown()) { this.hide(); } else { this.show(); } } show() { if (this._isTransitioning || this._isShown()) { return; } let activeChildren = []; // find active children if (this._config.parent) { activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { toggle: false })); } if (activeChildren.length && activeChildren[0]._isTransitioning) { return; } const startEvent = EventHandler.trigger(this._element, EVENT_SHOW); if (startEvent.defaultPrevented) { return; } for (const activeInstance of activeChildren) { activeInstance.hide(); } const dimension = this._getDimension(); this._element.classList.remove(CLASS_NAME_COLLAPSE); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.style[dimension] = 0; this._addAriaAndCollapsedClass(this._triggerArray, true); this._isTransitioning = true; const complete = () => { this._isTransitioning = false; this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); this._element.style[dimension] = ''; EventHandler.trigger(this._element, EVENT_SHOWN); }; const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); const scrollSize = `scroll${capitalizedDimension}`; this._queueCallback(complete, this._element, true); this._element.style[dimension] = `${this._element[scrollSize]}px`; } hide() { if (this._isTransitioning || !this._isShown()) { return; } const startEvent = EventHandler.trigger(this._element, EVENT_HIDE); if (startEvent.defaultPrevented) { return; } const dimension = this._getDimension(); this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; reflow(this._element); this._element.classList.add(CLASS_NAME_COLLAPSING); this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); for (const trigger of this._triggerArray) { const element = SelectorEngine.getElementFromSelector(trigger); if (element && !this._isShown(element)) { this._addAriaAndCollapsedClass([trigger], false); } } this._isTransitioning = true; const complete = () => { this._isTransitioning = false; this._element.classList.remove(CLASS_NAME_COLLAPSING); this._element.classList.add(CLASS_NAME_COLLAPSE); EventHandler.trigger(this._element, EVENT_HIDDEN); }; this._element.style[dimension] = ''; this._queueCallback(complete, this._element, true); } _isShown() { let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._element; return element.classList.contains(CLASS_NAME_SHOW); } // Private _configAfterMerge(config) { config.toggle = Boolean(config.toggle); // Coerce string values config.parent = getElement(config.parent); return config; } _getDimension() { return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; } _initializeChildren() { if (!this._config.parent) { return; } const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE); for (const element of children) { const selected = SelectorEngine.getElementFromSelector(element); if (selected) { this._addAriaAndCollapsedClass([element], this._isShown(selected)); } } } _getFirstLevelChildren(selector) { const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); } _addAriaAndCollapsedClass(triggerArray, isOpen) { if (!triggerArray.length) { return; } for (const element of triggerArray) { element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); element.setAttribute('aria-expanded', isOpen); } } // Static static $Interface(config) { const _config = {}; if (typeof config === 'string' && /show|hide/.test(config)) { _config.toggle = false; } return this.each(function () { const data = Collapse.getOrCreateInstance(this, _config); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { throw new TypeError(`No method named "${config}"`); } data[config](); } }); } } /** * Data API implementation */ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { event.preventDefault(); } for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { Collapse.getOrCreateInstance(element, { toggle: false }).toggle(); } }); /** * $ */ define$Plugin(Collapse); window.bootstrap = window.bootstrap || {}; window.bootstrap.Collapse = Collapse; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const collapses = { ...Joomla.getOptions('bootstrap.collapse'), ...Joomla.getOptions('bootstrap.accordion') }; // Initialise the elements Object.keys(collapses).forEach(collapse => { const opt = collapses[collapse]; const options = { toggle: opt.toggle ? opt.toggle : true }; if (opt.parent) { options.parent = opt.parent; } const elements = Array.from(document.querySelectorAll(collapse)); if (elements.length) { elements.map(el => new window.bootstrap.Collapse(el, options)); } }); } export { Collapse as C }; /* end /media/vendor/bootstrap/js/collapse.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/button.min.js by ntb_minifier */ import { E as EventHandler, d as define$Plugin, B as BaseComponent } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'button'; const DATA_KEY = 'bs.button'; const EVENT_KEY = `.${DATA_KEY}`; const DATA_API_KEY = '.data-api'; const CLASS_NAME_ACTIVE = 'active'; const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'; const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`; /** * Class definition */ class Button extends BaseComponent { // Getters static get NAME() { return NAME; } // Public toggle() { // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); } // Static static $Interface(config) { return this.each(function () { const data = Button.getOrCreateInstance(this); if (config === 'toggle') { data[config](); } }); } } /** * Data API implementation */ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => { event.preventDefault(); const button = event.target.closest(SELECTOR_DATA_TOGGLE); const data = Button.getOrCreateInstance(button); data.toggle(); }); /** * $ */ define$Plugin(Button); window.bootstrap = window.bootstrap || {}; window.bootstrap.Button = Button; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const buttons = Joomla.getOptions('bootstrap.button'); // Initialise the elements if (buttons && buttons.length) { buttons.forEach(selector => { Array.from(document.querySelectorAll(selector)).map(el => new window.bootstrap.Button(el)); }); } } export { Button as B }; /* end /media/vendor/bootstrap/js/button.min.js */ </script> <script type="module"> /*! inlined from /media/vendor/bootstrap/js/alert.min.js by ntb_minifier */ import { e as enableDismissTrigger, d as define$Plugin, B as BaseComponent, E as EventHandler } from './dom.js?5.3.0'; /** * -------------------------------------------------------------------------- * Bootstrap alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ /** * Constants */ const NAME = 'alert'; const DATA_KEY = 'bs.alert'; const EVENT_KEY = `.${DATA_KEY}`; const EVENT_CLOSE = `close${EVENT_KEY}`; const EVENT_CLOSED = `closed${EVENT_KEY}`; const CLASS_NAME_FADE = 'fade'; const CLASS_NAME_SHOW = 'show'; /** * Class definition */ class Alert extends BaseComponent { // Getters static get NAME() { return NAME; } // Public close() { const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); if (closeEvent.defaultPrevented) { return; } this._element.classList.remove(CLASS_NAME_SHOW); const isAnimated = this._element.classList.contains(CLASS_NAME_FADE); this._queueCallback(() => this._destroyElement(), this._element, isAnimated); } // Private _destroyElement() { this._element.remove(); EventHandler.trigger(this._element, EVENT_CLOSED); this.dispose(); } // Static static $Interface(config) { return this.each(function () { const data = Alert.getOrCreateInstance(this); if (typeof config !== 'string') { return; } if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { throw new TypeError(`No method named "${config}"`); } data[config](this); }); } } /** * Data API implementation */ enableDismissTrigger(Alert, 'close'); /** * $ */ define$Plugin(Alert); window.bootstrap = window.bootstrap || {}; window.bootstrap.Alert = Alert; if (Joomla && Joomla.getOptions) { // Get the elements/configurations from the PHP const alerts = Joomla.getOptions('bootstrap.alert'); // Initialise the elements if (alerts && alerts.length) { alerts.forEach(selector => { Array.from(document.querySelectorAll(selector)).map(el => new window.bootstrap.Alert(el)); }); } } export { Alert as A }; /* end /media/vendor/bootstrap/js/alert.min.js */ </script> <script type="module"> /*! inlined from /media/system/js/joomla-hidden-mail.min.js by ntb_minifier */ /** * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ window.customElements.define('joomla-hidden-mail', class extends HTMLElement { constructor() { super(); this.newElement = ''; this.base = ''; } /** * Lifecycle */ disconnectedCallback() { this.innerHTML = ''; } /** * Lifecycle */ connectedCallback() { this.base = `${this.getAttribute('base')}/`; if (this.getAttribute('is-link') === '1') { this.newElement = document.createElement('a'); this.newElement.setAttribute('href', `mailto:${this.constructor.b64DecodeUnicode(this.getAttribute('first'))}@${this.constructor.b64DecodeUnicode(this.getAttribute('last'))}`); // Get all of the original element attributes, and pass them to the link [].slice.call(this.attributes).forEach((attribute, index) => { const { nodeName } = this.attributes.item(index); if (nodeName) { // We do care for some attributes if (['is-link', 'is-email', 'first', 'last', 'text'].indexOf(nodeName) === -1) { const { nodeValue } = this.attributes.item(index); this.newElement.setAttribute(nodeName, nodeValue); } } }); } else { this.newElement = document.createElement('span'); } if (this.getAttribute('text')) { let innerStr = this.constructor.b64DecodeUnicode(this.getAttribute('text')); innerStr = innerStr.replace('src="images/', `src="${this.base}images/`).replace('src="media/', `src="${this.base}media/`); this.newElement.innerHTML = Joomla.sanitizeHtml(innerStr); } else { this.newElement.innerText = `${window.atob(this.getAttribute('first'))}@${window.atob(this.getAttribute('last'))}`; } // Remove class and style Attributes this.removeAttribute('class'); this.removeAttribute('style'); // Remove the noscript message this.innerText = ''; // Display the new element this.appendChild(this.newElement); } static b64DecodeUnicode(str) { return decodeURIComponent(Array.prototype.map.call(atob(str), c => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`).join('')); } }); /* end /media/system/js/joomla-hidden-mail.min.js */ </script> <script type="module"> /*! inlined from /media/system/js/keepalive.min.js by ntb_minifier */ /** * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * Keepalive javascript behavior * * Used for keeping the session alive * * @package Joomla.JavaScript * @since 3.7.0 */ if (!window.Joomla) { throw new Error('Joomla API was not properly initialised'); } const keepAliveOptions = Joomla.getOptions('system.keepalive'); const keepAliveInterval = keepAliveOptions && keepAliveOptions.interval ? parseInt(keepAliveOptions.interval, 10) : 45 * 1000; let keepAliveUri = keepAliveOptions && keepAliveOptions.uri ? keepAliveOptions.uri.replace(/&/g, '&') : ''; // Fallback in case no keepalive uri was found. if (keepAliveUri === '') { const systemPaths = Joomla.getOptions('system.paths'); keepAliveUri = `${systemPaths ? `${systemPaths.root}/index.php` : window.location.pathname}?option=com_ajax&format=json`; } setInterval(() => fetch(keepAliveUri, { method: 'POST' }), keepAliveInterval); /* end /media/system/js/keepalive.min.js */ </script> <meta name="pubdate" content="20230703"> <!--<PageMap> <DataObject type="thumbnail"> <Attribute name="src" value="//contest.techbriefs.com/media/thumbnails/metahttps://res.cloudinary.com/tbmg/q_auto,f_auto/ctf/stories/entries/2023/0703131436-Anmol_Taploo-1.jpg"/> <Attribute name="width" value="100"/> <Attribute name="height" value="56"/> </DataObject> </PageMap>--> <meta name="thumbnail" content="//contest.techbriefs.com/media/thumbnails/metahttps://res.cloudinary.com/tbmg/q_auto,f_auto/ctf/stories/entries/2023/0703131436-Anmol_Taploo-1.jpg"> <!-- Google Tag Manager --> <script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NBC2RTV');</script> <!-- End Google Tag Manager --> <!-- favicons --> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="/templates/ctf_2019/favicos/apple-touch-icon-57x57.png" /> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/templates/ctf_2019/favicos/apple-touch-icon-114x114.png" /> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/templates/ctf_2019/favicos/apple-touch-icon-72x72.png" /> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/templates/ctf_2019/favicos/apple-touch-icon-144x144.png" /> <link rel="apple-touch-icon-precomposed" sizes="60x60" href="/templates/ctf_2019/favicos/apple-touch-icon-60x60.png" /> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/templates/ctf_2019/favicos/apple-touch-icon-120x120.png" /> <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/templates/ctf_2019/favicos/apple-touch-icon-76x76.png" /> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/templates/ctf_2019/favicos/apple-touch-icon-152x152.png" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-196x196.png" sizes="196x196" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-16x16.png" sizes="16x16" /> <link rel="icon" type="image/png" href="/templates/ctf_2019/favicos/favicon-128.png" sizes="128x128" /> <meta name="application-name" content=" " /> <meta name="msapplication-TileColor" content="#FFFFFF" /> <meta name="msapplication-TileImage" content="/templates/ctf_2019/favicos/mstile-144x144.png" /> <meta name="msapplication-square70x70logo" content="/templates/ctf_2019/favicos/mstile-70x70.png" /> <meta name="msapplication-square150x150logo" content="/templates/ctf_2019/favicos/mstile-150x150.png" /> <meta name="msapplication-wide310x150logo" content="/templates/ctf_2019/favicos/mstile-310x150.png" /> <meta name="msapplication-square310x310logo" content="/templates/ctf_2019/favicos/mstile-310x310.png" /> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NBC2RTV" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <!--googleoff: all--> <header class="header"> <div class="header-container container-fluid p-0"> <nav class="header-nav navbar navbar-expand-sm navbar-dark bg-primary px-0 py-1"> <div class="row w-100"> <div class="col-xl-2 col-lg-2 col-md-1 col-sm-1 col-xs-1 col-2 align-top h-100"> <button type="button" id="navbar-side-button-small" class="hamburger navbar-toggler navbar-toggler-left" data-bs-toggle="collapse" data-bs-target=".navbar-side"> <span class="fas fa-bars"></span> </button> <div id="hamburger-menu" class="navbar-collapse collapse d-none"> <ul class="navbar-nav me-auto"> <li class="nav-item active"> <a id="navbar-side-button-large" class="nav-link ms-3"> <span class="fas fa-bars"></span> </a></li></ul></div></div> <div class="col-xl-4 col-lg-4 col-md-4 col-sm-5 col-xs-4 col-4 py-2 ctf-logo"> <div class="d-flex justify-content-around align-items-end"> <div> <a href="/"> <svg class="logolarge py-1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2734.14 1993.33"><defs><style>.cls-1{fill:#6fccdd;}.cls-2{fill:#fff;}.cls-3{fill:#06b0d8;}.cls-4{fill:#f79420;}.cls-5{fill:#fbb03a;}.cls-6{fill:#faed23;}.cls-7{fill:#f7ec13;}.cls-8{fill:#6abd45;}.cls-9{fill:#b9529f;}.cls-10{fill:#c1272d;}.cls-11{fill:#ec2027;}.cls-12{fill:#d2d3d4;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon class="cls-1" points="1112.55 1624.74 1112.34 1683.17 606.53 1681.18 606.95 1622.8 1112.55 1624.74"/><path class="cls-2" d="M634.37,536.36V519.21h37.84v78.34H634.37q-16.71-42.43-55.73-42.43-19.36,0-34.37,10.06a67.37,67.37,0,0,0-23.36,27.42,87.79,87.79,0,0,0-8.35,38.5,82.63,82.63,0,0,0,7.91,36.28,66,66,0,0,0,22.1,26.32q14.19,9.82,32.66,9.82a55.9,55.9,0,0,0,39.54-15.74q16.77-15.75,22.54-41.47l43.9,20.84q-24.83,77.46-110.12,77.45-36.66,0-64.07-14t-42.2-39.91Q450,664.79,450,630.2q0-32.67,15.22-58.83a108.58,108.58,0,0,1,42.05-41q26.84-14.85,60.09-14.86Q607.77,515.52,634.37,536.36Z"/><path class="cls-2" d="M830.61,584.84V631.4q-20.4,1.33-32.45,6.43a37.17,37.17,0,0,0-18.62,17.51Q773,667.76,773,690.81v15.38h30.89V742H694.91V706.19h28.53V623H696.39V586.61h72.43v39.46a59.48,59.48,0,0,1,20.25-29.7q14.77-11.82,36.66-11.82A29.45,29.45,0,0,1,830.61,584.84Z"/><path class="cls-2" d="M1007.93,674.7H892q1.77,17.89,12.34,28.31t27.27,10.42q18.47,0,36.06-18.32l38.43,12.41q-12.72,19.07-31.49,28.6t-44.49,9.54q-25.73,0-45.45-9.68a72.26,72.26,0,0,1-30.6-27.42q-10.87-17.73-10.86-41.69A83,83,0,0,1,854.55,624a81.23,81.23,0,0,1,30.6-30.09,84,84,0,0,1,41.91-10.86q24.54,0,42.72,11.31t28,32.08Q1007.63,647.21,1007.93,674.7ZM924.71,616q-13.31,0-21.36,7.68t-10.12,23.51H958q-2.07-13.89-11.31-22.55A31.05,31.05,0,0,0,924.71,616Z"/><path class="cls-2" d="M1172,648.69v57.5h25.12V742h-74.49V729.84q-21.15,14.48-42.27,14.48-25.57,0-40.94-13.16T1024,695.69q0-23.66,17.22-37.91T1087,643.51a66.94,66.94,0,0,1,17.67,2.14,100.08,100.08,0,0,1,18,7.32V640.56q0-11.82-7.39-18.92T1093,614.55q-16.11,0-28.53,12.41l-39.91-7.24q18.18-36.68,75.09-36.67,39,0,55.65,16T1172,648.69Zm-80.56,64.74q13.29,0,31.19-16v-13.9q-16-10.35-29.27-10.35-10.63,0-16.26,5t-5.61,14.34Q1071.44,713.45,1091.39,713.43Z"/><path class="cls-2" d="M1296.05,586.61V623h-28.67v67.84c0,4.83.93,8.46,2.81,10.86s5.37,3.63,10.49,3.63q6.35,0,15.37-3.25v34.44q-20,7.83-37.54,7.83-20.25,0-30.37-10.27T1218,705V623h-19.66V586.6H1218V562.51L1267.38,527v59.57Z"/><path class="cls-2" d="M1475.57,674.7H1359.68Q1361.45,692.6,1372,703t27.27,10.42q18.48,0,36.07-18.32l38.42,12.41q-12.7,19.07-31.48,28.6t-44.49,9.54q-25.72,0-45.46-9.68t-30.59-27.42q-10.87-17.73-10.86-41.69A82.87,82.87,0,0,1,1322.22,624a81.27,81.27,0,0,1,30.59-30.09,84,84,0,0,1,41.91-10.86q24.52,0,42.71,11.31t28,32.08Q1475.27,647.21,1475.57,674.7ZM1392.35,616q-13.3,0-21.36,7.68t-10.13,23.51h64.74q-2.05-13.89-11.3-22.55A31.05,31.05,0,0,0,1392.35,616Z"/><path class="cls-2" d="M1590.06,653.17V674h-16.39v38.78q0,4.14,1.61,6.21t6,2.07a26.65,26.65,0,0,0,8.78-1.86v19.69a59,59,0,0,1-21.46,4.48q-11.58,0-17.36-5.87t-5.79-16.6V674h-11.24V653.17h11.24V639.41l28.22-20.28v34h16.39Z"/><path class="cls-2" d="M1667.11,651.15q13.52,0,20.32,8.19t6.8,23.83v38.35h13.18V742h-41.57V684.52c0-3.67-.7-6.29-2.07-7.86s-3.68-2.36-6.88-2.36q-6.6,0-14.88,5.41v41.82h12.42V742h-55V721.53h14.36V635h-14.36V614.66H1642v45.79Q1655.71,651.14,1667.11,651.15Z"/><path class="cls-2" d="M1808.42,703.52h-66.23q1,10.23,7,16.18t15.58,6q10.56,0,20.62-10.48l22,7.09a47.23,47.23,0,0,1-18,16.35q-10.74,5.45-25.44,5.45t-26-5.54a41.29,41.29,0,0,1-17.49-15.66q-6.19-10.14-6.21-23.83a47.35,47.35,0,0,1,6.47-24.5,46.44,46.44,0,0,1,17.48-17.19,48,48,0,0,1,24-6.21q14,0,24.42,6.46a42.39,42.39,0,0,1,16,18.33Q1808.26,687.81,1808.42,703.52ZM1760.86,670c-5.06,0-9.14,1.47-12.21,4.39s-5,7.41-5.78,13.44h37a21.33,21.33,0,0,0-6.47-12.89A17.69,17.69,0,0,0,1760.86,670Z"/><path class="cls-2" d="M651.51,873V831.77H562.24v68.59h64.64v50.45H562.24v77.06h46.12v50.45H442.41v-50.45h42.38V831.77H442.41V781.32H708.47V873Z"/><path class="cls-2" d="M829.42,1027.08q17,0,36.66-15V919.67H834.35V871.18H931.9v159.44h33.9v47.69H866.08V1061q-30.95,20.49-60.11,20.5-30.15,0-46.9-16.76t-16.76-46.11V919.67H711.17V871.18h96.57v130.47q0,14.58,4.63,20T829.42,1027.08Z"/><path class="cls-2" d="M1106.65,871.18v48.49h-38.23v90.46q0,9.66,3.74,14.48t14,4.83q8.47,0,20.5-4.34V1071q-26.61,10.46-50.06,10.45-27,0-40.5-13.69t-13.5-38.73V919.66H976.38V871.17h26.21V839.05l65.83-47.3v79.41h38.23Z"/><path class="cls-2" d="M1244.36,1027.08q17,0,36.65-15V919.67h-31.72V871.18h97.55v159.44h33.9v47.69H1281V1061q-30.94,20.49-60.1,20.5-30.17,0-46.91-16.76t-16.75-46.11V919.67h-31.14V871.18h96.56v130.47q0,14.58,4.63,20T1244.36,1027.08Z"/><path class="cls-2" d="M1576.57,868.81v62.08q-27.19,1.77-43.25,8.58t-24.83,23.35q-8.77,16.56-8.77,47.31v20.5h41.19v47.69H1395.66v-47.69h38v-111h-36.06V871.18h96.56V923.8a79.4,79.4,0,0,1,27-39.61q19.71-15.77,48.87-15.78A42.06,42.06,0,0,1,1576.57,868.81Z"/><path class="cls-2" d="M1813.41,988.64H1658.9q2.37,23.85,16.46,37.74t36.36,13.9q24.63,0,48.08-24.44l51.24,16.55q-16.95,25.42-42,38.14t-59.31,12.71q-34.29,0-60.61-12.92t-40.8-36.55q-14.47-23.65-14.48-55.57,0-31.53,15.08-57.16a108.09,108.09,0,0,1,40.8-40.1,111.91,111.91,0,0,1,55.87-14.49q32.72,0,57,15.08t37.34,42.77Q1813,952,1813.41,988.64Zm-111-78.24q-17.73,0-28.48,10.25T1660.47,952h86.33q-2.76-18.53-15.08-30.06A41.38,41.38,0,0,0,1702.45,910.4Z"/><polygon class="cls-3" points="467.4 1239.41 513.45 1275.39 345.54 1489.76 299.6 1453.74 467.4 1239.41"/><polygon class="cls-4" points="380.34 1144.36 417.01 1189.68 205.2 1360.76 168.6 1315.47 380.34 1144.36"/><polygon class="cls-5" points="316.86 1032.07 342.43 1084.63 97.53 1203.67 71.99 1151.15 316.86 1032.07"/><polygon class="cls-6" points="280.26 908.45 293.35 965.35 27.88 1026.22 14.89 969.38 280.26 908.45"/><polygon class="cls-7" points="272.44 779.72 272.33 838.04 0 837.66 0.14 779.34 272.44 779.72"/><polygon class="cls-8" points="293.77 652.66 280.53 709.42 15.23 647.8 28.43 590.99 293.77 652.66"/><polygon class="cls-1" points="343.05 533.51 317.45 585.94 72.85 466.17 98.5 413.82 343.05 533.51"/><polygon class="cls-9" points="417.98 428.53 381.24 473.85 169.91 302.15 206.58 256.87 417.98 428.53"/><polygon class="cls-10" points="514.58 343.14 468.61 378.97 301.25 164.12 347.33 128.32 514.58 343.14"/><polygon class="cls-11" points="632.12 295.88 577.39 316.08 483.37 60.48 538.08 40.37 632.12 295.88"/><polygon class="cls-4" points="758.83 271.78 700.95 279.15 666.86 9 724.66 1.62 758.83 271.78"/><polygon class="cls-5" points="887.66 276.82 829.67 270.95 857.18 0 915.23 5.97 887.66 276.82"/><polygon class="cls-7" points="1025.69 305.78 969.84 288.91 1048.85 28.33 1104.63 45.15 1025.69 305.78"/><polygon class="cls-7" points="1141.27 362.9 1090.71 333.9 1226.3 97.71 1276.88 126.83 1141.27 362.9"/><path class="cls-2" d="M604.15,1337.13h27.74c21,0,38.23,17.12,38.23,39.11s-17.37,39.11-38.23,39.11H604.15Zm19.56,61h4.39c11.68,0,21.66-6.64,21.66-21.89,0-14-8.88-21.89-21.46-21.89h-4.59v43.78Z"/><path class="cls-2" d="M723.65,1354.35v13.07h22.06v17.22H723.65v13.49H746.9v17.22H704.09v-78.22H746.9v17.22Z"/><path class="cls-2" d="M825.2,1357.25a20.13,20.13,0,0,0-13-5.18c-3.59,0-8.38,2.18-8.38,6.54,0,4.56,5.29,6.33,8.68,7.47l5,1.56c10.48,3.21,18.56,8.71,18.56,21.37,0,7.77-1.79,15.77-7.78,21s-13.77,7.37-21.36,7.37a45.22,45.22,0,0,1-26.45-8.92l8.39-16.39c4.89,4.47,10.68,8.1,17.36,8.1,4.59,0,9.48-2.39,9.48-7.88,0-5.71-7.68-7.68-11.87-8.92-12.27-3.63-20.36-7-20.36-22.09,0-15.88,10.88-26.26,26-26.26a50,50,0,0,1,23.55,6.44Z"/><path class="cls-2" d="M889.82,1415.35H870.26v-78.22h19.56Z"/><path class="cls-2" d="M1002.55,1371.67c-.2,11.41-1,21.16-7.69,30.91-7.38,10.69-18.46,15.36-31,15.36-23.65,0-40.12-16.71-40.12-41.29,0-25.42,16.57-42.12,40.82-42.12,15.47,0,27.45,7.27,33.93,21.89l-18.56,8.09c-2.7-7.47-8.38-12.45-16.27-12.45-12.87,0-19.56,12.76-19.56,24.69,0,12.14,7,24.49,19.86,24.49,8.48,0,15-4.57,15.77-13.59h-16v-16Z"/><path class="cls-2" d="M1036.43,1337.13H1056l35.83,47.82h.19v-47.82h19.57v78.22H1092l-35.83-47.93h-.2v47.93h-19.56v-78.22Z"/><path class="cls-2" d="M657.94,1501.79a21,21,0,0,0-17.17-8.61c-12,0-20.06,9.54-20.06,21.68,0,12.35,8.19,21.27,20.36,21.27a22.13,22.13,0,0,0,16.86-8.3v24.38c-6.48,2.07-11.18,3.63-17.27,3.63a41,41,0,0,1-28.24-11.51c-8.28-7.78-12.07-17.95-12.07-29.57a41.78,41.78,0,0,1,11.08-28.63,40,40,0,0,1,28.64-12.66,44.52,44.52,0,0,1,17.86,3.94v24.38Z"/><path class="cls-2" d="M757.9,1513.2c0,25.32-17.46,43.16-41.62,43.16s-41.61-17.85-41.61-43.16c0-23.65,20-40.25,41.61-40.25S757.9,1489.55,757.9,1513.2Zm-62.88.1c0,13.49,9.58,23.35,21.26,23.35s21.26-9.85,21.26-23.35c0-10.78-9.58-20.64-21.26-20.64S695,1502.52,695,1513.3Z"/><path class="cls-2" d="M775.4,1475.55H795l35.83,47.82h.2v-47.82h19.56v78.22H831l-35.83-47.93H795v47.93H775.4Z"/><path class="cls-2" d="M901.69,1553.77H882.13v-61H866v-17.22h51.9v17.22H901.7v61Z"/><path class="cls-2" d="M953,1492.77v13.07H975v17.22H953v13.49H976.2v17.22H933.39v-78.22H976.2v17.22Z"/><path class="cls-2" d="M1038,1495.67a20.13,20.13,0,0,0-13-5.18c-3.59,0-8.38,2.18-8.38,6.54,0,4.56,5.29,6.33,8.68,7.47l5,1.56c10.48,3.21,18.56,8.71,18.56,21.37,0,7.77-1.79,15.77-7.78,21s-13.77,7.37-21.36,7.37a45.22,45.22,0,0,1-26.45-8.92l8.39-16.39c4.89,4.47,10.68,8.1,17.36,8.1,4.59,0,9.48-2.39,9.48-7.88,0-5.71-7.68-7.68-11.87-8.92-12.27-3.63-20.36-6.95-20.36-22.09,0-15.88,10.88-26.26,25.95-26.26a50,50,0,0,1,23.55,6.44Z"/><path class="cls-2" d="M1096.59,1553.77H1077v-61h-16.16v-17.22h51.9v17.22H1096.6v61Z"/><path class="cls-1" d="M631.82,1795.7s46.9,5.65,57.67,11.53c82.71,45.16-9.56,184.55,92.28,184.55,92.28,0-39.51,1.55,141.49,1.55l20-1.55c101.84,0,9.57-139.39,92.28-184.55,10.77-5.88,57.67-11.53,57.67-11.53V1738H631.83v57.67Z"/><g id="Layer_2-2" data-name="Layer 2"><path class="cls-2" d="M1646,1583.28h-10.75v-82.94h12.35c26.54,0,34.77,8.8,34.77,24,0,17.49-13.84,24.2-30.2,24.2H1646v34.76Zm0-44h3.43c11,0,22.88-2,22.88-15.18,0-13-12.81-14.52-23.45-14.52H1646v29.7Z"/><path class="cls-2" d="M1777,1583.28h-13l-25.39-35.09h-4.46v35.09h-10.75v-82.94h13c7.66,0,15.9.11,22.76,3.85a23.21,23.21,0,0,1-9.38,43Zm-42.9-43.67h3.43c11,0,22.88-2,22.88-15.18,0-13-12.81-14.85-23.45-14.85h-2.86v30Z"/><path class="cls-2" d="M1901.18,1541.81c0,24.64-20.25,43.23-45.18,43.23s-45.18-18.59-45.18-43.23c0-23.76,20.47-43.23,45.18-43.23S1901.18,1518.05,1901.18,1541.81Zm-10.76,0c0-18.26-14.18-33.55-34.43-33.55s-34.43,15.29-34.43,33.55c0,18.92,15.78,33.55,34.43,33.55S1890.42,1560.73,1890.42,1541.81Z"/><path class="cls-2" d="M1942.13,1500.34H1960c26.42,0,48.38,13.42,48.38,41,0,28.27-21.5,41.91-48.73,41.91h-17.5v-82.94Zm10.75,73.48h3.77c22,0,40.95-7.92,40.95-32s-19-32-40.95-32h-3.77Z"/><path class="cls-2" d="M2059.83,1500.34v49c0,13.53,4.23,26.07,20.82,26.07s20.82-12.54,20.82-26.07v-49h10.75v52.47c0,18.26-11.78,32.23-31.57,32.23s-31.57-14-31.57-32.23v-52.47Z"/><path class="cls-2" d="M2221.34,1516.18a35.68,35.68,0,0,0-22.76-8.14,33.77,33.77,0,1,0-.23,67.54,35.3,35.3,0,0,0,23-8.58v12.21a48.07,48.07,0,0,1-22.65,5.83c-24.59,0-45-18.81-45-42.79,0-24.53,20.47-43.67,45.87-43.67a42.87,42.87,0,0,1,21.73,5.61v12Z"/><path class="cls-2" d="M2265.61,1500.34h46.32v9.46h-35.57V1533h34.54v9.46h-34.54v31.35h35.57v9.46h-46.32Z"/><path class="cls-2" d="M2355.75,1500.34h17.84c26.42,0,48.38,13.42,48.38,41,0,28.27-21.5,41.91-48.73,41.91h-17.5v-82.94Zm10.75,73.48h3.77c22,0,40.95-7.92,40.95-32s-19-32-40.95-32h-3.77Z"/><path class="cls-2" d="M2527.78,1500.34h10.52c16.24,0,31.57,4.07,31.57,22.77,0,6.05-3.43,13.09-9.26,15.73v.22c10.18,1.76,17.27,11.33,17.27,21,0,16.61-14.75,23.21-30,23.21h-20.13v-82.94Zm10.75,36.74h2.75c10.18,0,18.53-2,18.53-13.86,0-11.66-8.24-13.64-18.3-13.64h-3v27.5Zm0,37h8.24c9.95,0,20.36-2.86,20.36-14.63s-12.35-14.08-22-14.08h-6.63V1574Z"/><path class="cls-2" d="M2612.43,1500.34h12.35l21.16,35.42,21.16-35.42h12.35l-28.14,46.86v36.08h-10.75V1547.2Z"/><path class="cls-2" d="M2035.07,1645.34h43.65l33.5,60.87,33.27-60.87h43.88v165.15h-42v-93l-35.16,61.34h-.7L2076.36,1718v92.48h-41.29Z"/><path class="cls-2" d="M2203.28,1645.34H2317v37.28h-71.72v27.13h64.65v35.15h-64.65v28.31h72.66v37.28H2203.28Z"/><path class="cls-2" d="M2327.14,1645.34h54.26c53.08,0,83.28,32.08,83.28,80.69v2.83c0,48.6-30.43,81.63-84,81.63h-53.56V1645.34Zm42.47,38v89.18h12.27c23.59,0,39.4-13.92,39.4-43.41V1727c0-29.73-15.81-43.65-39.4-43.65Z"/><path class="cls-2" d="M2474.59,1645.34h42.46v165.15h-42.46Z"/><path class="cls-2" d="M2578.63,1644.39h42.94l58.27,166.09h-44.59l-9.67-29.73h-51.9l-9.44,29.73h-43.65ZM2615,1746.78l-15.34-48.36-15.34,48.36Z"/><path class="cls-2" d="M1847.41,1810.75v-35.48h98v35.48Zm89.67-65.94v-35.48h-89.66v35.48Zm8.32-65.94v-35.48h-98v35.48Zm-206.59,41.39-27.61,46c4.78-9.83-2.93-15-7.74-16.49-8.08-3.1-33.43-8.09-49.88-12.9a63.26,63.26,0,0,1-18-8.36,44.17,44.17,0,0,1-18.69-36.26c0-10.21,5.09-51.56,68.51-51.56,52.13,0,66.28,30.48,67.52,48.71h-42.65c-1.51-6.64-7.5-14.45-25.8-14.56-4.22,0-21.13.44-22.77,11.42a9.87,9.87,0,0,0,3.95,9.8c2.62,2,7.31,3.07,9,3.58,7.71,2.32,24.59,5.57,32.89,7.61C1722,1710.77,1732.35,1715.14,1738.81,1720.26Zm-53.68,55.36c-16.77,0-27.73-4.28-31.31-21.54h-43.13c0,6.91,3.62,36.25,29.87,48.56,14.7,6.9,31.12,8.12,43.89,8.12l26.36-43.87C1709,1769.37,1705.32,1775.62,1685.13,1775.62Z"/><path class="cls-12" d="M1847.41,1643.39H1785l-46.19,76.87-27.61,46-.4.67-26.36,43.87h44.49l21.33-35.5h58v35.5h39.2V1643.39Zm-39.19,101.38h-39.65l39.65-66Z"/><path class="cls-12" d="M2680.64,1960.54H1635.71V1841.23H2680.64ZM1945.55,1932a39.4,39.4,0,0,0,23.9-8.09v-31.06h-26v12.92h10.32v9.67a13.43,13.43,0,0,1-7.53,1.95c-8.37,0-14.79-6.6-14.79-18.51v-.93c0-10.79,6.32-18,14.6-18,5.58,0,9.3,2.32,12.74,5.39l9.3-12.74a33.4,33.4,0,0,0-22.41-7.91c-18,0-31.34,13.58-31.34,33.11v1.3C1914.3,1919.42,1927.79,1932,1945.55,1932Zm78.83-1.12H2041v-20.18h6l11.06,20.18h18.88l-13.39-23.62c6.88-3.44,11.62-9.49,11.62-19.16v-.46c0-6.6-2-11.63-5.67-15.25-4.19-4.28-10.79-6.6-19.53-6.6h-25.57Zm16.65-33.47v-17h8.18c5.58,0,9.12,2.79,9.12,8.37v.19c0,5.21-3.35,8.46-9,8.46Zm116.41,34.68c17.48,0,30.23-13.67,30.23-33.11v-1.4c0-19.53-12.56-33-30.13-33s-30.23,13.67-30.23,33.11v1.4C2127.31,1918.58,2139.86,1932.06,2157.44,1932.06Zm.09-15.15c-7.72,0-13.12-6.88-13.12-18.13v-1c0-11.25,5.3-18,13-18s13.11,6.88,13.11,18.13v1C2170.55,1910.12,2165.34,1916.91,2157.53,1916.91ZM2267.61,1932c15.9,0,26.59-8.28,26.59-27.15v-39.06h-16.92v39.8c0,7.72-3.72,11.25-9.58,11.25s-9.58-3.72-9.58-11.53v-39.52h-16.83v39.34C2241.29,1923.6,2251.71,1932,2267.61,1932Zm82.09-1.12h16.65V1912h6.41c14.23-.19,25.58-7.62,25.58-23.25v-.37c0-14.6-10.05-22.6-25.39-22.6H2349.7Zm16.65-32.54v-18.23h5.77c6,0,9.48,3.07,9.48,9v.28c0,5.49-3.53,8.93-9.39,8.93Z"/><path class="cls-12" d="M2696.31,1845h-7.26v-3.71h18.52V1845h-7.26v19.08h-4Z"/><path class="cls-12" d="M2711.73,1841.28H2716l6.94,10.78,6.93-10.78h4.27v22.79h-4v-16.35l-7.2,10.75h-.13l-7.13-10.68v16.28h-3.94v-22.79Z"/></g></g></g></svg></a></div></div></div> <div class="principal-sponsors col-xl-4 col-lg-4 col-md-5 col-sm-6 col-xs-7 col-6 mx-auto bg-light"> <div class="d-flex flex-column "> <div class="principal-sponsors-header mx-auto pt-3 mb-0"> <div class="d-flex justify-content-center"> <h3 class="text-primary">PLATINUM SPONSORS</h3></div></div> <div> <img src='https://res.cloudinary.com/tbmg/f_auto,q_auto:best/v1614086394/ctf/extra/sponsors/sponsors_merged_2021.png' class=' lazyload blur-up' width='725' height='236' alt='Platinum Sponsors' /></div></div></div> <div class="col-xl-2 col-lg-2 col-md-2 d-md-block d-none"> <div class="d-flex flex-row-reverse"> <div id="login-menu" class="navbar-collapse collapse"> <ul class="navbar-nav ms-auto"><li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="modal" data-bs-target="#cb-form">Login</a></li> <li class="nav-item"> <a class="nav-link" href="/account/registration">Sign Up</a></li></ul></div></div></div></div> </nav> <nav class="main-nav bg-navbar navbar navbar-expand-sm navbar-light main-nav py-0"> <div class="main-nav-container container-xl mx-auto px-0"><div class="menu-top-nav"> <ul class="nav navbar-nav nav-bottom flex-nowrap d-md-flex d-none mx-auto"> <li class="nav-item"> <a class="nav-link " href="/how-to-vote">How to Vote</a></li></ul></div><div class="menu-top-nav"> <ul class="nav navbar-nav nav-bottom flex-nowrap d-md-flex d-none mx-auto"> <li class="nav-item"> <a class="nav-link " href="/about">About</a></li> <li class="nav-item"> <a class="nav-link " href="/contest-rules">Rules & Tips</a></li> <li class="nav-item"> <a class="nav-link " href="/2024/entries">Entries</a></li> <li class="nav-item"> <a class="nav-link " href="/archive">Archive</a></li> <li class="nav-item"> <a class="nav-link " href="/prizes">Prizes</a></li> <li class="nav-item"> <a class="nav-link " href="/faqs">FAQs</a></li> <li class="nav-item"> <a class="nav-link contact-us" href="#contactus">Contact</a></li></ul></div><div id="navbarSideContainer" class="navbar-side h-100 p-0 bg-light"> <ul class="nav flex-column nav"> <li id="navbar-side-close" class="nav-item text-right bg-secondary"> <a class="nav-link pb-0" href="#"> <i class="fas fa-2x fa-window-close"></i> </a></li> <li class="nav-item bg-secondary"><form id="searchform" class="form-inline nav-link w-75" action="/search" method="get"> <div class="input-group"> <input type="text" name="q" placeholder="Search" id="searchbox" class="form-control" value=""> <div class="input-group-append"> <button class="btn btn-primary" type="button" onclick="$('#searchform').submit()"> <span class="fas fa-search"></span> </button></div></div></form></li><li class="nav-item"> <a class="nav-link" href="#" data-bs-toggle="modal" data-bs-target="#cb-form">Login</a></li> <li class="nav-item"> <a class="nav-link" href="/account/registration">Sign Up</a></li> <!--<hr class="border border-secondary w-75">--> <hr class="border-secondary m-0 w-100"> <li class="nav-item"> <a class="nav-link" href="/how-to-vote">How to Vote</a></li><hr class="border-secondary m-0 w-100"> <li class="nav-item"> <a class="nav-link" href="/about">About</a></li> <li class="nav-item"> <a class="nav-link" href="/contest-rules">Rules & Tips</a></li> <li class="nav-item"> <a class="nav-link" href="/2024/entries">Entries</a></li> <li class="nav-item"> <a class="nav-link" href="/archive">Archive</a></li> <li class="nav-item"> <a class="nav-link" href="/prizes">Prizes</a></li> <li class="nav-item"> <a class="nav-link" href="/faqs">FAQs</a></li> <li class="nav-item"> <a class="nav-link" href="#contactus">Contact</a></li></ul></div><div class="overlay"></div></div> </nav></div> </header> <section id="print-only-message" class="printmessage"> </section> <!--googleon: all--> <div class="container"> <nav aria-label="breadcrumb"> <ol itemscope itemtype="https://schema.org/BreadcrumbList" class="breadcrumb pt-3 text-uppercase"> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/" class="pathway"><span itemprop="name">Home</span></a> <meta itemprop="position" content="1"></li> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/2023" class="pathway"><span itemprop="name">2023</span></a> <meta itemprop="position" content="2"></li> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/2023/entries" class="pathway"><span itemprop="name">Entries</span></a> <meta itemprop="position" content="3"></li> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/2023/entries/aerospace-and-defense" class="pathway"><span itemprop="name">Aerospace & Defense</span></a> <meta itemprop="position" content="4"></li> <li class="breadcrumb-item active" aria-current="page"> <span itemprop="name"> Entry</span> <meta itemprop="position" content="5"></li></ol> </nav> <!-- Main story section --> <section id="content" class="row my-3"> <section id="mainstory" class="left-column col-lg-8 col-md-7 .col-12"> <div> <!--googleoff: all--> <div id="system-message-container"></div> <!--googlon: all--> <div class="item-page" itemscope itemtype="https://schema.org/Article"> <meta itemprop="inLanguage" content="en-GB"/> <div class="card entry"> <div class="card-header bg-primary"> <h2 class="font-weight-normal text-white mb-0" itemprop="headline">Air Ionization in Air Breathing Plasma Thruster</h2></div><aside class="ms-auto me-2 mt-1 mb-0 d-inline-block"> <ul class="list-inline mb-0"> <li class="list-inline-item"> <a href="https://www.shareaholic.com/api/share/?apikey=18e410eb5fc79f84f064431251ed4713&apitype=1&v=1&service=facebook&link=https://contest.techbriefs.com/2023/entries/aerospace-and-defense/12494&title=Air+Ionization+in+Air+Breathing+Plasma+Thruster" rel="nofollow" target="_blank"><i class="fa-brands fa-facebook text-secondary"></i></a></li> <li class="list-inline-item"> <i class=""></i> <a href="https://www.shareaholic.com/api/share/?apikey=18e410eb5fc79f84f064431251ed4713&apitype=1&v=1&service=twitter&link=https://contest.techbriefs.com/2023/entries/aerospace-and-defense/12494&title=Air+Ionization+in+Air+Breathing+Plasma+Thruster" rel="nofollow" target="_blank"><i class="fa-brands fa-x-twitter text-secondary"></i></a></li> <li class="list-inline-item"> <a href="https://www.shareaholic.com/api/share/?apikey=18e410eb5fc79f84f064431251ed4713&apitype=1&v=1&service=linkedin&link=https://contest.techbriefs.com/2023/entries/aerospace-and-defense/12494&title=Air+Ionization+in+Air+Breathing+Plasma+Thruster" rel="nofollow" target="_blank"><i class="fa-brands fa-linkedin text-secondary"></i></a></li> <li class="list-inline-item"> <a href="#" onclick="$('html, body').animate({scrollTop:($('#disqus_thread').offset().top)},500);"><i class="fa-duotone fa-comment-alt text-secondary"></i></a></li></ul> </aside><div class="card-body entry-header pt-0"> <!--<div class="container">--> <!-- <div class="row">--> <div class="d-flex"> <div class="flex-fill" itemprop="author" itemscope itemtype="https://schema.org/Person" itemref="thisauthor"> <meta itemprop="url" content="https://contest.techbriefs.com/profile?user=117227"/> <a href="/profile?user=117227"> <span itemprop="name">Anmol Taploo</span> </a> <br/> <span itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressLocality">Washington</span>, <span itemprop="addressCountry" itemscope itemtype="https://schema.org/Country"> <span itemprop="name">United States</span> </span> </span></div> <div class="flex-fill px-2"> <a href="/2023/top-votes">Votes</a>: 275<br/>Views: 9743</div> <div class="flex-fill"> <a href="/2023/entries/aerospace-and-defense"> <span itemprop="articleSection">Aerospace & Defense</span> </a> <br/> <span itemprop="datePublished" content="2023-07-03">Jul 3, 2023</span></div></div> <!--</div>--> <!--</div>--> </div> <div itemprop="articleBody"> <!-- JoomlaWorks "Disqus Comments (for Joomla)" (v3.7.0) starts here --> <a id="startOfPage"></a> <div id="entry-carousel-modal-outer-1" class="modal fade " tabindex="-1" role="dialog" aria-labelledby="myExtraLargeModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-xl"> <div class="modal-content"> <div class="modal-header bg-primary"> <a href="#" class="ms-auto" data-bs-dismiss="modal" aria-label="Close"> <span aria-hidden="true"><i class="fas fa-times-square fa-2x text-white"></i></span> </a></div> <div class="modal-body"> <img src='https://res.cloudinary.com/tbmg/c_scale,w_1000,f_auto,q_auto/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-1.jpg' class='d-block w-100 lazyload blur-up' width='1000' alt='' /></div></div></div></div> <div id="entry-carousel-modal-outer-2" class="modal fade " tabindex="-1" role="dialog" aria-labelledby="myExtraLargeModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-xl"> <div class="modal-content"> <div class="modal-header bg-primary"> <a href="#" class="ms-auto" data-bs-dismiss="modal" aria-label="Close"> <span aria-hidden="true"><i class="fas fa-times-square fa-2x text-white"></i></span> </a></div> <div class="modal-body"> <img src='https://res.cloudinary.com/tbmg/c_scale,w_1000,f_auto,q_auto/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-2.jpg' class='d-block w-100 lazyload blur-up' width='1000' alt='' /></div></div></div></div> <div id="entry-carousel-modal-outer-3" class="modal fade " tabindex="-1" role="dialog" aria-labelledby="myExtraLargeModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-xl"> <div class="modal-content"> <div class="modal-header bg-primary"> <a href="#" class="ms-auto" data-bs-dismiss="modal" aria-label="Close"> <span aria-hidden="true"><i class="fas fa-times-square fa-2x text-white"></i></span> </a></div> <div class="modal-body"> <img src='https://res.cloudinary.com/tbmg/c_scale,w_1000,f_auto,q_auto/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-3.jpg' class='d-block w-100 lazyload blur-up' width='1000' alt='' /></div></div></div></div> <div class="card-body entry-images border-bottom border-top p-1"> <div id="entry-carousel" class="carousel slide" data-bs-ride="carousel"> <div class="carousel-inner pt-2"> <div class="carousel-item active"> <a class="badge bg-primary float-end position-relative me-4" style="z-index: 10; top: 1rem" href="#" role="button" data-bs-target="#entry-carousel-modal-outer-1" data-bs-toggle="modal"> <div data-bs-toggle="tooltip" data-bs-placement="top" title="View fullsize image"> <i class="fas fa-expand-arrows "></i></div> </a> <a href="#" data-bs-target="#entry-carousel-modal-outer-1" data-bs-toggle="modal"> <span itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"> <img src='https://res.cloudinary.com/tbmg/c_scale,w_800,f_auto,q_auto/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-1.jpg' class='d-block w-100 mt-n4 lazyload blur-up' width='800' alt='' /><meta itemprop="url" content="https://contest.techbriefs.com/https://res.cloudinary.com/tbmg/q_auto,f_auto/ctf/stories/entries/2023/0703131436-Anmol_Taploo-1.jpg"/> <meta itemprop="height" content="540"/> <meta itemprop="width" content="960"/> </span> </a></div> <div class="carousel-item"> <a class="badge bg-primary float-end position-relative me-4" style="z-index: 10; top: 1rem" href="#" role="button" data-bs-target="#entry-carousel-modal-outer-2" data-bs-toggle="modal"> <div data-bs-toggle="tooltip" data-bs-placement="top" title="View fullsize image"> <i class="fas fa-expand-arrows "></i></div> </a> <a href="#" data-bs-target="#entry-carousel-modal-outer-2" data-bs-toggle="modal"> <span itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"> <img src='https://res.cloudinary.com/tbmg/c_scale,w_800,f_auto,q_auto/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-2.jpg' class='d-block w-100 mt-n4 lazyload blur-up' width='800' alt='' /><meta itemprop="url" content="https://contest.techbriefs.com/https://res.cloudinary.com/tbmg/q_auto,f_auto/ctf/stories/entries/2023/0703131436-Anmol_Taploo-2.jpg"/> <meta itemprop="height" content="540"/> <meta itemprop="width" content="960"/> </span> </a></div> <div class="carousel-item"> <a class="badge bg-primary float-end position-relative me-4" style="z-index: 10; top: 1rem" href="#" role="button" data-bs-target="#entry-carousel-modal-outer-3" data-bs-toggle="modal"> <div data-bs-toggle="tooltip" data-bs-placement="top" title="View fullsize image"> <i class="fas fa-expand-arrows "></i></div> </a> <a href="#" data-bs-target="#entry-carousel-modal-outer-3" data-bs-toggle="modal"> <span itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"> <img src='https://res.cloudinary.com/tbmg/c_scale,w_800,f_auto,q_auto/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-3.jpg' class='d-block w-100 mt-n4 lazyload blur-up' width='800' alt='' /><meta itemprop="url" content="https://contest.techbriefs.com/https://res.cloudinary.com/tbmg/q_auto,f_auto/ctf/stories/entries/2023/0703131436-Anmol_Taploo-3.jpg"/> <meta itemprop="height" content="540"/> <meta itemprop="width" content="960"/> </span> </a></div></div> <div class="container pt-2 pb-1 border-top"> <div class="row"> <div class="col-1"></div> <div class="col-10 carousel-indicators " data-bs-toggle="tooltip" data-bs-placement="bottom" title="Goto slide"> <a class="w-33 px-2 active" href="#" type="button" data-bs-target="#entry-carousel" data-bs-slide-to="0" aria-label="Slide 1" > <img src='https://res.cloudinary.com/tbmg/ar_4:3,c_thumb,g_auto:subject,f_auto,q_auto/c_limit,w_200/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-1.jpg' class='w-100 mb-0 lazyload blur-up' width='200' alt='' /></a> <a class="w-33 px-2" href="#" type="button" data-bs-target="#entry-carousel" data-bs-slide-to="1" aria-label="Slide 2" > <img src='https://res.cloudinary.com/tbmg/ar_4:3,c_thumb,g_auto:subject,f_auto,q_auto/c_limit,w_200/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-2.jpg' class='w-100 mb-0 lazyload blur-up' width='200' alt='' /></a> <a class="w-33 px-2" href="#" type="button" data-bs-target="#entry-carousel" data-bs-slide-to="2" aria-label="Slide 3" > <img src='https://res.cloudinary.com/tbmg/ar_4:3,c_thumb,g_auto:subject,f_auto,q_auto/c_limit,w_200/v1689324976/ctf/entries/2023/0703131436-Anmol_Taploo-3.jpg' class='w-100 mb-0 lazyload blur-up' width='200' alt='' /></a></div> <div class="col-1"></div></div></div></div></div> <div class="card-body entry-description border-bottom p-3"> <img src='https://res.cloudinary.com/tbmg/f_auto,q_auto:best/v1711184637/ctf/extra/badges/2023/most_popular.jpg' class='img-thumbnail ms-2 w-35 lazyload blur-up' width='200' alt='' /><p><p>Currently, air-breathing electric propulsion ramjet configurations are considered worldwide. However, configurations with air scoops suffer from significant momentum losses due to air collimation and drag. One idea that was proposed a few years ago and requires further development is a direct scramjet configuration that can significantly reduce drag. In this case, full ionization of atmospheric molecules is required. A new mode of operation for air-breathing thruster was discovered. The research focuses on the so-called self-neutralizing air-breathing plasma thruster (SABPT). Ion production is controlled by electron energy. Primary testing shows that both positive and negative ions can be produced thus providing conditions for SABPT.</p> <p>Recently, there has been a growing interest in the research and development of propulsion devices for very low earth orbits. These devices would typically function with a thrust level of about 90mN-90N to counteract drag level (60 mN- 60N) in 80-260 km altitude ranges. The air-breathing plasma thruster would operate by in situ air propellant ionization to produce thrust in these altitudes. This device brings advantages such as low launch cost, payload reduction by eliminating propellant tanks, effective utilization of space resources, and enhanced imaging capability. However, there are some physical and operational challenges, such as developing an optimum approach to air ionization in a rarefied gas environment and building collimator-less designs (collimators introduce additional drag). Recently it was proposed to use a scramjet-type configuration without air collimation. In a scramjet-type configuration, the incoming air is at a high speed that is not deaccelerated, unlike with a ramjet. This configuration could potentially eliminate the complexity of using a collimator (which increases the pressure and reduces the velocity) and reduces drag.</p> <p>Typically, an air-breathing plasma thruster would require an external neutralizer to inject electrons for ion beam neutralization. Whereas we propose a design (SABPT) that utilizes positive and negative ions to achieve beam neutralization. Earlier, it was shown theoretically that the SABPT has the potential to achieve self-neutralization by operating in a high to low electron energy mode operation. The ions generated inside the thruster could be extracted using electrodes with alternating potential (based on the polarity of the ion charge to extract). As a result, the charge densities would cancel out to achieve a self-neutralized beam. To achieve the design requirements, the electron source inside the SABPT would need to have prominent control over the electron energy for the generation of positive and negative ions. Additionally, its operation would require stability in harsh air plasma environments. To that end, we propose a low-power vacuum arc electron source as a potential electron source to fulfill the SABPT design requirements.</p></p></div> <div class="card-body entry-video border-bottom p-3"> <h3 class="mb-0 pb-3">Video</h3> <!-- JoomlaWorks "AllVideos" Plugin (v6.1.0) starts here --> <div class="avPlayerWrapper avVideo"> <div class="avPlayerContainer"> <div id="AVPlayerID_0_f0e19b4cba5aee59c7685c1c2b1d933b" class="avPlayerBlock"> <iframe src="https://www.youtube.com/embed/fElMrodxALY?rel=0&fs=1&wmode=transparent" width="500" height="400" allow="autoplay; fullscreen; encrypted-media" allowfullscreen="true" frameborder="0" scrolling="no" title="JoomlaWorks AllVideos Player"></iframe></div></div></div> <!-- JoomlaWorks "AllVideos" Plugin (v6.1.0) ends here --> </div> <div class="card-body"></div><ul class="list-group list-group-flush entry-prize-list"> <li class="list-group-item"> <h3>Awards</h3></li> <li class="list-group-item"> <img src='https://res.cloudinary.com/tbmg/f_auto,q_auto:best/v1711184637/ctf/extra/badges/2023/most_popular.jpg' class=' lazyload blur-up' width='200' alt='' />2023 Top 10 Most Popular</li></ul> <div class="card-body entry-voting border-bottom p-3"> <h3 class="mb-0">Voting</h3> <p class="voting-message"> Voting is closed!</p></div> <div class="card-body"></div><ul class="list-group list-group-flush entry-prize-list border-top-0"> <li class="list-group-item"> <h3>ABOUT THE ENTRANT</h3></li> <li class="list-group-item"> <div class="row"> <div class="col-4"><b>Name: </b></div> <div class="col">Anmol Taploo</div></div></li> <li class="list-group-item"> <div class="row"> <div class="col-4"><b>Type of entry: </b></div> <div class="col">team<br/></div></div> <div class="row"> <div class="col-4"><b>Team members:</b></div> <div class="col"> <ul class="blah list-group"> <li class="list-group-item"> Michael Keidar</li> <li class="list-group-item"> Li Lin</li> <li class="list-group-item"> Vikas Soni</li></ul></div></div></li> <li class="list-group-item"> <div class="row"> <div class="col-4"><b>Software used for this entry:</b></div> <div class="col">COMSOL, FEMM, Solid Works and Ansys Maxwell</div></div></li> <li class="list-group-item"> <div class="row"> <div class="col-4"><b>Patent status:</b></div> <div class="col">pending</div></div></li></ul></div> <!-- Disqus comments block --> <div class="jwDisqusForm"> <div id="disqus_thread"></div> <script> var disqus_developer = '0'; var disqus_config = function(){ this.page.url = 'https://contest.techbriefs.com/2023/entries/aerospace-and-defense/12494-0703-131436-air-ionization-in-air-breathing-plasma-thruster'; this.page.identifier = '0ff07f9d5c_id12494'; this.language = ''; }; (function() { var d = document, s = d.createElement('script'); s.src = 'https://createthefuture.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })(); </script> <noscript> <a href="https://createthefuture.disqus.com/?url=ref_noscript">View the discussion thread.</a> </noscript> <div id="jwDisqusFormFooter"> <a id="jwDisqusBackToTop" href="#startOfPage"> back to top </a> <div class="clr"></div></div></div> <div class="clr"></div> <!-- JoomlaWorks "Disqus Comments (for Joomla)" (v3.7.0) ends here --> </div></div></div> </section> <!--googleoff: all--> <section id="sidebar" class="right-column col-lg-4 col-md-5 d-md-block d-none"> <div><div class="module card text-center mb-3"> <div class="card-header py-1"> <h4>View Entries by</h4></div> <div id="mod-custom260" class="mod-custom custom"> <div class="card-body"> <h4>Contest Category</h4></div> <ul class="list-group list-group-flush"> <li class="list-group-item"><a href="/2024/entries/aerospace-and-defense/by-date">Aerospace & Defense</a></li> <li class="list-group-item"><a href="/2024/entries/automotive-transportation/by-date">Automotive/Transportation</a></li> <li class="list-group-item"><a href="/2024/entries/medical/by-date">Medical</a></li> <li class="list-group-item"><a href="/2024/entries/electronics/by-date">Electronics</a></li> <li class="list-group-item"><a href="/2024/entries/manufacturing-and-materials/by-date">Manufacturing & Materials</a></li> <li class="list-group-item"><a href="/2024/entries/robotics-and-automation/by-date">Robotics & Automation</a></li> <li class="list-group-item"><a href="/2024/entries/sustainable-technology/by-date">Sustainable Technology</a></li></ul> <div class="card-body"> <h4>Also</h4></div> <ul class="list-group list-group-flush"> <li class="list-group-item"><a href="/tags">Tag Cloud</a></li> <li class="list-group-item"><a href="/2024/entrants">2024 Entrants</a></li> <li class="list-group-item"><a href="/2024/top-votes">Number of Votes</a></li> <li class="list-group-item"><a href="/2024/entries/by-views">Number of Page Views</a></li> <li class="list-group-item"><a href="/2024/entries">View All Entries</a></li></ul></div></div> <div class="module card text-center mb-3"> <div class="card-header py-1"> <h4>2024 Contest Results</h4></div> <div id="mod-custom216" class="mod-custom custom"> <ul class="list-group list-group-flush"> <li class="list-group-item"><a href="/2024/winners">Grand Prize & Category Winners</a></li> <li class="list-group-item"><a href="/2024/top-100">Top 100 Entries</a></li> <li class="list-group-item"><a href="/2024/entries">Browse All the Entries</a></li> <li class="list-group-item"><a href="/2024/top-votes">Final Voting Scoreboard</a></li> <li class="list-group-item"><a href="/2024/judges">Meet the Judges </a></li></ul></div></div> <div class="_right"> <h3>Follow Us</h3> <div id="ctf_followus" class="mt-3"> <a class="text-info fs-5" href="https://www.shareaholic.com/v2/follow/?apikey=18e410eb5fc79f84f064431251ed4713&service_nickname=facebook&username=CreateTheFutureContest" rel="nofollow" target="_blank"><i class="fa-brands fa-facebook fa-2xl"></i></a> <a class="text-info fs-5 ms-4" href="https://www.shareaholic.com/v2/follow/?apikey=18e410eb5fc79f84f064431251ed4713&service_nickname=twitter&username=CTFcontest" rel="nofollow" target="_blank"><i class="fa-brands fa-twitter fa-2xl"></i></a> <a class="text-info fs-5 ms-4" href="https://www.shareaholic.com/v2/follow/?apikey=18e410eb5fc79f84f064431251ed4713&service_nickname=linkedin_company&username=sae-media-group" rel="nofollow" target="_blank"><i class="fa-brands fa-linkedin fa-2xl"></i></a></div></div></div> </section> <!--googlon: all--> </section> <!--googleoff: all--> <div id="footer"> <footer> <div class="loginbar"> <div id="cb-form" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" > <div class="modal-dialog modal-sm mt-5" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Sign In</h5> <button type="button" class="btn btn-secondary" data-bs_dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button></div> <div class="modal-body"> <form action="https://contest.techbriefs.com/account/login" method="post" id="login-form" class="form-inline cbLoginForm" data-bs-target="#cb-form"> <input type="hidden" name="option" value="com_comprofiler"/> <input type="hidden" name="view" value="login"/> <input type="hidden" name="op2" value="login"/> <input type="hidden" name="return" value="B:aHR0cHM6Ly9jb250ZXN0LnRlY2hicmllZnMuY29tLzIwMjMvZW50cmllcy9hZXJvc3BhY2UtYW5kLWRlZmVuc2UvMTI0OTQ="/> <input type="hidden" name="message" value="0"/> <input type="hidden" name="loginfrom" value="loginmodule"/> <input type="hidden" name="753d1fb905e3280818bf7c3c1ae5f3ce" value="1" /> <div class="form-group mb-3 w-100"> <input name="username" type="username" class="form-control col-8" id="inputUserName" aria-describedby="userNameHelp" placeholder="Username"></div> <div class="form-group mb-3 w-100"> <input name="passwd" type="password" class="form-control col-8" id="inputPassword" placeholder="Password"></div> <button type="submit" class="btn btn-primary offset-2 col-8 mb-3">Submit <i class="fas fa-sign-in"></i></button> <a href="https://contest.techbriefs.com/account/forgot-login" class=" offset-2 col-8"> <span class="fas fa-unlock-alt"></span></span> Forgot Login? </a></form></div></div></div></div></div> <div class=" notify"> <div id="mod-custom142" class="mod-custom custom"> <p> Contest Notifications: <a href="/2023/winners">Click here for the full list of 2023 winning entries</a></p></div></div> <div class=""> <ul class="mod-menu mod-list nav "> <li class="nav-item item-10"><a href="https://www.saemediagroup.com/" >© 2024 SAE Media Group</a></li><li class="nav-item item-9"><a href="/privacy" class="ms-3">Privacy Policy</a></li><li class="nav-item item-854"><a href="https://status.saemediagroup.com/" class="ms-3">Service Status</a></li></ul></div> </footer> <!-- End of footer --> </div> <!--googleon: all--> </div> <!--googleoff: all--> <script src="https://cdnjs.cloudflare.com/ajax/libs/cloudinary-core/2.13.1/cloudinary-core-shrinkwrap.min.js" tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-stp48jOOmT4TXnB4bMJ0rlcR7XagE92cqr7pEb+oFQox6qNSyKiN31GajDsg5VVn+HgM5mhOZinSRXowsRmgPg=="></script><script src="https://kit.fontawesome.com/796c614b26.js" tb-donotmove async crossorigin="anonymous" referrerpolicy="no-referrer"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.2/masonry.pkgd.min.js" tb-donotmove async crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-JRlcvSZAXT8+5SQQAvklXGJuxXTouyq8oIMaYERZQasB8SBDHZaUbeASsJWpk0UUrf89DP3/aefPPrlMR1h1yQ=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js" tb-donotmove async crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-q583ppKrCRc7N5O0n2nzUiJ+suUv7Et1JGels4bXOaMFQcamPk9HjdUknZuuFjBNs7tsMuadge5k9RzdmO+1GQ=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.3/js/bootstrap.bundle.min.js" tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-i9cEfJwUwViEPFKdC1enz4ZRGBj8YQo6QByFTF92YXHi7waCqyexvRD75S5NVTsSiTv7rKWqG9Y5eFxmRsOn0A=="></script><script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/js/bootstrap-select.min.js" defer tb-donotmove crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-yrOmjPdp8qH8hgLfWpSFhC/+R9Cj9USL8uJxYIveJZGAiedxyIxwNw4RsLDlcjNlIRR4kkHaDHSmNHAkxFTmgg=="></script><script type="text/javascript" tb-donotmove> $(function () { var cl = cloudinary.Cloudinary.new({ cloud_name: "tbmg" }); cl.config({ defaultBreakpoints: [100,200,400,500,800,1000,1200], responsive_use_breakpoints: true, }); cl.responsive(); }); var match_md_max = window.matchMedia("(max-width: 991px)"); $(function () { var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl) }) }); </script> <link rel="preload" href="https://cdn.shareaholic.net/assets/pub/shareaholic.js" as="script"/> <meta name="shareaholic:site_id" content="18e410eb5fc79f84f064431251ed4713"/> <script data-cfasync="false" async src="https://cdn.shareaholic.net/assets/pub/shareaholic.js"></script> <script tb-donotmove> window.fwSettings = { 'widget_id': 30000000144 }; !function () { if ("function" != typeof window.FreshworksWidget) { var n = function () { n.q.push(arguments) }; n.q = [], window.FreshworksWidget = n } }() </script> <script type='text/javascript' src='https://widget.freshworks.com/widgets/30000000144.js' async defer tb-donotmove> </script> <script src="/media/system/js/core.js" tb-donotmove></script> <!--googleon: all--> <!-- moved to end by ntb_minifier --> <link href="https://olytics.omeda.com/olytics/css/v3/p/olytics.css" rel="stylesheet" /> <link href="/components/com_comprofiler/plugin/templates/default/bootstrap.min.css?v=49a2bdfe30936590" rel="stylesheet" /> <link href="/components/com_comprofiler/plugin/templates/default/fontawesome.min.css?v=49a2bdfe30936590" rel="stylesheet" /> <link href="/components/com_comprofiler/plugin/templates/default/template.min.css?v=49a2bdfe30936590" rel="stylesheet" /> <script src="/media/system/js/core.js?37ffe4186289eba9c5df81bea44080aff77b9684"></script> <script src="/media/vendor/webcomponentsjs/js/webcomponents-bundle.min.js?2.8.0" nomodule defer></script> <script src="/media/vendor/bootstrap/js/bootstrap-es5.min.js?5.3.2" nomodule defer></script> <script src="/media/vendor/bootstrap/js/tab.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/popover.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/dropdown.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/modal.min.js?5.3.2" type="module"></script> <script src="/media/vendor/bootstrap/js/carousel.min.js?5.3.2" type="module"></script> <link rel="stylesheet" href="/templates/ctf_2019/css/template.min.css?t=1733892067" crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-gs01nFrNFaCFzLvqaR69tzsAe94mHtFisnTpwYypB64/eczgDxp+YPPHxhWvI+zFHrYH8Rbo6mUhd9m93B83uw=="/> <script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/plugins/print/ls.print.min.js" defer crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-tY3D/iSWSdQE2NSLW/mRWQd/bvHAGjyCLRwSd23sqNbbgVnUaah2t+ZpX7hdBOskZ7PqYvwe4E+qxNARGojJGQ=="></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/11.15.10/sweetalert2.all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-KWZQo2EiUMmEMrjJUUZoWP8k/mL57L5PPjQF23Vv77jGidQK8WPsX/RoQ7uI0cnjDDCU8ZXa1NG24HkLOqI9sg=="></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.14.0-beta3/css/bootstrap-select.min.css" media="print" onload="this.media='all'" crossorigin="anonymous" referrerpolicy="no-referrer" integrity="sha512-g2SduJKxa4Lbn3GW+Q7rNz+pKP9AWMR++Ta8fgwsZRCUsawjPvF/BxSMkGS61VsR9yinGoEgrHPGPn2mrj8+4w=="/> <!-- inline scripts moved by ntb_minifier --> <script> /*! inlined from /media/plg_system_webauthn/js/login.min.js by ntb_minifier */ window.Joomla=window.Joomla||{};((Joomla,document)=>{const interpolateParameters=(object,prefix='')=>{let encodedString='';Object.keys(object).forEach(prop=>{if(typeof object[prop]!=='object'){if(encodedString.length>0){encodedString+='&';} if(prefix===''){encodedString+=`${encodeURIComponent(prop)}=${encodeURIComponent(object[prop])}`;}else{encodedString+=`${encodeURIComponent(prefix)}[${encodeURIComponent(prop)}]=${encodeURIComponent(object[prop])}`;} return;} encodedString+=`${interpolateParameters(object[prop], prop)}`;});return encodedString;};const findField=(form,fieldSelector)=>{const elInputs=form.querySelectorAll(fieldSelector);if(!elInputs.length){return null;} return elInputs[0];};const lookForField=(outerElement,fieldSelector)=>{let elInput=null;if(!outerElement){return elInput;} const elElement=outerElement.parentElement;if(elElement.nodeName==='FORM'){elInput=findField(elElement,fieldSelector);return elInput;} const elForms=elElement.querySelectorAll('form');if(elForms.length){for(let i=0;i<elForms.length;i+=1){elInput=findField(elForms[i],fieldSelector);if(elInput!==null){return elInput;}}} return null;};const handleLoginError=message=>{Joomla.renderMessages({error:[message]});};const handleLoginChallenge=publicKey=>{const arrayToBase64String=a=>btoa(String.fromCharCode(...a));const base64url2base64=input=>{let output=input.replace(/-/g,'+').replace(/_/g,'/');const pad=output.length%4;if(pad){if(pad===1){throw new Error('InvalidLengthError: Input base64url string is the wrong length to determine padding');} output+=new Array(5-pad).join('=');} return output;};if(!publicKey.challenge){handleLoginError(Joomla.Text._('PLG_SYSTEM_WEBAUTHN_ERR_INVALID_USERNAME'));return;} publicKey.challenge=Uint8Array.from(window.atob(base64url2base64(publicKey.challenge)),c=>c.charCodeAt(0));if(publicKey.allowCredentials){publicKey.allowCredentials=publicKey.allowCredentials.map(data=>{data.id=Uint8Array.from(window.atob(base64url2base64(data.id)),c=>c.charCodeAt(0));return data;});} navigator.credentials.get({publicKey}).then(data=>{const publicKeyCredential={id:data.id,type:data.type,rawId:arrayToBase64String(new Uint8Array(data.rawId)),response:{authenticatorData:arrayToBase64String(new Uint8Array(data.response.authenticatorData)),clientDataJSON:arrayToBase64String(new Uint8Array(data.response.clientDataJSON)),signature:arrayToBase64String(new Uint8Array(data.response.signature)),userHandle:data.response.userHandle?arrayToBase64String(new Uint8Array(data.response.userHandle)):null}};const paths=Joomla.getOptions('system.paths');window.location=`${paths ? `${paths.base}/index.php` : window.location.pathname}?${Joomla.getOptions('csrf.token')}=1&option=com_ajax&group=system&plugin=webauthn&`+`format=raw&akaction=login&encoding=redirect&data=${btoa(JSON.stringify(publicKeyCredential))}`;}).catch(error=>{handleLoginError(error);});};Joomla.plgSystemWebauthnLogin=formId=>{const elFormContainer=document.getElementById(formId);const elUsername=lookForField(elFormContainer,'input[name=username]');const elReturn=lookForField(elFormContainer,'input[name=return]');if(elUsername===null){Joomla.renderMessages({error:[Joomla.Text._('PLG_SYSTEM_WEBAUTHN_ERR_CANNOT_FIND_USERNAME')]});return false;} const username=elUsername.value;const returnUrl=elReturn?elReturn.value:null;if(username===''){Joomla.renderMessages({error:[Joomla.Text._('PLG_SYSTEM_WEBAUTHN_ERR_EMPTY_USERNAME')]});return false;} const postBackData={option:'com_ajax',group:'system',plugin:'webauthn',format:'raw',akaction:'challenge',encoding:'raw',username,returnUrl};postBackData[Joomla.getOptions('csrf.token')]=1;const paths=Joomla.getOptions('system.paths');Joomla.request({url:`${paths ? `${paths.base}/index.php` : window.location.pathname}?${Joomla.getOptions('csrf.token')}=1`,method:'POST',data:interpolateParameters(postBackData),onSuccess(rawResponse){let jsonData={};try{jsonData=JSON.parse(rawResponse);}catch(e){} handleLoginChallenge(jsonData);},onError:xhr=>{handleLoginError(`${xhr.status} ${xhr.statusText}`);}});return false;};const loginButtons=[].slice.call(document.querySelectorAll('.plg_system_webauthn_login_button'));if(loginButtons.length){loginButtons.forEach(button=>{button.addEventListener('click',({currentTarget})=>{Joomla.plgSystemWebauthnLogin(currentTarget.getAttribute('data-webauthn-form'));});});}})(Joomla,document); /*! inlined from /media/system/js/keepalive-es5.min.js by ntb_minifier */ (function(){'use strict';if(!window.Joomla){throw new Error('Joomla API was not properly initialised');} var keepAliveOptions=Joomla.getOptions('system.keepalive');var keepAliveInterval=keepAliveOptions&&keepAliveOptions.interval?parseInt(keepAliveOptions.interval,10):45*1000;var keepAliveUri=keepAliveOptions&&keepAliveOptions.uri?keepAliveOptions.uri.replace(/&/g,'&'):'';if(keepAliveUri===''){var systemPaths=Joomla.getOptions('system.paths');keepAliveUri=(systemPaths?systemPaths.root+"/index.php":window.location.pathname)+"?option=com_ajax&format=json";} setInterval(function(){return fetch(keepAliveUri,{method:'POST'});},keepAliveInterval);})(); /*! inlined from /media/system/js/joomla-hidden-mail-es5.min.js by ntb_minifier */ (function(){'use strict';function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype);subClass.prototype.constructor=subClass;_setPrototypeOf(subClass,superClass);} function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);} function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);} function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}} function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct.bind();}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor();if(Class)_setPrototypeOf(instance,Class.prototype);return instance;};} return _construct.apply(null,arguments);} function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1;} function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map():undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function");} if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper);} function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor);} Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class);};return _wrapNativeSuper(Class);} window.customElements.define('joomla-hidden-mail',function(_HTMLElement){_inheritsLoose(_class,_HTMLElement);function _class(){var _this;_this=_HTMLElement.call(this)||this;_this.newElement='';_this.base='';return _this;} var _proto=_class.prototype;_proto.disconnectedCallback=function disconnectedCallback(){this.innerHTML='';};_proto.connectedCallback=function connectedCallback(){var _this2=this;this.base=this.getAttribute('base')+"/";if(this.getAttribute('is-link')==='1'){this.newElement=document.createElement('a');this.newElement.setAttribute('href',"mailto:"+this.constructor.b64DecodeUnicode(this.getAttribute('first'))+"@"+this.constructor.b64DecodeUnicode(this.getAttribute('last')));[].slice.call(this.attributes).forEach(function(attribute,index){var _this2$attributes$ite=_this2.attributes.item(index),nodeName=_this2$attributes$ite.nodeName;if(nodeName){if(['is-link','is-email','first','last','text'].indexOf(nodeName)===-1){var _this2$attributes$ite2=_this2.attributes.item(index),nodeValue=_this2$attributes$ite2.nodeValue;_this2.newElement.setAttribute(nodeName,nodeValue);}}});}else{this.newElement=document.createElement('span');} if(this.getAttribute('text')){var innerStr=this.constructor.b64DecodeUnicode(this.getAttribute('text'));innerStr=innerStr.replace('src="images/',"src=\""+this.base+"images/").replace('src="media/',"src=\""+this.base+"media/");this.newElement.innerHTML=Joomla.sanitizeHtml(innerStr);}else{this.newElement.innerText=window.atob(this.getAttribute('first'))+"@"+window.atob(this.getAttribute('last'));} this.removeAttribute('class');this.removeAttribute('style');this.innerText='';this.appendChild(this.newElement);};_class.b64DecodeUnicode=function b64DecodeUnicode(str){return decodeURIComponent(Array.prototype.map.call(atob(str),function(c){return"%"+("00"+c.charCodeAt(0).toString(16)).slice(-2);}).join(''));};return _class;}(_wrapNativeSuper(HTMLElement)));})(); /*! inlined from /media/mod_menu/js/menu-es5.min.js by ntb_minifier */ (function(){'use strict';(function(){function topLevelMouseOver(el,settings){var ulChild=el.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','false');ulChild.classList.add(settings.menuHoverClass);}} function topLevelMouseOut(el,settings){var ulChild=el.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','true');ulChild.classList.remove(settings.menuHoverClass);}} function setupNavigation(nav){var settings={menuHoverClass:'show-menu',dir:'ltr'};var topLevelChilds=nav.querySelectorAll(':scope > li');topLevelChilds.forEach(function(topLevelEl){var linkEl=topLevelEl.querySelector('a');if(linkEl){linkEl.tabIndex='0';linkEl.addEventListener('mouseover',topLevelMouseOver(topLevelEl,settings));linkEl.addEventListener('mouseout',topLevelMouseOut(topLevelEl,settings));} var spanEl=topLevelEl.querySelector('span');if(spanEl){spanEl.tabIndex='0';spanEl.addEventListener('mouseover',topLevelMouseOver(topLevelEl,settings));spanEl.addEventListener('mouseout',topLevelMouseOut(topLevelEl,settings));} topLevelEl.addEventListener('mouseover',function(_ref){var currentTarget=_ref.currentTarget;var ulChild=currentTarget.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','false');ulChild.classList.add(settings.menuHoverClass);}});topLevelEl.addEventListener('mouseout',function(_ref2){var currentTarget=_ref2.currentTarget;var ulChild=currentTarget.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','true');ulChild.classList.remove(settings.menuHoverClass);}});topLevelEl.addEventListener('focus',function(_ref3){var currentTarget=_ref3.currentTarget;var ulChild=currentTarget.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','true');ulChild.classList.add(settings.menuHoverClass);}});topLevelEl.addEventListener('blur',function(_ref4){var currentTarget=_ref4.currentTarget;var ulChild=currentTarget.querySelector('ul');if(ulChild){ulChild.setAttribute('aria-hidden','false');ulChild.classList.remove(settings.menuHoverClass);}});topLevelEl.addEventListener('keydown',function(event){var keyName=event.key;var curEl=event.target;var curLiEl=curEl.parentElement;var curUlEl=curLiEl.parentElement;var prevLiEl=curLiEl.previousElementSibling;var nextLiEl=curLiEl.nextElementSibling;if(!prevLiEl){prevLiEl=curUlEl.children[curUlEl.children.length-1];} if(!nextLiEl){var _curUlEl$children=curUlEl.children;nextLiEl=_curUlEl$children[0];} switch(keyName){case'ArrowLeft':event.preventDefault();if(settings.dir==='rtl'){nextLiEl.children[0].focus();}else{prevLiEl.children[0].focus();} break;case'ArrowRight':event.preventDefault();if(settings.dir==='rtl'){prevLiEl.children[0].focus();}else{nextLiEl.children[0].focus();} break;case'ArrowUp':{event.preventDefault();var parent=curLiEl.parentElement.parentElement;if(parent.nodeName==='LI'){parent.children[0].focus();}else{prevLiEl.children[0].focus();} break;} case'ArrowDown':event.preventDefault();if(curLiEl.classList.contains('parent')){var child=curLiEl.querySelector('ul');if(child!=null){var childLi=child.querySelector('li');childLi.children[0].focus();}else{nextLiEl.children[0].focus();}}else{nextLiEl.children[0].focus();} break;}});});} document.addEventListener('DOMContentLoaded',function(){var navs=document.querySelectorAll('.nav');[].forEach.call(navs,function(nav){setupNavigation(nav);});});})();})(); /*! inlined from /plugins/content/jw_allvideos/jw_allvideos/includes/js/behaviour.min.js by ntb_minifier */ var allvideos={ready:function(cb){/in/.test(document.readyState)?setTimeout('allvideos.ready('+cb+')',9):cb();},getRemoteJson:function(url){var remoteJsonScript=document.createElement('script');remoteJsonScript.setAttribute('charset','utf-8');remoteJsonScript.setAttribute('type','text/javascript');remoteJsonScript.setAttribute('async','true');remoteJsonScript.setAttribute('src',url);return remoteJsonScript;},embed:function(el){var jsonpCallback=el.callback;var tempId=Math.floor(Math.random()*1000)+1;var responseContainer=[];window[jsonpCallback]=function(response){responseContainer.tempId=[response];};var head=document.getElementsByTagName('head')[0];var jsonp=this.getRemoteJson(el.url);jsonp.onloadDone=false;jsonp.onload=function(){if(!jsonp.onloadDone){jsonp.onloadDone=true;document.getElementById(el.playerID).innerHTML=responseContainer.tempId[0].html;}};jsonp.onreadystatechange=function(){if(("loaded"===jsonp.readyState||"complete"===jsonp.readyState)&&!jsonp.onloadDone){jsonp.onloadDone=true;document.getElementById(el.playerID).innerHTML=responseContainer.tempId[0].html;}} head.appendChild(jsonp);}} function allVideosMakeVideoPoster(source,container){if(source.autoplay||source.poster){return;} var videoClass=source.getAttribute('class');var videoStyle=source.getAttribute('style');var videoURL=source.getAttribute('src');var videoControls=(source.controls?' controls':'');var videoControlsList=(source.controlsList?' controlsList="'+source.controlsList+'"':'');var videoPoster='';var secToSeek=5;var v=document.createElement('video');v.setAttribute('preload','metadata');v.src=videoURL+'#t='+secToSeek;v.onseeked=function(e){var canvas=document.createElement('canvas');canvas.width=v.videoWidth;canvas.height=v.videoHeight;var ctx=canvas.getContext('2d');ctx.drawImage(v,0,0,canvas.width,canvas.height);videoPoster=canvas.toDataURL();container.innerHTML='<video class="'+videoClass+'" style="'+videoStyle+'" src="'+videoURL+'" poster="'+videoPoster+'" preload="metadata"'+videoControls+''+videoControlsList+'></video>';};} function allVideosHelper(){var i=0,j=0,deprecated=document.querySelectorAll(".avDeprecated"),deprecatedCount=deprecated.length,videos=document.querySelectorAll("video.avPlayer"),videosCount=videos.length;if(deprecatedCount){for(j;j<deprecatedCount;j++){var parent=deprecated[j].parentNode;parent.setAttribute('class','avPlayerBlockDisabled');}} if(videosCount){for(i;i<videosCount;i++){var container=videos[i].parentNode;allVideosMakeVideoPoster(videos[i],container);}}} if(window.addEventListener){window.addEventListener("DOMContentLoaded",allVideosHelper,false);}else if(window.attachEvent){window.attachEvent("onload",allVideosHelper);}else{window.onload=allVideosHelper;} (function(){var cx='015407278790088682131:yshqqymtj30';var gcse=document.createElement('script');gcse.type='text/javascript';gcse.async=true;gcse.src=(document.location.protocol=='https:'?'https:':'http:')+'//www.google.com/cse/cse.js?cx='+cx;var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(gcse,s);})();window.olytics||(window.olytics=[]),window.olytics.methods=["fire","confirm"],window.olytics.factory=function(i){return function(){var t=Array.prototype.slice.call(arguments);return t.unshift(i),window.olytics.push(t),window.olytics}};for(var i=0;i<window.olytics.methods.length;i++){var method=window.olytics.methods[i];window.olytics[method]=window.olytics.factory(method)} olytics.load=function(i){if(!document.getElementById("olyticsImport")){window.a=window.olytics;var t=document.createElement("script");t.async=!0,t.id="olyticsImport",t.type="text/javascript";var o="";void 0!==i&&void 0!==i.oid&&(o=i.oid),t.setAttribute("data-oid",o),t.src="https://olytics.omeda.com/olytics/js/v3/p/olytics.min.js",t.addEventListener("load",function(t){for(olytics.initialize({Olytics:i});window.a.length>0;){var o=window.a.shift(),s=o.shift();olytics[s]&&olytics[s].apply(olytics,o)}},!1);var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}},olytics.load({oid:"c1d61b8c10b7440fb3c59fe5b6424a6b"});$(document).ready(function(){olytics.fire({behaviorId:'7566A8018245A8G',category:'Entry',tag:'Aerospace & Defense,["Aerospace","Engines","Propulsion","Spacecraft"]'});});$(document).ready(function(){$('#cb-form').on('shown.bs.modal',function(){$('#inputUserName').focus();})});var _extraWatchParams=_extraWatchParams||[];_extraWatchParams.projectId='db832384-b716-4141-b539-b453c5613e25';(function(){var ew=document.createElement('script');ew.type='text/javascript';ew.async=true;ew.src='https://agent.extrawatch.com/agent/js/ew.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ew,s);})();FreshworksWidget('hide','launcher');FreshworksWidget('identify','ticketForm',{name:'',email:'',});FreshworksWidget('prefill','ticketForm',{group_id:30000055696,});FreshworksWidget('hide','ticketForm',['group_id']);$(function(){$("a.contact-us").click(function(){FreshworksWidget('open');});}); /*! inlined from /templates/ctf_2019/js/custom.min.js by ntb_minifier */ $(window).scroll(function(){if($(document).scrollTop()>202){$('nav').addClass('shrink');$('.main-nav').addClass('main-nav-stick');$('body').addClass('body-pad');}else{$('nav').removeClass('shrink');$('.main-nav').removeClass('main-nav-stick');$('body').removeClass('body-pad');}});$(function(){function showNavbarSide(){$('#navbarSideContainer').addClass('reveal');$('.overlay').show();} function hideNavbarSide(){$('#navbarSideContainer').removeClass('reveal');$('.overlay').hide();} $('[id*=navbar-side-button]').on('click',function(){showNavbarSide();});$('[id*=search-side-button]').on('click',function(){showNavbarSide();$('#searchbox').focus();});$('.overlay').on('click',function(){hideNavbarSide();});$('#navbar-side-close').on('click',function(){hideNavbarSide();});});function checkWidth(){if($(window).width()>=768)$('.tb-filter-show').addClass("show");else $('.tb-filter-show').removeClass("show");} $(document).ready(checkWidth);$(window).resize(checkWidth); </script> <!-- JoomlaWorks "Disqus Comments (for Joomla)" (v3.7.0) --> <script>var disqus_config = function(){this.language = '';};</script> <script id="dsq-count-scr" src="//createthefuture.disqus.com/count.js" async></script> </body> </html>